Au cœur des stratégies de défense des terminaux, les EDR se positionnent comme des compléments, voire remplaçants, efficaces des solutions antivirales classiques. Cet article étudie différentes techniques permettant de contourner les mécanismes de supervision des EDR (user-land hooking, Kernel Callbacks, et évènements Threat Intelligence). Dans le cadre de cet article, une « boite à outils » implémentant les diverses techniques d’évasion mentionnées a été développée [EDRSANDBLAST].
Les mécanismes permettant aux EDR de superviser les opérations réalisées sur un système Windows sont étudiés et présentés plus en détail dans l’article « Tour d’horizon des mécanismes de supervision des EDR », publié dans MISC n°116 [ARTICLE].
1. Contournement du user-land hooking
Un produit de sécurité souhaitant intercepter une action d’un processus sur le système pour l’analyser peut injecter du code dans la chaîne d’exécution de l’opération. Suite à l’introduction de Kernel Patch Protection (KPP), aussi connu sous le nom de « PatchGuard », cette injection ne peut être réalisée que côté user-land. Elle est généralement réalisée en utilisant la technique du hooking ou détour, consistant à écraser une partie du code d’une fonction ciblée afin d’injecter un appel à une fonction d’analyse dans le flot normal d’exécution (voir [DETOUR]).
La technique du user-land hooking présente toutefois un inconvénient majeur...
- 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
[ARTICLE] https://connect.ed-diamond.com/MISC/misc-116/tour-d-horizon-des-mecanismes-de-supervision-des-edr
[DETOURS] Microsoft, Documentation du framework Detours : https://github.com/microsoft/Detours
[EDRSANDBLAST] Thomas DIOT & Maxime MEIGNAN, EDRSandblast : https://github.com/wavestone-cdt/EDRSanblast
[CALLBACK1] rui (@fdiskyou), « Windows Kernel Ps Callbacks Experiments » : http://blog.deniable.org/posts/windows-callbacks/
[CALLBACK2] brsn (@brsn76945860), « Removing Kernel Callbacks Using Signed Drivers » : https://br-sn.github.io/Removing-Kernel-Callbacks-Using-Signed-Drivers/
[DUMPERT] Outflank B.V., Dumpert : https://github.com/outflanknl/Dumpert
[AFTERBURNER] Pilote Micro-Star MSI Afterburner version 4.6.2.15658 : http://download-eu2.guru3d.com/afterburner/%5BGuru3D.com%5D-MSIAfterburnerSetup462Beta2.zip
[WINBINDEX] Michael Maltsev (@m417z), Winbindex « The Windows Binaries Index » : https://winbindex.m417z.com/
[SYMBOLS] Bruce Dawson (BruceDawson0xB), « Symbols the Microsoft Way » : https://randomascii.wordpress.com/2013/03/09/symbols-the-microsoft-way/
[R2PIPE] radare org, r2pipe : https://github.com/radareorg/radare2-r2pipe
[DISABLE_ETWTI] Upayan (@slaeryan), « Data Only Attack: Neutralizing EtwTi Provider » : https://public.cnotools.studio/bring-your-own-vulnerable-kernel-driver-byovkd/exploits/data-only-attack-neutralizing-etwti-provider
[WINPMEM] Mike Cohen (@scudette), WinPmem : https://github.com/Velocidex/WinPmem