Zadní vrátka

Z Wikipedie, otevřené encyklopedie

Zadní vrátka (anglicky backdoor) 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. Zadní vrátka jsou součástí softwaru či hardwaru a mohou být využívána k seriózním účelům (např. 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),[1] 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í.[2]

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.[3] Součástí procesorů AMD je zase tajný Secure Processor.[4] UEFI také může obsahovat zadní vrátka (univerzální klíč).[5] Obcházení hesel vkládá i Apple do Mac OS.[6] Zadní vrátka mohou obsahovat i mobilní telefony např. systém Android v telefonech Samsung.[7]

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. 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...

Ú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.[8] Zdůrazňuje, že důvěra je pojem pouze „relativní“. 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. 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. 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. 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é.[9]

Reference

  1. https://www.infoworld.com/article/2608141/internet-privacy/snowden--the-nsa-planted-backdoors-in-cisco-products.html - Snowden: The NSA planted backdoors in Cisco products
  2. http://www.theregister.co.uk/2018/02/14/cryptography_experts_fbi/ - Crypto-gurus: Which idiots told the FBI that Feds-only backdoors in encryption are possible?
  3. https://www.zive.cz/bleskovky/hluboko-uvnitr-procesoru-intel-jsou-zadni-vratka-pokud-je-nekdo-zneuzije-zpusobi-digitalni-apokalypsu/sc-4-a-190366/default.aspx - Hluboko uvnitř procesorů Intel jsou zadní vrátka. Pokud je někdo zneužije, způsobí digitální apokalypsu
  4. https://www.root.cz/clanky/minix-je-zrejme-nejrozsirenejsim-systemem-je-ukryty-v-procesorech-intel/ - MINIX je zřejmě nejrozšířenějším systémem, je ukrytý v procesorech Intel
  5. https://www.theregister.co.uk/2016/08/10/microsoft_secure_boot_ms16_100/ - Bungling Microsoft singlehandedly proves that golden backdoor keys are a terrible idea
  6. http://www.itbiz.cz/zpravicky/apple-opravi-software-umoznuje-obejit-zadavani-hesla - Apple opraví software, umožňuje obejít zadávání hesla
  7. http://redmine.replicant.us/projects/replicant/wiki/SamsungGalaxyBackdoor - Samsung Galaxy Back-door
  8. Ken Thompson: Reflections on Trusting Trust
  9. Countering Trusting Trust through Diverse Double-Compiling (DDC), David A. Wheeler, Proceedings of the Twenty-First Annual Computer Security Applications Conference (ACSAC), December 5–9, 2005, Tucson, Arizona, pp. 28-40, Los Alamitos: IEEE Computer Society. ISBN 0-7695-2461-3, ISSN 1063-9527, IEEE Computer Society Order Number P2461. http://www.dwheeler.com/trusting-trust/


Související články