Backdoor (výpočetní technika) - Backdoor (computing)

Backdoor je obvykle skrytý způsob obcházet normální ověřování nebo šifrování v počítačové , produktu, embedded zařízení (např domácí směrovač ), nebo jeho provedení (např součástí kryptografického systému , algoritmus , chipsetu , nebo dokonce „homunculus počítač“ - malý počítač v počítači, jaký lze najít v technologii Intel AMT ). Zadní vrátka se nejčastěji používají k zabezpečení vzdáleného přístupu k počítači nebo získání přístupu k prostému textu v kryptografických systémech . Odtud jej lze použít k získání přístupu k privilegovaným informacím, jako jsou hesla, poškozená nebo odstraněná data na pevných discích nebo k přenosu informací v rámci autoschediastických sítí.

Zadní vrátka mohou mít podobu skryté části programu, samostatného programu (např. Back Orifice může rozvrátit systém pomocí rootkitu ), kódu ve firmwaru hardwaru nebo částí operačního systému , jako je Windows . Trojské koně lze použít k vytváření zranitelností v zařízení. Trojský kůň se může zdát jako zcela legitimní program, ale když je spuštěn, spustí aktivitu, která může nainstalovat zadní vrátka. Ačkoli jsou některé instalovány tajně, ostatní zadní vrátka jsou záměrná a všeobecně známá. Tyto druhy zadních vrátků mají „legitimní“ použití, například poskytují výrobci způsob, jak obnovit hesla uživatelů.

Mnoho systémů, které ukládají informace v cloudu, nedokáže vytvořit přesná bezpečnostní opatření. Pokud je v cloudu připojeno mnoho systémů, mohou hackeři získat přístup ke všem ostatním platformám prostřednictvím nejzranitelnějšího systému.

Výchozí hesla (nebo jiná výchozí pověření) mohou fungovat jako zadní vrátka, pokud je uživatel nezmění. Některé funkce ladění mohou také fungovat jako zadní vrátka, pokud nejsou ve verzi vydání odstraněny.

V roce 1993 se vláda Spojených států pokusila nasadit šifrovací systém, čip Clipper , s výslovnými zadními vrátky pro vymáhání práva a přístup k národní bezpečnosti. Čip byl neúspěšný.

Přehled

Hrozba zadních vrátek se objevila, když se široce ujaly víceuživatelské a síťové operační systémy . Petersen a Turn diskutovali o počítačovém podvracení v dokumentu publikovaném ve sborníku z konference AFIPS z roku 1967. Všimli si třídy aktivních infiltračních útoků, které využívají vstupní body „padacích dveří“ do systému k obejití bezpečnostních zařízení a povolení přímého přístupu k datům. Použití slova padací dveře se zde zjevně shoduje s novějšími definicemi zadních dveří. Od příchodu kryptografie s veřejným klíčem však výraz padací dveře získal jiný význam (viz funkce padací dveře ), a proto je nyní upřednostňován termín „zadní vrátka“, až poté, co se výraz padací dveře přestal používat. Obecněji byla taková porušení zabezpečení podrobně projednána ve zprávě pracovní skupiny RAND Corporation, kterou v roce 1970 publikovaly pod sponzorstvím ARPA JP Anderson a DJ Edwards.

Zadní vrátka v přihlašovacím systému mohou mít formu pevně kódované kombinace uživatele a hesla, která umožňuje přístup do systému. Příklad tohoto druhu zadních vrátek byl použit jako vykreslovací zařízení ve filmu WarGames z roku 1983 , do něhož architekt počítačového systému „ WOPR “ vložil pevně zakódované heslo, které uživateli umožnilo přístup do systému, a do nezdokumentovaných částí systém (zejména režim simulace podobný videohře a přímá interakce s umělou inteligencí ).

Ačkoli počet zadních dveří v systémech využívajících proprietární software (software, jehož zdrojový kód není veřejně dostupný) není široce uznáván, přesto jsou často vystaveny. Programátorům se dokonce podařilo tajně nainstalovat do programů velké množství benigního kódu jako velikonoční vajíčka , ačkoli takové případy mohou zahrnovat oficiální snášenlivost, ne -li skutečné povolení.

Politika a atribuce

