Bakdörr (dator) - Backdoor (computing)

En bakdörr är en vanligtvis hemlig metod för att kringgå normal autentisering eller kryptering i en dator , produkt, inbäddad enhet (t.ex. en hemrouter ) eller dess utföringsform (t.ex. en del av ett kryptosystem , algoritm , chipset eller till och med en "homunculus -dator" - en liten dator inuti en dator som den som finns i Intels AMT-teknik ). Bakdörrar används oftast för att säkra fjärråtkomst till en dator eller för att få tillgång till klartext i kryptografiska system . Därifrån kan den användas för att få åtkomst till privilegierad information som lösenord, korrumpera eller ta bort data på hårddiskar eller överföra information inom autoskistiska nätverk.

En bakdörr kan ha formen av en dold del av ett program, ett separat program (t.ex. Back Orifice kan undergräva systemet genom en rootkit ), kod i hårdvarans firmware eller delar av ett operativsystem som Windows . Trojanska hästar kan användas för att skapa sårbarheter i en enhet. En trojansk häst kan tyckas vara ett helt legitimt program, men när det körs utlöser det en aktivitet som kan installera en bakdörr. Även om vissa är i hemlighet installerade, är andra bakdörrar avsiktliga och allmänt kända. Dessa typer av bakdörrar har "legitima" användningsområden, till exempel att ge tillverkaren ett sätt att återställa användarlösenord.

Många system som lagrar information i molnet lyckas inte skapa exakta säkerhetsåtgärder. Om många system är anslutna i molnet kan hackare få tillgång till alla andra plattformar genom det mest sårbara systemet.

Standardlösenord (eller andra standarduppgifter) kan fungera som bakdörrar om de inte ändras av användaren. Vissa felsökningsfunktioner kan också fungera som bakdörrar om de inte tas bort i versionen.

År 1993 försökte USA: s regering sätta in ett krypteringssystem , Clipper -chipet , med en tydlig bakdörr för brottsbekämpning och åtkomst till nationell säkerhet. Chippet misslyckades.

Översikt

Hotet om bakdörrar dykt upp när fler och nätverksoperativsystem blev allmänt antagits. Petersen och Turn diskuterade datorsubversion i en uppsats som publicerades i förhandlingarna vid AFIPS -konferensen 1967. De noterade en klass av aktiva infiltrationsattacker som använder "trapdoor" -ingångar i systemet för att kringgå säkerhetsanläggningar och möjliggöra direktåtkomst till data. Användningen av ordet falldörr här sammanfaller helt klart med nyare definitioner av en bakdörr. Men sedan tillkomsten av offentlig nyckelkryptografi har termen trapdoor fått en annan betydelse (se trapdoor -funktion ), och därför är termen "bakdörr" nu att föredra, först efter att termen trapdoor togs ur bruk. Mer allmänt diskuterades sådana säkerhetsöverträdelser ingående i en RAND Corporation -arbetsgruppsrapport som publicerades under ARPA -sponsring av JP Anderson och DJ Edwards 1970.

En bakdörr i ett inloggningssystem kan ha formen av en hårdkodad kombination av användare och lösenord som ger åtkomst till systemet. Ett exempel på den här typen av bakdörr användes som en plot -enhet i filmen WarGames från 1983 , där arkitekten för " WOPR " -datorsystemet hade infogat ett hårdkodat lösenord som gav användaren tillgång till systemet och till papperslösa delar av system (i synnerhet ett videospelliknande simuleringsläge och direkt interaktion med artificiell intelligens ).

Även om antalet bakdörrar i system som använder egenutvecklad programvara (programvara vars källkod inte är allmänt tillgänglig) inte är allmänt krediterad, avslöjas de dock ofta. Programmerare har till och med lyckats i hemlighet installera stora mängder godartad kod som påskägg i program, även om sådana fall kan innebära officiell uthållighet, om inte verkligt tillstånd.

Politik och tillskrivning

Det finns ett antal överväganden av mantel och dolk som spelar in vid fördelning av ansvar.

