Classification

La classification proposée par Joanna est finalement relativement simple :

  • type 0 : le logiciel malveillant fonctionne comme toute autre application standard et n'affecte d'aucune manière le système bien qu'il ne puisse fonctionner qu'au travers du système
  • type I : le logiciel malveillant modifie des ressources du système normalement invariables comme le code exécuté par le processeur dans une application ou directement dans le noyau du système par exemple
  • type II : le logiciel malveillant modifie cette fois-ci des ressources du système normalement variables comme les données d'un processus et s'arrange pour qu'elles soient exécutées
  • type III : le logiciel malveillant est totalement indépendant du système qui ne peut connaître son existence, tout en prenant le contrôle du système dans son intégralité, les seuls exemples existants sont basées sur des techniques récentes de virtualisation[1]

Dans le type 0, on trouve la majorité des logiciels malveillants, ceux qui ne se dissimulent pas et sont donc "faciles" à détecter. Dans le type I et le type II on trouve notamment les rootkit qui sont capables de dissimuler totalement un logiciel malveillant vis-à-vis du système. Ils sont ainsi difficiles à détecter. Le type III regroupe pour le moment uniquement des preuves de concept.

Vers une détection systématique

Pour la détection des logiciels malveillants, la méthode courante des antivirus est de chercher des signatures de codes malveillants dans les fichiers, c'est-à-dire qu'il faut déjà qu'ils aient été rencontrés auparavant. Afin d'arrêter cette course sans fin contre les pirates, Joanna propose que les systèmes soient conçus pour faciliter la vérification d'intégrité du système[2], ce qui n'est actuellement visiblement pas le cas. Rappelons en effet qu'elle pense que les logiciels anti-virus sont inefficaces, sa stratégie est donc de blinder au mieux la machine et de vérifier régulièrement son intégrité.

La "vérifiabilité" du système permetrait d'empêcher les logiciels malveillants de type I et II de se dissimuler totalement et ainsi de les éradiquer facilement, bien que d'après elle, cette vérifiabilité soit beaucoup plus complexe à atteindre pour le type II que pour le type I[3]. Surtout, ceci constituerait une méthode systématique de détection des logiciels malveillants qui se dissimulent hors type III (donc type I et II) sans aucun besoin de base de signatures virales[4].

Et de commenter sur son blog dans le billet Towards Verifiable Operating Systems[5] :

« On the other hand, such situation is very convenient for the security vendors, as they can always improve their "Advanced Rootkit Detection Technology" and sell some updates... ;) »

D'un autre côté, une telle situation arrange les éditeurs d'outils de sécurité [informatique], puisqu'ils peuvent toujours améliorer leur "Technologie Avancée de Détection de Rootkits" et vendre des mises à jour... ;-)

Conclusion

Visiblement ni l'industrie du système d'exploitation ni celle du logiciel anti-machin ne s'est orientée jusqu'à présent vers une solution définitive au problème des logiciels malveillants, et ce bien que les choses bougent un peu côté système d'exploitation. Côté logiciels anti-machin, il est bien évident qu'ils n'ont pas d'intérêt à fournir la solution définitive. La question qui reste en suspens est alors : le système d'exploitation aurait-il les mêmes intérets ? C'est possible vu que les vulnérabilités sont un moyen de lutte contre le piratage[6] et que certains systèmes d'exploitation sont liés à des offres anti-machins[7]...

D'un point de vue purement économique, il semble donc que les vulnérabilités des systèmes et des applications augmentent la valeur du produit complet (le PC) puisqu'elles génèrent un chiffre d'affaire supplémentaire qui n'existerait pas si le produit était parfait. Bien sûr, du point de vue de l'utilisateur, c'est exactement le contraire mais ce n'est pas la première fois que l'intérêt du consommateur ne converge pas vers celui du fabricant !

PS: L'autre information intéressante dans l'article de Joanna est que la puce TPM, mise en œuvre pour servir une certaine vision d'une future informatique de confiance, permettrait tout au plus de lutter plus facilement contre les logiciels malveillants de type I seulement. On peut donc se demander quel est l'objectif réel de ces travaux s'il suffit, comme elle le pense, d'adapter les systèmes d'exploitation afin de les rendre vérifiables. À part crypter totalement le disque dur ?

Voir aussi :

Notes

[1] il s'agit de méthodes pour faire tourner plusieurs systèmes d'exploitation dans une même machine, voir l'article Machine virtuelle - Wikipédia

[2] il s'agit de vérifier que rien n'ait été modifié dans les parties normalement constantes et les zones "sensibles" des parties normalement variables

[3] type I pour lequel quelques mécanismes sont déjà en place dans tous les grands systèmes d'exploitation actuels, voir la présentation de Joanna depuis son billet Towards Verifiable Operating Systems

[4] et observer les processus du système et les communications réseau suffit pour détecter le type 0

[5] « Vers des systèmes d'exploitation vérifiables »

[6] voir le billet Tu paies ou on te laisse crever !

[7] voir le billet Microsoft tombe le masque

[8] « Les rootkits sont des outils puissants pour compromettre des systèmes informatiques sans détection. Apprenez pourquoi les antivirus et les parefeux ne sont pas suffisants. Apprenez comment les attaquants peuvent entrer et rester pendant des années, sans détection. »