Při rozdělení odpovědnosti vstupuje do hry řada úvah o maskování a dýkách .

Skrytá zadní vrátka se někdy maskují jako nechtěné vady (chyby) z důvodů věrohodné popíratelnosti . V některých případech to může začít život jako skutečná chyba (neúmyslná chyba), které, jakmile jsou objeveny, jsou pak záměrně ponechány neopravené a nezveřejněné, ať už nepoctivým zaměstnancem pro osobní výhodu, nebo s výkonným povědomím a dozorem na úrovni C.

Je také možné, že technologická základna zcela nadstandardní korporace bude skrytě a nedozírně poskvrněna externími agenty (hackery), ačkoli se předpokládá, že tato úroveň propracovanosti existuje hlavně na úrovni aktérů národních států. Pokud se například fotomaska získaná od dodavatele fotomasek liší v několika branách od své specifikace fotomasky, výrobce čipu by to těžko zjistil, pokud je jinak funkčně tichý; skrytý rootkit běžící v zařízení pro leptání fotomasek by mohl tuto nesrovnalost bez vědomí výrobce fotomasky schválit, a takovým způsobem mohou zadní vrátka potenciálně vést k jiným. (Tento hypotetický scénář je v podstatě křemíkovou verzí nedetekovatelných zadních vrátek kompilátoru, o nichž bude řeč níže.)

Obecně řečeno, dlouhé řetězce závislostí v moderní, vysoce specializované technologické ekonomii a nesčetné kontrolní body procesu lidských prvků ztěžují jednoznačné určení odpovědnosti v době, kdy se odhalí skryté zadní vrátka.

I přímé přiznání odpovědnosti musí být pečlivě prozkoumáno, pokud je zpovídající strana zavázána jinými mocnými zájmy.

Příklady

Červi

Mnoho počítačových červů , jako například Sobig a Mydoom , si na postižený počítač (obecně počítač na širokopásmovém připojení se systémem Microsoft Windows a Microsoft Outlook ) instaluje zadní vrátka . Zdá se, že taková zadní vrátka jsou nainstalována, aby spammeři mohli odesílat nevyžádanou poštu z infikovaných počítačů. Jiné, například rootkit Sony/BMG , tajně umístěný na milionech hudebních disků CD do konce roku 2005, jsou určeny jako opatření DRM -a v takovém případě jako agenti shromažďující data , protože oba tajné programy, které instalovali, běžně kontaktovaly centrální servery.

Promyšlený pokus zasadit zadní vrátka do jádra Linuxu , odhalený v listopadu 2003, přidal malou a jemnou změnu kódu podvrácením systému řízení revizí . V tomto případě se zdálo, že dvouřádková změna zkontroluje oprávnění uživatele root pro přístup k sys_wait4funkci, ale protože =místo kontroly rovnosti používala přiřazení ==, ve skutečnosti udělovala oprávnění systému. Tento rozdíl je snadno přehlédnutelný a dokonce by mohl být interpretován spíše jako náhodná typografická chyba než jako úmyslný útok.

Žlutě označeno: heslo správce backdooru skryté v kódu

V lednu 2014 byly v některých produktech Samsung pro Android , jako jsou zařízení Galaxy, objeveny zadní vrátka . Vlastní verze systému Android od společnosti Samsung jsou vybaveny zadními vrátky, která poskytují vzdálený přístup k datům uloženým v zařízení. Zejména software Samsung Android, který má na starosti komunikaci s modemem pomocí protokolu Samsung IPC, implementuje třídu požadavků známých jako příkazy vzdáleného souborového serveru (RFS), která umožňuje operátorovi zadních vrát provádět přes dálkové ovládání modemu I/O operace na pevném disku zařízení nebo jiném úložišti. Vzhledem k tomu, že na modemu je spuštěn proprietární software Android společnosti Samsung, je pravděpodobné, že nabízí bezdrátové dálkové ovládání, které by poté bylo možné použít k vydávání příkazů RFS a tím k přístupu k systému souborů v zařízení.

Zadní vrátka kódu objektu

