**Metóda tajných vchodov** alebo **zadné vrátka** (angl. *backdoor*) je v informatike názov metódy, ktorá umožňuje obísť bežnú autentifikáciu, ktorá za bežných okolností bráni používateľovi neoprávnenému vniknutiu do počítačového systému a jeho používaniu. Zadné vrátka sú súčasťou softvéru či hardvéru a môžu byť používané k serióznym účelom (napr. pre servisný prístup), ale často sú zneužívané (crackerom ako exploit) či vládnymi organizáciami (napr. NSA cez RSA BSAFE), takže sú považované za bezpečnostné riziko, resp. daný systém má svoju zraniteľnosť. Zadné vrátka môžu obsahovať aj mobilné telefóny napr. systém Android v telefónoch značky Samsung.

Charakteristika
---------------

Zadné vrátka obchádzajú štandardné autentifikačné mechanizmy, takže poskytujú (typicky skrytú) metódu vstupu do programu alebo počítačového systému.

Pre vniknutie do operačného systému môžu backdoors obísť firewall napríklad tým, že sa vydávajú za webový prehliadač.

Tento kód môže mať formu samostatne inštalovaného programu alebo ide o modifikáciu už existujúceho systému (plugin). Samotný vstup do systému potom má formu zadania fiktívneho používateľského mena a hesla, ktoré napadnutý systém bez kontroly príjme a pridelí používateľovi administrátorské práva.

Niektoré druhy malvéru, napr. červy Sobig alebo Mydoom inštalujú zadné vrátka na nechránené systémy. Napadnuté počítače potom môžu slúžiť útočníkom k ďalšej činnosti napr. k rozosielaniu spamu alebo k DoS útoku.

Zadné vrátka môžu byť tiež v programu úmyselne zanechané programátorom alebo môže ísť o pomôcku pre ladenie programu, ktorá bola omylom ponechaná aj vo finálnej verzii.

Väčšina cheatov je možné považovať za druh zadných dvierok relatívne neškodného druhu.

Základné požiadavky na backdoor:

* neviditeľnosť – používateľ sa nesmie dozvedieť o tom, že je program spustený
* všestrannosť – program sa musí prispôsobiť podmienkam, aké na danom počítači sú – šifry, certifikáty, heslá...

Úvahy o dôvere ku kompilátoru
-----------------------------

Ken Thompson bol prvý, kto v tlačenej forme popísal otázky týkajúce sa problémov so zadnými dvierkami. Zdôrazňuje, že slovo dôvera je iba „relatívny" pojem. Zistil, že ľudia sú dôverčiví (alebo skôr neznalí skompilovaných kódov). Bežní používatelia vidia iba texty, ktoré prečítajú na rôznych webstránkach alebo programovacie kódy, ale už nie skompilované kódy, ktoré kompiluje kompilátor. Používatelia musia veriť, že sa kompilátor chová tak, ako potrebujú a že to nie je žiadny škodlivý program, ktorý sa za kompilátor iba vydáva. V prípade nakazenia jednoducho preloží požadovaný kód, ktorý si modifikuje, aby obstaral napr. heslo.

Takto vykonaný útok bol naposledy objavený v auguste v roku 2009 Sophos Labs: Virus W32/Induc-A, nakazený kompilátor pre vývojárske prostredie Delphi, konkrétne jazyk Pascal. Hneď ako je systém napadnutý týmto škodlivým kódom alebo trojanom, len veľmi ťažko sa získava kontrola nad systémom. Jedinou možnou obranou je použitie vlastného kompilátora, čo je pre väčšinu užívateľov (neprogramátorov) absurdné.

Reflections on Trusting Trust
-----------------------------

Bola vytvorená schéma „Dôverčivé dôvery" (Trusting Trust), ktorá má za cieľ motivovať užívateľov, aby kontrolovali kompilátory, ktoré používajú. Schéma sa zaoberá aj používaním vlastných disassemblerov, ktoré dokážu previesť strojový kód do symbolického kódu v jazyku assembler, čo umožňuje preskúmať kód tak, aby nedochádzalo k útokom na systém. Ale problémom je, že bežní používatelia tomuto kódu nerozumejú a môžu ho považovať tiež za škodlivý. Ďalším spôsobom ako sa takýmto útokom brániť je študovanie HEX súborov, ktoré vytvorí kompilátor, kde je podrobne napísané, ako sa program bude chovať, kam sa aké adresy kopírujú a čo sa odkiaľ maže. Existujú aj programy, ktoré z tohoto HEX súboru dokážu vytvoriť spätne súbor v programovacom jazyku, ale je tu opäť problém, že kompilátor na takýto prevod musí byť opäť čistý (neinfikovaný).

Rozdielne dvojité kompilácie
----------------------------

Princíp dvojitej kompilácie podľa David A. Wheeler spočíva v tom, že sa skompiluje zdrojový kód do strojového kódu a potom vlastným kompilátorom naspäť. Výsledný súbor musí byť zhodný s pôvodným súborom.

Referencie
----------

1. ↑   – Samsung Galaxy Back-door
2. ↑  Ken Thompson: Reflections on Trusting Trust
3. ↑  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.