Entre Vista et Windows 7, de nombreuses petites choses ont changé, et des plus importantes ont été ajoutées. Dans le cas de l’UAC (User Account Control), qui permet de valider les actions importantes de l’utilisateur, son comportement a été modifié pour qu’il n’intervienne que dans des cas réellement cruciaux. Seulement voilà, cette modification n’est pas sans conséquences néfastes possibles.
Au centre du comportement de l’UAC dans Windows 7 se trouve une liste blanche, qui n’existait pas avant sous Vista. Cette liste contient des exécutables du système pour lesquels Windows 7 ne va demander aucune confirmation car ils sont considérés comme faisant parties justement des rouages internes. La liste blanche contenait au début plus d’une centaine d’exécutables, mais avec la version finale, on en compte précisément 62 :
Techniquement, un malware qui infecterait l’un de ces 62 exécutables pourrait alors voir ses droits augmenter sans aucune demande à l’utilisateur. Dans la pratique, c’est loin d’être aussi simple. Bien entendu, chacun de ces exécutables dispose d’une signature numérique. De plus, d’autres technologies comme l’ASLR entrent en ligne de compte. L’exploitation de cette « faiblesse » est donc possible en théorie, mais il sera intéressant de voir si un pirate y parvient.
Enfin, il est intéressant de noter que la question ne se pose que pour le premier compte créé à l'installation du système. Si l'on crée des comptes utilisateurs classiques, le niveau de l'UAC est par défaut réglé au maximum, et son fonctionnement est alors identique à celui de Vista.
Au centre du comportement de l’UAC dans Windows 7 se trouve une liste blanche, qui n’existait pas avant sous Vista. Cette liste contient des exécutables du système pour lesquels Windows 7 ne va demander aucune confirmation car ils sont considérés comme faisant parties justement des rouages internes. La liste blanche contenait au début plus d’une centaine d’exécutables, mais avec la version finale, on en compte précisément 62 :
- \Windows\ehome\Mcx2Prov.exe
- \Windows\System32\AdapterTroubleshooter.exe
- \Windows\System32\appinfo.dll
- \Windows\System32\BitLockerWizardElev.exe
- \Windows\System32\bthudtask.exe
- \Windows\System32\chkntfs.exe
- \Windows\System32\cleanmgr.exe
- \Windows\System32\cliconfg.exe
- \Windows\System32\CompMgmtLauncher.exe
- \Windows\System32\ComputerDefaults.exe
- \Windows\System32\dccw.exe
- \Windows\System32\dcomcnfg.exe
- \Windows\System32\DeviceEject.exe
- \Windows\System32\DeviceProperties.exe
- \Windows\System32\dfrgui.exe
- \Windows\System32\djoin.exe
- \Windows\System32\eudcedit.exe
- \Windows\System32\eventvwr.exe
- \Windows\System32\fsquirt.exe
- \Windows\System32\FXSUNATD.exe
- \Windows\System32\hdwwiz.exe
- \Windows\System32\ieUnatt.exe
- \Windows\System32\iscsicli.exe
- \Windows\System32\iscsicpl.exe
- \Windows\System32\lpksetup.exe
- \Windows\System32\MdSched.exe
- \Windows\System32\msconfig.exe
- \Windows\System32\msdt.exe
- \Windows\System32\msra.exe
- \Windows\System32\MultiDigiMon.exe
- \Windows\System32\Netplwiz.exe
- \Windows\System32\newdev.exe
- \Windows\System32\ntprint.exe
- \Windows\System32\ocsetup.exe
- \Windows\System32\odbcad32.exe
- \Windows\System32\OptionalFeatures.exe
- \Windows\System32\perfmon.exe
- \Windows\System32\printui.exe
- \Windows\System32\rdpshell.exe
- \Windows\System32\recdisc.exe
- \Windows\System32\rrinstaller.exe
- \Windows\System32\rstrui.exe
- \Windows\System32\sdbinst.exe
- \Windows\System32\sdclt.exe
- \Windows\System32\shrpubw.exe
- \Windows\System32\slui.exe
- \Windows\System32\SndVol.exe
- \Windows\System32\spinstall.exe
- \Windows\System32\SystemPropertiesAdvanced.exe
- \Windows\System32\SystemPropertiesComputerName.exe
- \Windows\System32\SystemPropertiesDataExecutionPrevention.exe
- \Windows\System32\SystemPropertiesHardware.exe
- \Windows\System32\SystemPropertiesPerformance.exe
- \Windows\System32\SystemPropertiesProtection.exe
- \Windows\System32\SystemPropertiesRemote.exe
- \Windows\System32\taskmgr.exe
- \Windows\System32\tcmsetup.exe
- \Windows\System32\TpmInit.exe
- \Windows\System32\verifier.exe
- \Windows\System32\wisptis.exe
- \Windows\System32\wusa.exe
- \Windows\System32\DriverStore\FileRepository\bth.inf_amd64_neutral_a1e8f56d586ec10b\fsquirt.exe
- \Windows\System32\oobe\setupsqm.exe
- \Windows\System32\sysprep\sysprep.exe
Techniquement, un malware qui infecterait l’un de ces 62 exécutables pourrait alors voir ses droits augmenter sans aucune demande à l’utilisateur. Dans la pratique, c’est loin d’être aussi simple. Bien entendu, chacun de ces exécutables dispose d’une signature numérique. De plus, d’autres technologies comme l’ASLR entrent en ligne de compte. L’exploitation de cette « faiblesse » est donc possible en théorie, mais il sera intéressant de voir si un pirate y parvient.
Enfin, il est intéressant de noter que la question ne se pose que pour le premier compte créé à l'installation du système. Si l'on crée des comptes utilisateurs classiques, le niveau de l'UAC est par défaut réglé au maximum, et son fonctionnement est alors identique à celui de Vista.