TrueCrypt prolomen? Ale kdepak!

Na konferenci Black Hat předvedl „specialista na bezpečnost“ Peter Kleissner nový typ útoku, který umožňuje překonat TrueCrypt a ovládnout zašifrovaný počítač. Tak to aspoň prezentují některá seriozní média a očekávám, že pokud si to přečte nějaký počítačově trochu vzdělaný novinář z Novy a spol., dočkáme se skutečně horrorových zpráv. Realita je, jako obvykle, mnohem prozaičtější: Ano, ten útok funguje, ale nepřináší absolutně nic nového – a zejména nijak nenarušuje bezpečnost TrueCryptu.

Stoned Bootkit

O co v útoku Stoned Bootkit vlastně jde? Máme operační systém Windows se systémovým oddílem zašifrovaným programem TrueCrypt. Jeho majitel se pochopitelně domnívá, že jsou jeho data zcela v bezpečí, protože do zašifrovaného systému se nikdo nemůže dostat. Stoned Bootkit ukazuje, že tato domněnka nemusí za určitých okolností platit. Nástroj totiž dokáže do zašifrovaného operačního systému vpašovat svůj záškodnický prográmek, který si tam bude moci dělat, co bude chtít, a údajně nebude zevnitř detekovatelný. To aspoň tvrdí jeho autor. Ve skutečnosti to vypadá trochu jinak.

Princip fungování Stoned Bootkitu je docela jednoduchý: Útočník nahradí standardní master boot record, ve kterém je normálně uložen inicializační program pro spuštění operačního systému, a v případě TrueCryptu navíc základní dešifrovací jádro, svým vlastním programem. Ten prvně „napíchne“ služby BIOSu pro přístup k diskům a zajistí si, že každý požadavek učiněný na BIOS projde Bootkitem. Dál načte startovací data TrueCryptu a upraví je tak, aby se zařadil i mezi Windows a TrueCrypt (mezi TrueCryptem a BIOSem už je po prvním kroku). No a vzápětí spustí TrueCryptovský zavaděč, který nechá uživatele zadat heslo a začne dešifrovat disk.

Standardní chování nenapadnutého systému tedy vypadá takhle:

  1. Windows potřebují něco přečíst z disku. Vznesou požadavek na ovladač TrueCryptu.
  2. Ovladač TrueCryptu si řekne BIOSu, ať mu pošle data.
  3. BIOS přečte data z disku a vrátí je TrueCryptu.
  4. TrueCrypt přečtená data dešifruje a vrátí je Windows.
  5. Windows si s daty provedou, co potřebují.
  6. Teď je potřeba data zapsat. Windows si tedy zase řeknou TrueCryptu.
  7. TrueCrypt poskytnutá data zašifruje a předá je BIOSu.
  8. BIOS zapíše data na disk.

Po napadení se řetězec volání změní:

  1. Windows potřebují něco přečíst z disku. Vznesou požadavek na ovladač Stoned Bootkitu.
  2. Stoned Bootkit předá TrueCryptu.
  3. Ovladač TrueCryptu si řekne Stoned Bootkitu, ať mu pošle data.
  4. Stoned Bootkit předá požadavek BIOSu.
  5. BIOS přečte data z disku a vrátí je Stoned Bootkitu.
  6. Stoned Bootkit se podívá, jestli nejde o data, která by rád ochránil před čmuchaly (třeba master boot record) a případně je příslušně upraví. Upravená je pak předá TrueCryptu.
  7. TrueCrypt přečtená data dešifruje a vrátí je Stoned Bootkitu.
  8. Tady má Stoned Bootkit k dispozici dešifrovaná data, se kterými si opět provede svoje akce, a pak je předá Windows.
  9. Windows si s daty provedou, co potřebují.
  10. Teď je potřeba data zapsat. Windows si tedy zase řeknou Stoned Bootkitu.
  11. Stoned Bootkit si s nezašifrovanými daty udělá, co potřebuje, a pak je pošle TrueCryptu.
  12. TrueCrypt poskytnutá data zašifruje a předá je Stoned Bootkitu.
  13. Stoned Bootkit se podívá, jestli náhodou nejde o nějaký citlivý zápis (třeba pokus o opravu MBR), případně ho opraví a teprve pak požádá BIOS o zápis.
  14. BIOS zapíše data na disk.

