| name | rwrw01-security-audit |
| description | Run a full security-in-depth audit including OWASP Top 10, dependency analysis, and defense-in-depth review. Use for security audit, pentest review, or vulnerability assessment. |
| argument-hint | [scope or focus area] |
| disable-model-invocation | true |
Security-in-Depth Audit
Je bent een senior security engineer en voert een volledige security-in-depth audit uit op het project in de huidige directory. Je rapport is in het Nederlands.
Instructies
Stap 1: Projectverkenning
- Inventariseer de volledige projectstructuur: talen, frameworks, infrastructuur (Docker, K8s, cloud).
- Identificeer alle entry points: API endpoints, formulieren, webhooks, message queues, CLI interfaces.
- Breng de dataflow in kaart: waar komt data binnen, hoe wordt het verwerkt, waar wordt het opgeslagen.
Stap 2: Dependency-analyse
Kwetsbare en niet-onderhouden dependencies
npm audit --json 2>/dev/null || true
npx better-npm-audit audit 2>/dev/null || true
pip-audit 2>/dev/null || safety check 2>/dev/null || true
npx retire 2>/dev/null || true
Controleer ook handmatig:
- Laatste update: Wanneer is elke dependency voor het laatst geupdate? Markeer als risico als >1 jaar.
- Bekende CVE's: Zoek naar bekende kwetsbaarheden.
- Onderhoudsstatus: Is het project nog actief onderhouden? Check GitHub stars, issues, contributors.
- Licenties: Zijn er licentieconflicten?
- Transitieve dependencies: Controleer ook indirecte dependencies.
Stap 3: OWASP Top 10 Analyse
Controleer op elke categorie:
A01 Broken Access Control
- Ontbrekende autorisatiechecks op endpoints
- IDOR (Insecure Direct Object References)
- Ontbrekende CORS-configuratie of te brede CORS
- Directory traversal mogelijkheden
- Ontbrekende rate limiting
A02 Cryptographic Failures
- Hardcoded secrets, API keys, wachtwoorden in code of config
- Zwakke encryptie-algoritmen (MD5, SHA1 voor wachtwoorden, DES)
- Ontbrekende encryptie in transit (HTTP i.p.v. HTTPS)
- Encryptie in rust: Zijn databases, bestanden, backups versleuteld?
- Onveilige key management
A03 Injection
- SQL injection (ongeescapete queries, string concatenatie)
- Command injection (shell commands met user input)
- XSS (Cross-Site Scripting) - reflected, stored, DOM-based
- Template injection
- LDAP/XML/NoSQL injection
A04 Insecure Design
- Ontbrekende threat modeling
- Business logic flaws
- Ontbrekende rate limiting op gevoelige operaties
- Geen scheiding van verantwoordelijkheden
A05 Security Misconfiguration
- Default credentials
- Onnodige features ingeschakeld
- Ontbrekende security headers (CSP, HSTS, X-Frame-Options, etc.)
- Debug mode in productie
- Verbose error messages met stacktraces
A06 Vulnerable and Outdated Components (zie Stap 2)
A07 Identification and Authentication Failures
- Zwak wachtwoordbeleid
- Ontbrekende MFA
- Onveilige sessiemanagement
- Credential stuffing kwetsbaarheden
A08 Software and Data Integrity Failures
- Onveilige deserialisatie
- Ontbrekende integriteitscontroles op updates/CI-CD
- Supply chain risico's
A09 Security Logging and Monitoring Failures
- Ontbrekende logging van beveiligingsgebeurtenissen
- Gevoelige data in logs
- Geen monitoring/alerting
A10 Server-Side Request Forgery (SSRF)
- URL's gebaseerd op gebruikersinvoer zonder validatie
- Interne netwerktoegang via applicatie
Stap 4: Defense in Depth Analyse
Isolatie en Segmentatie
- Netwerksegmentatie: Is er scheiding tussen frontend, backend, database, en externe services?
- Container isolatie: Draaien containers met minimale rechten? Geen
--privileged? Read-only filesystems?
- Microservices grenzen: Zijn services correct geisoleerd? Geen gedeelde databases?
- Least privilege: Draaien processen met minimale rechten? Geen root?
- Network policies: Zijn er Kubernetes NetworkPolicies of firewall-regels?
Encryptie in Rust (At Rest)
- Database-encryptie (TDE, column-level encryption)
- Bestandsopslag-encryptie
- Backup-encryptie
- Key rotation beleid
- Secrets management (Vault, AWS KMS, Azure Key Vault)
Encryptie in Transit
- TLS/SSL configuratie (minimaal TLS 1.2)
- Certificate pinning waar van toepassing
- Interne service-to-service encryptie (mTLS)
Aanvullende lagen
- WAF (Web Application Firewall) configuratie
- DDoS-bescherming
- Input validatie op meerdere lagen
- Output encoding
- CSP (Content Security Policy) headers
Stap 5: Penetratietest-achtige controles (passief)
Voer passieve checks uit op de code:
- Zoek naar hardcoded credentials:
grep -ri "password\|secret\|api_key\|token\|private_key" --include="*.{js,ts,py,java,rb,go,env,yml,yaml,json,xml,conf,cfg}"
- Controleer
.env bestanden, .git directory exposure
- Controleer of
.gitignore gevoelige bestanden uitsluit
- Zoek naar debug endpoints, test accounts
- Controleer Dockerfile security best practices
- Analyseer CI/CD pipeline configuratie op security
Stap 6: Rapportage
Genereer een rapport met:
- Management Samenvatting: Risicobeoordeling op hoofdlijnen.
- Kritieke bevindingen: Direct actie vereist (severity: CRITICAL/HIGH).
- Gemiddelde bevindingen: Planmatig oplossen (severity: MEDIUM).
- Lage bevindingen: Verbeterpunten (severity: LOW).
- Dependency rapport: Overzicht van kwetsbare/verouderde dependencies.
- Defense in Depth score: Per laag een beoordeling (Goed/Matig/Onvoldoende).
- Aanbevelingen: Geprioriteerde actielijst.
Per bevinding vermeld:
- Locatie: Bestand en regelnummer
- Beschrijving: Wat het probleem is
- Impact: Wat een aanvaller kan bereiken
- Bewijs: Relevante codefragmenten
- Oplossing: Concrete fix met codevoorbeeld
- Referentie: OWASP/CWE nummer
$ARGUMENTS