Au cours des ces dernières
années les virii et les vers cherchaient une cible aléatoire
sur les serveurs en cherchant des
failles. Heureusement les connexions étaient protégées par des firewalls bien configurés limitant les dégâts.
Dans cette article nous verrons comment les vers peuvent se propager
par des connections autorisées par les firewalls et avec
comme exemple BackTrack.
2_ Le ver BackTrack
Le ver backtrack
infecte les serveurs Web et utilise le navigateur des visiteurs suivants pour
rebondir et attaquer d’autres serveurs web. Certaines failles de sécurité de serveur Web permettent d’écrire un fichier via une requête http correcte, c’est à dire issue d’un navigateur Web standard. Cet accès en écriture permet d’écrire un script JSP, ASP ou PHP sur le serveur Web (ou tout autre langage de script pour serveur Web) en envoyant une requête http particulière. Bien sur, cette attaque défigure le site Web (défaçage), mais le script ainsi écrit peut aussi générer une page HTML contenant à son tour l’attaque ! Le protocole HTTP défini une entête "Referer" indiquant l'URL (http://www.securityhack.net/spacer.gif) du lien qui a envoyé l'utilisateur sur le site. En utilisant le "Referer" présent dans la requête HTTP, le script va produire une page HTML qui renvoie l’attaque sur le site Web précédemment vu par l’utilisateur au cours de sa navigation. Ce mécanisme de rétro propagation est assez efficace car il permet d’infecter les sites intranet/extranet faisant référence à des sites Internet infectés.
Ce ver a été développé en Novembre 2000, il utilisait une faille des serveurs ISS (Microsoft Internet Information Server) elle permet d'effacer la page default.asp située dans le répertoire racine de ISS. L'internaute incrédule arrive sur cette page infectée, son navigateur envoie le "Referer" contenant l'adresse du site qui a donné le lien du serveur infecté qui lui même est à son
tour infecté
3_ Démonstration
L'internaute va sur le serveur 1 qui est sain, il va ensuite sur le serveur 2 infecté grâce à un lien présent sur le serveur 1 et l'entête "Referer" lui est envoyé le serveur infecté va donc générer une page contenant le code source de l'attaque une page avec une image indisponible (une croix rouge est présente) et un lien "here" à côté, c'est cette image qui contient le code malicieux et l'internaute va aller lui-même infecter le serveur 1 en cliquant sur "here" sans le savoir. A la fin les 2 serveurs sont contaminés et la boucle va recommencer avec d'autres internautes et d'autres
serveurs etc ...
Le ver aurait pu être entièrement automatique (l'utilisateur doit cliquer sur "here"), il aurait été encore plus dévastateur.
4_ Conclusion
Evidemment
si l'internaute tape directement l'adresse dans son navigateur aucun "Referer" est envoyé et l'attaque
ne fonctionne pas mais le ver aurait pu utiliser les logs du serveur
(journaux enregistrant les connexion et transferts).
Plus généralement, certains vers ont déjà combiné plusieurs vulnérabilités et modes de propagation mais jamais en utilisant l’historique Web comme le carnet d’adresse email pour se propager. Ils peuvent aussi utiliser des failles du navigateur du client et rechercher des adresse dans les favoris, les cookies, le cache du navigateur, il peut ensuite tenter une attaque contre chaque site visité par l'utilisateur
depuis son poste.
Finalement, la diffusion du ver s’effectue via un flux http autorisé et ne nécessite pas de scan réseaux pour trouver d’autres victimes. Les firewalls sont incapables de bloquer ce type de propagation puisqu'il s'agit d’un flux autorisé. Heureusement, les outils de contrôle de contenu Web et de détection d’intrusion pourront bloquer cette propagation, tant que le ver n’utilise pas le protocole HTTPS (HTTP sécurisé) pour se diffuser. Le contrôle du flux chiffré (codé) étant évidemment impossible ! Pour se protéger le mieux est d'être à jour
en permanence dans ses correctifs (autant le serveur que le client).
Un autre question se pose : lorsque la rétro propagation via le navigateur Web n’exploite pas de vulnérabilité sur le poste client pour contaminer des serveurs, l’utilisateur, vecteur de la propagation, est-il considéré comme
responsable ?
Ce sera, si vous le voulez bien, le mot de la fin.
------------------------------------------
Dark-Jedi Team SH Member
" With me everything is possible"