Dolda bakdörrar maskeras ibland som oavsiktliga defekter (buggar) av skäl för trolig förneklighet . I vissa fall kan dessa börja livet som en verklig bugg (oavsiktligt fel), som, när de upptäcks sedan medvetet lämnas ofixerade och ouppklarade, vare sig av en oseriös anställd för personlig fördel, eller med C-nivå medvetenhet och tillsyn.

Det är också möjligt för ett helt överordnat företags teknologibas att döljas och ospårbart av externa agenter (hackare), även om denna sofistikeringsnivå antas existera huvudsakligen på nivå med nationalstatens aktörer. Till exempel, om en fotomask som erhållits från en fotomaskleverantör skiljer sig i några portar från sin fotomaskspecifikation, skulle en chipstillverkare vara hårt pressad att upptäcka detta om det annars är funktionellt tyst; en hemlig rootkit som körs i fotomaskets etsutrustning kan anta denna avvikelse som fotomaskstillverkaren är medveten om, och på så sätt leder en bakdörr potentiellt till en annan. (Detta hypotetiska scenario är i huvudsak en kiselversion av den odetekterbara kompilatorens bakdörr, diskuterad nedan.)

I allmänna termer, de långa beroendekedjor i den moderna, mycket specialiserade tekniska ekonomi och otaliga mänskliga element bearbeta kontrollpunkter gör det svårt att slutgiltigt Pinpoint ansvar vid den tidpunkt då en hemlig bakdörr blir avslöjad.

Även direkt erkännande av ansvar måste granskas noggrant om den bekännande parten uppmärksammas på andra mäktiga intressen.

Exempel

Maskar

Många datormaskar , som Sobig och Mydoom , installerar en bakdörr på den drabbade datorn (vanligtvis en datorbredband som kör Microsoft Windows och Microsoft Outlook ). Sådana bakdörrar verkar installeras så att spammare kan skicka skräppost e-post från de infekterade maskiner. Andra, såsom Sony / BMG rootkit , placerad i hemlighet på miljontals CD-skivor genom slutet av 2005, är avsedda som DRM åtgärder-och, i så fall, som datainsamling medel , eftersom båda smyg program installerade rutinmässigt kontakt med centrala servrar.

Ett sofistikerat försök att plantera en bakdörr i Linux -kärnan , avslöjad i november 2003, lade till en liten och subtil kodändring genom att undergräva revisionsstyrsystemet . I det här fallet syntes en tvåradig ändring för att kontrollera root-åtkomstbehörigheter för en uppringare till sys_wait4funktionen, men eftersom den använde tilldelning =istället för jämlikhetskontroll ==, beviljade den faktiskt behörighet till systemet. Denna skillnad förbises lätt och kan till och med tolkas som ett oavsiktligt tryckfel, snarare än en avsiktlig attack.

Markerat med gult: administratörslösenord för bakdörren dolt i koden

I januari 2014 upptäcktes en bakdörr i vissa Samsung Android -produkter, till exempel Galaxy -enheterna. Samsungs egenutvecklade Android -versioner är utrustade med en bakdörr som ger fjärråtkomst till data som lagras på enheten. I synnerhet Samsung Android -programvaran som ansvarar för att hantera kommunikationen med modemet, med hjälp av Samsung IPC -protokollet, implementerar en klass med förfrågningar som kallas fjärrfilserver (RFS) -kommandon, som gör det möjligt för bakdörroperatören att utföra via modem fjärrkontroll I/O -funktioner på enhetens hårddisk eller annan lagring. Eftersom modemet använder Samsungs egen Android-programvara är det troligt att det erbjuder fjärrkontroll över luften som sedan kan användas för att utfärda RFS-kommandon och därmed komma åt filsystemet på enheten.

Objektkod bakdörrar

