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
# Node.js
npm audit --json 2>/dev/null || true
npx better-npm-audit audit 2>/dev/null || true
# Python
pip-audit 2>/dev/null || safety check 2>/dev/null || true
# Algemeen
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
1---2name: rwrw01-security-audit3description: 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.4---5
6# Security-in-Depth Audit
7
8Je 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**.
9
10## Instructies
11
12### Stap 1: Projectverkenning
13- Inventariseer de volledige projectstructuur: talen, frameworks, infrastructuur (Docker, K8s, cloud).
14- Identificeer alle entry points: API endpoints, formulieren, webhooks, message queues, CLI interfaces.
15- Breng de dataflow in kaart: waar komt data binnen, hoe wordt het verwerkt, waar wordt het opgeslagen.
16
17### Stap 2: Dependency-analyse
18
19#### Kwetsbare en niet-onderhouden dependencies
20```bash
21# Node.js
22npm audit --json 2>/dev/null || true
23npx better-npm-audit audit 2>/dev/null || true
24
25# Python
26pip-audit 2>/dev/null || safety check 2>/dev/null || true
27
28# Algemeen
29npx retire 2>/dev/null || true
30```
31
32Controleer ook handmatig:
33- **Laatste update**: Wanneer is elke dependency voor het laatst geupdate? Markeer als risico als >1 jaar.
34- **Bekende CVE's**: Zoek naar bekende kwetsbaarheden.
35- **Onderhoudsstatus**: Is het project nog actief onderhouden? Check GitHub stars, issues, contributors.
36- **Licenties**: Zijn er licentieconflicten?
37- **Transitieve dependencies**: Controleer ook indirecte dependencies.
38
39### Stap 3: OWASP Top 10 Analyse
40Controleer op elke categorie:
41
42#### A01 Broken Access Control
43- Ontbrekende autorisatiechecks op endpoints
44- IDOR (Insecure Direct Object References)
45- Ontbrekende CORS-configuratie of te brede CORS
46- Directory traversal mogelijkheden
47- Ontbrekende rate limiting
48
49#### A02 Cryptographic Failures
50- Hardcoded secrets, API keys, wachtwoorden in code of config
51- Zwakke encryptie-algoritmen (MD5, SHA1 voor wachtwoorden, DES)
52- Ontbrekende encryptie in transit (HTTP i.p.v. HTTPS)
53- Encryptie in rust: Zijn databases, bestanden, backups versleuteld?
54- Onveilige key management
55
56#### A03 Injection
57- SQL injection (ongeescapete queries, string concatenatie)
58- Command injection (shell commands met user input)
59- XSS (Cross-Site Scripting) - reflected, stored, DOM-based
60- Template injection
61- LDAP/XML/NoSQL injection
62
63#### A04 Insecure Design
64- Ontbrekende threat modeling
65- Business logic flaws
66- Ontbrekende rate limiting op gevoelige operaties
67- Geen scheiding van verantwoordelijkheden
68
69#### A05 Security Misconfiguration
70- Default credentials
71- Onnodige features ingeschakeld
72- Ontbrekende security headers (CSP, HSTS, X-Frame-Options, etc.)
73- Debug mode in productie
74- Verbose error messages met stacktraces
75
76#### A06 Vulnerable and Outdated Components (zie Stap 2)
77
78#### A07 Identification and Authentication Failures
79- Zwak wachtwoordbeleid
80- Ontbrekende MFA
81- Onveilige sessiemanagement
82- Credential stuffing kwetsbaarheden
83
84#### A08 Software and Data Integrity Failures
85- Onveilige deserialisatie
86- Ontbrekende integriteitscontroles op updates/CI-CD
87- Supply chain risico's
88
89#### A09 Security Logging and Monitoring Failures
90- Ontbrekende logging van beveiligingsgebeurtenissen
91- Gevoelige data in logs
92- Geen monitoring/alerting
93
94#### A10 Server-Side Request Forgery (SSRF)
95- URL's gebaseerd op gebruikersinvoer zonder validatie
96- Interne netwerktoegang via applicatie
97
98### Stap 4: Defense in Depth Analyse
99
100#### Isolatie en Segmentatie
101- **Netwerksegmentatie**: Is er scheiding tussen frontend, backend, database, en externe services?
102- **Container isolatie**: Draaien containers met minimale rechten? Geen `--privileged`? Read-only filesystems?
103- **Microservices grenzen**: Zijn services correct geisoleerd? Geen gedeelde databases?
104- **Least privilege**: Draaien processen met minimale rechten? Geen root?
105- **Network policies**: Zijn er Kubernetes NetworkPolicies of firewall-regels?
106
107#### Encryptie in Rust (At Rest)
108- Database-encryptie (TDE, column-level encryption)
109- Bestandsopslag-encryptie
110- Backup-encryptie
111- Key rotation beleid
112- Secrets management (Vault, AWS KMS, Azure Key Vault)
113
114#### Encryptie in Transit
115- TLS/SSL configuratie (minimaal TLS 1.2)
116- Certificate pinning waar van toepassing
117- Interne service-to-service encryptie (mTLS)
118
119#### Aanvullende lagen
120- WAF (Web Application Firewall) configuratie
121- DDoS-bescherming
122- Input validatie op meerdere lagen
123- Output encoding
124- CSP (Content Security Policy) headers
125
126### Stap 5: Penetratietest-achtige controles (passief)
127Voer passieve checks uit op de code:
128
129- 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}"`
130- Controleer `.env` bestanden, `.git` directory exposure
131- Controleer of `.gitignore` gevoelige bestanden uitsluit
132- Zoek naar debug endpoints, test accounts
133- Controleer Dockerfile security best practices
134- Analyseer CI/CD pipeline configuratie op security
135
136### Stap 6: Rapportage
137Genereer een rapport met:
138
1391. **Management Samenvatting**: Risicobeoordeling op hoofdlijnen.
1402. **Kritieke bevindingen**: Direct actie vereist (severity: CRITICAL/HIGH).
1413. **Gemiddelde bevindingen**: Planmatig oplossen (severity: MEDIUM).
1424. **Lage bevindingen**: Verbeterpunten (severity: LOW).
1435. **Dependency rapport**: Overzicht van kwetsbare/verouderde dependencies.
1446. **Defense in Depth score**: Per laag een beoordeling (Goed/Matig/Onvoldoende).
1457. **Aanbevelingen**: Geprioriteerde actielijst.
146
147Per bevinding vermeld:
148- **Locatie**: Bestand en regelnummer
149- **Beschrijving**: Wat het probleem is
150- **Impact**: Wat een aanvaller kan bereiken
151- **Bewijs**: Relevante codefragmenten
152- **Oplossing**: Concrete fix met codevoorbeeld
153- **Referentie**: OWASP/CWE nummer
154
155$ARGUMENTS