Výsledkem je, že Stoned Bootkit má pod kontrolou veškerý tok dat z disku a na disk, jak v zašifrované, tak v nezašifrované podobě. Navíc jeho ovladač běží „nad“ Windows, které ho ani nemohou nijak kontrolovat, naopak on může ovlivňovat je – třeba uměle zvýšit čerstvě spouštěnému procesu oprávnění nebo si uložit část paměti obsahující šifrovací klíč.

Co na to TrueCrypt

Celý útok je sice prezentován jako pokoření TrueCryptu, ve skutečnosti se ale TrueCryptu vůbec netýká a dokonce ani není nový. Principiálně nejde o nic jiného než kombinaci několika postupů, které s námi jsou už pěkně dlouho: Princip vřazení se mezi operační systém a BIOS a využití tohoto stavu pro provádění svých operací používaly viry přinejmenším od poloviny osmdesátých let a skrývání sebe sama před odhalením je jen o málo mladší (svůj velký boom mělo v první polovině 90. let). Nové je jen to, že Stoned Bootkit je zřejmě prvním praktickým pokusem o specifické cílení na TrueCrypt a na možnosti, jak proniknout na jím chránený disk.

Je proto TrueCrypt méně bezpečný nebo dokonce nebezpečný? Ani v nejmenším. Zaprvé, přesně stejný princip jde použít proti jakémukoliv šifrovacímu programu, jakémukoliv operačnímu systému a jakémukoliv počítači, s možnou výjimkou systémů chráněných čipem TPM – takže i kdyby šlo o skutečně průlomový útok, nebyl by na tom TrueCrypt hůř než ostatní.

Hlavně ale celá věc spočívá na předpokladu, že útočník má takový přístup k cílovému počítači, že do něj dokáže nainstalovat vlastní kód s maximálními oprávněními, a pak přiměje uživatele, aby s takto napadeným systémem pracoval. Což jsou shodou okolností předpoklady, které překonají jakékoliv zabezpečení. Fakticky to znamená, že uživatel buď spustil útočníkův kód s administrátorskými právy (a ten kód pak mohl třeba rovnou přečíst šifrovací klíč z paměti počítače a vůbec se nemusel zatěžovat nějakým složitým napichováním BIOSu), nebo mu poskytl fyzický přístup k počítači (kde pak útočník mohl zrovna tak dobře nainstalovat hardwarový keylogger nebo třeba mikrokameru a „prolomit šifrování“ tímto způsobem). Klíčové je, že pokud chcete mít počítač bezpečný, tak tyto předpoklady nesmí být splněny – protože jakmile jednou splněny jsou, existuje tolik možných vektorů útoku, že není možné zabránit všem. Lidé stojící za TrueCryptem mají v tomto smyslu naprostou pravdu, když se brání tvrzení o prolomení TrueCryptu – je to problém uživatele, ne TrueCryptu, že uživatel nedodržel základní bezpečnostní pravidla.

Na druhou stranu je třeba uznat tři věci: Za prvé, tato bezpečnostní pravidla se dodržují nesmírně obtížně a třeba v domácím i běžném firemním použití si to vůbec nedovedu představit. Za druhé, Stoned Bootkit má těch předpokladů výrazně méně než ostatní současné metody – třeba ten hardwarový keylogger vyžaduje, aby útočník získal k počítači přístup nejméně dvakrát (jednou pro instalaci, jednou pro vyzvednutí dat a jejich využití), zatímco Stoned Bootkit jen jednou (protože potom už dokáže přesvědčit operační systém, aby mu poskytnul přístup k internetu a získal tak ten druhý přístup nadálku). Za třetí, pokud si na tom dá autor záležet, bude použití Stoned Bootkitu naprosto triviální operací: Při použití vhodné bezpečnostní díry může být počítač nakažen přes internet, při fyzickém přístupu buď vložím klíčenku a spustím instalátor (pokud mám fyzický přístup k běžícímu stroji s potřebnými právy), nebo restartuju počítač, dám do CD mechaniky bootovací CDčko a nechám z něj spustit instalační program (uživatel pak přijde k restartovanému systému, ale to si řekne, že došlo k nějakému výpadku proudu nebo bluescreenu nebo tak něčemu…). Za pár sekund může být celá akce úspěšně provedena, což se asi nedá říct o instalaci mikrokamery nebo tzv. cold-boot útoku.

