Analyse technique : menaces sur les passerelles Cisco ASA et vecteurs d’attaque WebVPN

Résumé exécutif
La présence de logs mentionnant des chemins tels que /+CSCOL+/ ou /+CSCOE+/ suivis de fichiers comme a1.jar ou transfer.js indique une activité ciblant spécifiquement les passerelles Cisco Adaptive Security Appliance (ASA) et Firepower Threat Defense (FTD).
Ces indicateurs ne sont pas des erreurs aléatoires mais signalent deux vecteurs distincts :
- Exploitation de vulnérabilités WebVPN connues (type CVE-2020-3452) cherchant à lire des fichiers sensibles via des traversées de répertoires.
- Tentatives d’exécution de code ou de Cache Poisoning visant à injecter des charges malveillantes (scripts JS ou applets Java) pour compromettre les sessions des utilisateurs distants.
L’article ci-dessous détaille la mécanique de ces attaques, leur signification technique et les stratégies de défense requises.
L’anatomie d’une attaque de passerelle VPN
Les équipements de sécurité périmétrique, en particulier les concentrateurs VPN comme les Cisco ASA, sont des cibles de choix. Ils sont exposés publiquement par nécessité et gèrent des sessions authentifiées critiques. Comprendre les logs nécessite de comprendre l’architecture virtuelle de ces boîtiers.
Le décodage des chemins « virtuels »
Sur un équipement Cisco ASA configuré avec les fonctionnalités WebVPN (Clientless SSL VPN) ou AnyConnect, le système expose des répertoires virtuels qui n’existent pas physiquement sur un disque dur classique, mais sont mappés par le firmware :
- /+CSCOE+/ (Cisco Secure Encrypted) : Ce chemin est utilisé pour servir les ressources statiques du portail d’authentification (logos, scripts de login logon.html, scripts de détection win.js). C’est la zone « publique » avant authentification complète.
- /+CSCOL+/ (Cisco Secure Legacy/Launch) : Souvent associé à des composants hérités ou des lancements d’applets Java pour les tunnels VPN sans client (Clientless).
Lorsque vous voyez ces préfixes dans vos logs, l’attaquant ne devine pas une URL ; il sait que vous utilisez un équipement Cisco et tente d’interagir avec les mécanismes internes du portail.
Vecteur 1 : l’artefact Java (a1.jar) et l’héritage clientless
La requête /+CSCOL+/a1.jar est symptomatique des attaques visant les technologies Java Web Start ou les applets Java obsolètes utilisées par les anciennes versions de WebVPN.
Le mécanisme
Historiquement, pour établir un tunnel VPN sans installer de client lourd (AnyConnect), le portail WebVPN chargeait une applet Java (souvent nommée cs.jar ou similaire) dans le navigateur de l’utilisateur.
- Reconnaissance et Fuzzing : L’attaquant cherche à télécharger ce fichier .jar pour faire de l’ingénierie inverse et comprendre la version exacte du firmware ASA.
- Payload Malveillant (a1.jar) : Dans un scénario offensif, a1.jar n’est pas un fichier Cisco légitime. C’est souvent le nom par défaut d’un « dropper » (téléchargeur) généré par des kits d’exploitation Java. L’attaquant tente de forcer le navigateur ou le plugin Java de la victime (s’il visite une page compromise relayée par le VPN) à exécuter ce code.
- L’objectif : Exécuter du code arbitraire (RCE) sur le poste client à travers le tunnel VPN, ou sur le serveur si une vulnérabilité de désérialisation Java est présente côté passerelle.
Diagnostic : Si ce fichier est demandé à votre serveur, c’est souvent un scanner automatisé qui teste si votre passerelle permet le téléchargement ou l’exécution de code Java non signé ou vulnérable.
Vecteur 2 : transfer.js et les attaques « browser-powered desync »
La présence de /+CSCOE+/transfer.js est plus subtile et potentiellement plus dangereuse car elle touche aux attaques modernes de type HTTP Request Smuggling et Cache Poisoning.
Le contexte : la vulnérabilité win.js
Les chercheurs en sécurité (notamment chez PortSwigger) ont démontré que les portails Cisco WebVPN pouvaient être manipulés via des fichiers JavaScript statiques comme /+CSCOE+/win.js.
Le scénario d’attaque transfer.js
L’appel à un fichier nommé transfer.js sous ce répertoire suggère une tentative d’exploitation de la logique de réécriture d’URL du WebVPN :
- Empoisonnement de Socket : L’attaquant envoie une requête HTTP malformée (Request Smuggling) à la passerelle.
- Désynchronisation : La passerelle « mélange » la requête de l’attaquant avec celle de la victime suivante.
- Redirection Malveillante : Lorsque la victime légitime se connecte au VPN, son navigateur demande un script (ex: win.js ou un script custom injecté appelé transfer.js). À cause de la désynchronisation, la passerelle renvoie non pas le script Cisco légitime, mais une redirection vers un serveur contrôlé par l’attaquant.
- Exécution XSS : Le navigateur de la victime exécute le script malveillant dans le contexte de sécurité du domaine VPN (vpn.votre-entreprise.com). L’attaquant peut alors voler les cookies de session (webvpn cookie) et pénétrer le réseau.
Vulnérabilités associées (CVEs)
Ces logs sont souvent les traces de scanners cherchant à exploiter des failles spécifiques :
CVE-2020-3452 (read-only path traversal)
C’est la faille reine associée à ces chemins. Elle permet à un attaquant non authentifié de lire des fichiers sur le système de fichiers WebVPN en utilisant des séquences comme +CSCOT+ ou +CSCOE+.
- Exemple de requête : GET /+CSCOE+/+/../+/../+/../+CSCOE+/portal_inc.lua
- Risque : Fuite de configuration, vol de cookies de session d’autres utilisateurs connectés.
CVE-2018-0296 (DoS et information disclosure)
Permet de faire planter l’ASA ou de lister les utilisateurs connectés en manipulant les chemins /+CSCOE+/.
Impact stratégique et opérationnel
Si ces attaques aboutissent, les conséquences dépassent la simple défiguration de site Web :
- Compromission du Périmètre : L’ASA est la porte d’entrée du réseau. Un vol de session permet à l’attaquant de contourner le MFA (puisque le cookie de session est déjà validé) et d’accéder aux ressources internes.
- Vol de Propriété Intellectuelle : Via CVE-2020-3452, des fichiers de configuration contenant des informations sur l’architecture interne peuvent être exfiltrés.
- Attaques Client-Side (Watering Hole) : En modifiant les JS servis par le VPN, l’attaquant infecte les postes de tous les collaborateurs qui se connectent au télétravail.
Guide de remédiation et de défense
Pour se prémunir contre ces menaces, une approche en profondeur est nécessaire.
1. Durcissement de la configuration ASA
- Mise à jour immédiate : Appliquez les derniers correctifs Cisco. Les failles CVE-2020-3452 et CVE-2018-0296 sont patchées depuis longtemps.
- Désactivation du Clientless VPN : Si vous n’utilisez que le client lourd AnyConnect, désactivez totalement le portail « Clientless SSL VPN » qui est la surface d’attaque principale de ces vecteurs. Commande : no webvpn (Ou désactivez-le par profil de groupe).
2. Filtrage et WAF
- Blocage des artefacts suspects : Configurez votre WAF (Web Application Firewall) ou IPS pour bloquer strictement toute requête contenant .jar si vous n’avez pas de besoin métier Java explicite sur le portail.
- Règles de sanitisation : Bloquez les séquences de traversée de répertoire (.., %2e%2e, +/) dans les URL ciblant /+CSCOE+ et /+CSCOL+.
3. Surveillance (threat hunting)
- Analyse des Logs : Recherchez les codes HTTP 200 OK associés à ces requêtes étranges.
- 404 Not Found : Bon signe, l’attaquant scanne dans le vide.
- 200 OK sur a1.jar ou transfer.js : Alerte critique, investiguez immédiatement le contenu servi.
- Corrélation : Vérifiez si une IP ayant scanné ces fichiers a ensuite initié une connexion VPN réussie (logon successful).
Conclusion
Les requêtes vers /+CSCOL+/a1.jar et /+CSCOE+/transfer.js sont les signatures d’une reconnaissance hostile cherchant à transformer votre passerelle de sécurité en point de vulnérabilité. Qu’il s’agisse de scanners automatisés (« script kiddies ») ou de précurseurs à une attaque sophistiquée de request smuggling, elles exigent une vigilance constante et une politique de mise à jour rigoureuse des équipements périmétriques.