Contexte
Le système d'exploitation a un composant appelé noyau. Une des responsabilités (nombreuses) du noyau est de gérer la mémoire système (physique et virtuelle).
Pour ce faire, le noyau divise la mémoire disponible en deux régions distinctes, appelées mode utilisateur et mode noyau. Le noyau et les pilotes partagent la mémoire en mode noyau, et les programmes utilisateur et les composants système moins critiques résident dans la région mémoire en mode utilisateur.
Les processus en mode utilisateur ne peuvent généralement pas communiquer avec ceux en mode noyau, sauf par le biais de canaux spécialement désignés et contrôlés.
Pour être complet, il convient de mentionner que les processus exécutés en mode utilisateur sont également isolés les uns des autres, mais peuvent communiquer plus librement les uns avec les autres à l'aide des fonctions fournies par le système d'exploitation, à condition que les programmes soient conçus pour le faire.
Les processus
Le noyau offre la possibilité de lancer des processus en mode utilisateur. Lorsqu'un processus est créé, il est ajouté à une liste interne de processus existants. Lorsqu'un programme tel que le Gestionnaire des tâches demande une liste de processus, il reçoit un sous-ensemble des informations de cette liste, filtré par autorisations par utilisateur.
L'un des moyens par lesquels un logiciel malveillant, tel qu'un rootkit, cache son existence est de se supprimer directement de cette table. Cela fait, il peut toujours s'exécuter, mais n'apparaîtra plus dans une liste de processus obtenue par des moyens normaux.
Étant donné que ces processus existent toujours et s’exécutent, ils pourraient être trouvés en inspectant d’autres structures de données du noyau, telles que des tables de descripteurs, qui contiennent des informations sur les ressources ouvertes par un processus (par exemple, des fichiers), ou en examinant les allocations de mémoire à partir desquelles il est plus important. difficile à cacher sans entraver la capacité du logiciel à fonctionner.
Pilotes en mode noyau
Pilotes en mode noyau utilisés pour de nombreuses choses, y compris pour interagir avec des périphériques matériels physiques. Ils s'exécutent sous le contrôle du noyau selon les besoins, mais comme ils ne sont pas un processus en mode utilisateur, ils n'apparaissent pas dans la table des processus. et n'apparaîtra donc pas dans le Gestionnaire des tâches ni dans d'autres outils exclusivement liés aux processus.
Pouvoir exécuter du code en mode noyau est une étape importante pour pouvoir cacher efficacement l’existence d’un code en cours d’exécution. Dans des circonstances normales, Windows exige que le code en mode noyau soit signé pour pouvoir fonctionner. Les logiciels malveillants doivent donc utiliser des exploits du système d'exploitation, d'autres logiciels ou même de l'ingénierie sociale pour arriver ici, mais une fois que le code s'exécute en mode noyau, le masquage devient plus facile.
Sommaire
En résumé, il est possible de cacher la preuve de l’existence d’un processus, il y aura probablement toujours une indication de l’existence du processus, car il faudra généralement toujours utiliser une forme de ressource pour pouvoir faire tout ce pour quoi il a été conçu. cette détection dépend du malware en question.