SlideShare a Scribd company logo
1 of 22
Download to read offline
Zranitelnosti ovladačů jádra v praxi
              Martin Dráb
         martin.drab@email.cz
Obsah
●   Ovladače a zařízení
●   Virtuální paměť
●   Komunikace s ovladači
●   Útoky na chybné ošetřování vstupů
●   Systémová volání
●   Útok záměnou argumentů
Ovladače
●   Soubory formátu PE
●   Vykonávány v režimu jádra
    –   Plná kontrola nad daným strojem
●   Speciální způsob spuštění
●   Reprezentovány objektem Driver
●   64bitové verze Windows přidávají jistá omezení
    –   Soubor ovladače musí být digitálně podepsán
        důvěryhodnou autoritou
    –   Patchguard (ochrana proti modifikaci důležitých
        součástí jádra)
Zařízení
●   Reprezentovány objektey Device
●   Každé zařízení musí mít svůj ovladač
●   Aplikace vidí zařízení jako soubory se
    speciálními jmény a mohou s nimi provádět
    různé operace (souborové)
●   Veškeré požadavky na určité zařízení se
    zasílají k jemu příslušnému ovladači (metoda
    zpětně volané funkce – callback)
Virtuální paměť
Adresový prostor procesu
Komunikace s ovladači
●   Aplikace posílá na zařízení požadavky různých
    typů (čtení, zápis, obecná zpráva...)
●   Obecná zpráva: kód požadavku, vstupní
    buffer, výstupní buffer
●   U čtení/zápisu se udává pouze výstupní/vstupní
    buffer
●   Vstupní i výstupní buffer musí aplikace
    specifikovat v rámci jí přístupné oblasti
    adresového prostoru
●   Aplikace tedy může s touto pamětí manipulovat
    (uvolnit, změnit oprávnění, přepsat obsah)
Automatické řešení problému
●   V rámci kódu obecné zprávy lze systému sdělit,
    aby vstupní a výstupní buffer automaticky
    překopíroval do paměti jádra.
●   Aplikace nemůže ovladači „pod rukama“ paměť
    vstupního/výstupního bufferu uvolnit, změnit
    oprávnění či přepsat obsah.
●   Systém buffery kopíruje do nestránkované
    paměti.
●   Velké buffery = pomalé a paměťově náročné
●   Neporadí si s „neplacatými“ buffery
Manuální řešení #1
●   Kopírovat si potřebná data
    sám
    –   Ověřit, že:
        ●   Buffery neleží v paměti jádra
        ●   Lze z nich číst/do nich
            zapisovat
    –   Kopírovat v try/except bloku
    –   Aplikace udává adresy
        bufferů
    –   Aplikace má plnou kontrolu
        nad jejich virtuálními
        stránkami
Manuální řešení #2
●   Přemapovat buffery do
    paměti jádra
●   Aplikace stále může
    obsah bufferů přepsat,
    nemůže ale paměť
    uvolnit „pod rukama“ či
    změnit oprávnění
    virtuálních stránek
●   Granularita: velikost
    stránky
●   Pro menší data pomalé
Důsledky špatného ošetření
●   Modrá obrazovka smrti
●   Možnost zapsat libovolná data na libovolné
    místo v paměti jádra
    –   Lze využít k vykonání libovolného kódu v režimu
        jádra
Praktická ukázka
●   Ovladač dcr.sys (DriverCrypt)
●   Při obsluze požadavku nekontroluje ukazatel
    předaný v rámci vstupního bufferu.
●   Na adresu udanou v tomto ukazateli zapisuje
    data
●   Aplikace tedy může zajistit vykonání svého
    kódu
    –   Přepis položky hal!HalDispatchTable
    –   NtQueryInformationProfile – zajistí vykonání
        funkce uložené v dané položce v
        HalDispatchTable
Systémová volání
●   Speciální typ „volání“ podprogramu, který
    dovoluje aplikaci vykonat některou ze
    systémem definovaných rutin v režimu jádra.
●   Místo adresy se používá číslo volání
●   Jádro systému disponuje tabulkou, která čísla
    volání překládá na adresy rutin
●   Hodnoty argumentů volání jsou překopírovány
    do paměti jádra
    –   Celé buffeery ne, jádro pro každé sys. volání zná
        počet argumentů, ale ne jejich význam
    –   Stejné problémy s buffery jako v minulém případě
Systémová volání II
Filtrování systémových volání
●   Postup
    –   Zkontrolovat argumenty
        ●   Dochází ke kopírování bufferů do paměti jádra
    –   Dojít k rozhodnutí
    –   Zavolat originální rutinu
        ●   Originální argumenty, použijí se buffery přístupné z
            aplikace
        ●   Obsah bufferů se od kontroly v prvním kroku mohl
            změnit!