Těžší detekce zadních vrátků zahrnuje úpravu objektového kódu namísto zdrojového kódu-objektový kód je mnohem obtížnější kontrolovat, protože je navržen tak, aby byl strojově čitelný, ne čitelný pro člověka. Tyto zadní vrátka lze vložit buď přímo do kódu objektu na disku, nebo je v určitém okamžiku vložit během kompilace, propojování sestav nebo načítání-v druhém případě se zadní vrátka nikdy neobjeví na disku, pouze v paměti. Zadní vrátka objektového kódu je obtížné detekovat kontrolou kódu objektu, ale lze je snadno detekovat prostou kontrolou změn (rozdílů), zejména v délce nebo v kontrolním součtu, a v některých případech je lze detekovat nebo analyzovat rozebráním kódu objektu. Zadní vrátka objektového kódu lze dále odstranit (za předpokladu, že je k dispozici zdrojový kód) jednoduchým překompilováním ze zdroje v důvěryhodném systému.

Aby se taková zadní vrátka vyhnula detekci, musí být všechny existující kopie binárních souborů podvráceny a musí být také kompromitovány všechny kontrolní součty ověřování a zdroj musí být nedostupný, aby se zabránilo rekompilaci. Alternativně mohou být tyto další nástroje (délkové kontroly, rozdíly, kontrolní součty, rozebírače) kompromitovány, aby se skryly zadní vrátka, například detekce, že se převrací podvrácený binární soubor a vrací očekávanou hodnotu, nikoli skutečnou hodnotu. K utajení těchto dalších podvracení musí nástroje také skrýt změny samy o sobě - ​​například podvrácené kontrolní léto musí také zjistit, zda kontroluje součet sám (nebo jiné podvrácené nástroje) a vrátit falešné hodnoty. To vede k rozsáhlým změnám v systému a nástrojům, které jsou potřeba k utajení jediné změny.

Protože objektový kód lze regenerovat překompilováním (opětovným sestavením, opětovným spojením) původního zdrojového kódu, vytvoření trvalého zadního vrátka objektového kódu (bez úpravy zdrojového kódu) vyžaduje převrácení samotného kompilátoru - takže když zjistí, že kompiluje napadený program, vloží zadní vrátka - nebo alternativně assembler, linker nebo zavaděč. Protože to vyžaduje podvrácení kompilátoru, lze to zase napravit překompilováním kompilátoru odstraněním zadávacího kódu zadních vrátek. Tuto obranu lze naopak rozvrátit vložením zdrojového meta-backdooru do kompilátoru, takže když zjistí, že se kompiluje, vloží tento generátor meta-backdoorů spolu s původním generátorem zadních dveří původního napadeného programu. Poté, co je toto provedeno, lze zdrojové meta-backdoor odebrat a kompilátor překompilovat z původního zdroje pomocí kompromitovatelného spustitelného kompilátoru: zadní vrátka byla bootstrapována. Tento útok se datuje do Karger & Schell (1974) a byl propagován v článku společnosti Thompson z roku 1984 s názvem „Úvahy o důvěře v důvěru“; proto je hovorově známý jako útok „Trusting Trust“. Podrobnosti viz zadní vrátka kompilátoru níže. Analogické útoky mohou cílit na nižší úrovně systému, jako je operační systém, a lze je vložit během procesu spouštění systému ; ty jsou také zmíněny v Karger & Schell (1974) a nyní existují ve formě spouštěcích sektorových virů .

Asymetrická zadní vrátka

Tradiční zadní vrátka jsou symetrická zadní vrátka: každý, kdo najde zadní vrátka, je může zase použít. Pojem asymetrického zadního vrátka zavedli Adam Young a Moti Yung ve sborníku Proceedings of Advances in Cryptology: Crypto '96 . Asymetrické zadní vrátka může použít pouze útočník, který je zasadí, i když se úplná implementace zadních vrátek stane veřejnou (např. Prostřednictvím publikování, odhalení a odhalení pomocí reverzního inženýrství atd.). Také je výpočetně neřešitelné detekovat přítomnost asymetrických zadních dveří pod dotazy black-box. Tato třída útoků byla nazvána kleptografie ; mohou být prováděny v softwaru, hardwaru (například čipové karty ) nebo v kombinaci obou. Teorie asymetrických zadních vrátek je součástí většího pole, kterému se dnes říká kryptovirologie . Je pozoruhodné, že NSA vložen kleptographic zadní dveře do Dual ES DRBG standardu.

