TLS_FALLBACK_SCSV Not Supported
TLS_FALLBACK_SCSV non supporté
Description
Cette vulnérabilité indique que le serveur ne supporte pas TLS_FALLBACK_SCSV (Signaling Cipher Suite Value), un mécanisme conçu pour empêcher les attaques par rétrogradation (downgrade attacks) de protocole dans les connexions SSL/TLS.
TLS_FALLBACK_SCSV est crucial car :
- Il permet aux clients d'indiquer lorsqu'ils rétrogradent vers une version de protocole inférieure en raison d'échecs de connexion.
- Il permet aux serveurs de détecter et d'empêcher les tentatives malveillantes de rétrogradation.
- Il aide à maintenir le niveau de sécurité le plus élevé possible dans les connexions SSL/TLS.
Lorsque TLS_FALLBACK_SCSV n'est pas supporté, le serveur devient vulnérable aux :
- Attaques par rétrogradation de protocole : Un attaquant peut forcer l'utilisation de versions de protocole plus anciennes et moins sécurisées.
- Attaques de l'homme du milieu (MitM) : Rétrograder vers un protocole plus faible peut faciliter l'interception et le déchiffrement des communications par les attaquants.
- Exploitations de vulnérabilités dans les anciens protocoles : Les anciennes versions SSL/TLS peuvent présenter des vulnérabilités connues pouvant être exploitées une fois la rétrogradation effectuée.
Scénario d'exemple :
Un attaquant intercepte la poignée de main (handshake) initiale entre un client et un serveur. L'attaquant manipule la connexion pour la faire échouer, forçant le client à réessayer avec une version de protocole inférieure. Sans TLS_FALLBACK_SCSV, le serveur accepte cette rétrogradation, exposant potentiellement la connexion aux vulnérabilités de l'ancienne version du protocole.
L'absence de support pour TLS_FALLBACK_SCSV viole les meilleures pratiques de sécurité SSL/TLS et peut avoir un impact sur la conformité à divers standards et réglementations de sécurité.
Recommandation
Lorsque TLS_FALLBACK_SCSV (Signaling Cipher Suite Value) n'est pas supporté, cela peut mener à des attaques potentielles par rétrogradation. Voici les stratégies pour atténuer ce risque :
Stratégies proactives
-
Désactiver la rétrogradation des versions SSL/TLS : Configurez les serveurs pour désactiver le fallback vers des versions SSL/TLS plus anciennes. Cela empêche les attaquants de forcer les connexions à utiliser des protocoles vulnérables.
-
Forcer une version TLS minimale : Définissez une version TLS minimale acceptable (par ex., TLS 1.2) du côté client et serveur pour empêcher la rétrogradation vers des versions vulnérables.
-
Scans de sécurité réguliers : Effectuez des scans périodiques de votre infrastructure pour identifier et corriger toute faiblesse de configuration TLS.
-
Surveiller les schémas inhabituels de négociation TLS : Implémentez une surveillance pour détecter les tentatives de rétrogradation forcée du protocole.
Exemples d'implémentation
- Configuration Nginx
Pour désactiver la rétrogradation des versions SSL/TLS et imposer une version TLS minimale dans Nginx :
server {
listen 443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
# Autres paramètres SSL...
}
- Configuration Apache
Pour Apache, utilisez la configuration suivante pour obtenir des résultats similaires :
<VirtualHost *:443>
SSLEngine on
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder on
# Autres paramètres SSL...
</VirtualHost>
- Commande OpenSSL pour les tests
Utilisez OpenSSL pour tester la configuration TLS de votre serveur :
openssl s_client -connect example.com:443 -tls1_2
Cette commande tente d'établir une connexion TLS 1.2. Si elle réussit, cela indique que votre serveur est correctement configuré pour utiliser les versions modernes de TLS.
Surveillance des tentatives de rétrogradation
- Utilisation de fail2ban
Vous pouvez utiliser fail2ban pour surveiller les journaux et repérer les tentatives potentielles de rétrogradation :
- Créez un filtre personnalisé dans
/etc/fail2ban/filter.d/tls-downgrade.conf:
[Definition]
failregex = SSL routines:SSL23_GET_CLIENT_HELLO:unsupported protocol.*client=<HOST>
- Ajoutez une prison (jail) dans
/etc/fail2ban/jail.local:
[tls-downgrade]
enabled = true
filter = tls-downgrade
logpath = /var/log/nginx/error.log
maxretry = 3
bantime = 3600
- Redémarrez fail2ban :
sudo systemctl restart fail2ban
Cette configuration bannira les adresses IP effectuant des tentatives répétées de connexion utilisant des versions SSL/TLS non supportées (probablement plus anciennes).
En implémentant ces mesures, vous pouvez réduire considérablement le risque d'attaques par rétrogradation TLS, même lorsque TLS_FALLBACK_SCSV n'est pas supporté.
Liens
- RFC 7507 - TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks
- OWASP TLS Cheat Sheet
- NIST Guidelines for TLS Implementations
Normes
- SOC2_CONTROLS:
- CC_6_7
- CC_7_1
- CCPA:
- CCPA_1798_150
- GDPR:
- ART_32
- PCI_STANDARDS:
- REQ_2_3
- REQ_4_1
- REQ_6_5
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213