Zadní vrátka
Author
Albert FloresZadní vrátka je v informatice název metody, která umožňuje obejít běžnou autentizaci, která za běžných okolností brání uživateli v neoprávněném využívání počítačového systému. Pokud jsou zadní vrátka v softwaru či hardwaru zabudována, mohou být využívána k seriózním účelům (např. pro univerzální heslo pro servisní přístup), avšak často jsou zneužívána (crackerem jako exploit) či vládními organizacemi (např. NSA například přes RSA BSAFE či do produktů Cisco Systems), takže jsou klasifikována jako bezpečnostní riziko, resp. zranitelnost. Nemohou totiž být bezpečná, ale vlády přesto o jejich implementaci usilují. Mohou ale být auditovatelná. Stejné riziko představují i univerzální klíče pro zámky (jako například TSA zámky).
Příklady
Například u novějších procesorů Intel běží uvnitř neznámý firmware Management Engine (OS MINIX), který může taková vrátka obsahovat. Součástí procesorů AMD je zase tajný Secure Processor. +more UEFI také může obsahovat zadní vrátka (univerzální klíč). Obcházení hesel vkládá i Apple do Mac OS. Zadní vrátka mohou obsahovat i mobilní telefony např. systém Android v telefonech Samsung. Stačí například pouze otevřít obrázek. Údajně jej obsahují i zařízení Huawei a ZTE.
Zadní vrátka na poslední chvíli objevená v roce 2024 v otevřeném nástroji XZ Utils málem otevřela útočníkovi přístup do milionů linuxových serverů.
Důvěra v software
Charakteristika
Zadní vrátka obchází standardní autentizační mechanismy, takže poskytují (typicky skrytou) metodu vstupu do programu nebo počítačového systému.
Pro svůj vnik do operačního systému mohou backdoors obejít firewall například tím, že se vydávají za webový prohlížeč.
Tento kód může mít formu samostatně instalovaného programu nebo se jedná o modifikaci stávajícího systému. Samotný vstup do systému pak mívá formu zadání fiktivního uživatelského jména a hesla, které napadený systém bez kontroly přijme a přidělí uživateli administrátorská práva.
Některé druhy malware, např. červi Sobig nebo Mydoom instalují zadní vrátka na nechráněné systémy. +more Napadené počítače poté mohou sloužit útočníkům k další činnosti např. k rozesílání spamu nebo k útoku DoS.
Zadní vrátka mohou být také v programu úmyslně zanechané programátorem nebo se může jednat o pomůcku pro ladění programu, která byla omylem ponechána i v ostré verzi.
Většinu cheatů lze považovat za druh zadních vrátek relativně neškodného druhu.
Základní požadavky na backdoor: * neviditelnost - uživatel se nesmí dozvědět o tom, že je program spuštěn * všestrannost - program se musí přizpůsobit podmínkám, jaké na daném pc jsou - šifry, certifikáty, hesla...
Důvěra v kompilátory
Úvahy o důvěře kompilátoru
Ken Thompson byl první, kdo v tištěné formě popsal otázky problémů se zadními vrátky. Zdůrazňuje, že důvěra je pojem pouze „relativní“. +more Zjistil, že lidé jsou důvěřiví (nebo spíše neznalí zkompilovaných kódů). Běžní uživatelé vidí pouze texty, které přečtou na různých webových stránkách či programovací kódy, nikoliv však dále již zkompilované kódy, které kompiluje kompilátor, Uživatelé musí věřit, že se kompilátor chová tak, jak chtějí a že to není žádný škodlivý program, který se za kompilátor jen vydává. V případě nakažení jednoduše přeloží požadovaný kód, který si modifikuje, aby obstaral např. heslo.
Takto provedený útok byl naposledy objeven (srpen 2009) Sophos Labs: Virus W32/Induc-A, nakažený kompilátor pro vývojové prostředí Delphi, konkrétně jazyk Pascal. Jakmile je systém napaden tímto škodlivým kódem či trojanem, špatně se získává kontrola nad systémem. +more Jedinou možnou obranou je použití vlastního kompilátoru, což je pro většinu uživatelů (neprogramátorů) naprosto nesmyslné.
Reflections on Trusting Trust
Bylo vytvořeno schéma „důvěřivé důvěry“ (Trusting Trust), které má za cíl motivovat uživatelé, aby kontrolovali kompilátory, které používají. Schéma pojednává i o používání vlastních disassemblerů, které dokáží převést strojový kód do symbolického kódu v jazyce assembler, což umožňuje zkoumat kód tak, aby nedošlo k napadání systému. +more Zde je ovšem problém, že běžní uživatelé tomuto kódu nerozumí a i jazyk assembler se jim může zdát jako škodlivý. Dalším způsobem jak se takovýmto útokům bránit je studování HEX souborů, které vytvoří kompilátor, kde je detailně napsané, jak se program bude chovat, kam se jaké adresy kopírují a co se odkud maže. Existují i programy, které z tohoto HEX souboru dokáží vytvořit zpětně soubor v programovacím jazyce, ovšem je zde opět problém, že kompilátor na takovýto převod musí být opět neinfikovaný.
Rozdílné dvojité kompilace
Princip dvojí kompilací podle David A. +more Wheeler spočívá v tom, že se zkompiluje zdrojový kód do strojového kódu a poté vlastním kompilátorem nazpět. Výsledný soubor a soubor původní musí být shodné.
Důvěra v hardware
Důvěru v hardware může částečně řešit open-source hardware.