Prostě a jednoduše: Není to žádný průlom ani nic, co bychom už dříve neznali, ale jde o velice zajímavou praktickou realizaci, která opět dokazuje starou pravdu, že bez fyzické bezpečnosti není ani informační bezpečnost.

Podobné příspěvky:

14 komentářů “TrueCrypt prolomen? Ale kdepak!”

  1. avatar pepak napsal:

    V té úplně počáteční fázi, kterou popsaný útok napadá, to není vtip.

  2. avatar bios napsal:

    OS beziaci v protected rezime vyuziva pocas svojho behu volania BIOSu, to ma byt vtip? 🙂

  3. avatar pepak napsal:

    Pokud se ptáš v souvislosti s tímto útokem, tak je to úplně jedno – tím je zranitelný každý software.

  4. avatar b0r1s napsal:

    Ok. Otazka je, ci zostat u kontajnera v TrueCrypt alebo prejst k SecurStar – DriveCrypt. TrueCrypt je zadarmo, avsak ide mi o bezpecnost.

  5. avatar pepak napsal:

    Ne. Ten software dělá přesně to samé, co už bylo popsáno – vytáhne z paměti běžícího počítače klíče k namountovaným svazkům. Dostat se ke svazkům, které namountované nejsou, neumí. Tzn. funguje pouze v případě, že uživatel TrueCryptu porušil základní bezpečnostní pravidla.

  6. avatar b0r1s napsal:

    Tak by ma zaujimalo, ci sa to da skutocne prelomit s LostPassword Passware Kit Forensic 🙂

  7. avatar pepak napsal:

    Pokud vás vyděsil útok „Evil Maid“ (se správně senzačním titulkem například zde na rootu – kdo kdy říkal, že jedině Microsoft má monopol na FUD bláboly?), klidně dřímejte dál – jde jen o další podobný případ, jako popisuji v článku, kdy jsou „bezpečnostní experti“ zaskočeni skutečností, že při nedodržení fyzické bezpečnosti neexistuje ani bezpečnost informační…

  8. avatar abc napsal:

    😉

  9. avatar pepak napsal:

    Děkuji abc za ikonku.

  10. avatar pepak napsal:

    Přímo prolomením algoritmu podle mě zanedbatelná.

    Relativně realistickou cestou jsou různé „postranní kanály“. V případě státních institucí například nějaký ten hardwarový keylogger nebo mikrokamera namontovaná nad klávesnicí. Pro běžného zločince je asi teoreticky přijatelná možnost vpašovat ti do počítače trojského koně (takovými těmi tradičními způsoby, jako že ti pošle mailem nějakou svlékající se celebritu), který z paměti truecryptovského driveru vytáhne přímo šifrovací klíč (heslo ne, protože to je zničeno hned poté, co je s jeho pomocí dešifrován hlavní klíč). Pokud po tobě jde nějaká mafie, CIA nebo něco podobného, počítej s útoky typu „gumová hadice“, kterými tě donutí heslo prozradit.

    Pokud nejsi velký zločinec ani nepřechováváš data mimořádné ekonomické nebo strategické ceny, je sotva pravděpodobné, že někomu bude stát za to, snažit se dostat do tvých šifrovaných dat.

  11. avatar abc napsal:

    Jak velka je teda pravdepodobnost, ze se mi nekdo (zlodej, policie, BIS, CIA, …) dostane k datum? Pouzivam zasifrovany cely disk (AES) se systemem (na pocitaci a na notebooku) od doby, kdy to TrueCrypt umoznuje. Bootuje se to pres klasicky zavadec TrueCryptu. Hesla mam vice jak 30. znakova a slozita. Posli mi mejla a poslu ti nejake favicon. 😉

  12. avatar pepak napsal:

    Problém je, že nejsem grafik a neumím si žádnou použitelnou favicon udělat.

  13. avatar Danoboss napsal:

    Ďalší zaujímavý článok ohľadne bezpečnosti, tvoj web som si pridal do záložiek a len jedna vec mi vadí pri rýchlej navigácii – že tvoj web nemá žiadnu favicon, takže je ťažké ťa rýchlo identifikovať.

Leave a Reply

Themocracy iconWordPress Themes

css.php