Aller au contenu

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 :

  1. Il permet aux clients d'indiquer lorsqu'ils rétrogradent vers une version de protocole inférieure en raison d'échecs de connexion.
  2. Il permet aux serveurs de détecter et d'empêcher les tentatives malveillantes de rétrogradation.
  3. 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 :

  1. Attaques par rétrogradation de protocole : Un attaquant peut forcer l'utilisation de versions de protocole plus anciennes et moins sécurisées.
  2. 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.
  3. 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

  1. 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.

  2. 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.

  3. Scans de sécurité réguliers : Effectuez des scans périodiques de votre infrastructure pour identifier et corriger toute faiblesse de configuration TLS.

  4. 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

  1. 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...
}
  1. 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>
  1. 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 :

  1. 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>
  1. 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
  1. 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

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