Útok záměnou argumentů
●   Zvolit cíl útoku (konkrétní systémové volání)
●   Naplnit buffery tak, aby nedošlo k zablokování
    volání bezpečnostní aplikací
●   Provést systémové volán
●   Ve vhodný okamžik (bezpečnostní software
    volání povolil, originální rutina ještě nebyla
    volána) změnit obsah bufferů daty, která
    instruují originální rutinu k provedení
    nepovolené operace
●   Důsledek: ukončení chráněných procesů, zápis
    do chráněných klíčů registru...
Praktická ukázka
●   Norman Security Suite filtruje
    NtTerminateProcess
●   NtTerminateProcess vyžaduje specifikovat
    „přístupovou kartu“ /handle) k cílovému procesu
●   Průběh útoku:
    –   Získat handle ke svému procesu (OpenProcess)
    –   Použít jej při volání NtTerminateProcess
    –   Ve vhodný okamžik handle zrušit (CloseHandle)
        a získat handle na cílvoý proces (OpenProcess)
    –   S trochou štěstí budou mít obě handle stejnou
        hodnotu
Další zajímavosti
●   Obecná chyba
    –   Nezávislá na platformě
    –   Často tam, kde se modifikuje kód
●   Teoreticky známa jíž 17 let
    –   1996 – popsána na Unixu a velmi teoreticky
    –   2003/4, 2008, 2010
●   Relativně „zastaralá“
    –   64bitové verze Windows stále používanější
    –   Patchguard výrazně omezují modifikace kódu v
        jádře
Obrana
●   Používat dokumentovaná rozhraní
●   Modifikovat kód pouze tam, kde už nedochází k
    přenosu bufferů (a handle) do paměti jádra
●   Nemodifikovat kód, ale datové struktury
●   Donutit originální obsluhy systémových volání
    brát argumenty z paměti jádra
    –   Dochází k „drobné“ změně sémantiky
    –   Neprobíhá verifikace proti bezpečnostnímu modelu
Další čtení
●   KHOBE – 8.0 Earthquake for Windows
    Desktop Security Software
    (http://www.matousec.com/info/articles/khobe-
    8.0-earthquake-for-windows-desktop-security-
    software.php)
●   Plague in Security Software Drivers
    (http://www.matousec.com/info/articles/plague-
    in-security-software-drivers.php)
???
●   Martin Dráb
●   Email: martin.drab@email.cz
Závěr

More Related Content

Similar to Zranitelnosti ovladačů jádra Windows v praxi

J-Testy - Příručka obsluhy serveru (CS)
J-Testy - Příručka obsluhy serveru (CS)J-Testy - Příručka obsluhy serveru (CS)
J-Testy - Příručka obsluhy serveru (CS)
Jaroslav Kačer
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
zdarec123
 
SmartCard Forum 2008 - Programové vybavení OKsmart
SmartCard Forum 2008 - Programové vybavení OKsmartSmartCard Forum 2008 - Programové vybavení OKsmart
SmartCard Forum 2008 - Programové vybavení OKsmart
OKsystem
 
SmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformSmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatform
OKsystem
 
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictvíSmart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
OKsystem
 

Similar to Zranitelnosti ovladačů jádra Windows v praxi (20)

Optimalizace Symfony na devu
 Optimalizace Symfony na devu Optimalizace Symfony na devu
Optimalizace Symfony na devu
 
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
Vašek Purchart - Optimalizace Symfony na devu (2. sraz přátel Symfony v Praze)
 
06 Cvičení.pptx
06 Cvičení.pptx06 Cvičení.pptx
06 Cvičení.pptx
 
Vlastimil Krejčíř - Systémový pohled na software Archivematica
Vlastimil Krejčíř - Systémový pohled na software ArchivematicaVlastimil Krejčíř - Systémový pohled na software Archivematica
Vlastimil Krejčíř - Systémový pohled na software Archivematica
 
Před čím vás Nette ani Symfony neochrání
Před čím vás Nette ani Symfony neochráníPřed čím vás Nette ani Symfony neochrání
Před čím vás Nette ani Symfony neochrání
 
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS SolarisOracle Solaris Day 2013 - Oracle DB and OS Solaris
Oracle Solaris Day 2013 - Oracle DB and OS Solaris
 
J-Testy - Příručka obsluhy serveru (CS)
J-Testy - Příručka obsluhy serveru (CS)J-Testy - Příručka obsluhy serveru (CS)
J-Testy - Příručka obsluhy serveru (CS)
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
 
Framework X jako API
Framework X jako APIFramework X jako API
Framework X jako API
 
SmartCard Forum 2008 - Programové vybavení OKsmart
SmartCard Forum 2008 - Programové vybavení OKsmartSmartCard Forum 2008 - Programové vybavení OKsmart
SmartCard Forum 2008 - Programové vybavení OKsmart
 
