TLBleed
A TLBleed hardveres biztonsági rést jelent néhány modern processzorban, amelyek parancsfordító pufferrel rendelkeznek, és támogatják az egyidejű többszálú feldolgozást. A biztonsági rés lehetővé teszi, hogy az egyik hardverszálon futó felhasználói alkalmazás (helyi támadó egy speciális program indításakor) titkos csatornán keresztül jogosulatlanul nyerjen ki információkat egy másik szál végrehajtásáról . Az információszivárgás potenciálisan felhasználható egy másik szál által feldolgozott érzékeny adatok biztonságos elérésére.
Rövid leírás
A TLBleed egy oldalcsatornás támadás, ezért hasonlóságokat mutat más mikroprocesszor-sebezhetőségekkel, mint például a Meltdown és a Spectre . Az ilyen sérülékenységek kihasználásának hagyományos megközelítése az egyes processzor gyorsítótár celláihoz való hozzáférési idő mérésén alapul, hogy meghatározza, mely konkrét cellákat töltötte be a gyorsítótárba a támadott folyamat. Ily módon lehetőség nyílik közvetett információk kinyerésére az áldozati folyamat végrehajtásáról és védett adatairól. TLBleed támadás esetén az oldalsó csatorna nem egy normál adatgyorsítótár, hanem az asszociatív fordítási puffer (TLB), egy speciális gyorsítótár, amely a virtuális memórialapok és a processzor fizikai memórialapjai közötti megfeleléseket tárolja, és ez a fordítás gyorsítására szolgál. virtuális címek. Kulcsfontosságú támadási lehetőséget biztosít, hogy az Intel processzorokban a szimultán többszálú mód (SMT) megvalósítása során az asszociatív fordítási puffer meg van osztva, és az összes hardverszál egyszerre használja (hasonló, harmadik féltől származó csatorna létezhet a mikroprocesszorban más vállalatok implementációi, de ilyen elemzés még nem készült).
A támadás lényege a következő. Az egyes TLB cellákhoz való hozzáférési idő határozza meg, hogy a megtámadott folyamat mely memórialapokhoz fér hozzá. Ugyanakkor még a minimális címzési részletesség (modern rendszereken 4096 bájt) sem elegendő a megtámadott folyamat adatainak közvetlen megszerzéséhez (például a Meltdown sebezhetősége közvetett címzést használ egy adott gyorsítótár cella betöltésére, majd azonosítására, a amelynek címe meghatározza a titok egy részét ). A memóriaelérés természetét (memórialapokhoz való hozzáférés sorrendje, a hozzáférések közötti intervallumok) gépi tanulási módszerekkel elemezve azonban azonosítható a végrehajtható kód egy része. Ha például a titkosítási algoritmusban a logikai „1” feldolgozása során a kód egyik szakaszát hívják meg, logikai „0” feldolgozásakor pedig egy másikat, akkor kiderül, hogy lehetséges a titkosított adatok teljes visszaállítása.
Történelem
Az eredeti tanulmányt az Amszterdami Szabad Egyetem tudósainak egy csoportja hozta nyilvánosságra 2018. június 22-én. A sebezhetőség részleteit később Ben Gras, a projekt vezetője fedte fel a Black Hat számítógép-biztonsági konferencián . [1] [2] Annak ellenére, hogy a sebezhetőséget számos modern architektúrájú Intel processzoron kimutatták, a cég a sérülékenység jelentéktelenségére hivatkozva megtagadta a CVE azonosító igénylését. A kutatók szerint ez az álláspont nem tükrözi a dolgok valós állapotát, mivel a TLBleed egy lényegesen új típusú támadás, jelentős veszélyt jelent, és kiindulópontként szolgálhat további hasonló sérülékenységek felkutatásához. [3]
Mechanizmus
A leírt támadás végrehajtásához számos technikai problémát meg kell oldani:
- Előzetesen tájékozódjon a használt processzor TLB konfigurációjáról (asszociativitás, méret). Ehhez használhat nyílt információforrásokat [4] , vagy visszafejtést alkalmazhat alacsony szintű utasítások segítségével [5] . A TLB paraméterekre vonatkozó adatokon túl a virtuális címek és a TLB cellák közötti megfelelést is meg kell találni, hogy a kívánt virtuális címek elérésével utólag nyomon tudjuk követni a tetszőleges cellák állapotát. A legegyszerűbb esetben az asszociatív fordítási puffer helyét a lapcím alacsony bitjei határozzák meg, de ennél bonyolultabb leképezési funkciók is használhatók, például a folyam számának bitenkénti XOR -ja és az oldalcím bizonyos bitjei.
- Találja meg a módját a megtámadott folyamat TLB-cellákhoz való hozzáférésének nyomon követésére. A tanulmány szerzői klasszikus hozzáférési idő támadást alkalmaznak annak megállapítására, hogy egy bizonyos TLB-sejtet használt-e az áldozati folyamat. További bonyolultságot okoz az a tény, hogy a modern processzorokban az asszociatív fordítási puffer általában kétszintű struktúra (hasonlóan a gyorsítótár hierarchikus felépítéséhez, az L1 TLB és az L2 TLB). Ennek ellenére a hozzáférési időből meg lehet határozni, hogy a kívánt oldal címe az egyik szint TLB-jében van-e (ellenkező esetben a virtuális cím többszintű fordítási eljárása történik, ami több száz processzorciklust vesz igénybe ).
- Futtasson rosszindulatú kódot ugyanazon a hardvermagon, mint az áldozati folyamat szála. Azzal érvelnek, hogy a sebezhetőség tényleges megvalósításához e feltétel teljesítése nagyon nehéz, és nem triviális erőfeszítéseket igényel. A modern operációs rendszerek azonban mechanizmusokat biztosítanak a folyamatok meghatározott processzor hardvermagokhoz való kötésére, ami nagyban leegyszerűsíti a feladatot. [6]
- Az áldozati folyamat különböző TLB-cellákhoz való hozzáférési statisztikáinak felhasználása a megtámadott folyamat végrehajtásával kapcsolatos információk helyreállítására. A támadó teljes választási szabadságot kapott abban, hogy hogyan és milyen információkat vonjon ki az összegyűjtött statisztikákból. Különösen meg lehet próbálni meghatározni, hogy a megtámadott folyamat a kód melyik szakaszát hajtja végre. Ebben az esetben a feladat a függőség helyreállítása , ahol a TLB cellák hívásainak vektora az idő függvényében, és a szükséges kódszakasz. Sok esetben ez az információ elegendő a feldolgozott adatok pontos reprodukálásához. Különösen a bejövő bitektől függően titkosítási algoritmusokban hajtanak végre bizonyos műveleteket, ami lehetővé teszi a sérülékenység kihasználását.
Befolyás
2018 augusztusától a sérülékenységet csak Intel processzorokon mutatták ki. Feltételezhető, hogy más cégek processzorai, amelyekben az oldalfordítási puffert hardverszálak osztják meg, szintén sebezhetőek lehetnek az ilyen típusú támadásokkal szemben, de a koncepció megvalósítását nem mutatták be. [7] Az AMD azt állítja, hogy processzorait nem érinti a biztonsági rés. [3]
A sérülékenységgel kapcsolatos információk közzététele után az OpenBSD projekt teljesen letiltotta a rendszer egyidejű többszálú kezelésének támogatását. [8] [9] Theo de Raadt , az OpenBSD vezetője úgy véli, hogy annak ellenére, hogy a sérülékenység elméletileg kiküszöbölhető azzal, hogy megtiltják a különböző kontextusú folyamatok közös processzormagokon való futtatását, a gyakorlatban egy ilyen megoldás a bonyolultság miatt nem kivitelezhető. . [nyolc]
Védelmi mechanizmusok
- A sebezhetőség kiküszöbölésének fő és kézenfekvő módja az egyidejű többszálú ( Hyper Threading ) mód letiltása. Nyilvánvaló, hogy az SMT letiltása a teljesítmény jelentős csökkenéséhez és a mikroprocesszoros hardver nem hatékony használatához vezet. OpenBSD rendszerre alkalmazva . [nyolc]
- A hardverszálak szoftverelérési szétválasztása a TLB gyorsítótár sorában. A módszer használatához meg kell tiltani, hogy a hardverszálak mindegyike hozzáférjen a virtuális memória bizonyos területeihez, így a szálak által használt TLB-vonalak nem metszik egymást. A módszert nehéz megvalósítani, mivel sérti a koherens virtuális memória koncepcióját . Ez a megközelítés azonban potenciálisan alkalmazható az operációs rendszer szintjén, és nem igényel hardvermódosítást.
- Hardveres hozzáférésű szálak szétválasztása a TLB-ben. Valójában ez megköveteli a közös TLB felosztását több független pufferre, amelyeket az egyes folyamok külön címeznek. A teljes TLB hardverszálonkénti méretének csökkenése miatt teljesítményromlással kell számolni.
Lásd még
- A Meltdown egy hasonló spekulatív végrehajtási támadás, amely megtöri a folyamatok és az operációs rendszer kernel közötti elszigeteltséget ugyanazon a végrehajtási kontextuson belül.
- A Spectre egy hasonló, spekulatív végrehajtáson alapuló támadás, amely megtöri az elszigeteltséget a rendszer bármely folyamata között.
Jegyzetek
- ↑ Black Hat USA 2018 . www.blackhat.com Hozzáférés dátuma: 2018. december 19. Az eredetiből archiválva : 2019. január 7. (határozatlan)
- ↑ TLBleed Side-Channel CPU Attack Detailed at Black Hat . eWEEK. Letöltve: 2018. december 19. (határozatlan)
- ↑ 12 Williams, Chris . Ismerje meg a TLBleed-et: Egy kriptokulcs-szivárgó CPU-támadás, amely miatt az Intel szerint nem kell aggódnunk , The Register ( 2018. június 22.). Az eredetiből archiválva : 2018. december 8. Letöltve: 2018. december 19.
- ↑ WikiChip - WikiChip . hu.wikichip.org. Letöltve: 2018. december 19. Az eredetiből archiválva : 2020. október 26.
- ↑ [ https://www.cs.vu.nl/~giuffrida/papers/revanc_eurosec17.pdf RevAnC: A Framework for Reverse Engineering Hardware Page Table Cache] // a 10. európai műhely. Az eredetiből archiválva : 2018. december 20.
- ↑ sched_setaffinity(2) - Linux kézikönyv oldal . man7.org. Letöltve: 2018. december 19. Az eredetiből archiválva : 2018. december 20. (határozatlan)
- ↑ Halfacree, Gareth . A kutatók a TLBleed Hyper-Threading vuln- re (angolul) , bit-tech.net (2018. június 25.) figyelmeztetnek. Archiválva az eredetiből: 2019. február 13. Letöltve: 2018. december 19.
- ↑ 1 2 3 Az OpenBSD főnöke, de Raadt szerint nincs egyszerű javítás az új Intel CPU hibára . www.itwire.com (2018. június 25.). Letöltve: 2018. június 25. Az eredetiből archiválva : 2018. június 25.
- ↑ Az OpenBSD letiltja a hyperthreading támogatást az Intel CPU-k számára a valószínű adatszivárgás miatt . www.itwire.com (2018. június 21.). Hozzáférés dátuma: 2018. december 19. Az eredetiből archiválva : 2018. július 9.
Linkek
A 2010-es évek hackertámadásai |
---|
A legnagyobb támadások |
|
---|
Hackerek csoportjai és közösségei |
|
---|
magányos hackerek |
|
---|
Kritikus biztonsági rések észlelve |
- Heartbleed (SSL, 2014)
- Bashdoor (Bash, 2014)
- USZÁR (SSL, 2014)
- Rootpipe (OSX, 2014)
- JASBUG (Windows, 2015)
- Stagefright (Android, 2015)
- DROWN (TLS, 2016)
- Badlock (SMB/CIFS, 2016)
- Dirty Cow (Linux, 2016)
- EternalBlue ( SMBv1 , 2017)
- DoublePulsar (2017)
- KRACK (2017)
- ROCA (2017)
- BlueBorn (2017)
- Összeomlás (2018)
- Spectre (2018)
- Blue Keep (2019)
|
---|
Számítógépes vírusok |
|
---|
2000 -es évek • 2010-es évek • 2020-as évek |