Sécurité applicative (AppSec) et OWASP Top 10
Qu'est-ce que la sécurité applicative ?
La sécurité applicative (AppSec) englobe toutes les mesures visant à rendre les applications plus sûres face aux menaces. Elle va de la conception sécurisée au développement avec des secure coding practices, en passant par les tests de sécurité, jusqu'au déploiement et à la maintenance continue.
OWASP Top 10 (2021)
A01 - Broken Access Control
Risque : Les utilisateurs accèdent à des ressources non autorisées
Exemples : IDOR, privilege escalation, forced browsing
Atténuation : Mettre en œuvre l'access control à toutes les couches, deny by default
A02 - Cryptographic Failures
Risque : Exposition de données sensibles due à une cryptographie inadéquate
Exemples : Mots de passe en plain text, weak algorithms, HTTP sans TLS
Atténuation : TLS everywhere, bcrypt/Argon2 pour les mots de passe, AES-256 pour les données
A03 - Injection
Risque : SQL, NoSQL, OS command injection, LDAP, XPath
Exemples : ' OR '1'='1, shell command injection
Atténuation : Prepared statements, ORMs, input validation, WAF
A04 - Insecure Design
Risque : Failles d'architecture et de modélisation des menaces
Exemples : Absence de rate limiting, pas de threat modeling
Atténuation : Secure by design, threat modeling, secure design patterns
A05 - Security Misconfiguration
Risque : Configurations non sécurisées ou par défaut
Exemples : Identifiants default, stack traces exposées, CORS misconfiguration
Atténuation : Hardening guides, automated configuration scanning
A06 - Vulnerable and Outdated Components
Risque : Utilisation de bibliothèques présentant des vulnérabilités connues
Exemples : Log4Shell (CVE-2021-44228), Struts2 RCE
Atténuation : Dependabot, Snyk, OWASP Dependency-Check, SCA tools
A07 - Identification and Authentication Failures
Risque : Failles d'authentification et de session
Exemples : Credential stuffing, session fixation, weak passwords
Atténuation : MFA, rate limiting, secure session management, breach detection
A08 - Software and Data Integrity Failures
Risque : CI/CD sans vérification d'intégrité, désérialisation non sécurisée
Exemples : Unsigned updates, insecure deserialization (Java, .NET)
Atténuation : Code signing, integrity checks, secure serialization libraries
A09 - Security Logging and Monitoring Failures
Risque : Manque de visibilité sur les attaques et les compromissions
Exemples : Logs insuffisants, sans alertes, logs non protégés
Atténuation : Centralized logging, SIEM integration, real-time alerting
A10 - Server-Side Request Forgery (SSRF)
Risque : Le serveur effectue des requêtes malveillantes vers des ressources internes
Exemples : Cloud metadata API access, internal port scanning
Atténuation : Whitelist d'URL, network segmentation, disable unnecessary protocols
Outils d'AppSec
SAST (Static Application Security Testing)
- SonarQube : Code quality et security vulnerabilities
- Checkmarx : Enterprise SAST platform
- Semgrep : Lightweight static analysis, customizable rules
- Bandit (Python), Brakeman (Ruby) : Language-specific scanners
DAST (Dynamic Application Security Testing)
- OWASP ZAP : Open-source web app scanner
- Burp Suite : Manual + automated testing
- Acunetix, Netsparker : Enterprise DAST solutions
- Black-box testing en runtime environment
IAST & RASP
- IAST : Instrumentation du code pour une analyse hybride
- RASP : Runtime Application Self-Protection - détection en production
- Contrast Security, Sqreen : IAST/RASP platforms
SCA (Software Composition Analysis)
- Snyk, WhiteSource, Mend : Dependency vulnerability scanning
- OWASP Dependency-Check : Open-source SCA
- Détecte les vulnérabilités dans les third-party libraries
Secure Coding Practices
- [OK] Input validation : whitelist plutôt que blacklist
- [OK] Output encoding : context-aware (HTML, JS, URL, CSS)
- [OK] Parametrized queries : toujours utiliser des prepared statements
- [OK] Least privilege : applications exécutées avec le strict nécessaire
- [OK] Defense in depth : plusieurs couches de protection
- [OK] Fail securely : les erreurs ne doivent pas révéler d'informations sensibles
- [OK] Security by design : prendre en compte la sécurité dès l'architecture
- [OK] Keep it simple : la complexité accroît les risques
Web Application Firewall (WAF)
- ModSecurity : Open-source WAF engine
- Cloudflare WAF : Cloud-based protection
- AWS WAF, Azure WAF : Cloud-native options
- Imperva, F5 : Enterprise WAF appliances
- Protection contre l'OWASP Top 10, bot management, rate limiting
- Virtual patching pour les vulnérabilités critiques
Intégration dans le SDLC
Shift-Left Security : Intégrer la sécurité le plus tôt possible dans le cycle
- Design Phase : Threat modeling, secure architecture review
- Development : IDE plugins (Snyk Code, SonarLint), secure coding training
- CI/CD : SAST, SCA, container scanning, pre-commit hooks
- Testing : DAST, penetration testing, security regression tests
- Deployment : IAST, infrastructure scanning, compliance checks
- Production : RASP, WAF, monitoring, incident response
