Herkeios

Système de détection des intrusions

Les rootkits



   Si on en croit Wikipedia, la définition actuelle d'un rootkit est un programme ou ensemble de programmes destiné(s) à permettre l'escalade des privilèges sur une machine compromise donnée. Pour nous, cette définition est fausse et relève plus d'un amalgame qui a été fait au cours du temps entre les rootkits et leur utilisation. Nous considérons qu'on rootkit est un programme ou ensemble de programmes destiné(s) à faciliter les tâches d'administration ou à analyser le système. Le problème étant qu'au fur et à mesure, de plus en plus de programmes se servant des fonctionnalités d'administration pour installer des backdoors ou cacher des évidences d'intrusion ou de compromission ont vu le jour. C'est pourquoi au jour d'aujourd'hui, les rootkits ont cette image de programmes malveillants.

   Sous Linux, le rootkit typique et efficace est un module. Effectivement, pour permettre d'étendre les fonctionnalités du Kernel, chacun est libre de programmer un module et de l'intégrer au Kernel. De cette façon, il est possible de surveiller le système en profondeur. Malheureusement, il est aussi possible de modifier les appels systèmes pour qu'ils donnent les droits root, de cacher certains dossiers ou tout autres tâches malveillantes qui constituent finalement la mauvaise image de ces programmes. Il nous revient donc de casser ces préjugés en appliquant ces principes à la détection des intrusions.

Il faut tout de même insister sur le fait qu'insérer un module dans le kernel requiert une grande précaution quant aux actions utilisées. Notamment, s'il y a un segfault dans notre module, c'est le kernel qui segfault, donc notre système. De même, une boucle mal conditionnée peut entraîner un blocage du kernel. Par conséquent, programmer dans le kernel nécessite une connaissance minimale des mécanismes de base du kernel.


Site sur la sécurité informatique - Qu'est-ce qu'un IDS ? - L'équipe Herkeios