Bilan

D'un point de vue global on retrouve des informations désormais classiques ;-) :

  • Nepenthes n'a récupéré que des logiciels ciblant la plate-forme Windows®
  • la plupart de ces logiciels sont liés à des botnets[1]

En regardant plus en détails, en particulier à l'aide des graphiques plus haut, on constate que :

  • la bio-diversité est de 480 fichiers différents[2] en environ un mois
  • environ un logiciel malveillant est proposé toutes les 17 secondes [3], ce qui veut dire que le même logiciel est proposé de très nombreuses fois et que les tentatives de connexion enregistrées par un pare-feu[4] sont très généralement malveillantes
  • la fréquence de récupération de nouveaux[5] logiciels malveillants tend vers 10 nouveaux par jour[6]
  • le logiciel antivirus, ClamAV dans ce cas[7], est d'autant plus efficace que le logiciel malveillant a été récupéré longtemps auparavant, avec un score partant de 80% de détection pour les fichiers vieux d'un mois et finissant à 50% pour les plus récents (quelques heures à quelque jours)

Bien sûr le score de l'antivirus dépend du logiciel antivirus utilisé. La page stats:scannertest sur le site de Nepenthes et qui date de mai 2005[8], atteste que tous n'ont pas les mêmes performances. On peut néanmoins se douter que la tendance est la même pour tous : plus les logiciels malveillants sont récents, moins ils sont détectés.

Quoi qu'il en soit, même avec un score de 99% de détection, un antivirus sur une machine mal sécurisée aurait laissé passé 4 virus ce dernier mois ! Il semblerait donc effectivement que les logiciels anti-virus sont inefficaces et c'est toujours la même rengaine : il faut cadenasser sa machine en fonction de ses vulnérabilités et des menaces[9]. On voit ici clairement quelle plate-forme est vulnérable, toute la question est de savoir si elle est vulnérable parce que très menacée ou menacée parce que très vulnérable...

Note : étant donné que Nepenthes ne récupère que des logiciels entrés en profitant de vulnérabilités du système, il est quasiment impossible que ces logiciels ne soient pas malveillants. C'est en quelque sorte un raisonnement par l'absurde.

Description des graphiques exposés

Graphique du haut

Il s'agit du nombre de nouveaux fichiers malveillants capturés chaque jour. Notez bien qu'ils sont nouveaux pour le système qui les capture mais pas forcément pour l'antivirus qui les analyse ensuite. Les traits pointillées rouges représentent une version lissée des données brutes afin d'apprécier la tendance. Le filtre utilisé est un filtre splines qui permet d'éviter que le signal lissé ne soit décalé par rapport au signal original.

Graphique du bas

Il s'agit du score de l'antivirus ClamAV, en pourcentage de fichiers détectés comme comportant des logiciels malveillants. Chaque jour seuls les nouveaux fichiers capturés par Nepenthes sont passés au crible de l'antivirus. Plus on se rapproche de la droite du graphique et plus les fichiers sont récents, la dernière date étant celle à laquelle l'analyse de tous les fichiers a été effectuée et donc celle du fichier de signatures de l'antivirus.

À nouveau un filtre splines fournit une tendance qui est clairement décroissante (pointillés rouges). Ceci signifie que plus le fichier malveillant est récent, moins il a de chances d'être effectivement détecté comme étant malveillant. C'est bien sûr parfaitement logique bien que, rappelons-le, récent ici est relatif au système qui les capture et non au fichier de signatures de l'antivirus. Il y a donc manifestement une corrélation.

Données exhaustives

Pour ceux que cela intéressent, voici certaines informations brutes utilisées. Les Windoziens se pencheront notamment sur le nom des fichiers téléchargés afin de les confronter à leurs propres processus !

Scripts Python

Pour faire les graphiques, il s'agit du script Nepynthes que je développe (voir le billet Nepynthes - analyse collected malware (en)). Pour obtenir le temps médian, le script python est le suivant :

import time, datetime, commands, pylab

LogDates = commands.getoutput("grep -oEe '[0-9T:-]{19}' /var/log/nepenthes/logged_downloads")
Dates = []
for DateStr in LogDates.split('\n'):
   Dates.append( pylab.date2num(
       datetime.datetime(*time.strptime(DateStr, "%Y-%m-%dT%H:%M:%S")[0:6])
   ))
MedianDiff = pylab.median(pylab.diff(Dates))
OneSecond = pylab.date2num(datetime.datetime(*time.strptime('12:00:01', '%X')[0:6])) - date2num(datetime.datetime(*time.strptime('12:00:00', '%X')[0:6]))
MedianTime = MedianDiff / OneSecond
print "> median time between 2 downloads: %.1f s" % MedianTime