Maturitní otázka
Maturitní otázkaMaturitní otázka
Maturitní otázka
 
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
Šárka Hálečková a Tomáš Burda - Řešení pro dlouhodobou archivaci v Národní kn...
 
SmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatformSmartCard Forum 2011 - Systém GlobalPlatform
SmartCard Forum 2011 - Systém GlobalPlatform
 
Bitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin walletBitcoin Trezor - hardware bitcoin wallet
Bitcoin Trezor - hardware bitcoin wallet
 
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictvíSmart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
Smart Cards & Devices Forum 2013 - Zabezpečení mobilních bankovnictví
 
Bezpečnost mobilních bankovnictví
Bezpečnost mobilních bankovnictvíBezpečnost mobilních bankovnictví
Bezpečnost mobilních bankovnictví
 
Mikro­kontrolér s Wi-Fi za $3! nejen pro IOT
Mikro­kontrolér s Wi-Fi za $3! nejen pro IOTMikro­kontrolér s Wi-Fi za $3! nejen pro IOT
Mikro­kontrolér s Wi-Fi za $3! nejen pro IOT
 
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábKontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
 
Bezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNETBezpečnost síťové části e-Infrastruktury CESNET
Bezpečnost síťové části e-Infrastruktury CESNET
 
Clanek intelvpro
Clanek intelvproClanek intelvpro
Clanek intelvpro
 

More from Security Session

Falsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivostiFalsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivosti
Security Session
 
Detekcia kompromitacie z pohladu pracovnika bezpecnosti
Detekcia kompromitacie z pohladu pracovnika bezpecnostiDetekcia kompromitacie z pohladu pracovnika bezpecnosti
Detekcia kompromitacie z pohladu pracovnika bezpecnosti
Security Session
 

More from Security Session (20)

Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
 
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
 
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
 
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
 
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
 
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
 
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
 
Prezentace brno
Prezentace brnoPrezentace brno
Prezentace brno
 
OSINT and beyond
OSINT and beyondOSINT and beyond
OSINT and beyond
 
Exploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýExploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan Kopecký
 
Research in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýResearch in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin Drahanský
 
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýDolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
 
Turris - Robert Šefr
Turris - Robert ŠefrTurris - Robert Šefr
Turris - Robert Šefr
 
Co se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkCo se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel Minařík
 
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - 	Pavel TáborskýJak odesílat zprávy, když někdo vypne Internet - 	Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
 
Two Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožTwo Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal Ambrož
 
Falsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivostiFalsifikace biometricke charakteristiky a detekce zivosti
Falsifikace biometricke charakteristiky a detekce zivosti
 
Nehacknutelny web
Nehacknutelny webNehacknutelny web
Nehacknutelny web
 
Detekcia kompromitacie z pohladu pracovnika bezpecnosti
Detekcia kompromitacie z pohladu pracovnika bezpecnostiDetekcia kompromitacie z pohladu pracovnika bezpecnosti
Detekcia kompromitacie z pohladu pracovnika bezpecnosti
 