Svårare att upptäcka bakdörrar innebär att modifiera objektkod , snarare än källkod-objektkod är mycket svårare att inspektera, eftersom den är utformad för att vara maskinläsbar, inte läsbar för människor. Dessa bakdörrar kan sättas in antingen direkt i objektkoden på disken eller sättas in någon gång under sammanställning, sammankoppling eller laddning-i det senare fallet visas bakdörren aldrig på disken, bara i minnet. Objektkodens bakdörrar är svåra att upptäcka genom inspektion av objektkoden, men upptäcks enkelt genom att helt enkelt leta efter förändringar (skillnader), särskilt i längd eller i kontrollsumma, och kan i vissa fall detekteras eller analyseras genom att demontera objektkoden. Dessutom kan objektkodens bakdörrar tas bort (förutsatt att källkoden är tillgänglig) genom att helt enkelt kompilera om från källan på ett betrodt system.

Således för att sådana bakdörrar ska undvika upptäckt måste alla befintliga kopior av en binär vara undergrävda, och alla valideringscheckasummor måste också äventyras och källan måste vara otillgänglig för att förhindra omkompilering. Alternativt kan dessa andra verktyg (längdkontroller, diff, kontrollsummning, demonterare) själva äventyras för att dölja bakdörren, till exempel upptäcka att den undergrävda binären kontrolleras och returnerar det förväntade värdet, inte det faktiska värdet. För att dölja dessa ytterligare subversioner måste verktygen också dölja förändringarna i sig själva - till exempel måste en undergrävd kontrollsommar också upptäcka om den kontrollerar sig själv (eller andra undergrävda verktyg) och returnerar falska värden. Detta leder till omfattande förändringar i systemet och verktyg som behövs för att dölja en enda förändring.

Eftersom objektkoden kan återskapas genom att kompilera (återmontera, återlänka) den ursprungliga källkoden, krävs det att en permanent objektkod bakdörr (utan att ändra källkod) undergrävs själva kompilatorn - så att när den upptäcker att den kompilerar programmet som attackeras infogar bakdörren - eller alternativt monteraren, länken eller lastaren. Eftersom detta kräver att kompilatorn undergrävs kan detta i sin tur åtgärdas genom att kompilera om kompilatorn, ta bort bakdörrinsättningskoden. Detta försvar kan i sin tur undergrävas genom att sätta en källmeta-bakdörr i kompilatorn, så att när den upptäcker att den sammanställer sig själv sätter den sedan in denna meta-bakdörrsgenerator, tillsammans med den ursprungliga bakdörrgeneratorn för det ursprungliga programmet under attack. När detta är gjort kan källans meta-bakdörr tas bort och kompilatorn kompileras om från ursprungskällan med den komprometterade kompilatorn körbar: bakdörren har startats. Denna attack dateras till Karger & Schell (1974) och populariserades i Thompsons artikel från 1984 med titeln "Reflections on Trusting Trust"; det är därför allmänt känt som "Trusting Trust" -attacken. Se kompilatorens bakdörrar nedan för detaljer. Analoga attacker kan rikta lägre nivåer i systemet, såsom operativsystemet, och kan införas under systemets uppstart processen; dessa nämns också i Karger & Schell (1974) , och finns nu i form av boot -sektorsvirus .

Asymmetriska bakdörrar

En traditionell bakdörr är en symmetrisk bakdörr: alla som hittar bakdörren kan i sin tur använda den. Tanken om en asymmetrisk bakdörr introducerades av Adam Young och Moti Yung i Proceedings of Advances in Cryptology: Crypto '96 . En asymmetrisk bakdörr kan endast användas av angriparen som planterar den, även om den fullständiga implementeringen av bakdörren blir offentlig (t.ex. genom publicering, upptäcks och avslöjas av reverse engineering , etc.). Det är också beräknat svårt att upptäcka förekomsten av en asymmetrisk bakdörr under black-box-frågor. Denna klass av attacker har kallats kleptografi ; de kan utföras i programvara, hårdvara (till exempel smartkort ) eller en kombination av de två. Teorin om asymmetriska bakdörrar är en del av ett större område som nu kallas kryptovirologi . I synnerhet införde NSA en kleptografisk bakdörr i Dual EC DRBG -standarden.

