Les protections mises en place pour tenter d’empêcher l’exploitation des vulnérabilités applicatives sont de plus en plus complexes. Les systèmes Windows récents introduisent en effet de nombreuses contre-mesures : DEP, ASLR, SafeSEH, SEHOP, \GS Stack-Cookie [1]. Devant la difficulté grandissante de l’exploitation des failles dans les programmes utilisateurs, les chercheurs de vulnérabilités se tournent de plus en plus vers les failles présentes en kernel. Contrairement à l’user land, les mécanismes de protection contre la corruption de la mémoire en kernel land sont plus rudimentaires et peuvent être contournés plus facilement.Cet article va présenter l’exploitation kernel au travers d’une étude de cas concret assez représentative : une vulnérabilité que j'ai découverte dans un driver de l’HIPS « Norman Security Suite 8 » et qui, comme nous allons le voir, permet une élévation de privilèges (Bulletin de sécurité : [2]).
1. Introduction
À l’instar des applications classiques, les drivers ne sont pas exempts de vulnérabilités. Les buffer overflows restent cependant plus rares au profit des failles de type « déréférencement de pointeurs ». Les bugs logiques tels que les « race conditions » peuvent aussi bien évidemment se retrouver dans les drivers.
Avant tout, il est toutefois important de noter que la plupart des drivers ne sont accessibles que dans un contexte local, donc les éventuelles failles qu'ils abritent ne peuvent être exploitées par un attaquant qu’après avoir gagné un accès à la machine. De telles vulnérabilités restent tout de même intéressantes pour permettre une élévation de privilèges vers le compte SYSTEM. Notons qu'il existe tout de même des cas d’exploitation à distance de drivers Windows, comme dans les drivers de cartes Wi-Fi [3].
L’ironie de l’histoire est que ce sont souvent des logiciels destinés à apporter une meilleure...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première