Le but de cet article n’est pas de présenter une nouvelle fois l’User Account Control (UAC) de Windows Vista, ou encore la protection parentale ou l’anti-phishing. Nous allons y introduire des types de
protection plus concrets concernant davantage les entreprises connectées sur la toile, qui sont d’autant plus exposées à des attaques tant distantes que locales.
La Registry
Microsoft n’a cessé de rappeler aux programmeurs que la base de registre était avant tout une partie intégrante du système et a toujours déconseillé son utilisation, mais au fil du temps et des programmeurs,
son usage est devenu de plus en plus courant et a souvent posé des problèmes, notamment sous Windows XP où les utilisateurs avaient besoin de lancer le compte administrateur pour utiliser une application de
bureautique ou un jeu. De plus, les vers/trojans s’ajoutant au registre pour être exécutés en même temps que le système, son usage devenait de plus en plus négatif. C’est ainsi que Microsoft en arriva, dans
Vista, à virtualiser le registre pour en contrôler les modifications et permettre aux applications, qui utilisent le registre en READ-ONLY, dépourvues des privilèges administrateurs d’être exécutées. Windows
Vista dispose d’une clé virtuelle " globale " par utilisateur, ce qui permet aux applications d’utiliser celle-ci, mais seuls les membres de la branche HKEY_LOCAL_MACHINE\Software sont virtualisés, tout cela
dans une redirection transparente pour l’utilisateur. Si l’application essaie d’ouvrir la clef avec le flag WRITE_ACCESS et une API de type Reg* la fonction retournera MAX_ALLOWED pour en rejeter l’accès.
Mais dans certaines conditions Windows Vista ne virtualise pas le registre si :
- L’application est lancée et identifiée en tantqu’ " admin mode ".
- Les clefs sont qualifiées de non modifiables par l’administrateur, c'est-à-dire les Windows Ressources Protected (WRP).
- L’appel se fait en CPL 0 (Current Priviledge Level).
- L’appel se fait après une Impersonation, par exemple avec l’usage de l’API LogonUser().
- L’application est de type 64-bit.
- La clef fait partie de l’ensemble de la branche HKEY_LOCAL_MACHINE\Software\Classes.