Il sera à terme intégré au script Nepynthes.

Système ciblé par les logiciels malveillants

$ file -b /var/lib/nepenthes/binaries/* | sort -u
MS-DOS executable, MZ for MS-DOS
MS-DOS executable PE  for MS Windows (DLL) (GUI) Intel 80386 32-bit
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
MS-DOS executable, PE for MS Windows (GUI) Intel 80386 32-bit
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit, PECompact2 compressed
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit, UPX compressed
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit, UPX compressed, PECompact2 compressed

Nombre de fichiers détectés comme malveillants

Le score global est de 63% de détection.

$ clamscan /var/lib/nepenthes/binaries/
[...]
Known viruses: 89822
Engine version: 0.88.7
Scanned directories: 1
Scanned files: 482
Infected files: 303
Data scanned: 57.19 MB
Time: 53.622 sec (0 m 53 s)

Liste des logiciels malveillants identifiés

Remarque : ce n'est pas parce que deux exécutables sont binairement différents qu'ils ne véhiculent pas le même logiciel. C'est pourquoi la liste ci-dessous ne contient pas 300 entrées.

$ clamscan -i --no-summary /var/lib/nepenthes/binaries/ | grep -oe ' .*' | sort -u
Exploit.DCOM.Gen FOUND
Trojan.Agent-1255 FOUND
Trojan.Agent-682 FOUND
Trojan.Eggdrop-18 FOUND
Trojan.Eggdrop FOUND
Trojan.IRCBot-722 FOUND
Trojan.IRCBot-776 FOUND
Trojan.IRCBot-778 FOUND
Trojan.Ircbot-795 FOUND
Trojan.Mybot-4884 FOUND
Trojan.Mybot-5073 FOUND
Trojan.Mybot-6096 FOUND
Trojan.Mybot-6427 FOUND
Trojan.Mybot-7272 FOUND
Trojan.Mybot-7380 FOUND
Trojan.Mybot-7408 FOUND
Trojan.Mybot-7681 FOUND
Trojan.Mybot-7794 FOUND
Trojan.Mybot-7936 FOUND
Trojan.Mybot-8305 FOUND
Trojan.Mybot-8355 FOUND
Trojan.Mybot-8395 FOUND
Trojan.Mybot-8396 FOUND
Trojan.Mybot-8397 FOUND
Trojan.Mytob FOUND
Trojan.Poebot-32 FOUND
Trojan.Poebot-38 FOUND
Trojan.Poebot-39 FOUND
Trojan.Poebot-40 FOUND
Trojan.Poebot-41 FOUND
Trojan.Poebot-42 FOUND
Trojan.Poebot-43 FOUND
Trojan.Poebot-49 FOUND
Trojan.Poebot-52 FOUND
Trojan.Poebot-55 FOUND
Trojan.Poebot-56 FOUND
Trojan.Rbot-10 FOUND
Trojan.Rbot-29 FOUND
Trojan.Rbot-32 FOUND
Trojan.SdBot-1078 FOUND
Trojan.SdBot-2501 FOUND
Trojan.SdBot-2568 FOUND
Trojan.Sdbot-3012 FOUND
Trojan.Sdbot-3424 FOUND
Trojan.Sdbot-3428 FOUND
Trojan.Sdbot-3430 FOUND
Trojan.Sdbot-3486 FOUND
Trojan.Sdbot-3487 FOUND
Trojan.Sdbot-3656 FOUND
Trojan.Sdbot-3659 FOUND
Trojan.Sdbot-3674 FOUND
Trojan.Sdbot-3900 FOUND
Trojan.SdBot-4109 FOUND
Trojan.SdBot-4125 FOUND
Trojan.SdBot-4167 FOUND
Trojan.SdBot-4168 FOUND
Trojan.SdBot-4169 FOUND
Trojan.SdBot-4182 FOUND
Trojan.SdBot-4184 FOUND
Trojan.SdBot-4189 FOUND
Trojan.SdBot-4282 FOUND
Trojan.SdBot-4285 FOUND
Trojan.Sdbot-4308 FOUND
Trojan.SdBot-4329 FOUND
Trojan.SdBot-4398 FOUND
Trojan.SdBot-4399 FOUND
Trojan.SdBot-4400 FOUND
Trojan.SdBot-4401 FOUND
Trojan.SdBot-4402 FOUND
Trojan.SdBot-4403 FOUND
Trojan.SdBot-4404 FOUND
Trojan.SdBot-4405 FOUND
Trojan.SdBot-4406 FOUND
Trojan.SdBot-4407 FOUND
Trojan.SdBot-4408 FOUND
Trojan.SdBot-4409 FOUND
Trojan.SdBot-730 FOUND
Trojan.Vanbot-7 FOUND
Trojan.Wootbot-17 FOUND
W32.Parite.B FOUND
W32.Sality.N FOUND
W32.Virut.A FOUND
Worm.Blaster.A FOUND
Worm.Bobax-4 FOUND
Worm.Gaobot.103 FOUND
Worm.Korgo.AJ FOUND
Worm.Korgo.H FOUND
Worm.Korgo.N FOUND
Worm.Korgo.P FOUND
Worm.Korgo.Y FOUND
Worm.Padobot.G FOUND
Worm.Padobot.K FOUND
Worm.Padobot.M FOUND
Worm.Padobot.N FOUND
Worm.Padobot.P FOUND
Worm.Sasser.B FOUND

Nom des fichiers malveillants téléchargés

Pour des raisons de concision, j'ai remplacé des suites de nom similaires (ex. e_4567.exe, e_3548.exe, etc.) par des noms contenant un caractère joker *. On notera aussi la présence d'une image JPEG (frmik09P.jpg).

$ grep -oEe '\w+\.\w+$' /var/log/nepenthes/logged_downloads | sort -u
24639_up.exe
2.exe
691.exe
8863_up.exe
9.exe
agldcc32.exe
agldoc32.com
antiviruz12.exe
axdcfasb.exe
bling.exe
c.exe
cmh.exe
config.exe
csrs.exe
ctfm0Unz.exe
ctfnon.exe
dllhost.exe
drives.exe
e_*.exe
e.exe
ei_*.exe
eignfd.exe
eim.exe
encrypted.exe
eraseme_*.exe
evil.exe
frmik09P.jpg
grplscd.exe
haha.exe
host.exe
hqghumea.dll
IEXPLORE.exe
ip_*.exe
kage.exe
k.exe
keys.exe
lnternat.exe
lnternet.exe
logins32.exe
lol.exe
mmp.exe
msblast.exe
msinnt.exe
MSKSVRVS.EXE
mslaugh.exe
MSNGR32.com
msnlive.exe
msshelp.exe
mssmp.exe
mssmpp.exe
msupd.exe
MTSKZVRVS.EXE
n00s.exe
n.exe
nod64.exe
nvsv.exe
otis.exe
privmsg.exe
prvmsg.exe
randomfile.exe
recsl.exe
rexename.exe
rund32.exe
salvage.exe
screenshot.exe
scvhost.exe
serv454.exe
setup_*.exe
s.exe
spyware.exe
ssms.exe
svchstras.exe
svhost.exe
systemxp.exe
TaskManager.exe
taskmngrs.exe
Tilecom32.com
Tilecomnu.com
u.exe
UpdateWinfix.exe
vnc.exe
waucult.exe
weed.exe
wervertbr.exe
WinCES.exe
windns.exe
winds.exe
WinDTC.exe
winfixirdrszxx.exe
winfixui.exe
winfixup.exe
WinFUS32.exe
WinHSD.exe
winksas.exe
winkscvre.exe
winkxsas.exe
winlogom.exe
winmsfw.exe
winmsfws.exe
WinNPS.exe
WinRAC.exe
WinRDH.exe
winrvc.exe
winsecure.exe
winslog.exe
wp_*.exe
wuauclt2.exe
wulogin.exe
wunupdsr.exe
x.exe

Notes

[1] voir le billet Pourquoi pirater le PC de Monsieur Tout Le Monde ?

[2] dont le code binaire diffère, pas forcément le nom ni le principe de fonctionnement

[3] temps médian (et non moyen) obtenu sur la totalité des enregistrements de Nepenthes

[4] voir le billet Évaluer les risques sur Internet

[5] nouveaux dans le sens où ils n'ont pas été rencontrés par la machine auparavant, ce qui ne présume en rien du score de l'antivirus

[6] cette valeur est supérieure les premiers jours certainement le temps que Nepenthes fasse une cartographie de l'actuel

[7] si vous avez la possibilité de réaliser le même genre d'expérience avec un autre antivirus, n'hésitez pas à m'en parler !

[8] on peut trouver des informations plus fraîches sur http://nepenthes.csrrt.org/ avec des performances nettement moins louables aussi...

[9] voir la série de billets sur la La sécurité informatique