Aller au contenu


Lexique du Windows furtif


  • Vous ne pouvez pas répondre à ce sujet
No replies to this topic

#1 Txon

Txon

    AïoligaToR

  • Administrateur
  • PipPipPipPipPipPipPipPipPip
  • 10 854 Messages :
  • Gender:Male

Posté 06 juin 2007 - 07:51



Ce sujet, actualisé, se trouve maintenant dans le "wiki"
-> ICI <-
Vous pouvez plus aisément contribuer à son développement.



Rootkits et anti-rootkits ... Mini lexique des mots et expressions qui reviennent assez souvent ...
  • "%SystemRoot%" (%SystemRoot% ou \SystemRoot\ => C:\WINDOWS\ sous Windows XP).
  • "ADS" (Alternate Data Stream) : Flux alternatif (ou additionnel) de données ou "meta-data" dans les fichiers systèmes NTFS (Microsoft's Windows NT File System) pour avoir une compatibilité avec HFS (Apple's Hierarchical File System). Il permet à des données comme du texte, des graphiques ou du code exécutable d'être stockées dans des fichiers cachés liés à des fichiers visibles. Appliquée d'un manière générale aux fichiers systèmes de tous types, cette technique est connue sous le nom de "fork" (fourchette). Les rootkits et autres malwares peuvent utiliser le flux ADS pour échapper à la détection. Seuls des logiciels spécialisés peuvent intervenir dans les ADS.
  • "AK922" rootkit de contournement des scans de disque à bas niveau pour cacher des fichiers (voir "raw disk")
  • "Anneau de protection" (voir "ring")
  • "API" (Application Programming Interface) Interface de programmation qui définit la manière dont un composant informatique peut communiquer avec un autre.
  • "API hooking" (Ivo Ivanov - Antihook). Une technique de détournement de l'API hooking consiste à modifier à la volée (patcher) la table "IAT". Si l'entrée de l'IAT correspondant à une fonction de l'API Windows est modifiée, tout appel ultérieur à la fonction originale sera détourné vers la fonction nouvellement désignée et dont l'adresse sera alors dans l'IAT.
  • "ARK" ... antirootkit d'une manière très générale. Le plus souvent désigne un logiciel spécifique mais peut aussi désigner seulement la fonction quand elle fait partie d'un ensemble plus vaste.
  • "ARP" (Address Resolution Protocol) ARP est un protocole de bas niveau (niveau 2 du modèle OSI) permettant de trouver les origines 'géographiques' des composants Ethernet d'un réseau.
    Cette table répertorie les adresses MAC (adresse physique et unique) avec leurs adresses IP (adresses virtuelles) respectives. » (Al – 3psilon - Seem)
  • "Binder" ... voir "Dropper"
  • "BHO" (Browser Helper Object - pour Internet Explorer et C°...). Petit programme installé par un autre logiciel, qui s'exécute automatiquement à chaque lancement du navigateur. Voir ci-dessous "Browser Plugin".
  • "Browser Plug-in"... Module logiciel qui interagit avec un navigateur pour lui donner de nouvelles capacités ou lui permettre de d'exécuter des fonctions supplémentaires, par exemple afficher des formats graphiques particuliers, jouer des fichiers multimedia ou ajouter des barres de tâches de recherche ou de contrôle de navigation sur des sites dangereux. Les « plug-ins » peuvent aussi agir à l'insu et à l'encontre de l'utilisateur ... réorienter des résultats de recherche, espionner les habitudes de lecture et l'historique de connexion ou même installer un logiciel non désiré, un « adware » nocif ou un rootkit en particulier. On distingue entre autres ...
    • « ActiveX controls », type de « plug-in » particulièrement vulnérable, téléchargé par le navigateur Internet Explorer de Microsoft
    • « Browser Helper Object » (BHO), « plug-in » exécuté à chaque lancement de Internet Explorer (les barres de tâche sont des formes communes de BHO), exploitable à des fins malveillantes.
    • « Mozilla Firefox Extensions », « plug-ins » spécifiques de Firefox.
  • "Bibliothèque" ... voir "DLL".
  • "Blue Chicken", stratégie mise au point par Joanna Rutkowska pour dérouter les détecteurs de "virtualisation" basés sur le « timing ». Le poulet bleu contient un algorithme de mise en route d'une « TimeBomb » qui peut provoquer un "BSoD" lorsqu'il se déclenche.
  • "Blue Pill" rootkit « virtuel » de Joanna Rutkowska pour Windows Vista avec des processeurs qui permettent le "mode hyperviseur".
  • "Bootkit", outils de dissimulation d'activité ("rootkit") avec une fonction de chargement depuis les secteurs de démarrage de n'importe quel périphérique. Voir "VBootkit" et "Firmware rootkit".
  • "BSoD" (Blue Screen of Death – Black Screen of Death) : Ecran bleu (ou noir) de la mort sous Windows.
  • "Buffer overflow" : Dépassement de mémoire tampon. Se produit lorsqu'une zone mémoire temporaire (mémoire tampon) utilisée par une application (navigateur, messagerie ...) reçoit plus de données qu'elle ne peut en contenir. Cette technique qui, généralement, provoque un dysfonctionnement de l'application, permet à un programme malicieux ou un "script" intrusif d'injecter son "code" dans la mémoire tampon. Ce type d'attaque est communément utilisée par les « drive by download ». L'avantage de ce système est qu'il ne requiert pas d'accès au système ou seulement avec des droits restreints.
  • "Cloud" (nuage), une des appellations d'Internet. "Cloud computing" et "Cloud apps", voir "Informatique virtuelle".
  • "CmRegisterCallback" (ou "CmRegisterCallbackEx" pour Vista) et "CmUnRegisterCallback", routines utilisées par certains rootkits pour cacher leur clé ou sous-clé dans le Registre Windows.
  • "Code", ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau.
  • "Control Registers" - CRO à CR4 - (registres de contrôle). Ce sont des registres du processeurs (à ne pas confondre avec le "Registre Windows") qui changent ou contrôlent le comportement général d'un CPU ou d'autres unités numériques. Les tâches effectuées par ces registres incluent le contrôle des interruptions, le passage en mode d'adressage, le contrôle de pagination (voir "Page Table") et celui du coprocesseur.
    En théorie, seul un système d'exploitation est autorisé à modifier les registres de contrôle. Un "driver" de logiciel malintentionné peut aussi le faire, surtout pour les registres CR0 et CR4.
  • "Core dump" enregistrement (le plus souvent sur le disque dur) d'une partie de la mémoire à un moment donné. Une des techniques utilisées pour l'analyse et le "débogage" de programmes mais qui peut aussi servir pour étudier un rootkit découvert en mémoire.
  • "Crochetage" ou "accrochage" - ("Hook" - "Hooking") : technique utilisant des crochets pour provoquer une séquence de traitement différente de l'originale parfois appelée "handler". Après un crochetage, la séquence se déroule dans un ordre particulier. Le nouveau crochet enregistre sa propre adresse pour effectuer son traitement et revient à l'original à un moment donné, généralement à la fin. « Unhook », « restore » ou « unregistering » signifient « décrocher » ou « restaurer » c'est à dire remettre en place le procédé original.
    L'accrochage ou crochetage peut être employé pour beaucoup de raisons y compris la correction ou l'extension des fonctionnalités originales. Il peut aussi être utilisé pour injecter un code potentiellement malveillant dans le traitement.
  • "Daemon" (Disk And Execution MONitor) (Démon) : "service" ou "script" lancé au démarrage de Windows par le processus « init » du système d'exploitation, qui s'exécute en tache de fond et donc est invisible pour les utilisateurs.
    Les démons peuvent être « dormants » (boucles itératives ou fonctionnement par interruptions systèmes) jusqu'à recevoir une requête du réseau, de l'activité du matériel ou d'autres programmes.
  • "DCOM" (Distributed Component Object Model), technologie propre à Microsoft, disponible pour les développements (liée à .NET et aux ActiveX), et utilisée sur les ordinateurs de différents réseaux pour communiquer entre eux.
  • "Débogueur" (debugger) : logiciel "débogage" souvent interdit lors de l'utilisation d'un antirootkit, soit à cause des risques de conflit, soit parce que l'anti-rootkit utilise aussi des techniques de protection contre celles de débogueurs.
  • "Démon" voir "Daemon"
  • "DKOH" (Direct Kernel Object Hooking) ... crochetage d'un « objet » du noyau.
  • "DKOM" (Direct Kernel Object Manipulation) ...
    • Procédé utilisé pour cacher des processus en manipulant l'"EPROCESS" ...
    • Technique de modification des « objets » créés dans le noyau par les applications ('kernel objects') et utilisées par les outils de consultation des processus du système (ex : gestionnaire de tâche de Windows). Les résultats obtenus sont faussés ...
    • KOH Rootkits (Greg Hoglund) ...
  • "DLL" (Dynamically Linked Library) bibliothèque logicielle du système d'exploitation qui regroupe un ensemble de fonctions de base pour réaliser des tâches d'une même nature.
  • "Démarrage sans échec".
  • "DNS Trojan" / "Trojan.DNSChanger". Se propage à travers des pages WEB piégées ou de faux codecs pour visualiser des vidéos « spéciales ». Se caractérise par des redirections automatiques vers des pages WEB spécifiques lors de la navigation.
  • "Drive-by Download" ... programme injecté automatiquement dans les ordinateurs des visiteurs d'un site web, sans leur consentement et sans qu'ils en aient conscience. Une fausse « boîte de dialogue » n'est qu'une des astuces de furtivité utilisées pour parvenir à infiltrer le PC d'un internaute par ce biais. « Les sites compromis contiennent souvent des éléments d'attaque exploitant une faille informatique qui permettent aux « hackers » d'introduire des chevaux de Troie et similaires dans les PCs vulnérables. La faille très connue du « iFrame » dans Internet Explorer a été le vecteur préféré pour les attaques de maliciels pendant des années » . Voir aussi "Script".
  • "Driver" (Device driver) A l'origine, c'est un logiciel spécifique développé pour « piloter » un périphérique matériel particulier. Maintenant, ce terme est également utilisé pour désigner des extensions d'un programme qui s'exécutent en mode noyau, plus particulièrement les fichiers systèmes ".sys". De nombreux maliciels utilisent des drivers qui sont parfois lancés automatiquement au démarrage du système ... voir "Service Windows" (ci-dessous).
  • "Dropper" (binder) ... Programme conçu pour installer certains maliciels dans le système. Le code malveillant peut être intégré au "dropper", en être une partie intégrante détachée pour une injection dans le noyau ou dans un module totalement séparé qu'il télécharge depuis un site pirate.
    On distingue deux familles de "droppers" ...
    • Les "drive-by downloads" (voir ci-dessus) et tous ceux qui ne nécessitent pas une interaction de l'usager car ils s'exécutent à travers une vulnérabilité,
    • Ceux qui ont besoin de l'interaction de l'utilisateur qui doit être convaincu de se trouver en présence d'un programme légitime ou bénin et l'acceptent.
  • "Dump" - voir "Core Dump".
  • "EAT" (Export Address Table) ... pendant de la table "IAT".
  • ''eEye BootRoot'', rootkit ''POC'' de Derek Soeder et Ryan Permeh (eEye Digital Security) qui modifie le ''MBR''.
  • "Exploit" attaque exploitant une faille informatique.
  • "EPROCESS", section du noyau utilisée pour la gestion des processus. Chaque processus en cours d'exécution y possède un bloc d'information : PID, PPID (PID du processus parent), nom du fichier du processus etc. Les blocs EPROCESS sont chaînés et contiennent l'adresse de l'EPROCESS du processus précédent (Blink) et du processus suivant (Flink). Une attaque "DKOM" (Direct Kernel Object Manipulation) consiste à cacher un processus en modifiant le Blink et Flink pour sauter un processus dans la chaîne.
  • "Fausses alertes" vrais/faux positifs.
  • "File System Filter Driver" (FSD). Un "driver" de filtrage du système de fichier intercepte les requêtes ciblées sur un système de fichiers. En interceptant la demande avant qu'elle atteigne sa cible, le filtre du "driver" peut prolonger ou de remplacer les fonctionnalités de la demande initiale.
  • "Fonctions de notification" ... Notify Routines ...
  • "Firmware" (micrologiciel), logiciel interne ou « embarqué » dans un composant matériel.
  • "Firmware rootkit". Une première annonce de possibilité d'intrusion dans un « processeur secondaire » a été faite par Greg Hoglung dès 2004.
    De son côté, le chercheur John Heasmann de NGS Software a démontré qu'il était possible de profiter de failles de sécurité pour implanter dans la mémoire en question des programmes totalement différents des originaux. Il a conçu des rootkits "POC" pour BIOS et cartes graphiques ... (Implementing and detenting an ACPI BIOS rootkit - Implementing and detenting a PCI rootkit).
    Les attaques au niveau des pilotes (driver level) peuvent également viser toutes sortes d'autres périphériques et en particulier les cartes WiFi.
    Aucune mesure habituelle comme le formatage de disque suivi d'une réinstallation du système d'exploitation n'est efficace contre ce genre d'intrusion. Pour s'en protéger, il faudrait disposer de composants qui imposent un strict contrôle de signature des implantations dans ces éléments, par exemple grâce à un processeur de sécurité conforme aux normes TPM (Trusted Platform Module) ... encore assez rare, plus cher et sans garantie d'efficacité totale.
  • "Fork" (fourchette), s'applique dans le contexte de l'exécution d'un programme ou d'un système d'exploitation et fait référence à la création d'une copie de soi-même (ou d'une partie de soi même) par un programme dont l'original devient le processus « parent » et la copie le processus « enfant ».
    Fork peut également être utilisé dans le cadre des "ADS" pour qualifier une structure de fichier composée d'un fichier original (« parent » - « unnamed ») et d'un flux additionnel de sous-fichiers cachés qui lui sont liés et parmi lesquels des maliciels peuvent se cacher.
  • "FSD", voir "File System Filter Driver"
  • "GDT" (Global Descriptor Table) GDT & IDT sont des tables spécifiques aux processeurs de type x86 gérées par le NTLDR. La GDT est employée pour décrire les segments de mémoire qui sont employés par le noyau. La modification des clefs GTD peut permettre à des applications malicieuses qui n'ont pas les privilèges nécessaires de modifier cependant la mémoire du noyau.
  • "Handler" (asynchronous callback subroutine) Routine (code exécutable à « bas niveau ») asynchrone envoyée comme argument à un autre code. Séquence de traitement d'un "crochetage".
  • "Heap Memory" : « Tas ». Plage de mémoire interne créé au moment du démarrage que les applications utilisent selon les besoins pour allouer de la mémoire dynamiquement, surtout celles qui ont un grand besoin de "stack memory". Elle peut servir aux attaques de type "buffer overflow". Understanding and Bypassing Windows Heap Protection (Nicolas Waisman - format .pdf).
  • "Hidden processes – The Implication for Intrusion Detection" aka « Vice - catch the hookers », descriptif par Jamie Butler et Greg Hoglund de différentes techniques de rootkits (format .pdf)
  • "Hook" – "Hooking" ... voir "Crochetage"
  • "Hook server" ... voir "Dropper".
  • "Hydre" ... Logiciel malveillant à "têtes multiples" c.a.d constitué de plusieurs modules qui forment un ensemble aux missions diversifiées. Ses caractéristiques principales sont ...
    • un camouflage général par des fonctions "rootkits" multiples,
    • une "tête immortelle", protégée contre les logiciels de défense (tout particulièrement les plus réputés),
    • un système de propagation visant l'infection du plus grand nombre afin de constituer un réseau de PCs "zombies",
    • la surveillance de l'intégrité d'ensemble et la possibilité de réinstaller tout élément qui aurait été éradiqué, souvent avec une "signature" différente,
    • une capacité évolutive par l'éventuelle adjonction de nouvelles "têtes", ou au contraire par la suppression des missions achevées dont les traces pourraient être découvertes.
  • "IAT" (Import Address Table) ... L'IAT est utilisée comme table d'adressage quand une application ou un module logiciel appelle une fonction "API". Elle est nécessaire car un "Portable Executable" (PE) ne peut savoir à l'avance où se trouvent en mémoire les DLLs qu'il sollicite. ... Les spécialistes considèrent que les crochetages de la table IAT et des fonctions ''inline'' sont plus performants que ceux de la SSDT ... pour plus d'informations -> Windows rootkits de James Butler et Sherri Sparks (english) ... API hooking by IAT patching sur LILWAM'S blog (français) ... API hooking – IAT patching sur Overcl0ck's blog (français).
  • "IDT" (Interruption Descriptors Table) Tableau de descripteurs d'interruptions stocké dans mémoire vive.
  • "Informatique virtuelle" (« cloud computing »), ensemble de logiciels applicatifs qui ne se situent plus sur le PC mais au sein d'un site dédié sur Internet . Les logiciels en question sont appelés « cloud applications » ou, en abrégé , « cloud apps ».
  • "Injector" ... voir "Dropper" ci-dessus, essentiellement dans le cas de "maliciels".
  • ''Inline hooking'' ... Technique dérivée des techniques de ''API hooking'' et de "SSDT hooking", écrase les adresses de direction des fonctions dans les tables "IAT" et/ou "SSDT" tout en sauvegardant les originales pour pouvoir les remettre en place après usage afin de restaurer (« unregister ») les fonctions crochetées ...
  • "IRP" ( I/O Request Packets), tables utilisées dans le Windows driver model et le ''Windows NT drivers'' pour communiquer entre elles ou avec le système d'exploitation. Elles sont créés par le contrôleur d'E/S au nom des drivers. Pour plus d'informations -> Spyware et rootkits de James Butler et Sherri Sparks (english).
  • "Kernel" ... voir "Noyau"
  • ''KeyWait'' commande d'attente de raccourci clavier.
  • "KOH" et "KOM" ... voir "DKOH" et "DKOM"
  • "Launcher" ... voir "Dropper"
  • ''Machine virtuelle'' Plusieurs environnements d'exécution sur un seul ordinateur (voir "virtualisation" ci-dessous).
  • ''MBR'' (Master Boot Record), enregistrement dans le premier secteur du disque de démarrage (secteur d'amorce). Il comprend une ''routine'' et les informations sur la table des partitions. Il est lu et exécuté par le BIOS au début de la mise en route de l'ordinateur et a pour fonction d'établir le lien avec la table de partition active. Les attaques portées sur la MBR sont connues depuis les virus sous DOS. Sa détérioration peut entraîner de graves dysfonctionnements comme l'impossibilité de lancer le système d'exploitation ... voir FDISK / mbr.
    Tous les systèmes dérivés de Windows NT, y compris Vista, permettent la modification du MBR, même en ''mode utilisateur''. La preuve a été apportée par le rootkit ''eEye BootRoot'' dès 2005. Depuis des rootkits malicieux apparaissent comme « MBR Rootkit » aussi connu comme « PSW-Sinowal », « Backdoor.MaosBoot » ou « Trojan.Mebroot ». Les rootkits de ce type se lancent en mémoire avant le système d'exploitation et les logiciels de protection connus qu'ils peuvent éventuellement empêcher de démarrer. Ils sont donc théoriquement plus difficiles à détecter et éradiquer. Sous Windows, il suffit cependant de démarrer le PC sur le CD d'installation, de lancer la console de récupération et d'y appliquer la commande « fixmbr \device\harddisk0 ».
  • "Mode" de fonctionnement des programmes ...
    • "Mode hyperviseur" (hypervisor mode) correspond au « ring -1 » (voir "ring") des processeurs récents. Il permet de contrôler les accès au matériel effectués depuis le niveau supérieur « ring0 » et donc le fonctionnement de programmes en ''mode superviseur'' au sein du système d'exploitation considéré alors comme « invité » sans que cela affecte d'éventuels autres « invités » du même ordinateur . Un rootkit en mode hyperviseur fonctionne avec des privilèges supérieurs à ceux du système d'exploitation lui-même. Voir "virtualisation".
    • "Mode noyau" (kernel mode) = "Mode superviseur" (supervisor mode). Les programmes qui tournent dans ce mode sont au « ring0 » (voir "ring") ont une priorité élevée et un accès direct et sans frein à tous les modules du système d'exploitation.
    • "Mode utilisateur" (user mode) correspond au « ring3 » (voir "ring"). Les programmes qui fonctionnent dans ce mode procèdent à des "system calls" vers les modules fonctionnant en "mode noyau" qui exécutent la tâche demandée.
  • "Multiboot" Plusieurs systèmes d'exploitation sur un même PC.
  • "Notify Routines" ... "Fonctions de notification" ci-dessus.
  • "Noyau" (Kernel) : coeur du système d'exploitation.
  • "Page table" (tableau de pagination) est une structure de données utilisée en "virtualisation" pour stocker les correspondances entre adresses virtuelles et adresses physiques.
  • "Partition" ... le partitionnement est un fractionnement d'un disque dur réel (matériel) en plusieurs disques virtuels (logiciels).
  • "Patch" ... section de code ajoutée à un logiciel, pour y apporter des modifications.
  • "Processus" (Process) Un processus est une entité représentant une activité déterminée par un programme qui est exécutée par un processeur. A chaque processus sont associés ...
    • un programme qui détermine ce que doit faire le processus,
    • une entrée et une sortie,
    • un état représenté par la valeur des variables du programme.
  • "PE" Portable Executable
  • "PID" (Process Identification Number) : Numéro unique affecté à chaque tâche exécutée par un système d'exploitation multi-tâches : Windows par exemple. Voir aussi "Thread" et "TID" pour ses éventuelles divisions en plusieurs sous-tâches.
  • "Processus léger" voir "Thread".
  • "POC" (Proof of concept) « Une preuve de concept est un programme démontrant la faisabilité d'une attaque exploitant une faille informatique. Les "Proof of Concept" ne sont généralement pas des programmes nocifs, mais des programmes de démonstration. Toutefois il est évident qu'un programme nocif (ver ou virus) peut facilement être développé ensuite à partir de ce code rendu public ». Dans ce cas, « les POC sont bien souvent déclinés en exploits permettant ainsi l'exécution de code arbitraire ».
  • "RATs" (Remote Administration Tools), outils qui permettent à un attaquant extérieur de s'octroyer un accès total à un PC pendant qu'il est « en ligne ».
  • "Registre" ou "Registre Windows" ou "Base de Registre" ("Registryl").
  • "ret2libc" : Une attaque "return-to-libc" commence en général par un dépassement de tampon ("buffer overflow"), dans laquelle l'adresse de retour sur la "pile" ("memory stack") est remplacée dans le programme applicatif attaqué par l'adresse d'une autre fonction. Ceci permet aux malveillants d'appeler des fonctions pré-existantes sans avoir besoin d'injecter du "code" malicieux dans le logiciel attaqué. Cette attaque fait partie des plus difficiles à détecter et donc à contrer.
  • "Raw" ("Raw disk"), technique d'accès à des données sur un disque dur (HDD) ou d'autres dispositifs de stockage sur disque ou médias, directement au niveau de chaque octet d'un fichier (à « bas niveau ») et non par les méthodes habituelles qui le font par le biais du « filesystem ».
  • "Retrospy" ... tout logiciel équipé de « contre-mesures » qui prend pour cible les logiciels de défense afin de camoufler sa présence et ses activités. Le plus souvent, les « retrospies » utilisent aussi d'autres techniques pour se cacher. Voir "Rootkit" et "Rustock".
  • "Ring" ("anneau de protection") ... un des niveaux de privilèges imposé par l'architecture d'un processeur.
    Les processeurs de type x86 ont quatre « modes » de fonctionnement qui correspondent à quatre anneaux de protection. Linux et Windows en utilisent seulement deux : le "mode superviseur" (mode "noyau") qui correspond au « ring0 » et le "mode utilisateur" qui correspond au « ring3 ». Les « ring1 » et « ring2 » sont très rarement utilisés.
    Les processeurs les plus récents - Intel Vanderpool (VT) et AMD Pacifica - permettent un nouveau "mode hyperviseur" qui correspond au « ring -1 ». Il est utilisé par Microsoft pour son architecture très critiquée NGSCB (Next-Generation Secure Computing BaseSystem Integrity Team).
  • "Rogue Active X" ... "scripts" exécutés sur des sites pour installer un logiciel sans que l'utilisateur en ait connaissance ou pour s'ouvrir un passage vers le disque dur afin d'accéder aux fichiers et les traiter selon leur convenance. Voir aussi "drive-by-download".
  • "Rootkit" ... A l'origine :"'kit" pour devenir "root" (administrateur) d'un ordinateur. Les rootkits peuvent modifier le noyau (kernel) du système ou intercepter les appels système et renvoyer des réponses truquées aux autres logiciels. Les techniques utilisées le sont souvent à des fins de furtivité et sont nuisibles, mais pas toujours. Elle peuvent également être employées par quelques logiciels relativement ordinaires pour être plus performants (anti-rootkits etc.), protéger les fichiers sensibles des regards indiscrets ...
    Descrition détaillée d'un rootkit "POC" : AK922 (Ivanlef0u)
  • ''Rustock'' - Rustock-A et B - rootkits « spammeurs », plus furtifs que la majorité, sont équipés de contre mesures de type ''retrospy'' pour échapper à la détection par les principaux antivirus et antirootkits. Très difficilement détectables en 2006, ils sont maintenant trouvés par beaucoup d'outils de protection. Noms d'origine : pe386 et lzx32.
    Rustock-C, leur remplaçant, vraisemblablement créé fin 2006 ou début 2007, n'a été détecté pour la première fois qu'en juin 2007, analysé en octobre 2007 et contré par un ARK en avril 2008. Il demeure introuvable pour la quasi totalité des logiciels de défense (juin 2008).
  • "Safe mode" ... voir "Démarrage sans échec".
  • "Script" Ensemble de commandes écrites dans un langage interprété, regroupées dans un fichier, pour automatiser certaines tâches ou encore « lignes de "codes" servant, entre autre, à dynamiser une application Internet » (aisneco). L'utilisation des mots « procédure » ou « scénario » est possible. Les scripts peuvent être écrits en différents langages : Java, ASP, PHP ... Certains scripts, souvent écrits en langage Java, sont malicieux.
  • "script kiddie" (script bunny, skiddie, script-running juvenile (SRJ), script kitty), pirate débutant.
  • "Service" ("Service Windows") Les services sont des processus, drivers ou bibliothèques lancés automatiquement par le système lors de son démarrage et qui fonctionnent en arrière-plan. Beaucoup sont inutiles pour la plupart des usagers et peuvent rendre le PC vulnérable à certaines failles. Voir aussi "Driver" (ci-dessus).
  • "SPI" (Service Provider Interface) Liste d'interfaces logicielles (pilotes) de périphériques développées selon le standard de programmation WOSA pour permettre un accès commun aux services.
  • ''Splice'' (System call), demande de générer un service afin de transférer des informations au sein du noyau.
    « Épissure » (splice), mécanisme d'appel système pour effectuer des échanges d'informations entre deux modules du noyau (kernel mode - "ring0") sans transiter par le niveau utilisateur (user mode - "ring3"). Le mécanisme du splice() consiste en l'ouverture d'un descripteur de fichier pour une source de données et d'un autre pour un collecteur de données, celles-ci étant alors transférées en utilisant le pipe buffer. A l'origine, c'est une manière d'améliorer l'exécution des I/O, mais ces entrées/sorties peuvent être crochetées par des rootkits malicieux.
  • "SSDT" (System Service Descriptor Table) Tableau DWORD utilisé par Windows pour diriger des appels du système vers un traitement approprié : table d'adressage des "APIs".
  • "SSDT hooking" Le "crochetage" du tableau de descripteur de service du système (SSDT) en vue de sa modification est une des techniques fréquemment utilisée par les rootkits. En modifiant cette table, ils peuvent réorienter l'exécution vers leur code au lieu du module de traitement (fonction) originellement appelé. Certaines de ces fonctions sont visées tant par les rootkits malsains que les antirootkits ... exemples : NtAssignProcessToJobObject, NtCreateKey, NtCreateThread, NtDeleteFile, NtLoadDriver, NtOpenProcess, NtProtectVirtualMemory, NtReplaceKey, NtTerminateProcess, NtTerminateThread, NtUnloadDriver, NtWriteVirtualMemory ...
    La SSDT stocke ses pointeurs de fonctions dans la « KiServiceTable », en lecture seulement. Il faut effectuer un « remappage » avec un MDL (Memory Descriptor List) pour obtenir une nouvelle adresse virtuelle ou désactiver la protection d'écriture en modifiant le seizième bit du registre, « control cr0 » (CR0.WP) de 1 à 0.
  • "Stack Memory" : « Pile » . Zone mémoire utilisée pour stocker des données temporaires, utilisée entre autres par le langage « Java » (Java scripts). Elle peut servir aux attaques de type « buffer overflow » (voir aussi "heap memory" ci-dessus).
  • "Structured Exception Handling" (SEH). Implantation d'exceptions dans la noyau de Windows.
    Une exception (interruption) est un événement durant le fonctionnement d'un programme qui requiert l'exécution de "code extérieur". Il existe deux types d'exceptions : matérielles, provoquées par le processeur, et logicielles, provoquées par le système (par exemple quand il détecte un paramètre invalide) ou par des applications.
    « Structured exception handling » est un mécanisme pour manipuler les interruptions et en avoir le contrôle. Il est utilisé par les "debuggers" aussi bien que par certains codes malveillants (violations d'accès ...)
  • ''SubVirt'' rootkit « virtualisé » de Microsoft.
  • "SYSENTER" ... instruction du langage assembleur qui permet la transition entre le mode utilisateur ("ring3") et le mode noyau ("ring0").
  • "System call" Appel par un logiciel applicatif aux ressources du système d'exploitation dont les adresses se trouvent dans la "SSDT" ... Windows System Call Table (NT/2000/XP/2003/Vista)
  • "Thread" (thread of execution), élément ou partie d'un programme qui a été divisé en plusieurs tâches pseudo-simultanées suivant la technique de la « fourchette » ("fork" ou split) ... voir TID ... "Processus léger" en français ...
  • "TID" (task identifier) numéro affecté à chaque "Thread".
  • "Trojan.DNS" voir "DNS Trojan" / "Trojan.DNSChanger"
  • "Unreal", famille de rootkits de démonstration développés par l'équipe de l'ARK RkUnhooker. Même le « vieux » Unreal_A demeure un cauchemar pour de nombreux logiciels de défense du PC. Il cache son processus dans les "ADS" (Alternate Data Stream) du disque système et son driver unreal.sys (C:\:unreal.sys) se cache lui-même à l'aide d'un "DKOM" (Direct Kernel Object Manipulation).
    Quand à Unreal_D, il semblerait qu'aucun utilitaire n'arrive à le détecter (juin 2008).
  • "VBootkit" de Nitin et Vipin Kumar, rootkit de démonstration pour prouver qu'il est possible d'injecter un "code" arbitraire dans le noyau de Windows Vista (juin 2007). Ce "bootkit" est doté de fonction de chargement depuis les secteurs de démarrage de n'importe quel périphérique compatible avec Windows Vista. Une prochaine version devrait inclure l'infection du BIOS. Voir aussi "Firmware rootkit".
  • "VIPS" (Virtual Intrusion Prevention System). Un VIPS utilise la technique de "virtualisation" possible avec certains types de processeurs. Elle permet d'obtenir des privilèges supérieurs à ceux des rootkits qui fonctionnent en "mode noyau" ("ring0"). Un VIPS fonctionne en "mode hyperviseur". Le système d'exploitation se retrouve dans une "machine virtuelle" contrôlée par le "VIPS" depuis l'extérieur et les rootkits qui veulent s'introduire dans le système ont alors moins de privilèges et peuvent facilement être détectés.
  • "Virtualisation" ... A l'origine, ensemble de dispositifs destinés à faire fonctionner plusieurs systèmes d'exploitation (O/S) isolés les uns des autres sur une seul ordinateur. Cette notion de cantonnement a été étendue aux applications et aux composants du PC.
    Trois techniques principales : virtualisation par isolation, machine virtuelle complète ou partielle, hyperviseur ...
    • L'isolation est effectuée par un logiciel de contrôle qui cantonne l'exécution des applications dans ce qu'il est possible d'appeler un « contexte », un « conteneur » (« container ») ou encore zone de confinement de l'exécution. C'est la solution la plus simple et qui nécessite le moins de ressources processeur (peu d'overhead) et mémoire. Elle ne correspond pas à la virtualisation d'O/S, n'exclue aucun des composants matériels et n'est pas complètement étanche.
      Originellement réservée à Linux, la technique d'isolation est utilisée sous Windows par Sandboxie pour le contrôle de fonctionnement des applications et la protection du système.
    • Une machine virtuelle (VM) permet de s'affranchir d'une partie du matériel ; elle peut par exemple inclure le processeur ou seulement les périphériques l'émulation du processeur se faisant alors directement sur le processeur de la machine « hôte ». La VM n'a pas « conscience » de sa virtualisation. Elle permet le fonctionnement en son sein de n'importe quel O/S admissible par le processeur, sans adaptation particulière, mais la dégradation des performances de l'ordinateur peut être très perceptible.
    • L'hyperviseur est un système d'exploitation « hôte » simple et optimisé qui permet le fonctionnement à un niveau ("ring") supérieur de plusieurs autres O/S « invités » adaptés à ce contexte particulier. Les O/S invités ont « conscience » d'être virtualisés (ils connaissent l'existence de l'hyperviseur). Par rapport aux VM décrites ci-dessus, cette technique améliore beaucoup les performances. Voir : Xen, VMware ESX, Windows Server 2008 ...
  • "Virtuel", adjectif utilisé pour toutes sortes de sauces. Souvent, il s'agit d'un élément immatériel contenu dans un espace physique. « On » parle de de disque, mémoire et lecteur de CD virtuels pour désigner des zones de travail de certains logiciels qui émulent des composants matériels.
    Voir aussi "Informatique virtuelle".
  • "Vitriol" de Dino Dai Zovi, rootkit de démonstration en "mode hyperviseur" qui a confirmé la possibilité de « soulever » Windows Vista.


Pour beaucoup d'autres mots ou expressions informatiques, il existe des dictionnaires ...

Un peu de lecture : Hacking Windows File Protection (Jeremy Collake)

@+

"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety."(Benjamin Franklin)




0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)