De nombreux emplacements:
Le matériel moderne dispose d'un large éventail de magasins de données persistants, généralement utilisés pour le micrologiciel. Il est beaucoup trop coûteux d’expédier un périphérique complexe comme un GPU ou une carte réseau et de placer le micrologiciel sur une ROM de masque où il ne peut pas être mis à jour, puis d’avoir une erreur provoquant des rappels en masse. En tant que tel, vous avez besoin de deux choses: un emplacement inscriptible pour ce micrologiciel et un moyen de mettre le nouveau micrologiciel en place. Cela signifie que le logiciel du système d'exploitation doit être capable d'écrire là où le micrologiciel est stocké dans le matériel (généralement des EEPROM).
Un bon exemple de ceci est l'état des utilitaires de mise à jour du BIOS / UEFI modernes. Vous pouvez prendre une image UEFI et un exécutable s'exécutant sur votre système d'exploitation (par exemple Windows), cliquer sur un bouton et vos mises à jour UEFI. Facile! Si vous procédez à une ingénierie inverse de leur fonctionnement (ce que j'ai fait plusieurs fois), il s'agit principalement d'un pilote en mode noyau chargé qui prend les données de page de l'image UEFI donnée et parle directement à la puce UEFI en utilisant le out
, en envoyant les commandes correctes pour déverrouiller le flash et démarrer le processus de mise à jour.
Il y a bien sûr quelques protections. La plupart des images BIOS / UEFI ne se chargeront que si elles sont signées par le fournisseur. Bien sûr, un attaquant suffisamment avancé pourrait simplement voler la clé de signature au fournisseur, mais cela entre dans les théories du complot et les acteurs de la menace divine, qui ne sont tout simplement pas réalistes pour se battre dans presque tous les scénarios. Les moteurs de gestion comme IME sont censés avoir certaines protections qui empêchent l'accès à leurs sections de mémoire même par le code ring0, mais des recherches ont montré qu'il existe de nombreuses erreurs et de nombreuses faiblesses.
Donc, tout est vissé, non? Eh bien, oui et non. Il est possible de mettre des rootkits dans le matériel, mais c'est aussi incroyablement difficile. Chaque ordinateur individuel a une telle variance dans les versions de matériel et de micrologiciel qu'il est impossible de créer un rootkit générique pour la plupart des choses. Vous ne pouvez pas simplement obtenir un BIOS Asus générique et le flasher sur n'importe quelle carte; vous allez le tuer. Vous devrez créer un rootkit pour chaque type de carte distinct, parfois jusqu'à la plage de révision correcte. C'est aussi un domaine de sécurité qui implique une énorme quantité de connaissances inter-domaines, allant jusqu'au matériel et aux aspects opérationnels de bas niveau des plates-formes informatiques modernes, ainsi que de solides connaissances en matière de sécurité et de cryptographie, donc peu de gens sont capables. p>
Êtes-vous susceptible d'être ciblé? Non.
Êtes-vous susceptible d'être infecté par un rootkit BIOS / UEFI / SMM / GPU / NIC? Non.
Les complexités et les variations impliquées sont tout simplement trop grandes pour que l'utilisateur moyen ait jamais à s'en soucier de manière réaliste. Même d'un point de vue économique, ces choses demandent une quantité excessive de compétences, d'efforts et d'argent à construire, donc les brûler sur des logiciels malveillants grand public est idiot. Ces types de menaces sont tellement ciblés qu’elles n’appartiennent jamais qu’au modèle de menace de l’État-nation.