Det finns en experimentell asymmetrisk bakdörr i RSA -nyckelgenerering. Denna OpenSSL RSA -bakdörr, designad av Young och Yung, använder ett par tvinnade elliptiska kurvor och har gjorts tillgänglig.

Kompilator bakdörrar

En sofistikerad form av svart låda bakdörr är en kompilator bakdörr , där inte bara en kompilator undergrävs (för att infoga en bakdörr i något annat program, till exempel ett inloggningsprogram), men den modifieras ytterligare för att upptäcka när den kompilerar sig själv och sedan infogar både bakdörrinsättningskoden (inriktad på det andra programmet) och den kodmodifierande självkompilationen, som mekanismen genom vilken retrovirus infekterar deras värd. Detta kan göras genom att ändra källkoden, och den resulterande komprometterade kompilatorn (objektkoden) kan kompilera den ursprungliga (omodifierade) källkoden och infoga sig själv: utnyttjandet har startats.

Denna attack presenterades ursprungligen i Karger & Schell (1974 , s. 52, avsnitt 3.4.5: "Trap Door Insertion"), som var en amerikansk flygvapen säkerhetsanalys av Multics , där de beskrev en sådan attack mot en PL/ Jag kompilator, och kallar det en "kompilatorfälla"; de nämner också en variant där systeminitialiseringskoden modifieras för att infoga en bakdörr under uppstart , eftersom detta är komplext och dåligt förstått, och kallar det en "initieringsfälla"; detta är nu känt som ett startsektorvirus .

Denna attack genomfördes sedan och populariserades sedan av Ken Thompson , i sitt Turing Award -accepttal 1983 (publicerad 1984), "Reflections on Trusting Trust", som påpekar att förtroende är relativt, och den enda programvaran man verkligen kan lita på är kod där varje steg i startbandet har inspekterats. Denna bakdörrsmekanism är baserad på det faktum att människor bara granskar källkod (människoskrivna), och inte kompilerad maskinkod ( objektkod ). Ett program som kallas en kompilator används för att skapa den andra från den första, och kompilatorn brukar lita på att göra ett ärligt jobb.

Thompsons papper beskriver en modifierad version av Unix C -kompilatorn som skulle:

  • Sätt en osynlig bakdörr i Unix -inloggningskommandot när det märkte att inloggningsprogrammet kompilerades, och som en twist
  • Lägg även till den här funktionen oupptäckt till framtida kompilatorversioner efter deras sammanställning.

Eftersom själva kompilatorn var ett kompilerat program skulle det vara ytterst osannolikt att användarna märker instruktionerna för maskinkoden som utförde dessa uppgifter. (På grund av den andra uppgiften skulle kompilatorns källkod verka "ren".) Vad värre är, i Thompsons bevis på konceptimplementering , undergrävde kompileraren också analysprogrammet ( demonteraren ), så att alla som undersökte binärfilerna i vanligt sätt skulle faktiskt inte se den riktiga koden som kördes, men något annat istället.

En uppdaterad analys av den ursprungliga exploateringen ges i Karger & Schell (2002 , avsnitt 3.2.4: Kompilatordörrar), och en historisk översikt och undersökning av litteraturen ges i Wheeler (2009 , avsnitt 2: Bakgrund och relaterat arbete ) .

Förekomster

Thompsons version släpptes, officiellt, aldrig i naturen. Man tror dock att en version distribuerades till BBN och åtminstone en användning av bakdörren spelades in. Det finns utspridda anekdotiska rapporter om sådana bakdörrar under de följande åren.

I augusti 2009 upptäcktes en sådan attack av Sophos laboratorier. W32/Induc-A-viruset infekterade programkompilatorn för Delphi , ett Windows-programmeringsspråk. Viruset introducerade sin egen kod för sammanställning av nya Delphi -program, så att det kunde infektera och sprida sig till många system, utan att programmeraren vet det. En attack som förökar sig genom att bygga sin egen trojanska häst kan vara särskilt svår att upptäcka. Man tror att Induc-A-viruset hade spridit sig i minst ett år innan det upptäcktes.