Při generování klíčů RSA existuje experimentální asymetrický backdoor. Tyto zadní dveře OpenSSL RSA, navržené Youngem a Yungem, využívají kroucený pár eliptických křivek a byly k dispozici.

Překladač zadní vrátka

Sofistikovaná forma backdooru černé skříňky je zadní vrátka kompilátoru , kde je nejen kompilátor podvrácen (pro vložení zadních dveří do nějakého jiného programu, jako je přihlašovací program), ale je dále upravován tak, aby detekoval, kdy se sám kompiluje a poté vkládá jak zadávací kód backdooru (cílení na jiný program), tak samokompilaci modifikující kód, jako mechanismus, kterým retroviry infikují svého hostitele. To lze provést úpravou zdrojového kódu a výsledný kompromitovaný kompilátor (objektový kód) může zkompilovat původní (nemodifikovaný) zdrojový kód a vložit se sám: exploit byl připoután.

Tento útok byl původně představen v Karger & Schell (1974 , s. 52, část 3.4.5: „Trap Door Insertion“), což byla bezpečnostní analýza amerického letectva společnosti Multics , kde popsali takový útok na PL/ i kompilátor, a nazývat to „kompilátor poklop“; zmiňují také variantu, kde je inicializační kód systému upraven tak, aby během bootování vkládal zadní vrátka , protože je to složité a špatně pochopitelné, a říkají tomu „inicializační padací dveře“; toto je nyní známé jako virus spouštěcího sektoru .

Tento útok pak ve skutečnosti implementoval a propagoval Ken Thompson ve svém projevu o přijetí Turingovy ceny v roce 1983 (publikoval 1984) „Úvahy o důvěře v důvěru“, který zdůrazňuje, že důvěra je relativní a jediný software, kterému lze skutečně důvěřovat, je kód kde byl zkontrolován každý krok bootstrapu. Tento mechanismus backdooru je založen na skutečnosti, že lidé kontrolují pouze zdrojový (psaný) kódem, a nikoli kompilovaný strojový kód ( objektový kód ). Program nazvaný překladač se používá k vytváření druhý z prvního a kompilátor je obvykle důvěryhodný dělat poctivou práci.

Thompsonův článek popisuje upravenou verzi kompilátoru Unix C, která by:

  • Když si všiml, že se kompiluje přihlašovací program, vložte neviditelné zadní vrátko do Unix přihlašovacího příkazu
  • Tuto funkci také nedetekovatelně přidejte do budoucích verzí kompilátoru při jejich kompilaci.

Protože samotný kompilátor byl kompilovaný program, bylo by velmi nepravděpodobné, že by si uživatelé všimli instrukcí strojového kódu, které tyto úkoly prováděly. (Kvůli druhému úkolu by zdrojový kód kompilátoru vypadal „čistý“.) Co je horší, v Thompsonově dokladu o implementaci konceptu subverzní kompilátor také rozvrátil analytický program ( disassembler ), takže každý, kdo prozkoumal binární soubory v obvyklý způsob by ve skutečnosti neviděl skutečný kód, který běžel, ale místo toho něco jiného.

Aktualizovaná analýza původního exploitu je uvedena v Karger & Schell (2002 , oddíl 3.2.4: Překladačová dvířka) a historický přehled a přehled literatury je uveden v Wheeler (2009 , oddíl 2: Pozadí a související práce ) .

Výskyty

Thompsonova verze nebyla oficiálně nikdy vypuštěna do volné přírody. Předpokládá se však, že verze byla distribuována do BBN a bylo zaznamenáno alespoň jedno použití zadních vrátek. V následujících letech jsou rozptýleny neoficiální zprávy o takových zadních vrátkách.

V srpnu 2009 byl útok tohoto druhu objeven laboratořemi Sophos. Virus W32/Induc-A infikoval kompilátor programu pro Delphi , programovací jazyk Windows. Virus zavedl vlastní kód do kompilace nových programů Delphi, což mu umožnilo infikovat a šířit se do mnoha systémů bez vědomí softwarového programátora. Obzvláště těžké je objevit útok, který se šíří budováním vlastního trojského koně . Předpokládá se, že virus Induc-A se rozmnožoval nejméně rok, než byl objeven.

Protiopatření

