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