Motåtgärder

När ett system har äventyrats med en bakdörr eller trojansk häst, till exempel Trusting Trust -kompilatorn, är det mycket svårt för den "rättmätiga" användaren att återfå kontrollen över systemet - vanligtvis bör man bygga om ett rent system och överföra data (men inte körbara) över. Flera praktiska svagheter i Trusting Trust -systemet har dock föreslagits. Till exempel kan en tillräckligt motiverad användare noggrant granska maskinkoden för den otillförlitliga kompilatorn innan han använder den. Som nämnts ovan finns det sätt att dölja den trojanska hästen, till exempel att undergräva demonteraren; men det finns också sätt att motverka det försvaret, till exempel att skriva din egen demonterare från början.

En generisk metod för att motverka tillitsfulla förtroendeangrepp kallas Diverse Double-Compiling (DDC). Metoden kräver en annan kompilator och källkoden för kompilatorn under test. Den källan, sammanställd med båda kompilatorerna, resulterar i två olika steg-1-kompilatorer, som dock bör ha samma beteende. Således måste samma källa kompilerad med båda steg-1-kompilatorerna resultera i två identiska steg-2-kompilatorer. Ett formellt bevis ges att den senare jämförelsen garanterar att den påstådda källkoden och körbar för kompilator-under-test motsvarar, under vissa antaganden. Denna metod tillämpades av dess författare för att verifiera att C -kompilatorn i GCC -sviten (v. 3.0.4) inte innehöll någon trojan, med icc (v. 11.0) som den olika kompilatorn.

I praktiken görs sådana kontroller inte av slutanvändare, förutom i extrema omständigheter vid intrångsdetektering och analys, på grund av sällsynta sådana sofistikerade attacker, och eftersom program vanligtvis distribueras i binär form. Att ta bort bakdörrar (inklusive kompilatorbakdörrar) sker vanligtvis genom att helt enkelt bygga om ett rent system. De sofistikerade verifieringarna är dock av intresse för leverantörer av operativsystem, för att säkerställa att de inte distribuerar ett komprometterat system och i högsäkerhetsinställningar, där sådana attacker är en realistisk oro.

Lista över kända bakdörrar

  • Back Orifice skapades 1998 av hackare från Cult of the Dead Cow -gruppen som ett fjärradministrationsverktyg. Det gjorde att Windows -datorer kunde fjärrstyras över ett nätverk och parodierade namnet på Microsofts BackOffice .
  • Den dubbla EC DRBG kryptografiskt säker pseudoslumptalsgenerator avslöjades 2013 att eventuellt ha en kleptographic bakdörr medvetet införd genom NSA, som också hade den privata nyckeln till bakdörren.
  • Flera bakdörrar i de olicensierade kopiorna av WordPress- plugin-program upptäcktes i mars 2014. De infogades som fördunklad JavaScript- kod och skapades tyst, till exempel ett administratörskonto i webbplatsens databas. Ett liknande schema avslöjades senare i Joomla -tillägget.
  • Borland Interbase versioner 4.0 till och med 6.0 hade en hårdkodad bakdörr som utvecklarna lade dit. Serverkoden innehåller ett sammanställt bakdörrkonto (användarnamn: politiskt , lösenord: korrekt ), som kan nås via en nätverksanslutning; en användare som loggar in med detta bakdörrkonto kan ta full kontroll över alla Interbase -databaser. Bakdörren upptäcktes 2001 och en lapp släpptes.
  • Juniper Networks bakdörr infördes år 2008 i versionerna av firmware ScreenOS från 6.2.0r15 till 6.2.0r18 och från 6.3.0r12 till 6.3.0r20 som ger alla användare administrativ åtkomst vid användning av ett speciellt huvudlösenord.
  • Flera bakdörrar upptäcktes i C-DATA Optical Line Termination (OLT) -enheter. Forskare släppte resultaten utan att meddela C-DATA eftersom de tror att bakdörrarna avsiktligt placerades av säljaren.

Se även

Referenser

Vidare läsning

externa länkar