Aller au contenu

BEAST Attack on TLS 1.0/SSL 3.0

Attaque BEAST sur TLS 1.0/SSL 3.0

Description

Cette vulnérabilité indique que le serveur est susceptible aux attaques BEAST, qui exploitent des vecteurs d'initialisation prévisibles dans le chiffrement en mode CBC de TLS 1.0 et SSL 3.0 pour récupérer des données en texte clair grâce à des attaques par blocs sur des limites choisies.

BEAST (Browser Exploit Against SSL/TLS) se produit lorsque les implémentations TLS 1.0 ou SSL 3.0 utilisent le dernier bloc de texte chiffré comme vecteur d'initialisation pour l'enregistrement suivant, ce qui rend le chiffrement prévisible. Les attaquants peuvent exploiter cela via une injection de texte clair choisi basée sur JavaScript pour deviner les secrets un octet à la fois.

Comment ça marche :

  1. L'attaquant établit une position d'homme du milieu (man-in-the-middle) sur le trafic réseau
  2. Un JavaScript malveillant injecte un texte clair choisi avec des limites de bloc contrôlées
  3. Des vecteurs d'initialisation prévisibles permettent la vérification des octets devinés
  4. Extraction progressive de données sensibles comme les cookies de session et les jetons CSRF

Exigences :

  • TLS 1.0 ou SSL 3.0 avec des suites de chiffrement CBC
  • Accès réseau de type homme du milieu
  • Capacité d'exécution JavaScript dans le navigateur de la victime
  • Requêtes de même origine (same-origin) vers l'application cible

Scénario Exemple : Une application web utilise TLS 1.0 avec le chiffrement AES-CBC. Un attaquant sur le même réseau injecte un JavaScript qui effectue des milliers de requêtes HTTPS forgées, exploitant des IV (vecteurs d'initialisation) prévisibles pour deviner les valeurs des cookies de session un octet à la fois. Le cookie de session extrait permet une usurpation totale du compte.

L'attaque démontre des faiblesses fondamentales dans les anciennes implémentations TLS, conduisant à un piratage de session, un contournement de l'authentification et de potentielles violations de conformité réglementaire.

Recommandation

Pour atténuer les attaques BEAST :

Défense Principale - Mettre à Niveau la Version TLS :

# Configuration Nginx - désactiver TLS 1.0
ssl_protocols TLSv1.2 TLSv1.3;
# Configuration Apache - désactiver TLS 1.0/SSL 3.0
SSLProtocol -all +TLSv1.2 +TLSv1.3

Atténuations Alternatives si TLS 1.0 est Requis :

  • Utiliser le Fractionnement d'Enregistrement (Record Splitting) : Activer l'insertion de fragments vides (par défaut dans OpenSSL)
  • Préférer les Chiffrements Non-CBC : Utiliser temporairement des chiffrements de flux ou des modes AEAD
  • Activer le Fractionnement d'Enregistrement 1/n-1 : Contre-mesure basée sur le navigateur pour une prise en charge héritée

Commandes de Test :

# Test de la prise en charge de TLS 1.0
openssl s_client -connect example.com:443 -tls1

# Vérifier les suites de chiffrement
nmap --script ssl-enum-ciphers -p 443 example.com

En passant à TLS 1.2+ ou en mettant en œuvre des contre-mesures de fractionnement d'enregistrement, les organisations peuvent éliminer efficacement les vecteurs d'attaque BEAST tout en maintenant une rétrocompatibilité lorsque cela est nécessaire.

Liens

Normes

  • SOC2_CONTROLS:
    • CC_6_7
    • CC_7_1
  • CCPA:
    • CCPA_1798_150
  • GDPR:
    • ART_32
  • PCI_STANDARDS:
    • REQ_4_1
    • REQ_6_2
    • REQ_11_3