« Rootkit » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Pautard (discuter | contributions)
m de manière que
Fonctionnalité de suggestions de liens : 1 lien ajouté.
 
(21 versions intermédiaires par 16 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Entête label|BA}}
{{Voir homonymes|Kit}}
{{En-tête label|BA|année=2011}}
{{Langue du titre|en}}
{{Langue du titre|en}}

[[Fichier:En-us-rootkit.ogg|thumb|Prononciation de rootkit en anglais américain.]]
Un '''''{{Lang|en|rootkit}}''''' (le nom « '''outil de dissimulation d'activité''' » est également utilisé<ref>{{Lien web |url=http://www.certa.ssi.gouv.fr/site/CERTA-2006-INF-002/index.html#Rootkit |titre=Note d'information du CERTA, Objet : Terminologie d'usage au CERTA |éditeur=[[Centre d'expertise gouvernemental de réponse et de traitement des attaques informatiques]] |consulté le=8 mars 2010}}.</ref>, ainsi que « '''maliciel furtif''' »<ref>{{Lien web |url=http://www.btb.termiumplus.gc.ca/tpv2alpha/alpha-fra.html?lang=fra&i=1&index=ent&__index=ent&srchtxt=rootkit&comencsrch.x=0&comencsrch.y=0 |titre=Termium |éditeur=Bureau de la traduction du gouvernement du Canada |consulté le=7 mai 2014}}.</ref> et « '''trousse administrateur pirate''' »<ref>{{Lien web |url=http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=44932 |titre=Grand Dictionnaire terminologique |éditeur=[[Office québécois de la langue française]] |consulté le=7 mai 2014}}.</ref>), parfois simplement « '''kit''' », est un ensemble de techniques mises en œuvre par un ou plusieurs [[logiciel]]s, dont le but est d'obtenir et de pérenniser un accès (généralement non autorisé) à un [[ordinateur]] de la manière la plus furtive possible<ref name="whatis">{{en}} {{Lien web |url=http://searchmidmarketsecurity.techtarget.com/sDefinition/0,,sid198_gci547279,00.html |titre=What is rootkit? |éditeur=WhatIs.com|consulté le=16 mars 2010}}.</ref>{{,}}<ref group="C" name="p3" />{{,}}<ref group="L" name="p8">Lacombe (2007), Définition d’un rootkit et comparaison avec les autres codes malicieux, {{p.}}8.</ref>, à la différence d'autres [[logiciel malveillant|logiciels malveillants]]. Le terme peut désigner la technique de dissimulation ou plus généralement un ensemble particulier d'objets informatiques mettant en œuvre cette technique.
Un '''''{{Langue|en|rootkit}}''''' {{Prononciation|En-us-rootkit.ogg}} ou simplement « '''kit''' » (aussi appelé « '''outil de dissimulation d'activité''' »<ref>{{Lien web |url=http://www.certa.ssi.gouv.fr/site/CERTA-2006-INF-002/index.html#Rootkit |titre=Note d'information du CERTA, Objet : Terminologie d'usage au CERTA |éditeur=[[Centre d'expertise gouvernemental de réponse et de traitement des attaques informatiques]] |consulté le=8 mars 2010}}.</ref>, « '''maliciel furtif''' »<ref>{{Lien web |url=http://www.btb.termiumplus.gc.ca/tpv2alpha/alpha-fra.html?lang=fra&i=1&index=ent&__index=ent&srchtxt=rootkit&comencsrch.x=0&comencsrch.y=0 |titre=Termium |éditeur=Bureau de la traduction du gouvernement du Canada |consulté le=7 mai 2014}}.</ref>, « '''trousse administrateur pirate''' »<ref>{{Lien web |url=http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=44932 |titre=Grand Dictionnaire terminologique |éditeur=[[Office québécois de la langue française]] |consulté le=7 mai 2014}}.</ref>), est un ensemble de techniques mises en œuvre par un ou plusieurs [[logiciel]]s, dont le but est d'obtenir et de pérenniser un accès (généralement non autorisé) à un [[ordinateur]] le plus furtivement possible<ref name="whatis">{{en}} {{Lien web |url=http://searchmidmarketsecurity.techtarget.com/sDefinition/0,,sid198_gci547279,00.html |titre=What is rootkit? |éditeur=WhatIs.com|consulté le=16 mars 2010}}.</ref>{{,}}<ref group="C" name="p3" />{{,}}<ref group="L" name="p8">Lacombe (2007), Définition d’un rootkit et comparaison avec les autres codes malicieux, {{p.}}8.</ref>, à la différence d'autres [[logiciel malveillant|logiciels malveillants]]. Le terme peut désigner la technique de dissimulation ou plus généralement un ensemble particulier d'objets informatiques mettant en œuvre cette technique.


Leur furtivité est assurée par plusieurs mécanismes de dissimulation {{Infra|Dissimulation}} : effacement de traces, masquage de l'activité et des communications, etc. Un ''rootkit'' peut s'installer dans un autre logiciel, une [[Bibliothèque logicielle|bibliothèque]] ou dans le [[noyau de système d'exploitation|noyau d'un système d'exploitation]]. Certains peuvent modifier l'[[hyperviseur]] fonctionnant en dessous des systèmes ou le [[micrologiciel]] intégré dans un matériel. La plupart des ''rootkits'' servent à installer des [[Logiciel malveillant|logiciels malveillants]] sur les machines où l'accès est obtenu. Certains fournisseurs de matériels informatiques, tel [[Sony]], les utilisent pour s'assurer du respect des conditions d'utilisation de leurs produits par leurs clients. Certains kits ne jouent pas sur la discrétion mais sur le fait qu'enlever le kit serait une opération ardue<ref group="L" name="p14" />.
Leur furtivité est assurée par plusieurs mécanismes de dissimulation {{Infra|Dissimulation}} : effacement de traces, masquage de l'activité et des communications, etc. Un ''rootkit'' peut s'installer dans un autre logiciel, une [[Bibliothèque logicielle|bibliothèque]] ou dans le [[noyau de système d'exploitation|noyau d'un système d'exploitation]]. Certains peuvent modifier l'[[hyperviseur]] fonctionnant en dessous des systèmes ou le [[micrologiciel]] intégré dans un matériel. La plupart des ''rootkits'' servent à installer des [[Logiciel malveillant|logiciels malveillants]] sur les machines où l'accès est obtenu. Certains fournisseurs de matériels informatiques, tel [[Sony]], les utilisent pour s'assurer du respect des conditions d'utilisation de leurs produits par leurs clients. Certains kits ne jouent pas sur la discrétion mais sur le fait qu'enlever le kit serait une opération ardue<ref group="L" name="p14" />.
Ligne 26 : Ligne 27 :
=== Contamination ===
=== Contamination ===


La première phase d'action d'un ''{{lang|en|rootkit}}'' sert généralement à trouver un hôte vulnérable par [[Balayage de port|balayage]] d'un ensemble d'adresses IP ou grâce à une base de données d'IP vulnérables<ref group="C" name="p14">Chuvakin (2003), {{p.}}14 : ''Usage''</ref>.
La première phase d'action d'un ''{{langue|en|rootkit}}'' sert généralement à trouver un hôte vulnérable par [[Balayage de port|balayage]] d'un ensemble d'adresses IP ou grâce à une base de données d'IP vulnérables<ref group="C" name="p14">Chuvakin (2003), {{p.}}14 : ''Usage''</ref>.


L'étape suivante consiste à chercher à obtenir un accès au système, sans forcément que celui-ci soit un [[Authentification|accès privilégié]] (ou en [[mode administrateur]]). Il existe trois manières de contaminer un système, en suivant les techniques habituelles des [[Logiciel malveillant|programmes malveillants]].
L'étape suivante consiste à chercher à obtenir un accès au système, sans forcément que celui-ci soit un [[Authentification|accès privilégié]] (ou en [[mode administrateur]]). Il existe trois manières de contaminer un système, en suivant les techniques habituelles des [[Logiciel malveillant|programmes malveillants]].


Il est possible de mettre en œuvre un [[Exploit (informatique)|exploit]], c'est-à-dire profiter d'une vulnérabilité de sécurité connue ou non, à n'importe quel niveau du système ([[Logiciel applicatif|application]], [[système d'exploitation]], [[Basic Input Output System|BIOS]], etc.).
Il est possible de mettre en œuvre un [[Exploit (informatique)|exploit]], c'est-à-dire profiter d'une vulnérabilité de sécurité connue ou non, à n'importe quel niveau du système ([[Logiciel applicatif|application]], [[système d'exploitation]], [[Basic Input Output System|BIOS]], etc.).


Cette mise en œuvre peut être le fait d'un virus, mais elle résulte aussi, souvent, de [[botnet]]s qui réalisent des scans de machines afin d'identifier et d'exploiter les failles utiles à l'attaque.
Cette mise en œuvre peut être le fait d'un virus, mais elle résulte aussi, souvent, de [[botnet]]s qui réalisent des scans de machines afin d'identifier et d'exploiter les failles utiles à l'attaque.
Ligne 42 : Ligne 43 :
=== Modification du système et dissimulation ===
=== Modification du système et dissimulation ===


Une fois la contamination effectuée et l'accès obtenu, la phase suivante consiste à installer, au moyen de son script d'installation, les objets et outils nécessaires au rootkit<ref group="C" name="p14" /> ; c'est-à-dire les objets (programmes, bibliothèques) permettant la mise en place de la [[charge utile]] du rootkit, s'ils n'ont pas pu être installés durant la phase de contamination, ainsi que les outils et les modifications nécessaires à la dissimulation<ref group="L" name="p9">Lacombe (2007), L’architecture fonctionnelle d’un rootkit, {{p.}}9</ref>.
Une fois la contamination effectuée et l'accès obtenu, la phase suivante consiste à installer, au moyen de son script d'installation, les objets et outils nécessaires au rootkit<ref group="C" name="p14" /> ; c'est-à-dire les objets (programmes, bibliothèques) permettant la mise en place de la [[Logiciel malveillant|charge utile]] du rootkit, s'ils n'ont pas pu être installés durant la phase de contamination, ainsi que les outils et les modifications nécessaires à la dissimulation<ref group="L" name="p9">Lacombe (2007), L’architecture fonctionnelle d’un rootkit, {{p.}}9</ref>.


L'opération consiste en l'ouverture de [[porte dérobée|portes dérobées]], afin de permettre le contrôle des machines (pc, serveurs, etc.), et, d'y installer la charge utile. Le tout, afin de pérenniser l'accès au système<ref name="whatis" />{{,}}<ref>{{en}} {{Lien web |url=http://en.seguridadpc.net/rootkits.htm |titre=Concept of rootkit}}</ref> , ceci constitue une technique très fréquemment usitée.
L'opération consiste en l'ouverture de [[porte dérobée|portes dérobées]], afin de permettre le contrôle des machines (pc, serveurs, etc.), et, d'y installer la charge utile. Le tout, afin de pérenniser l'accès au système<ref name="whatis" />{{,}}<ref>{{en}} {{Lien web |url=http://en.seguridadpc.net/rootkits.htm |titre=Concept of rootkit}}</ref>, ceci constitue une technique très fréquemment utilisée.


==== Dissimulation ====
==== Dissimulation ====
Ligne 56 : Ligne 57 :
L'obtention des droits supérieurs par [[élévation des privilèges]] est également fréquemment rencontrée : cela permet notamment de désactiver les mécanismes de défense (comme un [[anti-virus]]) ou d'agir sur des objets de haut niveau de privilèges ([[pilotes de périphériques]], [[Noyau de système d'exploitation|noyau du système]], etc.) Un rootkit va ainsi pouvoir écouter les transactions sur le réseau pour trouver des mots de passe non [[Chiffrement|chiffrés]] (comme des connexions [[file Transfer Protocol|ftp]]) ou détourner une connexion [[ssh]] en interceptant l'appel système où le mot de passe n'est pas encore chiffré<ref group="C" name="p7-8" />.
L'obtention des droits supérieurs par [[élévation des privilèges]] est également fréquemment rencontrée : cela permet notamment de désactiver les mécanismes de défense (comme un [[anti-virus]]) ou d'agir sur des objets de haut niveau de privilèges ([[pilotes de périphériques]], [[Noyau de système d'exploitation|noyau du système]], etc.) Un rootkit va ainsi pouvoir écouter les transactions sur le réseau pour trouver des mots de passe non [[Chiffrement|chiffrés]] (comme des connexions [[file Transfer Protocol|ftp]]) ou détourner une connexion [[ssh]] en interceptant l'appel système où le mot de passe n'est pas encore chiffré<ref group="C" name="p7-8" />.


Le rootkit tente de ne pas apparaître dans les [[fichier log|fichiers log]]<ref group="C" name="p8-9" />. Pour cela, il efface certaines entrées des logs ou, de manière beaucoup plus sophistiquée, utilisera des techniques de type « ''{{lang|en|Stealth by Design}}'' » (« furtif par conception »)<ref name="rutkowska" />, à savoir implémenter à l'intérieur du rootkit des fonctions système afin de ne pas avoir à appeler les fonctions standards du [[système d'exploitation]] et ainsi éviter l'enregistrement d'événements système suspects<ref group="C" name="p8-9" />. Il peut ainsi désactiver certains [[Daemon (informatique)|daemons]] et l'historique des [[Shell (informatique)|shells]]<ref group="C" name="p14" />.
Le rootkit tente de ne pas apparaître dans les [[fichier log|fichiers log]]<ref group="C" name="p8-9" />. Pour cela, il efface certaines entrées des logs ou, de manière beaucoup plus sophistiquée, utilisera des techniques de type « ''{{langue|en|Stealth by Design}}'' » (« furtif par conception »)<ref name="rutkowska" />, à savoir implémenter à l'intérieur du rootkit des fonctions système afin de ne pas avoir à appeler les fonctions standards du [[système d'exploitation]] et ainsi éviter l'enregistrement d'événements système suspects<ref group="C" name="p8-9" />. Il peut ainsi désactiver certains [[Daemon (informatique)|daemons]] et l'historique des [[Shell (informatique)|shells]]<ref group="C" name="p14" />.


Enfin, certains rootkits peuvent se charger intégralement en mémoire, ne laissant ainsi aucune trace sur les [[Stockage d'information|périphériques de stockage]] de la machine<ref group="L" name="p11">Lacombe (2007), La communication avec le rootkit, {{p.}}11</ref>.
Enfin, certains rootkits peuvent se charger intégralement en mémoire, ne laissant ainsi aucune trace sur les [[Stockage d'information|périphériques de stockage]] de la machine<ref group="L" name="p11">Lacombe (2007), La communication avec le rootkit, {{p.}}11</ref>.
Ligne 64 : Ligne 65 :
==== Maintien de l'accès ====
==== Maintien de l'accès ====


Un ''{{lang|en|rootkit}}'' doit pouvoir être manipulé à distance par un attaquant. Celui-ci cherche donc souvent à maintenir un [[Shell (informatique)|shell]] (ou « interpréteur de commandes ») disponible idéalement à n'importe quel moment (ou au moins durant l'installation du rootkit), en remplaçant des commandes comme [[ping (logiciel)|ping]] ou [[xterm]]. Généralement, l'attaquant installe plusieurs de ces [[porte dérobée|portes dérobées]] au cas où l'une viendrait à être découverte et supprimée<ref group="C" name="p4-7" >Chuvakin (2003), {{p.}}4-7 : ''Maintain Access''</ref>.
Un ''{{langue|en|rootkit}}'' doit pouvoir être manipulé à distance par un attaquant. Celui-ci cherche donc souvent à maintenir un [[Shell (informatique)|shell]] (ou « interpréteur de commandes ») disponible idéalement à n'importe quel moment (ou au moins durant l'installation du rootkit), en remplaçant des commandes comme [[ping (logiciel)|ping]] ou [[xterm]]. Généralement, l'attaquant installe plusieurs de ces [[porte dérobée|portes dérobées]] au cas où l'une viendrait à être découverte et supprimée<ref group="C" name="p4-7">Chuvakin (2003), {{p.}}4-7 : ''Maintain Access''</ref>.


L'accès distant au kit peut se faire par l'intermédiaire d'une connexion [[Transmission Control Protocol|TCP]], comme [[telnet]] ou [[ssh]] (qui peut être renversée, c'est-à-dire que c'est la machine infectée qui va chercher à rentrer en contact avec l'attaquant), [[User Datagram Protocol|UDP]] ou [[Internet Control Message Protocol|ICMP]]. Il existe aussi des méthodes plus complexes mais plus discrètes : [[port knocking]], faux paquet TCP contenant une commande cachée, [[spoofing|se faire passer]] pour une autre machine<ref group="C" name="p4-7" />, [[canal caché|canaux cachés]], etc. Au besoin, les scripts de démarrage seront modifiés pour que les services nécessaires au rootkit soient disponibles après chaque redémarrage de la machine<ref group="C" name="p14" />.
L'accès distant au kit peut se faire par l'intermédiaire d'une connexion [[Transmission Control Protocol|TCP]], comme [[telnet]] ou [[ssh]] (qui peut être renversée, c'est-à-dire que c'est la machine infectée qui va chercher à rentrer en contact avec l'attaquant), [[User Datagram Protocol|UDP]] ou [[Internet Control Message Protocol|ICMP]]. Il existe aussi des méthodes plus complexes mais plus discrètes : [[port knocking]], faux paquet TCP contenant une commande cachée, [[Usurpation d'adresse IP|se faire passer]] pour une autre machine<ref group="C" name="p4-7" />, [[canal caché|canaux cachés]], etc. Au besoin, les scripts de démarrage seront modifiés pour que les services nécessaires au rootkit soient disponibles après chaque redémarrage de la machine<ref group="C" name="p14" />.


Pour que l'accès à la machine ne soit pas détourné par un autre attaquant, celui-ci peut corriger les failles du système infecté : celles qui lui ont permis de rentrer, voire l'ensemble des failles connues.
Pour que l'accès à la machine ne soit pas détourné par un autre attaquant, celui-ci peut corriger les failles du système infecté : celles qui lui ont permis de rentrer, voire l'ensemble des failles connues.
Ligne 73 : Ligne 74 :


[[Fichier:Botnet.svg|thumb|Un [[botnet]] permet d'avoir un accès sur des centaines de machines.]]
[[Fichier:Botnet.svg|thumb|Un [[botnet]] permet d'avoir un accès sur des centaines de machines.]]
La [[Charge_utile#Informatique|charge utile]] est la partie active du rootkit (et de tout [[Logiciel malveillant|programme malveillant]] en général), dont le rôle est d'accomplir la (ou les) tâche(s) assignée(s).
La [[Logiciel malveillant|charge utile]] est la partie active du rootkit (et de tout [[Logiciel malveillant|programme malveillant]] en général), dont le rôle est d'accomplir la (ou les) tâche(s) assignée(s).


Cette charge utile permet d'avoir accès aux ressources de la machine infectée<ref group="L" name="p14" />, et notamment le [[processeur]], pour décrypter des mots de passe, pour effectuer des [[calcul distribué|calculs distribués]] à des fins malveillantes ou pour mettre en œuvre (ou détourner l'usage légitime) des applications comme un [[serveur de messagerie électronique|serveur de messagerie]] afin d'envoyer des mails ([[pourriel]] ou ''spam'') en quantité. Les ressources réseaux intéressent également les attaquants, la machine pouvant alors servir de base pour d'autres attaques ([[DDoS]]<ref>{{Lien web |url=http://www.zdnet.fr/blogs/cybervigilance/le-deni-de-service-politique-se-banalise-en-asie-du-sud-est-39755908.htm |titre= Le déni de service politique se banalise en Asie du Sud-Est |date=5 novembre 2010 |éditeur=ZDNet.fr}}</ref>, [[Exploit (informatique)|exploits]]) ou pour inspecter, [[Packet sniffer|sniffer]] l'activité réseau.
Cette charge utile permet d'avoir accès aux ressources de la machine infectée<ref group="L" name="p14" />, et notamment le [[processeur]], pour décrypter des mots de passe, pour effectuer des [[calcul distribué|calculs distribués]] à des fins malveillantes ou pour mettre en œuvre (ou détourner l'usage légitime) des applications comme un [[serveur de messagerie électronique|serveur de messagerie]] afin d'envoyer des mails ([[pourriel]] ou ''spam'') en quantité. Les ressources réseaux intéressent également les attaquants, la machine pouvant alors servir de base pour d'autres attaques ([[DDoS]]<ref>{{Lien web |url=http://www.zdnet.fr/blogs/cybervigilance/le-deni-de-service-politique-se-banalise-en-asie-du-sud-est-39755908.htm |titre= Le déni de service politique se banalise en Asie du Sud-Est |date=5 novembre 2010 |éditeur=ZDNet.fr}}</ref>, [[Exploit (informatique)|exploits]]) ou pour inspecter, [[Packet sniffer|sniffer]] l'activité réseau.


Le remplacement du procédé de connexion (comme <code>/bin/login</code> sous les [[Unix]]) peut aussi fournir soit un accès de type [[porte dérobée]] {{Infra|Maintient de l'accès}}, soit un moyen de récupérer les informations d'authentification des utilisateurs de la machine. La compromission de pilotes de périphériques permet également d'installer des [[Enregistreur de frappe|enregistreurs de frappe]] ou ''{{lang|en|keyloggers}}'' (entre autres), afin de récupérer, en complément de l'activité réseau, des traces et des informations personnelles ou confidentielles, comme le seraient des données bancaires ou de connexion.
Le remplacement du procédé de connexion (comme <code>/bin/login</code> sous les [[Unix]]) peut aussi fournir soit un accès de type [[porte dérobée]] {{Infra|Maintient de l'accès}}, soit un moyen de récupérer les informations d'authentification des utilisateurs de la machine. La compromission de pilotes de périphériques permet également d'installer des [[Enregistreur de frappe|enregistreurs de frappe]] ou ''{{langue|en|keyloggers}}'' (entre autres), afin de récupérer, en complément de l'activité réseau, des traces et des informations personnelles ou confidentielles, comme le seraient des données bancaires ou de connexion.


La machine infectée peut aussi devenir le point de départ pour d'autres attaques, sur internet, ou sur l'[[intranet]], comme un [[Attaque par déni de service|déni de service]]<ref group="C" name="p7-8">Chuvakin (2003), {{p.}}7-8 : ''Attack Other Systems''</ref>. La prise de contrôle de la machine offre la possibilité de constituer un réseau de type [[botnet]] (la machine infectée devenant alors une [[machine zombie]], comme dans le cas du [[botnet Srizbi]]<ref>{{en}} {{Lien web |url=http://cyberinsecure.com/botnet-spams-60-billion-emails-a-day/ |titre=Botnet Spams 60 Billion Emails A Day |date=9 mai 2008 |éditeur=CyberInsecure.com}}</ref>), ou d'accéder à d'autres machines, par [[Attaque par rebond|rebond]].
La machine infectée peut aussi devenir le point de départ pour d'autres attaques, sur internet, ou sur l'[[intranet]], comme un [[Attaque par déni de service|déni de service]]<ref group="C" name="p7-8">Chuvakin (2003), {{p.}}7-8 : ''Attack Other Systems''</ref>. La prise de contrôle de la machine offre la possibilité de constituer un réseau de type [[botnet]] (la machine infectée devenant alors une [[machine zombie]], comme dans le cas du [[botnet Srizbi]]<ref>{{en}} {{Lien web |url=http://cyberinsecure.com/botnet-spams-60-billion-emails-a-day/ |titre=Botnet Spams 60 Billion Emails A Day |date=9 mai 2008 |éditeur=CyberInsecure.com}}</ref>), ou d'accéder à d'autres machines, par [[Attaque par rebond|rebond]].
Ligne 93 : Ligne 94 :
=== Niveau micrologiciel/matériel ===
=== Niveau micrologiciel/matériel ===


Il est possible d'installer des rootkits directement au niveau du [[micrologiciel]] (ou ''{{lang|en|firmware}}''). De nombreux produits proposent désormais des [[Mémoire flash|mémoires flash]] qui peuvent être utilisées pour injecter durablement du code<ref>{{en}} {{Lien web |url=http://www.phrack.org/issues.html?issue=66&id=7#article |titre=Persistent BIOS Infection |auteur=Anibal Sacco et Alfredo Ortega |année=2009 |mois=juin |éditeur=Phrack Magazine}}</ref> en détournant par exemple l'usage d'un module de persistance souvent implanté dans le [[Basic Input Output System|BIOS]] de certains systèmes.
Il est possible d'installer des rootkits directement au niveau du [[micrologiciel]] (ou ''{{langue|en|firmware}}''). De nombreux produits proposent désormais des [[Mémoire flash|mémoires flash]] qui peuvent être utilisées pour injecter durablement du code<ref>{{en}} {{Lien web |url=http://www.phrack.org/issues.html?issue=66&id=7#article |titre=Persistent BIOS Infection |auteur=Anibal Sacco et Alfredo Ortega |année=2009 |mois=juin |éditeur=Phrack Magazine}}</ref> en détournant par exemple l'usage d'un module de persistance souvent implanté dans le [[Basic Input Output System|BIOS]] de certains systèmes.


Un outil légitime utilise cette technique : LoJack, d'Absolute Software<ref name="lojack" />, qui permet de suivre un ordinateur à l'insu de l'utilisateur pour retrouver un ordinateur portable en cas de vol. Ce code reste en place après un [[formatage]] du disque dur, voire après un [[Flashage de BIOS|flashage du BIOS]]<ref>{{en}} {{Lien web|url=http://www.tomshardware.com/news/bios-virus-rootkit-security-backdoor,7400.html |titre=New BIOS Virus Withstands HDD Wipes |date={{date|27|mars|2009}} |éditeur=Tom's Hardware}}</ref> si le module de persistance est présent et actif. Tout périphérique disposant d'un tel type de mémoire est donc potentiellement vulnérable.
Un outil légitime utilise cette technique : LoJack, d'Absolute Software<ref name="lojack" />, qui permet de suivre un ordinateur à l'insu de l'utilisateur pour retrouver un [[ordinateur portable]] en cas de vol. Ce code reste en place après un [[formatage]] du [[disque dur]], voire après un [[Flashage de BIOS|flashage du BIOS]]<ref>{{en}} {{Lien web|url=http://www.tomshardware.com/news/bios-virus-rootkit-security-backdoor,7400.html |titre=New BIOS Virus Withstands HDD Wipes |date={{date|27|mars|2009}} |éditeur=Tom's Hardware}}</ref> si le module de persistance est présent et actif. Tout périphérique disposant d'un tel type de mémoire est donc potentiellement vulnérable.


Une piste évoquée pour contrer ce genre de rootkit serait d'interdire l'écriture du BIOS, grâce à un [[Cavalier (électronique)|cavalier]] sur la [[carte mère]] ou par l'emploi d'un mot de passe, ou d'utiliser des [[Extensible Firmware Interface|EFI]] à la place du BIOS<ref>{{Lien web |url=http://www.presence-pc.com/actualite/virus-rootkit-BIOS-34221/ |titre=Ils ont inventé le virus de BIOS |année=2009 |mois=mars |éditeur=presence-pc.com}}</ref>, mais cette méthode reste à tester et à confirmer<ref>{{en}} {{Lien web |url=http://www.v3.co.uk/vnunet/news/2239320/bios-attack-renders-antivirus |titre=New Bios attack renders anti-virus useless |date={{date|26|mars|2009}} |éditeur=v3.co.uk}}</ref>.
Une piste évoquée pour contrer ce genre de rootkit serait d'interdire l'écriture du BIOS, grâce à un [[Cavalier (électronique)|cavalier]] sur la [[carte mère]] ou par l'emploi d'un mot de passe, ou d'utiliser des [[Extensible Firmware Interface|EFI]] à la place du BIOS<ref>{{Lien web |url=http://www.presence-pc.com/actualite/virus-rootkit-BIOS-34221/ |titre=Ils ont inventé le virus de BIOS |année=2009 |mois=mars |éditeur=presence-pc.com}}</ref>, mais cette méthode reste à tester et à confirmer<ref>{{en}} {{Lien web |url=http://www.v3.co.uk/vnunet/news/2239320/bios-attack-renders-antivirus |titre=New Bios attack renders anti-virus useless |date={{date|26|mars|2009}} |éditeur=v3.co.uk}}</ref>.


En novembre 2010, un chercheur français, Guillaume Delugré, publie une méthode pour remplacer le firmware d'une carte réseau très répandue sur le marché<ref>{{en}} {{Lien web|url=http://esec-lab.sogeti.com/dotclear/index.php?post/2010/11/21/Presentation-at-Hack.lu-:-Reversing-the-Broacom-NetExtreme-s-firmware |titre=Presentation at Hack.lu : Reversing the Broacom NetExtreme's firmware |date={{date|21|novembre|2010}} |éditeur=Sogeti ESEC Lab |auteur=Guillaume Delugré}}</ref>. Le rootkit s'exécute ainsi directement sur la carte, et donc sans modifier l'OS. L'usage des canaux [[Accès direct à la mémoire|DMA]] permet alors de manipuler l'OS.
En {{date-|novembre 2010}}, un chercheur français, Guillaume Delugré, publie une méthode pour remplacer le firmware d'une [[carte réseau]] très répandue sur le marché<ref>{{en}} {{Lien web|url=http://esec-lab.sogeti.com/dotclear/index.php?post/2010/11/21/Presentation-at-Hack.lu-:-Reversing-the-Broacom-NetExtreme-s-firmware |titre=Presentation at Hack.lu : Reversing the Broacom NetExtreme's firmware |date={{date|21|novembre|2010}} |éditeur=Sogeti ESEC Lab |auteur=Guillaume Delugré}}</ref>. Le rootkit s'exécute ainsi directement sur la carte, et donc sans modifier l'OS. L'usage des canaux [[Accès direct à la mémoire|DMA]] permet alors de manipuler l'OS.


=== Niveau hyperviseur ===
=== Niveau hyperviseur ===
Ligne 105 : Ligne 106 :
Ce type de rootkit se comporte comme un [[hyperviseur]] natif, après s'être installé et avoir modifié la [[Amorce (informatique)|séquence de démarrage]], pour être lancé en tant qu'hyperviseur à l'initialisation de la machine infectée. Le système d'exploitation original devient alors un hôte (invité) du rootkit, lequel peut intercepter tout appel au matériel. Il devient quasiment impossible à détecter depuis le système original.
Ce type de rootkit se comporte comme un [[hyperviseur]] natif, après s'être installé et avoir modifié la [[Amorce (informatique)|séquence de démarrage]], pour être lancé en tant qu'hyperviseur à l'initialisation de la machine infectée. Le système d'exploitation original devient alors un hôte (invité) du rootkit, lequel peut intercepter tout appel au matériel. Il devient quasiment impossible à détecter depuis le système original.


Une étude conjointe de chercheurs de l'université du Michigan et de Microsoft a démontré la possibilité d'un tel type de rootkit, qu'ils ont baptisé « ''{{lang|en|virtual-machine based rootkit}}'' » (VMBR)<ref>{{pdf}} {{en}} {{Lien web |url=http://www.eecs.umich.edu/virtual/papers/king06.pdf |titre=SubVirt: Implementing malware with virtual machines |auteur=Samuel T. King, Peter M. Chen, Yi-Min Wang, Chad Verbowski, Helen J. Wang, Jacob R. Lorch |année=2006}}</ref>. Ils ont pu l'installer sur un système [[Windows XP]] et sur un système [[Linux]]. Les parades proposées sont la sécurisation du boot, le démarrage à partir d'un média vérifié et contrôlé (réseau, CD-ROM, clé USB, etc.) ou l'emploi d'un moniteur de [[machine virtuelle]] sécurisé.
Une étude conjointe de chercheurs de l'université du Michigan et de Microsoft a démontré la possibilité d'un tel type de rootkit, qu'ils ont baptisé « ''{{langue|en|virtual-machine based rootkit}}'' » (VMBR)<ref>{{pdf}} {{en}} {{Lien web |url=http://www.eecs.umich.edu/virtual/papers/king06.pdf |titre=SubVirt: Implementing malware with virtual machines |auteur=Samuel T. King, Peter M. Chen, Yi-Min Wang, Chad Verbowski, Helen J. Wang, Jacob R. Lorch |année=2006}}</ref>. Ils ont pu l'installer sur un système [[Windows XP]] et sur un système [[Linux]]. Les parades proposées sont la sécurisation du boot, le démarrage à partir d'un média vérifié et contrôlé (réseau, CD-ROM, clé USB, etc.) ou l'emploi d'un moniteur de [[machine virtuelle]] sécurisé.


[[Blue Pill]] est un autre exemple de rootkit utilisant cette technique. En mai 2010, Zhi Wang et Xuxian Jiang, deux chercheurs de l'[[Université de Caroline du Nord]], publient « HyperSafe »<ref>Zhi Wang, Xuxian Jiang, ''HyperSafe: A Lightweight Approach to Provide Lifetime Hypervisor Control-Flow Integrity'', {{31e|conférence}} ''IEEE Symposium on Security and Privacy'', Oakland, CA, mai 2010</ref>, un outil permettant de sécuriser [[BitVisor]] et [[Xen]] — mais portable sur les [[hyperviseur]]s de type 1 — contre entre autres ''Blue Pill''<ref>{{Lien web |url=http://www.networkworld.com/news/2010/050710-researchers-to-cure-blue-pill.html?source=nww_rss |titre=Researchers to cure Blue Pill virtualization attacks |auteur=Joab Jackson |date=7 mai 2010 |éditeur=IDG News Service |consulté le=11 mai 2010 |= }}</ref> : le principe est d'empêcher l'injection et l'exécution arbitraire de code par overflow (''{{lang|en|non-bypassable memory lockdown}}'') et de protéger les [[Pointeur de fonction|pointeurs de fonction]] pour empêcher les attaques par hooking.
''Blue Pill'' est un autre exemple de rootkit utilisant cette technique. En {{date-|mai 2010}}, Zhi Wang et Xuxian Jiang, deux chercheurs de l'[[Université de Caroline du Nord]], publient « HyperSafe »<ref>Zhi Wang, Xuxian Jiang, ''HyperSafe: A Lightweight Approach to Provide Lifetime Hypervisor Control-Flow Integrity'', {{31e|conférence}} ''IEEE Symposium on Security and Privacy'', Oakland, CA, mai 2010</ref>, un outil permettant de sécuriser [[BitVisor]] et [[Xen]] — mais portable sur les [[hyperviseur]]s de type 1 — contre entre autres ''Blue Pill''<ref>{{Lien web |url=http://www.networkworld.com/news/2010/050710-researchers-to-cure-blue-pill.html?source=nww_rss |titre=Researchers to cure Blue Pill virtualization attacks |auteur=Joab Jackson |date=7 mai 2010 |éditeur=IDG News Service |consulté le=11 mai 2010 }}</ref> : le principe est d'empêcher l'injection et l'exécution arbitraire de code par overflow (''{{langue|en|non-bypassable memory lockdown}}'') et de protéger les [[Pointeur de fonction|pointeurs de fonction]] pour empêcher les attaques par hooking.


=== Niveau noyau ===
=== Niveau noyau ===
Ligne 127 : Ligne 128 :
Plusieurs techniques peuvent être utilisées. On peut [[Patch (informatique)|patcher]] une bibliothèque, c'est-à-dire lui ajouter du code. On peut aussi détourner l'appel d'un objet – par [[Hook (informatique)|hooking]], {{Infra|Moyens de détection}} –, ce qui revient à appeler une « autre fonction » puis à revenir à la fonction initiale, pour que le détournement soit transparent du point de vue fonctionnel. Enfin, on peut remplacer des [[appels système]] par du code malveillant.
Plusieurs techniques peuvent être utilisées. On peut [[Patch (informatique)|patcher]] une bibliothèque, c'est-à-dire lui ajouter du code. On peut aussi détourner l'appel d'un objet – par [[Hook (informatique)|hooking]], {{Infra|Moyens de détection}} –, ce qui revient à appeler une « autre fonction » puis à revenir à la fonction initiale, pour que le détournement soit transparent du point de vue fonctionnel. Enfin, on peut remplacer des [[appels système]] par du code malveillant.


Ce type de rootkit est assez fréquent, mais il est aussi le plus facile à contrer, notamment par un contrôle d'intégrité des fichiers essentiels, en surveillant leur [[Somme de contrôle|empreinte]] grâce à une [[Fonction de hash|fonction de hachage]] ; par une détection de signature du programme malveillant ; ou par exemple, par un examen des ''{{lang|en|hooks}}'' au moyen d'outils comme [[unhide]] sous [[GNU/Linux]] ou [[HijackThis]] sous Windows.
Ce type de rootkit est assez fréquent, mais il est aussi le plus facile à contrer, notamment par un contrôle d'intégrité des fichiers essentiels, en surveillant leur [[Somme de contrôle|empreinte]] grâce à une [[Fonction de hash|fonction de hachage]] ; par une détection de signature du programme malveillant ; ou par exemple, par un examen des ''{{langue|en|hooks}}'' au moyen d'outils comme [[unhide]] sous [[GNU/Linux]] ou [[HijackThis]] sous Windows.


Un exemple connu de ce type de kit est ''T0rn 8'' : il charge sa propre bibliothèque (<code>libproc.a</code>) qui va remplacer la bibliothèque standard faisant l'intermédiaire entre les informations système – <code>/proc</code> – et l'espace utilisateur. Ainsi, le kit peut filtrer les informations qui transitent et retirer tout ce qui pourrait révéler la présence du kit, sans toucher aux exécutables systèmes (ps, ls, etc.)<ref group="C" name="p13-14" />
Un exemple connu de ce type de kit est ''T0rn 8'' : il charge sa propre bibliothèque (<code>libproc.a</code>) qui va remplacer la bibliothèque standard faisant l'intermédiaire entre les informations système – <code>/proc</code> – et l'espace utilisateur. Ainsi, le kit peut filtrer les informations qui transitent et retirer tout ce qui pourrait révéler la présence du kit, sans toucher aux exécutables systèmes (ps, ls, etc.)<ref group="C" name="p13-14" />
Ligne 135 : Ligne 136 :
Un rootkit applicatif implante des programmes malveillants de type [[Cheval de Troie (informatique)|cheval de Troie]], au niveau utilisateur. Ces programmes prennent la place de programmes légitimes – usurpation d'identité – ou en modifient le comportement, afin de prendre le contrôle des ressources accessibles par ces programmes.
Un rootkit applicatif implante des programmes malveillants de type [[Cheval de Troie (informatique)|cheval de Troie]], au niveau utilisateur. Ces programmes prennent la place de programmes légitimes – usurpation d'identité – ou en modifient le comportement, afin de prendre le contrôle des ressources accessibles par ces programmes.


Par exemple, une application de traitement de texte peut être remplacée par une version malicieuse et donner accès aux fonctions permettant de lire et d'écrire un fichier dans une partie de l'arborescence. Plus grave, des applications comme [[ls (Unix)|ls]], [[ps (Unix)|ps]], [[grep]] peuvent être remplacées<ref group="C" name="p10-12">Chuvakin (2003), {{p.}}10-12 : ''Binary Rootkits''</ref>.
Par exemple, une application de [[traitement de texte]] peut être remplacée par une version malicieuse et donner accès aux fonctions permettant de lire et d'écrire un fichier dans une partie de l'arborescence. Plus grave, des applications comme [[ls (Unix)|ls]], [[ps (Unix)|ps]], [[grep]] peuvent être remplacées<ref group="C" name="p10-12">Chuvakin (2003), {{p.}}10-12 : ''Binary Rootkits''</ref>.


Cette méthode n'est pas efficace si ces programmes sont régulièrement recompilés à partir des sources<ref group="L" name="p4">Lacombe (2007), Évolution des rootkits, {{p.}}4</ref>.
Cette méthode n'est pas efficace si ces programmes sont régulièrement recompilés à partir des sources<ref group="L" name="p4">Lacombe (2007), Évolution des rootkits, {{p.}}4</ref>.
Ligne 143 : Ligne 144 :
=== Rootkits Sony ===
=== Rootkits Sony ===


À deux reprises, Sony a été confronté à la présence masquée de rootkits dans ses produits : dans ses [[clé usb|clés usb]] [[biométrique]]s<ref>{{Lien web |url=http://www.silicon.fr/fr/silicon/news/2007/09/03/rootkit-de-sony-une-incroyable |titre=Rootkit sur clé USB: l'incroyable 'erreur' de Sony |date={{date|3|septembre|2007}} |éditeur=silicon.fr}}</ref> et dans son composant de [[gestion numérique des droits]] (DRM)<ref>{{Lien web |url=http://www.generation-nt.com/un-rootkit-dans-les-drm-de-sony-actualite-9267.html |titre=Un rootkit dans les DRM de Sony |année=2005 |mois=novembre |jour=1 |éditeur=generation-nt.com (GNT Media)}}</ref>{{,}}<ref>{{Lien web |url=http://www.secuobs.com/news/11112005-sony-rootkit.shtml |titre=Sony intègre puis retire un rootkit de ses CD audio protégés |année=2005 |mois=novembre |jour=11 |éditeur=secuobs.com}}</ref>, nommé « XCP » (pour « ''{{lang|en|Extended Copy Protection}}'' »), présent sur 52 CD audio (dont certains de [[Céline Dion]] et de [[Sarah McLachlan]]). L'entreprise cherchait à réduire le nombre de copies illégales de ses disques en limitant le droit de copie et en traçant la circulation des CD par internet.
À deux reprises, Sony a été confronté à la présence masquée de rootkits dans ses produits : dans ses [[clé usb|clés usb]] [[biométrique]]s et dans son composant de [[gestion numérique des droits]] (DRM)<ref>{{Lien web |url=http://www.generation-nt.com/un-rootkit-dans-les-drm-de-sony-actualite-9267.html |titre=Un rootkit dans les DRM de Sony |année=2005 |mois=novembre |jour=1 |éditeur=generation-nt.com (GNT Media)}}</ref>{{,}}<ref>{{Lien web |url=http://www.secuobs.com/news/11112005-sony-rootkit.shtml |titre=Sony intègre puis retire un rootkit de ses CD audio protégés |année=2005 |mois=novembre |jour=11 |éditeur=secuobs.com}}</ref>, nommé « XCP » (pour « ''{{langue|en|Extended Copy Protection}}'' »), présent sur 52 CD audio (dont certains de [[Céline Dion]] et de [[Sarah McLachlan]]). L'entreprise cherchait à réduire le nombre de copies illégales de ses disques en limitant le droit de copie et en traçant la circulation des CD par internet.


Le kit XCP, présent sur 4 millions de CD produits en 2005<ref name="nt-fournisseur">{{Lien web |url=http://www.generation-nt.com/sony-bmg-rootkit-cd-anti-piratage-actualite-43131.html |titre=Sony BMG poursuit son fournisseur de rootkits |auteur=Cédric B |date={{date|13|juillet|2007}} |site=generation-nt.com |citation=Le japonais [Sony] a utilisé celle-ci sur environ 4 millions de disques en 2005. |consulté le=21 avril 2010}}</ref>, est parfois instable et possède lui-même des failles qui peuvent être exploitées, permettant notamment de tricher sous [[World of Warcraft]] ou de créer un virus l'utilisant<ref>{{Lien web |url=http://www.presence-pc.com/actualite/Sony-rootkit-12894/ |titre=Premier virus utilisant le rootkit Sony |auteur=David Civera |date=10 novembre 2005 |site=presence-pc.com |consulté le=20 avril 2010}}</ref>. En revanche, XCP peut être facilement déjoué en maquillant la deuxième piste du CD<ref name="gartner1811">{{pdf}} {{en}} {{Lien web |url=http://www.gartner.com/resources/136300/136331/sony_bmg_drm_a_publicrelatio_136331.pdf |titre=Sony BMG DRM a Public-Relations and Technology Failure |auteur=Martin Reynolds, Mike McGuire |date={{date|18|novembre|2005}} |éditeur=[[Gartner]] |citation=''The user simply applies a fingernail-sized piece of opaque tape to the outer edge of the disc, rendering session 2 — which contains the self-loading DRM software — unreadable'' |consulté le=20 avril 2010}}</ref> : la piste n'étant plus lisible, le rootkit ne peut pas s'activer. De plus, il ne fonctionne que sur les systèmes d'exploitation de type Windows<ref>{{Lien web |langue=en |url=http://news.bbc.co.uk/2/hi/technology/4406178.stm |titre=''The rootkit of all evil?'' |auteur=Bill Thompson |date=4 novembre 2005 |éditeur=[[BBC News]] |citation=''If you have got a Mac or a Linux box then you can play and even copy you [''sic''] disc happily […]'' |en ligne le=4 novembre 2005 |consulté le=23 avril 2010}}.</ref>.
Le kit XCP, présent sur quatre millions de CD produits en 2005<ref name="nt-fournisseur">{{Lien web |url=http://www.generation-nt.com/sony-bmg-rootkit-cd-anti-piratage-actualite-43131.html |titre=Sony BMG poursuit son fournisseur de rootkits |auteur=Cédric B |date={{date|13|juillet|2007}} |site=generation-nt.com |citation=Le japonais [Sony] a utilisé celle-ci sur environ 4 millions de disques en 2005. |consulté le=21 avril 2010}}</ref>, est parfois instable et possède lui-même des failles qui peuvent être exploitées, permettant notamment de tricher sous [[World of Warcraft]] ou de créer un virus l'utilisant<ref>{{Lien web |url=http://www.presence-pc.com/actualite/Sony-rootkit-12894/ |titre=Premier virus utilisant le rootkit Sony |auteur=David Civera |date=10 novembre 2005 |site=presence-pc.com |consulté le=20 avril 2010}}</ref>. En revanche, XCP peut être facilement déjoué en maquillant la deuxième piste du CD<ref name="gartner1811">{{pdf}} {{en}} {{Lien web |url=http://www.gartner.com/resources/136300/136331/sony_bmg_drm_a_publicrelatio_136331.pdf |titre=Sony BMG DRM a Public-Relations and Technology Failure |auteur=Martin Reynolds, Mike McGuire |date={{date|18|novembre|2005}} |éditeur=[[Gartner]] |citation=''The user simply applies a fingernail-sized piece of opaque tape to the outer edge of the disc, rendering session 2 — which contains the self-loading DRM software — unreadable'' |consulté le=20 avril 2010}}</ref> : la piste n'étant plus lisible, le rootkit ne peut pas s'activer. De plus, il ne fonctionne que sur les systèmes d'exploitation de type Windows<ref>{{Lien web |langue=en |url=http://news.bbc.co.uk/2/hi/technology/4406178.stm |titre=''The rootkit of all evil?'' |auteur=Bill Thompson |date=4 novembre 2005 |éditeur=[[BBC News]] |citation=''If you have got a Mac or a Linux box then you can play and even copy you [''sic''] disc happily […]'' |en ligne le=4 novembre 2005 |consulté le=23 avril 2010}}.</ref>.


XCP se connecte régulièrement aux serveurs de Sony pour envoyer l'identifiant du disque audio que l'utilisateur écoute. Il empêche la lecture du CD par un autre logiciel que celui fourni par Sony, et limite le nombre de copies (gravure et [[Rip (informatique)|rip]]) du disque<ref name="bba2006" />. Une analyse du groupe [[Gartner]] montre que XCP se comporte comme un logiciel malveillant sur plusieurs points : téléchargements cachés, informations concernant son fonctionnement cachées dans la [[CLUF|licence d'utilisation]], absence d'utilitaire de désinstallation et envoi obligatoire d'un mail contenant des informations personnelles et sur le système pour en recevoir un, envoi de certaines informations à des serveurs de Sony sans information préalable à l'utilisateur<ref name="gartner0911">{{pdf}} {{en}} {{Lien web |url=http://www.gartner.com/resources/135800/135824/sonys_approach_to_content_pr_135824.pdf |titre=Sony's Approach to Content Protection Is Short-Sighted |auteur=Ray Wagner, Mike McGuire, Jay Heiser, Peter Firstbrook |date={{date|9|novembre|2005}} |éditeur=[[Gartner]] |citation=''It [XCP] was deliberately designed to be difficult to remove'' |consulté le=20 avril 2010}}</ref>. [[Gartner]] met en avant le cas XCP pour montrer que ce type de DRM n'est pas à envisager par une entreprise car il est inefficace, illégal sous certains aspects et dommageable pour le client<ref name="gartner1811" />. Il apparaît aussi que XCP se base sur des logiciels libres sans en respecter la licence, c'est-à-dire en redistribuant le code source produit<ref name="bba2006" /> : il utilise les [[code source]] de [[DVD Jon]]<ref name="num0909">{{Lien web |url=http://www.numerama.com/magazine/13911-affaire-rootkit-de-sony-des-utilisateurs-obtiennent-un-dedommagement-financier.html |titre=Affaire rootkit de Sony : des utilisateurs obtiennent un dédommagement financier |auteur=Julien L |date=14 septembre 2009 |site=numerama.com |consulté le=30 avril 2010}}</ref>.
XCP se connecte régulièrement aux serveurs de Sony pour envoyer l'identifiant du disque audio que l'utilisateur écoute. Il empêche la lecture du CD par un autre logiciel que celui fourni par Sony, et limite le nombre de copies (gravure et [[Rip (informatique)|rip]]) du disque<ref name="bba2006" />. Une analyse du groupe [[Gartner]] montre que XCP se comporte comme un logiciel malveillant sur plusieurs points : téléchargements cachés, informations concernant son fonctionnement cachées dans la [[CLUF|licence d'utilisation]], absence d'utilitaire de désinstallation et envoi obligatoire d'un mail contenant des informations personnelles et sur le système pour en recevoir un, envoi de certaines informations à des serveurs de Sony sans information préalable à l'utilisateur<ref name="gartner0911">{{pdf}} {{en}} {{Lien web |url=http://www.gartner.com/resources/135800/135824/sonys_approach_to_content_pr_135824.pdf |titre=Sony's Approach to Content Protection Is Short-Sighted |auteur=Ray Wagner, Mike McGuire, Jay Heiser, Peter Firstbrook |date={{date|9|novembre|2005}} |éditeur=[[Gartner]] |citation=''It [XCP] was deliberately designed to be difficult to remove'' |consulté le=20 avril 2010}}</ref>. [[Gartner]] met en avant le cas XCP pour montrer que ce type de DRM n'est pas à envisager par une entreprise car il est inefficace, illégal sous certains aspects et dommageable pour le client<ref name="gartner1811" />. Il apparaît aussi que XCP se base sur des logiciels libres sans en respecter la licence, c'est-à-dire en redistribuant le [[code source]] produit<ref name="bba2006" /> : il utilise le code source de [[DVD Jon]]<ref name="num0909">{{Lien web |url=http://www.numerama.com/magazine/13911-affaire-rootkit-de-sony-des-utilisateurs-obtiennent-un-dedommagement-financier.html |titre=Affaire rootkit de Sony : des utilisateurs obtiennent un dédommagement financier |auteur=Julien L |date=14 septembre 2009 |site=numerama.com |consulté le=30 avril 2010}}</ref>.


Finalement, XCP était présent sur un nombre limité de CD et son impact sur la contrefaçon n'a pas été évalué. Ces affaires ont fait un tort important à Sony, qui a fini par abandonner ces logiciels, aussi bien pour sa respectabilité que financièrement. Dans plusieurs pays, Sony a été poursuivi en justice et obligé de reprendre les CD contenant un rootkit et de dédommager les clients<ref>{{Lien web |url=http://www.itespresso.fr/affaire-rootkit-sony-bmg-regle-son-conflit-avec-la-ftc-17715.html |titre=Affaire rootkit : Sony BMG règle son conflit avec la FTC |année=2007 |mois=février |éditeur=ITespresso.fr}}</ref>. En 2007, aux [[États-Unis]], Sony est condamné à rembourser jusqu'à {{unité|150|$}} par acheteur pour un total de 5,75 millions de dollars<ref name="nt-fournisseur" />. En 2009 en Allemagne, un travailleur indépendant a obtenu gain de cause en touchant {{unité|1200|€}} de dommages et intérêts car le kit avait fait perdre du temps et des données à son entreprise<ref name="num0909" />. Pour ses rootkits, Sony a été nommé aux [[Big Brother Awards]] 2006<ref name="bba2006">{{Lien web |url=http://bigbrotherawards.eu.org/SonyBMG.html |titre=Sony-BMG et son "rootkit" espion |année=2006 |site=bigbrotherawards.eu.org |consulté le=20 avril 2010}}</ref>.
Finalement, XCP était présent sur un nombre limité de CD et son impact sur la contrefaçon n'a pas été évalué. Ces affaires ont fait un tort important à Sony, qui a fini par abandonner ces logiciels, aussi bien pour sa respectabilité que financièrement. Dans plusieurs pays, Sony a été poursuivi en justice et obligé de reprendre les CD contenant un rootkit et de dédommager les clients. En 2007, aux [[États-Unis]], Sony est condamné à rembourser jusqu'à {{unité|150|$}} par acheteur pour un total de {{nombre|5.75|millions}} de dollars<ref name="nt-fournisseur" />. En 2009 en Allemagne, un travailleur indépendant a obtenu gain de cause en touchant {{unité|1200|€}} de dommages et intérêts car le kit avait fait perdre du temps et des données à son entreprise<ref name="num0909" />. Pour ses rootkits, Sony a été nommé aux [[Big Brother Awards]] 2006<ref name="bba2006">{{Lien web |url=http://bigbrotherawards.eu.org/SonyBMG.html |titre=Sony-BMG et son "rootkit" espion |année=2006 |site=bigbrotherawards.eu.org |consulté le=20 avril 2010}}</ref>.


=== Exploitation de la vulnérabilité de LPRng ===
=== Exploitation de la vulnérabilité de LPRng ===
Ligne 157 : Ligne 158 :
Cette attaque a été menée en moins de deux minutes. L'attaquant a identifié la vulnérabilité, puis envoyé une requête spécialement formée sur le [[Port (logiciel)|port]] 515 (qui était le port exposé de cette vulnérabilité) pour permettre l'exécution d'un code arbitraire à distance. Ce code, nommé « SEClpd », a permis d'ouvrir un port en écoute (tcp/3879) sur lequel le pirate est venu se connecter pour déposer une archive (nommée <code>rk.tgz</code>, qui contenait un rootkit) avant de la décompresser et de lancer le script d'installation.
Cette attaque a été menée en moins de deux minutes. L'attaquant a identifié la vulnérabilité, puis envoyé une requête spécialement formée sur le [[Port (logiciel)|port]] 515 (qui était le port exposé de cette vulnérabilité) pour permettre l'exécution d'un code arbitraire à distance. Ce code, nommé « SEClpd », a permis d'ouvrir un port en écoute (tcp/3879) sur lequel le pirate est venu se connecter pour déposer une archive (nommée <code>rk.tgz</code>, qui contenait un rootkit) avant de la décompresser et de lancer le script d'installation.


Ce script a fermé certains services, installé des [[Cheval de Troie (informatique)|chevaux de Troie]], caché des processus, envoyé un fichier contenant les mots de passe du système par mail, et il a même été jusqu'à corriger la faille qui a été exploitée, afin qu'un autre pirate ne vienne pas prendre le contrôle de la machine.
Ce script a fermé certains services, installé des [[Cheval de Troie (informatique)|chevaux de Troie]], caché des processus, envoyé un fichier contenant les mots de passe du système par mail, et il est même allé jusqu'à corriger la faille qui a été exploitée, afin qu'un autre pirate ne vienne pas prendre le contrôle de la machine.


=== Back Orifice ===
=== Back Orifice ===
Ligne 168 : Ligne 169 :


=== TDL-4 ===
=== TDL-4 ===
TDL-4 est un trojan, qui installe un rootkit pour construire un botnet. Le rootkit s'installe sur le [[Master boot record|MBR]] du disque dur ce qui le rend difficile à détecter et à déloger. De plus, il utilise un système de cryptage complexe et un réseau pair-à-pair public ([[Kad]]) pour recevoir ses commandes. Il a la particularité de pouvoir désactiver les infections présentes sur la même machine pour ne pas être découvert par inadvertance, et d'installer ses propres outils de [[DDoS]], de [[spamming]]… Selon [[Kaspersky Lab]], il y aurait 4,5 millions de machines infectées (fin juin 2011)<ref>{{en}} {{Lien web
TDL-4 est un trojan, qui installe un rootkit pour construire un botnet. Le rootkit s'installe sur le [[Master boot record|MBR]] du disque dur ce qui le rend difficile à détecter et à déloger. De plus, il utilise un système de cryptage complexe et un réseau pair-à-pair public (Kad) pour recevoir ses commandes. Il a la particularité de pouvoir désactiver les infections présentes sur la même machine pour ne pas être découvert par inadvertance, et d'installer ses propres outils de [[DDoS]], de [[spamming]]… Selon [[Kaspersky Lab]], il y aurait {{nombre|4.5|millions}} de machines infectées (fin {{date-|juin 2011}})<ref>{{en}} {{Lien web
| url = http://www.computerworld.com/s/article/9218034/Massive_botnet_indestructible_say_researchers
| url = http://www.computerworld.com/s/article/9218034/Massive_botnet_indestructible_say_researchers
| titre = Massive botnet 'indestructible,' say researchers
| titre = Massive botnet 'indestructible,' say researchers
Ligne 222 : Ligne 223 :


Les moyens de protection habituels sont également valables contre les rootkits : {{citation étrangère |lang=en |Do everything so that attacker doesn’t get into your system}}<ref name="rutkowska2" />. [[Durcissement (informatique)|Durcissement du système]]<ref name="CWprotect" />, filtrages applicatifs (type [[modsecurity]]), utilisation de [[Logiciel antivirus|programmes antivirus]]<ref name="CWprotect" />{{,}}<ref name="techtarget4" /> pour minimiser la [[surface d'attaque]] et surveiller en permanence les anomalies et tentatives de contamination, sont bien sûr à mettre en œuvre pour éviter la contamination du système et l'exposition aux [[Exploit (informatique)|exploits]].
Les moyens de protection habituels sont également valables contre les rootkits : {{citation étrangère |lang=en |Do everything so that attacker doesn’t get into your system}}<ref name="rutkowska2" />. [[Durcissement (informatique)|Durcissement du système]]<ref name="CWprotect" />, filtrages applicatifs (type [[modsecurity]]), utilisation de [[Logiciel antivirus|programmes antivirus]]<ref name="CWprotect" />{{,}}<ref name="techtarget4" /> pour minimiser la [[surface d'attaque]] et surveiller en permanence les anomalies et tentatives de contamination, sont bien sûr à mettre en œuvre pour éviter la contamination du système et l'exposition aux [[Exploit (informatique)|exploits]].

=== Outils et logiciels de détection ===
À part quelques cas particuliers, l'industrie de la sécurité informatique a tardé à prendre en compte les rootkits, les virus puis les chevaux de Troie accaparant l'attention des éditeurs. Il existe cependant quelques logiciels de détection et de prévention spécifiques à Windows, tels que Sophos Anti-Rootkit ou AVG Anti-Rootkit. Sous Linux, on peut citer [[rkhunter]] et [[chkrootkit]] ; plusieurs projets open-source existent sur [[Freshmeat]] et [[Sourceforge.net]].

Aujourd'hui, il reste difficile de trouver des outils spécifiques de lutte contre les rootkits, mais leur détection et leur prévention sont de plus en plus intégrées dans les [[Système de prévention d'intrusion|systèmes de prévention d'intrusion]] et même dans les [[Logiciel antivirus|antivirus classiques]], lesquels sont de plus en plus obligés de se transformer en suites de sécurité pour faire face à la diversité des menaces ; ils proposent en effet de plus en plus souvent des protections contre les rootkits.


== Bibliographie ==
== Bibliographie ==
{{légende plume}}
{{légende plume}}
* {{Ouvrage |prénom1=Greg |nom1=Hoglund |lien auteur1=Greg Hoglund |prénom2=James |nom2=Butler |traducteur=Freenet Sofor ltd. |titre=Rootkits |sous-titre=infiltrations du noyau Windows |titre original=Rootkits: Subverting the Windows |lieu=Paris |éditeur=Campus Press |année=2006 |année première édition=2005 |pages totales=338 |isbn=9782744020766 |oclc=145848531}}
* {{Ouvrage |prénom1=Greg |nom1=Hoglund |lien auteur1=Greg Hoglund |prénom2=James |nom2=Butler |traducteur=Freenet Sofor ltd. |titre=Rootkits |sous-titre=infiltrations du noyau Windows |titre original=Rootkits: Subverting the Windows |lieu=Paris |éditeur=Campus Press |année=2006 |année première édition=2005 |pages totales=338 |isbn=978-2-7440-2076-6 |oclc=145848531}}
* {{Ouvrage |langue=en |prénom1=Larry |nom1=Stevenson |prénom2=Nancy |nom2=Altholz |titre=Rootkits for dummies |collection=For dummies |éditeur=Wiley Pub. |lieu=Indianapolis, Ind |année=2007 |pages totales=380 |isbn=9780471917106 |oclc=85824660 |lire en ligne=https://books.google.com/books?id=MTcep7V6heUC |consulté le=19 avril 2010}}
* {{Ouvrage |langue=en |prénom1=Larry |nom1=Stevenson |prénom2=Nancy |nom2=Altholz |titre=Rootkits for dummies |lieu=Indianapolis, Ind |éditeur=Wiley Pub. |collection=For dummies |année=2007 |pages totales=380 |isbn=978-0-471-91710-6 |oclc=85824660 |lire en ligne=https://books.google.com/books?id=MTcep7V6heUC |consulté le=19 avril 2010}}
* {{Ouvrage |langue=en |prénom1=Ric |nom1=Vieler |titre=Professional rootkits |collection=Wrox professional guides |éditeur=Wiley/Wrox |lieu=Indianapolis, IN |année=2007 |pages totales=334 |isbn=9780470101544 |oclc=77116927 |présentation en ligne=https://books.google.com/books?id=OSaVF_jzsJgC}}
* {{Ouvrage |langue=en |prénom1=Ric |nom1=Vieler |titre=Professional rootkits |lieu=Indianapolis, IN |éditeur=Wiley/Wrox |collection=Wrox professional guides |année=2007 |pages totales=334 |isbn=978-0-470-10154-4 |oclc=77116927 |présentation en ligne=https://books.google.com/books?id=OSaVF_jzsJgC}}
* {{Ouvrage |langue=en |prénom1=Bill |nom1=Blunden |titre=The rootkit arsenal |sous-titre=escape and evasion in the dark corners of the system |éditeur=Wordware Pub. |lieu=Plano, Tex |année=2009 |mois=juin |pages totales=908 |isbn=9781598220612 |oclc=297145864}}
* {{Ouvrage |langue=en |prénom1=Bill |nom1=Blunden |titre=The rootkit arsenal |sous-titre=escape and evasion in the dark corners of the system |lieu=Plano, Tex |éditeur=Wordware Pub. |année=2009 |mois=juin |pages totales=908 |isbn=978-1-59822-061-2 |oclc=297145864 |lire en ligne=https://books.google.com/books?id=5Cs46M9FV0sC&printsec=frontcover}}
* {{Ouvrage |prénom1=Joseph |nom1=Kong |titre=Rootkits BSD - Mieux les comprendre pour mieux s'en protéger |collection=Sécurité Informatique |éditeur=CampusPress |lien éditeur=CampusPress |jour=14 |mois=novembre |année=2007 |pages totales=148 |isbn=978-2744022203}}
* {{Ouvrage |langue=fr |langue originale=en |prénom1=Joseph |nom1=Kong |titre=Rootkits BSD : Mieux les comprendre pour mieux s'en protéger |lieu=Paris |éditeur=[[CampusPress]] |collection=Sécurité Informatique |année=2007 |mois=novembre |jour=14 |pages totales=148 |isbn=978-2-7440-2220-3}}
* {{Article |langue=en |id=Chuvakin |prénom1=Anton |nom1=Chuvakin |lien auteur1=:en:Anton Chuvakin |titre=An Overview of Unix Rootkits |périodique=iALERT White Paper |éditeur=iDefense Labs |lieu=Chantilly, VA |mois=février |année=2003 |pages=27 |format=pdf |url texte=http://www.thehackademy.net/madchat/vxdevl/avtech/An%20Overview%20of%20Unix%20Rootkits.pdf |consulté le=30 mars 2010 |= }} {{plume}}
* {{Article |langue=en |id=Chuvakin |prénom1=Anton |nom1=Chuvakin |lien auteur1=:en:Anton Chuvakin |titre=An Overview of Unix Rootkits |périodique=iALERT White Paper |éditeur=iDefense Labs |lieu=Chantilly, VA |mois=février |année=2003 |pages=27 |format=pdf |url texte=http://www.thehackademy.net/madchat/vxdevl/avtech/An%20Overview%20of%20Unix%20Rootkits.pdf |consulté le=30 mars 2010 }} {{plume}}
* {{pdf}} {{Lien web |id=Lacombe |url=http://www.security-labs.org/fred/docs/sstic07-rk-article.pdf |titre=De l’invisibilité des rootkits : application sous Linux |auteur=E. Lacombe, F. Raynal, V. Nicomette |éditeur=CNRS-LAAS/Sogeti ESEC |année=2007 |mois=juin |consulté le=24 septembre 2014 |= }} {{plume}}
* {{pdf}} {{Lien web |id=Lacombe |url=http://www.security-labs.org/fred/docs/sstic07-rk-article.pdf |titre=De l’invisibilité des rootkits : application sous Linux |auteur=E. Lacombe, F. Raynal, V. Nicomette |éditeur=CNRS-LAAS/Sogeti ESEC |année=2007 |mois=juin |consulté le=24 septembre 2014 }} {{plume}}


== Notes et références ==
== Notes et références ==
Ligne 249 : Ligne 245 :
{{Autres projets|commons=Rootkit}}
{{Autres projets|commons=Rootkit}}
=== Articles connexes ===
=== Articles connexes ===

* [[Vulnérabilité (informatique)|Vulnérabilité]], [[Porte dérobée]]
* [[Packet sniffer]]
* [[Liste de logiciels de sécurité informatique]]
* [[Liste de logiciels de sécurité informatique]]
* [[Sirefef]]
* [[Loadable Kernel Module]]
* [[Packet sniffer]]
* [[Vulnérabilité (informatique)]]
* [[Porte dérobée]]


=== Liens externes ===
=== Liens externes ===

* {{en}} [http://www.antirootkit.com/ antirootkit.com, site (ancien) listant de nombreux outils]
{{Liens}}
* [https://www.youtube.com/watch?v=b-cjhegPFVU Vidéo sur le rootkit Trojan.Alureon/Trojan.TDSS]
* [https://www.youtube.com/watch?v=b-cjhegPFVU Vidéo sur le rootkit Trojan.Alureon/Trojan.TDSS]



Dernière version du 14 septembre 2023 à 10:30

Un rootkit Écouter ou simplement « kit » (aussi appelé « outil de dissimulation d'activité »[1], « maliciel furtif »[2], « trousse administrateur pirate »[3]), est un ensemble de techniques mises en œuvre par un ou plusieurs logiciels, dont le but est d'obtenir et de pérenniser un accès (généralement non autorisé) à un ordinateur le plus furtivement possible[4],[C 1],[L 1], à la différence d'autres logiciels malveillants. Le terme peut désigner la technique de dissimulation ou plus généralement un ensemble particulier d'objets informatiques mettant en œuvre cette technique.

Leur furtivité est assurée par plusieurs mécanismes de dissimulation (voir infra) : effacement de traces, masquage de l'activité et des communications, etc. Un rootkit peut s'installer dans un autre logiciel, une bibliothèque ou dans le noyau d'un système d'exploitation. Certains peuvent modifier l'hyperviseur fonctionnant en dessous des systèmes ou le micrologiciel intégré dans un matériel. La plupart des rootkits servent à installer des logiciels malveillants sur les machines où l'accès est obtenu. Certains fournisseurs de matériels informatiques, tel Sony, les utilisent pour s'assurer du respect des conditions d'utilisation de leurs produits par leurs clients. Certains kits ne jouent pas sur la discrétion mais sur le fait qu'enlever le kit serait une opération ardue[L 2].

Pour l'« attaquant », l'utilité d'un rootkit est soit de mettre à disposition des ressources système (temps processeur, connexions réseaux, etc.) sur une, voire plusieurs machines (voir infra), parfois en utilisant la « cible » comme intermédiaire pour une autre attaque ; soit d'espionner, d'accéder aux données stockées ou en transit sur la machine cible[L 2].

Ils sont généralement classés parmi les logiciels malveillants, mais pas toujours[L 1] ; ils peuvent utiliser des « techniques virales » pour se transmettre (par exemple, en utilisant un virus ou un cheval de Troie)[5]. Il existe des outils de détection et des méthodes de protection pour les contrer mais elles ne sont pas totalement efficaces.

Historique[modifier | modifier le code]

En 1989 sont apparus des programmes manipulant les logs système (un log est un « journal des opérations », sorte de livre de bord où sont enregistrées les informations concernant l'état et l'activité d'un ordinateur) pour cacher leur présence. D'autres programmes permettaient de se dissimuler en manipulant les outils servant à vérifier les informations sur les utilisateurs, telles que les commandes who, w, ou last[6], et ainsi être invisibles pour les administrateurs des machines.

Les premiers rootkits sont apparus en 1994 sur Linux et SunOS[6],[C 1] ; en 1998, sous Windows, avec le célèbre Back Orifice (voir infra) ; et en 2004 apparaissait le premier rootkit sous Mac OS X, WeaponX[7].

Les analyses et les recherches sur les rootkits ont commencé à partir de 1997, avec la publication par le webzine Phrack d'un cheval de Troie détournant une partie du noyau Linux (le LKM, qui permet d'ajouter des modules au noyau pendant son fonctionnement)[C 1] et ouvrant la porte aux techniques des rootkits actuels. Depuis, de nombreuses recherches et analyses ont été conduites : Phrack et plusieurs autres sites Web[8] publient régulièrement des travaux sur les rootkits. Certains projets se sont spécialisés dans ce domaine, comme chkrootkit débuté en 1997, dédié au développement d’un outil de détection de rootkits pour les plates-formes Linux, * BSD (FreeBSD, OpenBSD…), Solaris et HP-UX.

La mise au jour de rootkits passe par leur publication ou se fait grâce aux honeypots, des machines sciemment vulnérables utilisées par les professionnels de la sécurité pour analyser le mode opératoire d'un attaquant. Les résultats obtenus sont régulièrement évoqués lors de conférences sur la sécurité, comme la conférence Black Hat.

Certains rootkits peuvent être légitimes, pour permettre aux administrateurs de reprendre le contrôle d'une machine défaillante, pour suivre un ordinateur volé[9], ou dans certains outils comme des émulateurs de disque (DAEMON Tools, Alcohol 120%)[10]. Mais le terme a perdu ce sens historique et évoque essentiellement des outils à finalité malveillante.

Mode opératoire[modifier | modifier le code]

Contamination[modifier | modifier le code]

La première phase d'action d'un rootkit sert généralement à trouver un hôte vulnérable par balayage d'un ensemble d'adresses IP ou grâce à une base de données d'IP vulnérables[C 2].

L'étape suivante consiste à chercher à obtenir un accès au système, sans forcément que celui-ci soit un accès privilégié (ou en mode administrateur). Il existe trois manières de contaminer un système, en suivant les techniques habituelles des programmes malveillants.

Il est possible de mettre en œuvre un exploit, c'est-à-dire profiter d'une vulnérabilité de sécurité connue ou non, à n'importe quel niveau du système (application, système d'exploitation, BIOS, etc.).

Cette mise en œuvre peut être le fait d'un virus, mais elle résulte aussi, souvent, de botnets qui réalisent des scans de machines afin d'identifier et d'exploiter les failles utiles à l'attaque.

Même s'il n'est pas un virus à proprement parler, un rootkit peut utiliser des techniques virales pour se transmettre, notamment via un cheval de Troie. Un virus peut avoir pour objet de répandre des rootkits sur les machines infectées. A contrario, un virus peut aussi utiliser les techniques utilisées par des rootkits pour parfaire sa dissimulation[11].

Enfin, l’attaque par force brute permet d'accéder au système, en profitant de la faiblesse des mots de passe mis en œuvre par certains utilisateurs. À ces fins, il suffit de tester les mots de passe les plus courants.

Des outils, nommés « autorooters », réunissent ces opérations de scan et d'exploit en une seule opération, ce qui peut faciliter la tâche de script kiddies[C 3] en laissant toutefois bon nombre de traces sur le réseau.

Modification du système et dissimulation[modifier | modifier le code]

Une fois la contamination effectuée et l'accès obtenu, la phase suivante consiste à installer, au moyen de son script d'installation, les objets et outils nécessaires au rootkit[C 2] ; c'est-à-dire les objets (programmes, bibliothèques) permettant la mise en place de la charge utile du rootkit, s'ils n'ont pas pu être installés durant la phase de contamination, ainsi que les outils et les modifications nécessaires à la dissimulation[L 3].

L'opération consiste en l'ouverture de portes dérobées, afin de permettre le contrôle des machines (pc, serveurs, etc.), et, d'y installer la charge utile. Le tout, afin de pérenniser l'accès au système[4],[12], ceci constitue une technique très fréquemment utilisée.

Dissimulation[modifier | modifier le code]

Le rootkit cherche à dissimuler son activité pour minimiser le risque qu'on le découvre, afin de profiter le plus longtemps possible de l'accès frauduleux, mais aussi pour rendre sa désinstallation difficile[L 2]. Il va notamment dissimuler ses propres fichiers, les autres fichiers utilisés par l'attaquant, les processus qu'il exécute et les connexions qu'il va ouvrir[C 4]. Cette faculté de dissimulation le différencie des virus, qui cherchent principalement à se répandre, bien que ces deux fonctions soient parfois jumelées pour une efficacité supérieure. Plusieurs méthodes de dissimulation peuvent être combinées.

La dissimulation de processus informatiques ou de fichiers permet de cacher l'activité du rootkit. Sous Windows, cela peut être réalisé en modifiant certaines clés de la base de registre ; sous systèmes Unix l'attaquant peut remplacer la commande ls pour qu'elle n'affiche pas certains dossiers[C 5]. Une fois en place, le rootkit peut supprimer ses propres fichiers d'installation pour éviter qu'il ne soit reconnu par une recherche de fichiers[C 2].

Certains objets exécutables ou certaines bibliothèques sont remplacés par des programmes malveillants contrôlables à distance (chevaux de Troie), tout en conservant leur horodatage[C 5]. Il est également possible de détourner certains appels aux tables de travail utilisées par le système[L 4] par hooking, de manière que des programmes d'apparence légitime exécutent les fonctions voulues par l'attaquant.

L'obtention des droits supérieurs par élévation des privilèges est également fréquemment rencontrée : cela permet notamment de désactiver les mécanismes de défense (comme un anti-virus) ou d'agir sur des objets de haut niveau de privilèges (pilotes de périphériques, noyau du système, etc.) Un rootkit va ainsi pouvoir écouter les transactions sur le réseau pour trouver des mots de passe non chiffrés (comme des connexions ftp) ou détourner une connexion ssh en interceptant l'appel système où le mot de passe n'est pas encore chiffré[C 6].

Le rootkit tente de ne pas apparaître dans les fichiers log[C 4]. Pour cela, il efface certaines entrées des logs ou, de manière beaucoup plus sophistiquée, utilisera des techniques de type « Stealth by Design » (« furtif par conception »)[13], à savoir implémenter à l'intérieur du rootkit des fonctions système afin de ne pas avoir à appeler les fonctions standards du système d'exploitation et ainsi éviter l'enregistrement d'événements système suspects[C 4]. Il peut ainsi désactiver certains daemons et l'historique des shells[C 2].

Enfin, certains rootkits peuvent se charger intégralement en mémoire, ne laissant ainsi aucune trace sur les périphériques de stockage de la machine[L 5].

En revanche, certaines activités ne pourront pas facilement être camouflées, notamment ce qui concerne la charge utile qui engendre de la charge réseau ou processeur (voir infra) ; l'effort de dissimulation se portera alors sur les communications entre le rootkit et l'attaquant pour protéger et maintenir l'accès frauduleux.

Maintien de l'accès[modifier | modifier le code]

Un rootkit doit pouvoir être manipulé à distance par un attaquant. Celui-ci cherche donc souvent à maintenir un shell (ou « interpréteur de commandes ») disponible idéalement à n'importe quel moment (ou au moins durant l'installation du rootkit), en remplaçant des commandes comme ping ou xterm. Généralement, l'attaquant installe plusieurs de ces portes dérobées au cas où l'une viendrait à être découverte et supprimée[C 7].

L'accès distant au kit peut se faire par l'intermédiaire d'une connexion TCP, comme telnet ou ssh (qui peut être renversée, c'est-à-dire que c'est la machine infectée qui va chercher à rentrer en contact avec l'attaquant), UDP ou ICMP. Il existe aussi des méthodes plus complexes mais plus discrètes : port knocking, faux paquet TCP contenant une commande cachée, se faire passer pour une autre machine[C 7], canaux cachés, etc. Au besoin, les scripts de démarrage seront modifiés pour que les services nécessaires au rootkit soient disponibles après chaque redémarrage de la machine[C 2].

Pour que l'accès à la machine ne soit pas détourné par un autre attaquant, celui-ci peut corriger les failles du système infecté : celles qui lui ont permis de rentrer, voire l'ensemble des failles connues.

Mise en place de la charge utile[modifier | modifier le code]

Un botnet permet d'avoir un accès sur des centaines de machines.

La charge utile est la partie active du rootkit (et de tout programme malveillant en général), dont le rôle est d'accomplir la (ou les) tâche(s) assignée(s).

Cette charge utile permet d'avoir accès aux ressources de la machine infectée[L 2], et notamment le processeur, pour décrypter des mots de passe, pour effectuer des calculs distribués à des fins malveillantes ou pour mettre en œuvre (ou détourner l'usage légitime) des applications comme un serveur de messagerie afin d'envoyer des mails (pourriel ou spam) en quantité. Les ressources réseaux intéressent également les attaquants, la machine pouvant alors servir de base pour d'autres attaques (DDoS[14], exploits) ou pour inspecter, sniffer l'activité réseau.

Le remplacement du procédé de connexion (comme /bin/login sous les Unix) peut aussi fournir soit un accès de type porte dérobée (voir infra), soit un moyen de récupérer les informations d'authentification des utilisateurs de la machine. La compromission de pilotes de périphériques permet également d'installer des enregistreurs de frappe ou keyloggers (entre autres), afin de récupérer, en complément de l'activité réseau, des traces et des informations personnelles ou confidentielles, comme le seraient des données bancaires ou de connexion.

La machine infectée peut aussi devenir le point de départ pour d'autres attaques, sur internet, ou sur l'intranet, comme un déni de service[C 6]. La prise de contrôle de la machine offre la possibilité de constituer un réseau de type botnet (la machine infectée devenant alors une machine zombie, comme dans le cas du botnet Srizbi[15]), ou d'accéder à d'autres machines, par rebond.

Niveau de privilège[modifier | modifier le code]

Bien que le terme ait souvent désigné des outils ayant la faculté d'obtenir un niveau de privilège de type administrateur (utilisateur root) sur les systèmes Unix, un rootkit ne cherche pas obligatoirement à obtenir un tel accès sur une machine et ne nécessite pas non plus d'accès administrateur pour s'installer, fonctionner et se dissimuler[16]. Le programme malveillant « Haxdoor »[17], même s'il employait des techniques de type noyau[18] pour parfaire sa dissimulation, écoutait les communications sous Windows en mode utilisateur[19] : en interceptant les API de haut niveau, il recueillait des données confidentielles avant leur chiffrement.

Cependant, l'élévation de privilège est souvent nécessaire pour que le camouflage soit efficace : le rootkit peut utiliser certains exploits afin de parfaire sa dissimulation en opérant à un niveau de privilège très élevé, pour atteindre des bibliothèques du système, des éléments du noyau, pour désactiver les défenses du système[L 4], etc.

Types[modifier | modifier le code]

Un rootkit peut intervenir à un ou plusieurs niveaux du système parmi les cinq suivants : micrologiciel, hyperviseur, noyau, bibliothèque ou applicatif[C 8].

Niveau micrologiciel/matériel[modifier | modifier le code]

Il est possible d'installer des rootkits directement au niveau du micrologiciel (ou firmware). De nombreux produits proposent désormais des mémoires flash qui peuvent être utilisées pour injecter durablement du code[20] en détournant par exemple l'usage d'un module de persistance souvent implanté dans le BIOS de certains systèmes.

Un outil légitime utilise cette technique : LoJack, d'Absolute Software[9], qui permet de suivre un ordinateur à l'insu de l'utilisateur pour retrouver un ordinateur portable en cas de vol. Ce code reste en place après un formatage du disque dur, voire après un flashage du BIOS[21] si le module de persistance est présent et actif. Tout périphérique disposant d'un tel type de mémoire est donc potentiellement vulnérable.

Une piste évoquée pour contrer ce genre de rootkit serait d'interdire l'écriture du BIOS, grâce à un cavalier sur la carte mère ou par l'emploi d'un mot de passe, ou d'utiliser des EFI à la place du BIOS[22], mais cette méthode reste à tester et à confirmer[23].

En , un chercheur français, Guillaume Delugré, publie une méthode pour remplacer le firmware d'une carte réseau très répandue sur le marché[24]. Le rootkit s'exécute ainsi directement sur la carte, et donc sans modifier l'OS. L'usage des canaux DMA permet alors de manipuler l'OS.

Niveau hyperviseur[modifier | modifier le code]

Ce type de rootkit se comporte comme un hyperviseur natif, après s'être installé et avoir modifié la séquence de démarrage, pour être lancé en tant qu'hyperviseur à l'initialisation de la machine infectée. Le système d'exploitation original devient alors un hôte (invité) du rootkit, lequel peut intercepter tout appel au matériel. Il devient quasiment impossible à détecter depuis le système original.

Une étude conjointe de chercheurs de l'université du Michigan et de Microsoft a démontré la possibilité d'un tel type de rootkit, qu'ils ont baptisé « virtual-machine based rootkit » (VMBR)[25]. Ils ont pu l'installer sur un système Windows XP et sur un système Linux. Les parades proposées sont la sécurisation du boot, le démarrage à partir d'un média vérifié et contrôlé (réseau, CD-ROM, clé USB, etc.) ou l'emploi d'un moniteur de machine virtuelle sécurisé.

Blue Pill est un autre exemple de rootkit utilisant cette technique. En , Zhi Wang et Xuxian Jiang, deux chercheurs de l'Université de Caroline du Nord, publient « HyperSafe »[26], un outil permettant de sécuriser BitVisor et Xen — mais portable sur les hyperviseurs de type 1 — contre entre autres Blue Pill[27] : le principe est d'empêcher l'injection et l'exécution arbitraire de code par overflow (non-bypassable memory lockdown) et de protéger les pointeurs de fonction pour empêcher les attaques par hooking.

Niveau noyau[modifier | modifier le code]

Certains rootkits s'implantent dans les couches du noyau du système d'exploitation : soit dans le noyau lui-même, soit dans des objets exécutés avec un niveau de privilèges équivalent à celui du noyau.

Sous GNU/Linux, il s'agit souvent de modules pouvant être chargés par le noyau, et sous Windows de pilotes. Avec un tel niveau de privilèges, la détection et l'éradication du rootkit n'est souvent possible que de manière externe au système en redémarrant depuis un système sain, installé sur CD, sur une clé USB ou par réseau.

Le type le plus courant, depuis 1997, de rootkit noyau s'attaque au LKM des noyaux Unix. Le LKM a naturellement la possibilité de modifier certains appels système ; c'est ce qui rend le noyau modulaire. S'il est compromis par un kit, il peut remplacer la commande « ouvrir le fichier foo » – open() – par « ouvrir le fichier foo sauf s'il s'appelle rootkit », rendant les fichiers du rootkit invisibles pour l'utilisateur[C 9]. Adore est un de ceux-là : il remplace entre autres les appels à fork(), open() et write()[28].

A contrario, SucKIT, publié dans l'article 0x07 du Phrack no 58[29], est un rootkit noyau ne nécessitant pas de LKM[30] (il passe par le périphérique /dev/kmem).

Les rootkits noyau sont dangereux à la fois parce qu'ils ont acquis des privilèges élevés (il est alors plus facile de leurrer tout logiciel de protection), mais aussi par les instabilités qu'ils peuvent causer sur le système infecté comme cela a été le cas lors de la correction de la vulnérabilité MS10-015[31], où des écrans bleus sont apparus en raison d'un conflit entre le fonctionnement du rootkit Alureon et la correction de cette vulnérabilité[32].

Niveau bibliothèque[modifier | modifier le code]

À ce niveau, le rootkit détourne l'utilisation de bibliothèques légitimes du système d'exploitation.

Plusieurs techniques peuvent être utilisées. On peut patcher une bibliothèque, c'est-à-dire lui ajouter du code. On peut aussi détourner l'appel d'un objet – par hooking, (voir infra) –, ce qui revient à appeler une « autre fonction » puis à revenir à la fonction initiale, pour que le détournement soit transparent du point de vue fonctionnel. Enfin, on peut remplacer des appels système par du code malveillant.

Ce type de rootkit est assez fréquent, mais il est aussi le plus facile à contrer, notamment par un contrôle d'intégrité des fichiers essentiels, en surveillant leur empreinte grâce à une fonction de hachage ; par une détection de signature du programme malveillant ; ou par exemple, par un examen des hooks au moyen d'outils comme unhide sous GNU/Linux ou HijackThis sous Windows.

Un exemple connu de ce type de kit est T0rn 8 : il charge sa propre bibliothèque (libproc.a) qui va remplacer la bibliothèque standard faisant l'intermédiaire entre les informations système – /proc – et l'espace utilisateur. Ainsi, le kit peut filtrer les informations qui transitent et retirer tout ce qui pourrait révéler la présence du kit, sans toucher aux exécutables systèmes (ps, ls, etc.)[C 10]

Niveau applicatif[modifier | modifier le code]

Un rootkit applicatif implante des programmes malveillants de type cheval de Troie, au niveau utilisateur. Ces programmes prennent la place de programmes légitimes – usurpation d'identité – ou en modifient le comportement, afin de prendre le contrôle des ressources accessibles par ces programmes.

Par exemple, une application de traitement de texte peut être remplacée par une version malicieuse et donner accès aux fonctions permettant de lire et d'écrire un fichier dans une partie de l'arborescence. Plus grave, des applications comme ls, ps, grep peuvent être remplacées[C 5].

Cette méthode n'est pas efficace si ces programmes sont régulièrement recompilés à partir des sources[L 6].

Exemples[modifier | modifier le code]

Rootkits Sony[modifier | modifier le code]

À deux reprises, Sony a été confronté à la présence masquée de rootkits dans ses produits : dans ses clés usb biométriques et dans son composant de gestion numérique des droits (DRM)[33],[34], nommé « XCP » (pour « Extended Copy Protection »), présent sur 52 CD audio (dont certains de Céline Dion et de Sarah McLachlan). L'entreprise cherchait à réduire le nombre de copies illégales de ses disques en limitant le droit de copie et en traçant la circulation des CD par internet.

Le kit XCP, présent sur quatre millions de CD produits en 2005[35], est parfois instable et possède lui-même des failles qui peuvent être exploitées, permettant notamment de tricher sous World of Warcraft ou de créer un virus l'utilisant[36]. En revanche, XCP peut être facilement déjoué en maquillant la deuxième piste du CD[37] : la piste n'étant plus lisible, le rootkit ne peut pas s'activer. De plus, il ne fonctionne que sur les systèmes d'exploitation de type Windows[38].

XCP se connecte régulièrement aux serveurs de Sony pour envoyer l'identifiant du disque audio que l'utilisateur écoute. Il empêche la lecture du CD par un autre logiciel que celui fourni par Sony, et limite le nombre de copies (gravure et rip) du disque[39]. Une analyse du groupe Gartner montre que XCP se comporte comme un logiciel malveillant sur plusieurs points : téléchargements cachés, informations concernant son fonctionnement cachées dans la licence d'utilisation, absence d'utilitaire de désinstallation et envoi obligatoire d'un mail contenant des informations personnelles et sur le système pour en recevoir un, envoi de certaines informations à des serveurs de Sony sans information préalable à l'utilisateur[40]. Gartner met en avant le cas XCP pour montrer que ce type de DRM n'est pas à envisager par une entreprise car il est inefficace, illégal sous certains aspects et dommageable pour le client[37]. Il apparaît aussi que XCP se base sur des logiciels libres sans en respecter la licence, c'est-à-dire en redistribuant le code source produit[39] : il utilise le code source de DVD Jon[41].

Finalement, XCP était présent sur un nombre limité de CD et son impact sur la contrefaçon n'a pas été évalué. Ces affaires ont fait un tort important à Sony, qui a fini par abandonner ces logiciels, aussi bien pour sa respectabilité que financièrement. Dans plusieurs pays, Sony a été poursuivi en justice et obligé de reprendre les CD contenant un rootkit et de dédommager les clients. En 2007, aux États-Unis, Sony est condamné à rembourser jusqu'à 150 $ par acheteur pour un total de 5,75 millions de dollars[35]. En 2009 en Allemagne, un travailleur indépendant a obtenu gain de cause en touchant 1 200  de dommages et intérêts car le kit avait fait perdre du temps et des données à son entreprise[41]. Pour ses rootkits, Sony a été nommé aux Big Brother Awards 2006[39].

Exploitation de la vulnérabilité de LPRng[modifier | modifier le code]

Le CERTA (Centre d'Expertise Gouvernemental de Réponse et de Traitement des Attaques informatiques de l'État français) a publié, dans une note d'information, l'analyse d'une attaque ayant permis d'installer un rootkit (non identifié, mais dont les caractéristiques semblent correspondre au rootkit « Rk »[C 11]), n'utilisant à l'origine qu'une seule faille, laquelle concernait le module d'impression LPRng présents dans certains systèmes Linux (faille répertoriée CERTA-2000-AVI-087[42]). Cette faille, qui aurait pu être corrigée soit par la mise à jour du système, soit par le blocage d'un port spécifique grâce à un pare-feu[43], permettait l'exécution à distance de code arbitraire.

Cette attaque a été menée en moins de deux minutes. L'attaquant a identifié la vulnérabilité, puis envoyé une requête spécialement formée sur le port 515 (qui était le port exposé de cette vulnérabilité) pour permettre l'exécution d'un code arbitraire à distance. Ce code, nommé « SEClpd », a permis d'ouvrir un port en écoute (tcp/3879) sur lequel le pirate est venu se connecter pour déposer une archive (nommée rk.tgz, qui contenait un rootkit) avant de la décompresser et de lancer le script d'installation.

Ce script a fermé certains services, installé des chevaux de Troie, caché des processus, envoyé un fichier contenant les mots de passe du système par mail, et il est même allé jusqu'à corriger la faille qui a été exploitée, afin qu'un autre pirate ne vienne pas prendre le contrôle de la machine.

Back Orifice[modifier | modifier le code]

Back Orifice est un rootkit client-serveur développé à partir de 1998 par le Cult of the Dead Cow, un groupe de hackers. Il permet de prendre le contrôle des ordinateurs utilisant Windows 95/98, puis NT[44]. Le CDC revendique plusieurs centaines de milliers de téléchargements de la version de base « BO » et de la version améliorée « BO2K » en quelques semaines[45]. Back Orifice est certainement un des rootkits qui s'est le plus répandu, même si aujourd'hui ses cibles se sont raréfiées.

L'altération de la machine cible se fait en exécutant un programme qui va se charger à chaque démarrage de la machine. Cette altération est possible car les systèmes d'exploitation Windows 95/98 n'offrent pas de mécanismes de sécurité basiques tels que le chiffrement des mots de passe stockés (ils sont stockés en clair), ou le contrôle du droit d'exécution d'un programme (tout le monde peut exécuter n'importe quelle application, et même reconfigurer le système). Le client, utilisable sous Windows et Unix, est graphique et permet même à un non-initié de contrôler une machine infectée[44].

La désinstallation du kit est simple : il suffit de supprimer l'exécutable résident et de retirer une clé de la base de registre. La plupart des antivirus le reconnaissent comme un virus.

TDL-4[modifier | modifier le code]

TDL-4 est un trojan, qui installe un rootkit pour construire un botnet. Le rootkit s'installe sur le MBR du disque dur ce qui le rend difficile à détecter et à déloger. De plus, il utilise un système de cryptage complexe et un réseau pair-à-pair public (Kad) pour recevoir ses commandes. Il a la particularité de pouvoir désactiver les infections présentes sur la même machine pour ne pas être découvert par inadvertance, et d'installer ses propres outils de DDoS, de spamming… Selon Kaspersky Lab, il y aurait 4,5 millions de machines infectées (fin )[46].

Prévention[modifier | modifier le code]

Moyens de détection[modifier | modifier le code]

La mise en œuvre d'une détection peut, selon le type de rootkit, demander un examen du système ou d'un périphérique suspect en mode « inactif » (démarrage à partir d'un système de secours ou d'un système réputé sain). Plusieurs méthodes existent.

La recherche d'objets cachés (tels que des processus informatiques, des clés de registre, des fichiers, etc.) est essentielle. Des outils comme unhide sous Linux peuvent révéler les processus cachés. Sous Windows, des outils comme RootkitRevealer recherchent les fichiers cachés en listant les fichiers via l'API normale de Windows puis en comparant cette liste à une lecture physique du disque ; les différences entre les deux sont alors repérées comme suspectes, à l'exception des fichiers légitimes connus de Windows, tels que les fichiers de métadonnées de NTFS comme $MFT ou $Secure[47].

Le calcul régulier des empreintes de fichiers sensibles permet de détecter une modification inattendue.

Le contrôle de l'intégrité des fichiers consiste à calculer, pour chaque fichier sensible (bibliothèque, commande système, etc.), une empreinte[13]. Toute modification inattendue de cette empreinte indique une modification du fichier, et donc une contamination potentielle. Cependant, tout système subit des modifications légitimes lors des mises à jour ; idéalement, l'outil de contrôle a la possibilité d'accéder à une base de référence de ces sommes de contrôles, selon la version du système utilisée (rkhunter par exemple).

La détection de signatures spécifiques est le procédé classique d'analyse de signature, comme cela se fait pour les virus : on cherche à retrouver dans le système la trace d'une infection, soit directement (signature des objets du rootkit), soit par le vecteur d'infection (virus utilisé par le rootkit)[13].

L’analyse des appels systèmes, des tables d'interruption[48],[49], et de manière générale, des tables de travail utilisées par le système, au moyen d'outils spécifiques (des logiciels anti-espion comme HijackThis), permet de voir si ces appels ont été détournés ou non, par exemple en comparant ce qui est chargé en mémoire avec les données brutes de bas niveau (ce qui est écrit sur le disque).

Le hooking consiste à détourner un appel de fonction légitime par un autre qui contient du code malveillant.

On peut aussi s'intéresser à la charge du système. Du point de vue du processeur et de l'activité applicative, une surveillance continue peut mettre en évidence une surcharge, à partir du moment de la contamination. Il s'agit essentiellement d'une analyse de la charge habituelle de la machine, comme le nombre de mails sortants ou l'occupation du processeur. Toute modification (en surcharge) sans cause apparente est suspecte, mais elle nécessite une analyse complémentaire pour écarter les causes légitimes (mise à jour du système, installation de logiciels, etc.)

De la même manière, l’analyse des flux réseau[50] permet de détecter une surcharge anormale. Mais il convient également de surveiller une utilisation de ports logiciels inhabituels grâce aux traces issues d'un pare-feu ou grâce à un outil spécialisé. Il est également possible de faire une recherche des ports ouverts et cachés, en comparant ce que connaît le système avec ce qui est effectivement ouvert, grâce à des outils d'investigation comme unhide-tcp. Toute différence peut être considérée comme anormale. Il existe cependant des moyens de dissimulation réseau, comme de la stéganographie ou l'utilisation de canaux cachés, qui rend la détection directe impossible, et nécessite une analyse statistique qui n'est pas forcément déterminante[51].

L’analyse automatisée des logs système[52] s'appuie sur le principe de corrélation, avec des outils de type HIDS qui disposent de règles paramétrables[53] pour repérer les événements anormaux et mettre en relation des événements systèmes distincts, sans rapport apparent ou épars dans le temps.

Le site du Cert-IST propose régulièrement des informations sur les rootkits et les logiciels malicieux en général[54].

Moyens de protection et de prévention[modifier | modifier le code]

Les moyens de détection peuvent également servir à la prévention, même si celle-ci sera toujours postérieure à la contamination. D'autres mesures en amont peuvent rendre difficile l'installation d'un rootkit[55].

La correction des failles par mise à jour du système d'exploitation permet de réduire la surface d'exposition du système en limitant le temps pendant lequel une faille est présente sur le système[56] et dans les applications[52], afin de prévenir les exploits pouvant être utilisés pour la contamination.

L’utilisation d'un pare-feu, qui fait partie des bonnes pratiques dans le domaine de la sécurité informatique, se révèle efficace dans le cas des rootkits[49],[52],[56] car cela empêche les communications inattendues (téléchargements de logiciel, dialogue avec un centre de contrôle et de commande d'un botnet, etc.) dont ont besoin les rootkits.

Il est possible de désactiver le système de chargement de modules en rendant le noyau statique, ce qui protège contre les rootkits qui s'installent en chargeant un module ; certains rootkits arrivent cependant à contourner cela en reconnaissant l'empreinte du module directement dans la mémoire[C 9].

De même, pour renforcer la robustesse des bibliothèques et empêcher le hooking, il est possible de compiler statiquement les bibliothèques[C 10].

La complexité d'un mot de passe augmente exponentiellement lorsque sa taille et le nombre de caractères différents qu'il utilise augmentent. Un mot de passe complexe sera plus long à deviner dans une attaque par force brute.

Des systèmes de prévention d'intrusion[52], sous forme de logiciel ou de matériel, répondent dès qu'une intrusion est détectée, en bloquant des ports ou en interdisant la communication avec une source (adresse IP) douteuse, ou toute autre action appropriée. La détection sera d'autant meilleure que l'outil utilisé sera externe au système examiné, puisque certains rootkits peuvent atteindre des parties de très bas niveau dans le système, jusqu'au BIOS. Un des avantages de ces outils est l'automatisation des tâches de surveillance[13].

Des outils spécialisés de contrôle d'intégrité des fichiers peuvent produire des alertes lors de modifications inattendues. Cependant, ce contrôle à lui seul est insuffisant si d'autres mesures préventives ne sont pas mises en œuvre, si aucune réponse du système n'est déclenchée ou si ces différences ne sont pas analysées.

Le renforcement de la robustesse des mots de passe est une autre des bonnes pratiques de sécurité informatique qui élimine une des sources principales de contamination. Des éléments d'authentification triviaux sont des portes ouvertes pour tout type d'attaque informatique.

Le démarrage du système à partir d'une image saine, contrôlée et réputée valide du système d'exploitation, via un support fixe (comme un LiveCD, une clé USB) ou par réseau, permet de s'assurer que les éléments logiciels principaux du système ne sont pas compromis, puisqu'à chaque redémarrage de la machine concernée, une version valide de ces objets est chargée. Un système corrompu serait donc remis en état au redémarrage (sauf dans le cas de rootkit ayant infecté un plus bas niveau, comme le BIOS).

Les moyens de protection habituels sont également valables contre les rootkits : « Do everything so that attacker doesn’t get into your system »[51]. Durcissement du système[49], filtrages applicatifs (type modsecurity), utilisation de programmes antivirus[49],[56] pour minimiser la surface d'attaque et surveiller en permanence les anomalies et tentatives de contamination, sont bien sûr à mettre en œuvre pour éviter la contamination du système et l'exposition aux exploits.

Bibliographie[modifier | modifier le code]

Document utilisé pour la rédaction de l’article : document utilisé comme source pour la rédaction de cet article.

Notes et références[modifier | modifier le code]

  1. a b et c Chuvakin (2003), p. 3 : Executive Summary
  2. a b c d et e Chuvakin (2003), p. 14 : Usage
  3. Chuvakin (2003), p. 25 : End Notes
  4. a b et c Chuvakin (2003), p. 8-9 : Concealing Evidence
  5. a b et c Chuvakin (2003), p. 10-12 : Binary Rootkits
  6. a et b Chuvakin (2003), p. 7-8 : Attack Other Systems
  7. a et b Chuvakin (2003), p. 4-7 : Maintain Access
  8. Chuvakin (2003), p. 10 : Types of Rootkits
  9. a et b Chuvakin (2003), p. 12-13 : Kernel Rootkits
  10. a et b Chuvakin (2003), p. 13-14 : Library Kits
  11. Chuvakin (2003), p. 22 : Rk: Hidden but Not Enough
  1. a et b Lacombe (2007), Définition d’un rootkit et comparaison avec les autres codes malicieux, p. 8.
  2. a b c et d Lacombe (2007), Vers l’évaluation d’un rootkit, p. 14
  3. Lacombe (2007), L’architecture fonctionnelle d’un rootkit, p. 9
  4. a et b Lacombe (2007)
  5. Lacombe (2007), La communication avec le rootkit, p. 11
  6. Lacombe (2007), Évolution des rootkits, p. 4
  • Autres sources
  1. « Note d'information du CERTA, Objet : Terminologie d'usage au CERTA », Centre d'expertise gouvernemental de réponse et de traitement des attaques informatiques (consulté le ).
  2. « Termium », Bureau de la traduction du gouvernement du Canada (consulté le ).
  3. « Grand Dictionnaire terminologique », Office québécois de la langue française (consulté le ).
  4. a et b (en) « What is rootkit? », WhatIs.com (consulté le ).
  5. Un rootkit falsifie le noyau du système d'exploitation, mais il n'est pas un vecteur de diffusion. Voir à ce sujet la section Mode opératoire.
  6. a et b (en) [PDF] « Linux kernel rootkits: protecting the system's « Ring-Zero » » [archive du ], SANS Institute, (consulté le ), p. 10,11
  7. (en) ghalen and wowie, « Developing Mac OSX kernel rootkits », Phrack Magazine,
  8. (en) Daniel B. Cid, « RootCheck », sur ossec.net, (consulté le )
  9. a et b [PDF] (en) « FAQ LoJack for Laptops », AbsoluteSoftware
  10. « avg.com, foire aux questions, n°2346 », AVG Technologies
  11. Alisa Shevchenko, « Évolution des rootkits », sur viruslist.com, Kaspersky Lab, (consulté le )
  12. (en) « Concept of rootkit »
  13. a b c et d [ppt] (en) J. Rutkowska, « Rootkits vs. Stealth by Design Malware », invisiblethings.org,
  14. « Le déni de service politique se banalise en Asie du Sud-Est », ZDNet.fr,
  15. (en) « Botnet Spams 60 Billion Emails A Day », CyberInsecure.com,
  16. (en) B. Cogswell, M. Russinovich, « RootkitRevealer », Microsoft (Windows Sysinternals),
  17. (en) « Haxdoor », F-Secure
  18. (en) « Rootkit Pharming », F-Secure,
  19. « Les rootkits et la fraude bancaire », Cert-IST,
  20. (en) Anibal Sacco et Alfredo Ortega, « Persistent BIOS Infection », Phrack Magazine,
  21. (en) « New BIOS Virus Withstands HDD Wipes », Tom's Hardware,
  22. « Ils ont inventé le virus de BIOS », presence-pc.com,
  23. (en) « New Bios attack renders anti-virus useless », v3.co.uk,
  24. (en) Guillaume Delugré, « Presentation at Hack.lu : Reversing the Broacom NetExtreme's firmware », Sogeti ESEC Lab,
  25. [PDF] (en) Samuel T. King, Peter M. Chen, Yi-Min Wang, Chad Verbowski, Helen J. Wang, Jacob R. Lorch, « SubVirt: Implementing malware with virtual machines »,
  26. Zhi Wang, Xuxian Jiang, HyperSafe: A Lightweight Approach to Provide Lifetime Hypervisor Control-Flow Integrity, 31e conférence IEEE Symposium on Security and Privacy, Oakland, CA, mai 2010
  27. Joab Jackson, « Researchers to cure Blue Pill virtualization attacks », IDG News Service, (consulté le )
  28. (en) Steve Terrell, « Discovery, Eradication and Analysis of an attack on an open system: Welcome to the Jungle », SANS Institute (InfoSec Reading Room),‎ , p. 25 (lire en ligne [PDF])
  29. (en) sd et devik, « Linux on-the-fly kernel patching without LKM », Phrack, no 58,‎ (lire en ligne)
  30. Rainer Wichmann, « Linux Kernel Rootkits », (consulté le )
  31. « Bulletin de sécurité MS10-015 », Microsoft,
  32. « Microsoft : le rootkit Alureon responsable de BSOD sur XP », pcinpact.com,
  33. « Un rootkit dans les DRM de Sony », generation-nt.com (GNT Media),
  34. « Sony intègre puis retire un rootkit de ses CD audio protégés », secuobs.com,
  35. a et b Cédric B, « Sony BMG poursuit son fournisseur de rootkits », sur generation-nt.com, (consulté le ) : « Le japonais [Sony] a utilisé celle-ci sur environ 4 millions de disques en 2005. »
  36. David Civera, « Premier virus utilisant le rootkit Sony », sur presence-pc.com, (consulté le )
  37. a et b [PDF] (en) Martin Reynolds, Mike McGuire, « Sony BMG DRM a Public-Relations and Technology Failure », Gartner, (consulté le ) : « The user simply applies a fingernail-sized piece of opaque tape to the outer edge of the disc, rendering session 2 — which contains the self-loading DRM software — unreadable »
  38. (en) Bill Thompson, « The rootkit of all evil? », BBC News, (consulté le ) : « If you have got a Mac or a Linux box then you can play and even copy you [sic] disc happily […] ».
  39. a b et c « Sony-BMG et son "rootkit" espion », sur bigbrotherawards.eu.org, (consulté le )
  40. [PDF] (en) Ray Wagner, Mike McGuire, Jay Heiser, Peter Firstbrook, « Sony's Approach to Content Protection Is Short-Sighted », Gartner, (consulté le ) : « It [XCP] was deliberately designed to be difficult to remove »
  41. a et b Julien L, « Affaire rootkit de Sony : des utilisateurs obtiennent un dédommagement financier », sur numerama.com, (consulté le )
  42. « Avis CERTA-2000-AVI-087 », CERTA,
  43. « Chronique d'un incident ordinaire », CERTA,
  44. a et b Jean-Claude Bellamy, « Tout ce que vous avez voulu savoir sur Back Orifice », (consulté le )
  45. (en) cDc, « BO2K Pressrelease », sur bo2k.com, (consulté le )
  46. (en) Gregg Keizer, « Massive botnet 'indestructible,' say researchers », sur computerworld, (consulté le ).
  47. « RootkitRevealer : la riposte aux rootkits Windows », Cert-IST
  48. (en) « Rootkit detection, removal and prevention »,
  49. a b c et d (en) « Rootkit and malware detection and removal guide », ComputerWeekly,
  50. (en) « Rooting out a rootkit: Stage one -- Diagnosis », techtarget.com,
  51. a et b [ppt] (en) J. Rutkowska, « Fighting Stealth Malware – Towards Verifiable OSes », invisiblethings.org,
  52. a b c et d (en) « Linux RootKits For Beginners - From Prevention to Removal », SANS Institute, , p. 5 et suivantes
  53. [PDF] (en) D. Cid, « Log Analysis using OSSEC », ossec.net, , p. 13 et suivantes
  54. « Le CERT dédié à la communauté Industrie, Services et Tertiaire française », sur cert-ist.com (consulté le )
  55. (en) « Understanding Hidden Threats: Rootkits and Botnets », US-CERT,
  56. a b et c (en) « Rooting out a rootkit: Stage four -- Preventative measures », techtarget.com,

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]