Zranitelnosti ovladačů jádra Windows v praxi

  • 1. Zranitelnosti ovladačů jádra v praxi Martin Dráb martin.drab@email.cz
  • 2. Obsah ● Ovladače a zařízení ● Virtuální paměť ● Komunikace s ovladači ● Útoky na chybné ošetřování vstupů ● Systémová volání ● Útok záměnou argumentů
  • 3. Ovladače ● Soubory formátu PE ● Vykonávány v režimu jádra – Plná kontrola nad daným strojem ● Speciální způsob spuštění ● Reprezentovány objektem Driver ● 64bitové verze Windows přidávají jistá omezení – Soubor ovladače musí být digitálně podepsán důvěryhodnou autoritou – Patchguard (ochrana proti modifikaci důležitých součástí jádra)
  • 4. Zařízení ● Reprezentovány objektey Device ● Každé zařízení musí mít svůj ovladač ● Aplikace vidí zařízení jako soubory se speciálními jmény a mohou s nimi provádět různé operace (souborové) ● Veškeré požadavky na určité zařízení se zasílají k jemu příslušnému ovladači (metoda zpětně volané funkce – callback)
  • 7. Komunikace s ovladači ● Aplikace posílá na zařízení požadavky různých typů (čtení, zápis, obecná zpráva...) ● Obecná zpráva: kód požadavku, vstupní buffer, výstupní buffer ● U čtení/zápisu se udává pouze výstupní/vstupní buffer ● Vstupní i výstupní buffer musí aplikace specifikovat v rámci jí přístupné oblasti adresového prostoru ● Aplikace tedy může s touto pamětí manipulovat (uvolnit, změnit oprávnění, přepsat obsah)
  • 8. Automatické řešení problému ● V rámci kódu obecné zprávy lze systému sdělit, aby vstupní a výstupní buffer automaticky překopíroval do paměti jádra. ● Aplikace nemůže ovladači „pod rukama“ paměť vstupního/výstupního bufferu uvolnit, změnit oprávnění či přepsat obsah. ● Systém buffery kopíruje do nestránkované paměti. ● Velké buffery = pomalé a paměťově náročné ● Neporadí si s „neplacatými“ buffery
  • 9. Manuální řešení #1 ● Kopírovat si potřebná data sám – Ověřit, že: ● Buffery neleží v paměti jádra ● Lze z nich číst/do nich zapisovat – Kopírovat v try/except bloku – Aplikace udává adresy bufferů – Aplikace má plnou kontrolu nad jejich virtuálními stránkami
  • 10. Manuální řešení #2 ● Přemapovat buffery do paměti jádra ● Aplikace stále může obsah bufferů přepsat, nemůže ale paměť uvolnit „pod rukama“ či změnit oprávnění virtuálních stránek ● Granularita: velikost stránky ● Pro menší data pomalé
  • 11. Důsledky špatného ošetření ● Modrá obrazovka smrti ● Možnost zapsat libovolná data na libovolné místo v paměti jádra – Lze využít k vykonání libovolného kódu v režimu jádra
  • 12. Praktická ukázka ● Ovladač dcr.sys (DriverCrypt) ● Při obsluze požadavku nekontroluje ukazatel předaný v rámci vstupního bufferu. ● Na adresu udanou v tomto ukazateli zapisuje data ● Aplikace tedy může zajistit vykonání svého kódu – Přepis položky hal!HalDispatchTable – NtQueryInformationProfile – zajistí vykonání funkce uložené v dané položce v HalDispatchTable
  • 13. Systémová volání ● Speciální typ „volání“ podprogramu, který dovoluje aplikaci vykonat některou ze systémem definovaných rutin v režimu jádra. ● Místo adresy se používá číslo volání ● Jádro systému disponuje tabulkou, která čísla volání překládá na adresy rutin ● Hodnoty argumentů volání jsou překopírovány do paměti jádra – Celé buffeery ne, jádro pro každé sys. volání zná počet argumentů, ale ne jejich význam – Stejné problémy s buffery jako v minulém případě
  • 15. Filtrování systémových volání ● Postup – Zkontrolovat argumenty ● Dochází ke kopírování bufferů do paměti jádra – Dojít k rozhodnutí – Zavolat originální rutinu ● Originální argumenty, použijí se buffery přístupné z aplikace ● Obsah bufferů se od kontroly v prvním kroku mohl změnit!
  • 16. Útok záměnou argumentů ● Zvolit cíl útoku (konkrétní systémové volání) ● Naplnit buffery tak, aby nedošlo k zablokování volání bezpečnostní aplikací ● Provést systémové volán ● Ve vhodný okamžik (bezpečnostní software volání povolil, originální rutina ještě nebyla volána) změnit obsah bufferů daty, která instruují originální rutinu k provedení nepovolené operace ● Důsledek: ukončení chráněných procesů, zápis do chráněných klíčů registru...
  • 17. Praktická ukázka ● Norman Security Suite filtruje NtTerminateProcess ● NtTerminateProcess vyžaduje specifikovat „přístupovou kartu“ /handle) k cílovému procesu ● Průběh útoku: – Získat handle ke svému procesu (OpenProcess) – Použít jej při volání NtTerminateProcess – Ve vhodný okamžik handle zrušit (CloseHandle) a získat handle na cílvoý proces (OpenProcess) – S trochou štěstí budou mít obě handle stejnou hodnotu
  • 18. Další zajímavosti ● Obecná chyba – Nezávislá na platformě – Často tam, kde se modifikuje kód ● Teoreticky známa jíž 17 let – 1996 – popsána na Unixu a velmi teoreticky – 2003/4, 2008, 2010 ● Relativně „zastaralá“ – 64bitové verze Windows stále používanější – Patchguard výrazně omezují modifikace kódu v jádře
  • 19. Obrana ● Používat dokumentovaná rozhraní ● Modifikovat kód pouze tam, kde už nedochází k přenosu bufferů (a handle) do paměti jádra ● Nemodifikovat kód, ale datové struktury ● Donutit originální obsluhy systémových volání brát argumenty z paměti jádra – Dochází k „drobné“ změně sémantiky – Neprobíhá verifikace proti bezpečnostnímu modelu
  • 20. Další čtení ● KHOBE – 8.0 Earthquake for Windows Desktop Security Software (http://www.matousec.com/info/articles/khobe- 8.0-earthquake-for-windows-desktop-security- software.php) ● Plague in Security Software Drivers (http://www.matousec.com/info/articles/plague- in-security-software-drivers.php)
  • 21. ??? ● Martin Dráb ● Email: martin.drab@email.cz