Jakmile je systém kompromitován zadními vrátky nebo trojským koněm, jako je kompilátor Trusting Trust , je pro „právoplatného“ uživatele velmi obtížné znovu získat kontrolu nad systémem - obvykle by měl člověk obnovit čistý systém a přenášet data (ale ne spustitelné soubory). Bylo však navrženo několik praktických nedostatků ve schématu Trusting Trust . Například dostatečně motivovaný uživatel by si před použitím mohl pečlivě zkontrolovat strojový kód nedůvěryhodného kompilátoru. Jak bylo uvedeno výše, existují způsoby, jak skrýt trojského koně, jako je podvracení disassemblera; ale existují i ​​způsoby, jak této obraně čelit, například napsat vlastní disassembler od nuly.

Obecná metoda boje proti důvěryhodným útokům důvěry se nazývá Diverse Double-Compiling (DDC). Metoda vyžaduje jiný kompilátor a zdrojový kód testovacího kompilátoru. Tento zdroj, kompilovaný s oběma kompilátory, má za následek dva různé kompilátory fáze 1, které by však měly mít stejné chování. Tedy stejný zdroj zkompilovaný s oběma kompilátory 1. stupně musí mít za následek dva identické kompilátory 2. stupně. Je uveden formální důkaz, že toto druhé srovnání zaručuje, že údajný zdrojový kód a spustitelný soubor pod testem kompilátoru odpovídají za určitých předpokladů. Tuto metodu použil její autor, aby ověřil, že kompilátor C sady GCC (v. 3.0.4) neobsahoval žádný trojský kůň, přičemž jako jiný překladač použil icc (v. 11.0).

V praxi taková ověření neprovádějí koncoví uživatelé, s výjimkou extrémních okolností detekce a analýzy narušení, kvůli vzácnosti takových sofistikovaných útoků a protože programy jsou obvykle distribuovány v binární formě. Odebrání zadních vrátek (včetně zadních vrát kompilátoru) se obvykle provádí jednoduchým přebudováním čistého systému. Tato sofistikovaná ověřování však zajímají dodavatele operačních systémů, aby zajistili, že nedistribuují ohrožený systém, a v prostředí s vysokým zabezpečením, kde jsou takové útoky realistickým problémem.

Seznam známých zadních vrátek

  • Back Orifice byl vytvořen v roce 1998 hackery ze skupiny Cult of the Dead Cow jako nástroj vzdálené správy. Umožnil vzdáleně ovládat počítače se systémem Windows prostřednictvím sítě a parodoval název BackOffice společnosti Microsoft .
  • Dual EC DRBG kryptograficky bezpečný generátor pseudonáhodných čísel byl odhalen v roce 2013, aby mohl mít kleptographic backdoor záměrně vložený NSA, který měl také soukromý klíč na zadní vrátka.
  • V březnu 2014 bylo objeveno několik zadních vrátek v nelicencovaných kopiích doplňků WordPress . Byly vloženy jako zmatený kód JavaScript a tiše vytvořeny, například, účet správce v databázi webových stránek. Podobné schéma bylo později odhaleno v pluginu Joomla .
  • Borland Interbase verze 4.0 až 6.0 měl pevně zakódované zadní vrátka, které tam dali vývojáři. Kód serveru obsahuje zkompilovaný backdoor účet (uživatelské jméno: politicky , heslo: správné ), ke kterému lze přistupovat prostřednictvím síťového připojení; uživatel přihlašující se pomocí tohoto backdoor účtu by mohl převzít plnou kontrolu nad všemi databázemi Interbase. Zadní vrátka byla detekována v roce 2001 a byla vydána oprava .
  • Backdoor Juniper Networks vložený v roce 2008 do verzí firmwaru ScreenOS od 6.2.0r15 do 6.2.0r18 a od 6.3.0r12 do 6.3.0r20, který poskytuje každému uživateli přístup pro správu při použití speciálního hlavního hesla.
  • V zařízeních C-DATA Optical Line Termination (OLT) bylo objeveno několik zadních vrátek. Vědci zveřejnili zjištění bez oznámení C-DATA, protože se domnívají, že zadní vrátka byla záměrně umístěna prodejcem.

Viz také

Reference

Další čtení

externí odkazy