Hátsó ajtó , titkos bejárat (az angol hátsó ajtóból - "hátsó ajtó", szó szerint "hátsó ajtó") - az algoritmus hibája, amelyet a fejlesztő szándékosan épített be, és lehetővé teszi az adatokhoz való jogosulatlan hozzáférést vagy az operációs rendszer távvezérlését és a számítógép egésze [1] .
A hátsó ajtók fő célja, hogy rejtetten és gyorsan hozzáférjenek a legtöbb esetben titkosított és védett adatokhoz. Például egy hátsó ajtó beépíthető a titkosítási algoritmusba a biztonságos csatorna támadó általi későbbi lehallgatásához [1] [2] .
Ezt a generátort az NSA fejlesztette ki, és az US National Institute of Standards and Technology NIST 2006-ban kriptográfiailag erős pszeudo-véletlenszám-generátorként szabványosította. Független kutatók azonban már 2007-ben felvetették, hogy ebbe az algoritmusba be lehetne építeni egy hátsó ajtót. [3] [4] [5]
Az algoritmus működésének illusztrációja az NSA specifikációja szerint [6] :
Ez az algoritmus elliptikus görbéket használ. - elliptikus görbén egy pontcsoport generátora, - elliptikus görbe pontja - a szabvány által meghatározott állandó, a választás módja nem ismert. Magának a görbének a paramétereit is a szabvány határozza meg.
Működés elve:Görbe egyenlet
az algoritmus működéséhez a következő kifejezéseket lehet átírni és leírni:
. _ — a generátor belső állapota az aktuális lépésben - a generátor belső állapota a következő lépésben — generátor kimenet az aktuális lépésben Állítólagos hátsó ajtó:Mivel egy prímszám , akkor létezik olyan szám , amelyre . A keresés az elliptikus görbén lévő diszkrét logaritmus számításilag nehéz problémája , amelyre jelenleg nincs hatékony algoritmus. De ha feltételezzük, hogy a támadó ismeri , akkor a következő támadást kapjuk: Ha a generátor következő kimenete, és ha létezik olyan, hogy , akkor a pont a görbén fekszik, és a következő egyenlőség érvényes rá: . A szám ismeretében kiszámíthatja: . Így egy támadó, aki ismeri a számot , nem csak a generátor következő kimenetét tudja kiszámítani, hanem gyorsan felsorolja a generátor összes lehetséges belső állapotát és visszaállítja a kezdeti belső állapotát. Független tanulmányok szerint [2] [7] ismeretében a generátor kimeneti sorozatának mindössze 30 bájtja elegendő a kezdeti belső állapot visszaállításához egyszerű értékek felsorolásával. A kutatók szerint egy ilyen sebezhetőség egy hátsó ajtónak tekinthető.
A Yandex kutatói sérülékenységet fedeztek fel a TLS protokoll megvalósításában az Apple egyik szoftvertermékében [2] . Véleményük szerint ez a hiba egy hátsó ajtónak bizonyulhat, amelyet az egyik fejlesztő szándékosan épített be az algoritmusba.
Hibás kódrészlet: statikus DSStatus SSLVerifySignedServerKeyExchnge (....) { DSSállapot hiba ; .... if (( err = SSLHashSHA1 . frissítés ( & hashCtx , & signedParams )) != 0 ) kudarcot vallott ; kudarcot vallott ; if (( SSHashSHA1 . final ( & hashCtx , & hashOut )) != 0 ) kudarcot vallott ; .... sikertelen : .... return err ; }Amint láthatja, az első if utasítás után két sor van a goto fail -nek , és a második sor mindig végrehajtásra kerül, függetlenül az if eredményétől . Ezért a tanúsítvány-ellenőrzési eljárás nem teljes. A biztonsági résről tudó támadó meghamisíthatja a tanúsítványt, és hitelesíthető. Ez lehetővé teszi számára, hogy megszervezzen egy „ man-in-the-middle” támadást , és ezáltal megzavarja az ügyfél és a szerver közötti biztonságos kapcsolatot. Azok a kutatók, akik felfedezték ezt a hibát a megvalósítás során, nem tudják biztosan megmondani, hogy szándékos vagy véletlen volt-e. Nagyon valószínű, hogy ez egy hátsó ajtó, amelyet az egyik fejlesztő épített be az algoritmusba.
Sok modern kriptográfiai algoritmus bizonyos belső állandókat használ munkája során. Általában ezeket az állandókat a szabvány határozza meg, és a jelenleg ismert kriptoanalízis -típusokkal szembeni kriptográfiai ellenállás miatt választják ki őket . De az algoritmus szabványosítása során a konstansok megválasztását elméletileg felhasználhatják a fejlesztők rosszindulatú szándékkal: például bizonyos sebezhetőségek és hátsó ajtók létrehozására az algoritmusban.
A konstansok használatára példaként említhetjük az úgynevezett "rosszindulatú hash" témájában megjelent legújabb kutatási cikkeket [8] [9] , ahol a szerzőknek sikerült ütközéseket építeniük az SHA1 kriptográfiai hash függvényhez úgy, hogy módosítottak. kerek állandóit. Vegye figyelembe, hogy a tanulmány szerzői által javasolt támadás nem magát az SHA1 hash függvényt támadja , csak akkor teszi lehetővé az ütközések megtalálását, ha a kerek konstansok módosíthatók, és csak bizonyos fájltípusok esetén.
Az SHA1 rövid leírása :Az SHA1 egy modern kerek hash függvény. A kivonatolási algoritmus a következő:
A vizsgált támadás célja olyan konstansok és üzenetek megtalálása , amelyek . Ez a támadás csak az első 512 bitet (1. blokk) módosítja azon üzeneteknek, amelyeknél ütközést kell létrehozni. Az algoritmus az SHA1 ellen 2005-ben javasolt, jól ismert különbségi támadáson alapul [10] [11] , és a műveletek sorrendje összetett , ami megnehezíti a gyakorlati megvalósítást. Ezért az SHA1 esetében eddig nem találtak valódi ütközéseket.
De az SHA1 rosszindulatú verziójának létrehozása esetén a támadó nem csak az üzenetblokkokat és a kerek konstansokat is megváltoztathatja . Kutatások szerint [9] ez nagymértékben csökkenti a támadás összetettségét a műveletek sorrendjére, és az ilyen ütközések felépítését valós, több számítógépen is végrehajtható feladattá teszi. Így a tanulmány készítőinek számos ismert fájltípushoz sikerült egyblokkos ütközést építeniük.
Egyetlen blokk ütközés:és - az első üzenetblokkok (512 bit), amelyek különböznek egymástól, de ugyanazt a hash összeget adják - a többi tartalom, amely mindkét fájlnál ugyanaz Példa rosszindulatú hash használatára hátsó ajtók létrehozására
A leírt támadás segítségével két sh-scriptet hoztak létre, amelyek kiválasztása esetén ugyanazt az SHA1 hash összeget adják, de eltérően működnek.
Amint láthatja, a különbség a két szkript között csak az első 512 bites blokkokban van, amelyek szemétnek minősülnek. De ezeknek a blokkoknak a tartalma ezután az if feltételben kerül felhasználásra , ezért a szkriptek futás közben eltérően viselkednek. Az ilyen fájlokat az alkotó rosszindulatú szándékkal használhatja fel.
A hátsó ajtók nem csak szoftverbe, hanem hardverbe is beágyazhatók. Az ilyen hátsó ajtókat a hardvergyártók felhasználhatják rosszindulatú funkciók beágyazására a gyártási szakaszban.
A hardveres hátsó ajtóknak számos előnye van a szoftveresekkel szemben:
Hardveres hátsó ajtóra példa lehet egy rosszindulatú BIOS firmware . Tanulmányok szerint [12] az ilyen firmware a Coreboot [13] és a SeaBIOS ingyenes firmware alapján építhető fel . A Coreboot nem egy teljes értékű BIOS: csak a gépen elérhető hardver észleléséért felelős, és magára a „BIOS-töltelékre” adja át az irányítást, amelyet a támadó igényeinek megfelelően módosított SeaBIOS -ként használhat .
A rosszindulatú firmware működési elve röviden a következőképpen írható le: a fertőzött számítógép közvetlenül a bekapcsolása után, még az operációs rendszer betöltése előtt megkísérel kapcsolatot létesíteni az interneten keresztül a támadó szerverével. Ha egy ilyen próbálkozás sikeres, akkor a rendszer távolról letölti a rendszerindító készletet , ami viszont lehetőséget biztosít a támadónak arra, hogy rosszindulatú műveleteket hajtson végre a fertőzött számítógépen: adatlopást vagy távirányítást . Ha az internethez való csatlakozási kísérlet meghiúsul, az operációs rendszer rendesen betöltődik. A támadó kétségtelen előnye, hogy maga a módosított firmware nem tartalmaz rosszindulatú kódot, és a bootkiteket nehéz felismerni.
Rosszindulatú szoftver | |
---|---|
Fertőző rosszindulatú programok | |
Rejtős módszerek | |
Malware haszonszerzés céljából |
|
Operációs rendszerek szerint |
|
Védelem |
|
Ellenintézkedések |
|