Index
Vulnérabilité SSL Extension Bleed
Description
SSL Extension Bleed est une vulnérabilité qui exploite une gestion incorrecte des extensions SSL/TLS pendant le processus de handshake. Elle peut entraîner l'exposition d'informations sensibles, telles que des données en texte clair provenant de connexions précédentes, des clés de session, voire des clés privées.
Fonctionnement des extensions SSL malveillantes
- Extensions manipulées : Les attaquants créent des extensions SSL/TLS spécialement conçues pour déclencher des fuites de mémoire ou des dépassements de tampon dans les implémentations de serveurs vulnérables.
- Exploitation des failles d'analyse : Ces extensions malveillantes exploitent souvent des failles dans la manière dont les serveurs analysent et traitent les données d'extension, ce qui les amène à accéder ou à renvoyer des contenus de mémoire non prévus.
- Sondage répété : Les attaquants peuvent envoyer de multiples requêtes de handshake avec différentes extensions malveillantes afin de collecter davantage de données ayant fuité au fil du temps.
- Reconstruction des données : En analysant les données issues de multiples requêtes, les attaquants peuvent potentiellement reconstituer des informations sensibles.
Comment les serveurs divulguent involontairement des données
- Mauvaise gestion de la mémoire : Les serveurs peuvent omettre de vider correctement les tampons mémoire après le traitement de sessions SSL/TLS, laissant des données résiduelles en mémoire.
- Vulnérabilités de type Use-After-Free : Certaines implémentations peuvent libérer de manière incorrecte la mémoire associée aux contextes SSL tout en permettant d'y accéder via le traitement des extensions.
- Dépassements de tampon (Buffer Overflows) : Des gestionnaires d'extensions mal implémentés peuvent écrire au-delà des espaces tampons alloués, exposant potentiellement le contenu de la mémoire adjacente.
- Vérification incorrecte des limites : Les serveurs peuvent échouer à valider correctement la longueur des données d'extension, ce qui conduit à la lecture ou à l'écriture de données au-delà des limites prévues.
- Utilisation de mémoire non initialisée : Certains serveurs peuvent utiliser de la mémoire non initialisée lors de la construction des réponses, incluant par inadvertance le contenu d'opérations précédentes.
Conséquences de SSL Extension Bleed
Les attaquants peuvent tirer parti de cette vulnérabilité pour :
- Extraire des informations sensibles : Accéder aux données stockées en mémoire, révélant potentiellement des clés de session SSL ou des données en texte clair transmises lors de connexions SSL antérieures.
- Détourner des sessions : Si des clés de session sont divulguées, les attaquants peuvent obtenir un accès non autorisé aux sessions SSL existantes, leur permettant d'accéder aux comptes d'utilisateurs ou à des informations sensibles sans permission.
Scénario de type
Imaginez un serveur web qui prend en charge SSL/TLS et autorise une extension spécifique, telle que SessionTicket TLS, pour optimiser la reprise de session lors du processus de handshake. Cependant, en raison d'une mauvaise gestion de la mémoire ou d'une faille dans le traitement de ces extensions, certaines données sensibles provenant de sessions SSL précédentes (telles que des clés de session ou des portions de données en texte clair) restent en mémoire.
Un attaquant exploite cette vulnérabilité en suivant ces étapes :
- L'attaquant envoie une requête de handshake avec une extension SessionTicket TLS élaborée de manière malveillante.
- Cette extension est conçue pour forcer le serveur à lire au-delà des limites prévues de la mémoire lors du traitement du ticket.
- Le serveur, lors de la construction de sa réponse, inclut des données provenant d'emplacements mémoire adjacents contenant des résidus de sessions SSL antérieures.
- L'attaquant reçoit la réponse du serveur et extrait les informations divulguées.
- En répétant ce processus avec des variations de l'extension malveillante, l'attaquant recueille plus de données.
- L'attaquant analyse les données collectées et reconstitue potentiellement des clés de session ou des fragments de texte clair provenant de connexions précédentes.
Dans ce scénario, l'exposition se produit parce que le serveur échoue à valider et à traiter correctement les données d'extension, et néglige également d'effacer les tampons de mémoire utilisés par les extensions SSL/TLS. Cette combinaison de vulnérabilités permet aux attaquants d'extraire des informations qui auraient dû être effacées de manière sécurisée ou qui n'auraient jamais dû être consultées en premier lieu.
Recommandation
Pour atténuer les risques liés à SSL Extension Bleed :
-
Mettre à niveau les bibliothèques SSL/TLS : Mettez régulièrement à jour les bibliothèques SSL/TLS (par exemple, OpenSSL, BoringSSL, GnuTLS) vers les dernières versions. Testez l'application après chaque mise à niveau pour garantir la compatibilité et la fonctionnalité.
-
Implémenter des suites de chiffrement robustes : Configurez votre serveur pour qu'il privilégie des suites de chiffrement robustes comme AES-GCM ou ChaCha20 et désactivez celles qui sont faibles (par exemple, RC4, DES, 3DES). Utilisez des outils comme le SSL Test de SSL Labs pour réviser et améliorer régulièrement votre configuration SSL/TLS.
Liens
Normes
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_6_1
- CC_7_1
- CC_7_4
- CCPA:
- CCPA_1798_150
- CCPA_1798_150
- CWE_TOP_25:
- CWE_20
- CWE_125
- GDPR:
- ART_5
- ART_12
- ART_25
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213