SG.hu
A memóriát lefagyasztva bármilyen titkosított adat megszerezhető
Pár dollárért Kínából rendelt eszközök, egy módosított firmware és nagyon okos emberek, máris bármilyen adat kinyerhető.
2008-ban mutattak be először a fagyasztásos támadást, amelynek során a memóriachipeket lehűtik és így az összes bennük lévő adatot - köztük titkosítási kulcsokat is - meg lehet szerezni. Most továbbfejlesztették és automatizálták ezt a támadástípust egy memória-fagyasztó gép formájában, amely körülbelül 2000 dollárba kerül. Ezt a kanadai REcon reverse engineering konferencián Ang Cui, a Red Balloon Security alapítója és vezérigazgatója mutatta be. Az előadás középpontjában a "RAM Content Extraction Robot" áll, amelyet Cui és kollégái, Grant Skipper és Yuanzhe Wu fejlesztettek ki a DDR3 memóriamodulok dekódolt adatainak begyűjtésére. Indoklásuk szerint erre azért volt szükség, mert a hardvergyártók a hibakeresési interfészek letiltásával és titkosított firmware-ek használatával megnehezítették az eszközeik visszafejtését.
"A gyártók sok hibakeresési interfészt eltávolítanak" - mondta Cui. "Ez nem feltétlenül növeli egy termék biztonságát, de sokkal nehezebbé teszi az eszközbe való betekintést és a visszafejtését. Ezért úgy döntöttünk, hogy más utat választunk: ahelyett, hogy megpróbálnánk hibainjektálást végezni, amit a múltban tettünk, inkább megépítettük ezt a nagyon megfizethető, meglepően precíz robotot, amely egyszerre csak pontosan egy RAM-chipet fagyaszt le. Ezután lehúzzuk a fizikai memóriát az eszközről, amikor ki akarjuk olvasni a tartalmát, majd belerakjuk a kis FPGA rögzítőnkbe. Alapvetően csak a memóriát olvassuk ki úgy, hogy lekapjuk az eszközről, majd fizikailag betesszük az olvasóba. És ez meglepően jól működik" - magyarázta Cui.
"Sokszor a bootloaderben vannak a dekódoló kulcsok. De a bootloader kódját is látni, amihez sokszor - ha titkosított firmware van a flashen, és a boot ROM valamennyire biztonságos -, nagyon nehéz hozzáférni. Ezzel a megközelítéssel azonban hozzáférhetünk a kódhoz, az összes adathoz, a veremhez, egyszóval az egész fizikai memóriához" - mesélte. Cui elmondása szerint az eredeti hidegindítási támadás során egy laptop DRAM chipjeit -50 °C körüli hőmérsékletre hűtötték. Az adatok még kikapcsolás után is több percig benne maradnak. "De a beágyazott eszközök nem rendelkeznek moduláris RAM-mal" - mondta Cui. "Minden össze van forrasztva. Tehát nem egy, hanem öt chipet kell lehűtenünk, mert ezek mind egymásba vannak illesztve. A chipek közül három a lap egyik oldalán van, kettő pedig a lap alján."
"Tehát ki kellett találnunk egy olyan módszert, ami valahogy varázslatos módon mind az öt memóriachipet szó szerint ugyanannál a végrehajtott utasításnál kapcsolja le - ez nem igazán kivitelezhető. Kitaláltunk egy másik nagyon klassz trükköt, ahol ezt egyenként csináljuk, úgy hogy nem csak a determinisztikus végrehajtást keressük, hanem az eszköz elektromágneses kisugárzását is nézzük, hogy kitaláljuk, hogy mikor végez CPU-t igénylő feladatot. Mert ilyenkor az eszköz nem ír a memóriába" - idézte fel. "Tehát néhány tíz nanoszekundumos időzítési ablak helyett több tízezredmásodperces periódusokat kaptunk, amikor ezt megtehetjük. Így egyszerre lehúzhatóvá vált mind az öt memóriachip, majd rekonstruáltuk az adatokat, kiolvastuk a bootloadert és a kódot."
Cui szerint a több tíz milliszekundum elég hosszú idő ahhoz, hogy egy az Aliexpresszről 500 dollárért beszerzett CNC gép elvégezze a szükséges chipmanipulációt. A robot tehát valójában egy CNC-ből áll, amelyből eltávolították a felesleges alkatrészeket, például a motorokat. Ez egy memóriaolvasóhoz csatlakozik, amelyet egy FPGA és egy ESP32 modulon alapuló, MicroPython-t futtató vezérlővel alakítottak át. Foglalatként egy vezető elasztomert használnak, amelyek egy évtizeddel ezelőtt egyenként több száz dollárba kerültek, de ma már 30 dollár körüli összegért kaphatók a Taobao-n. Az ilyen IC tesztaljzat állaga a keményebb gumicukrokra hasonlít, aminek a rugalmassága lehetővé teszi, hogy a memóriachipeket befogadja anélkül, hogy az áramköri lap vagy a memóriachipek megsérülnének.
A robot a támadási folyamatot leegyszerűsíti azáltal, hogy a DRAM chipeket fizikailag áthelyezi a céleszköz és a kiolvasórendszer között. Cui és kollégái egy Siemens SIMATIC S7-1500 PLC-n ([programozható logikai vezérlő) demonstrálták robotjukat, amelyből képesek voltak visszanyerni a titkosított firmware binárisok tartalmát. Hasonlóan sikeres támadást hajtottak végre egy CISCO IP Phone 8800-as sorozatú DDR3 DRAM memóriája ellen is, hogy futásidőben hozzáférjenek az ARM TrustZone adataihoz. Úgy vélik, hogy technikájuk alkalmazható a bonyolultabb DDR4 és DDR5 rendszerek esetében is, ha egy drágább (kb. 10 000 dollár körüli) FPGA-alapú memória kiolvasó platformot használnak - ez a költség várakozásaik szerint idővel csökkenni fog.
A hidegindítási támadásokat fizikai memóriatitkosítással lehet kivédeni, mondta Cui. "A modern CPU-kban és a játékkonzolokban már teljes mértékben titkosított memóriát használnak" - magyarázta Cui. "Az legyőzi ezt a megközelítést, mert még ha képesek is lennénk a fizikai memóriát feltörni, akkor is szükségünk lenne a fizikai kulcsra, ami valahol máshol van az eszközben. De minél fontosabb egy dolog a világ számára, annál kevésbé biztonságos" - mondta. "Szóval az XBoxnak van memóriatitkosítása. A PS5-nek is van. De mi nem rendelkezik vele? Bármely PLC lapka. A kritikus infrastruktúrához tartozó beágyazott dolgok, amelyektől függünk, szinte egyike sem tud kivédeni egy ilyen jellegű támadást."
2008-ban mutattak be először a fagyasztásos támadást, amelynek során a memóriachipeket lehűtik és így az összes bennük lévő adatot - köztük titkosítási kulcsokat is - meg lehet szerezni. Most továbbfejlesztették és automatizálták ezt a támadástípust egy memória-fagyasztó gép formájában, amely körülbelül 2000 dollárba kerül. Ezt a kanadai REcon reverse engineering konferencián Ang Cui, a Red Balloon Security alapítója és vezérigazgatója mutatta be. Az előadás középpontjában a "RAM Content Extraction Robot" áll, amelyet Cui és kollégái, Grant Skipper és Yuanzhe Wu fejlesztettek ki a DDR3 memóriamodulok dekódolt adatainak begyűjtésére. Indoklásuk szerint erre azért volt szükség, mert a hardvergyártók a hibakeresési interfészek letiltásával és titkosított firmware-ek használatával megnehezítették az eszközeik visszafejtését.
"A gyártók sok hibakeresési interfészt eltávolítanak" - mondta Cui. "Ez nem feltétlenül növeli egy termék biztonságát, de sokkal nehezebbé teszi az eszközbe való betekintést és a visszafejtését. Ezért úgy döntöttünk, hogy más utat választunk: ahelyett, hogy megpróbálnánk hibainjektálást végezni, amit a múltban tettünk, inkább megépítettük ezt a nagyon megfizethető, meglepően precíz robotot, amely egyszerre csak pontosan egy RAM-chipet fagyaszt le. Ezután lehúzzuk a fizikai memóriát az eszközről, amikor ki akarjuk olvasni a tartalmát, majd belerakjuk a kis FPGA rögzítőnkbe. Alapvetően csak a memóriát olvassuk ki úgy, hogy lekapjuk az eszközről, majd fizikailag betesszük az olvasóba. És ez meglepően jól működik" - magyarázta Cui.
"Sokszor a bootloaderben vannak a dekódoló kulcsok. De a bootloader kódját is látni, amihez sokszor - ha titkosított firmware van a flashen, és a boot ROM valamennyire biztonságos -, nagyon nehéz hozzáférni. Ezzel a megközelítéssel azonban hozzáférhetünk a kódhoz, az összes adathoz, a veremhez, egyszóval az egész fizikai memóriához" - mesélte. Cui elmondása szerint az eredeti hidegindítási támadás során egy laptop DRAM chipjeit -50 °C körüli hőmérsékletre hűtötték. Az adatok még kikapcsolás után is több percig benne maradnak. "De a beágyazott eszközök nem rendelkeznek moduláris RAM-mal" - mondta Cui. "Minden össze van forrasztva. Tehát nem egy, hanem öt chipet kell lehűtenünk, mert ezek mind egymásba vannak illesztve. A chipek közül három a lap egyik oldalán van, kettő pedig a lap alján."
"Tehát ki kellett találnunk egy olyan módszert, ami valahogy varázslatos módon mind az öt memóriachipet szó szerint ugyanannál a végrehajtott utasításnál kapcsolja le - ez nem igazán kivitelezhető. Kitaláltunk egy másik nagyon klassz trükköt, ahol ezt egyenként csináljuk, úgy hogy nem csak a determinisztikus végrehajtást keressük, hanem az eszköz elektromágneses kisugárzását is nézzük, hogy kitaláljuk, hogy mikor végez CPU-t igénylő feladatot. Mert ilyenkor az eszköz nem ír a memóriába" - idézte fel. "Tehát néhány tíz nanoszekundumos időzítési ablak helyett több tízezredmásodperces periódusokat kaptunk, amikor ezt megtehetjük. Így egyszerre lehúzhatóvá vált mind az öt memóriachip, majd rekonstruáltuk az adatokat, kiolvastuk a bootloadert és a kódot."
Cui szerint a több tíz milliszekundum elég hosszú idő ahhoz, hogy egy az Aliexpresszről 500 dollárért beszerzett CNC gép elvégezze a szükséges chipmanipulációt. A robot tehát valójában egy CNC-ből áll, amelyből eltávolították a felesleges alkatrészeket, például a motorokat. Ez egy memóriaolvasóhoz csatlakozik, amelyet egy FPGA és egy ESP32 modulon alapuló, MicroPython-t futtató vezérlővel alakítottak át. Foglalatként egy vezető elasztomert használnak, amelyek egy évtizeddel ezelőtt egyenként több száz dollárba kerültek, de ma már 30 dollár körüli összegért kaphatók a Taobao-n. Az ilyen IC tesztaljzat állaga a keményebb gumicukrokra hasonlít, aminek a rugalmassága lehetővé teszi, hogy a memóriachipeket befogadja anélkül, hogy az áramköri lap vagy a memóriachipek megsérülnének.
A robot a támadási folyamatot leegyszerűsíti azáltal, hogy a DRAM chipeket fizikailag áthelyezi a céleszköz és a kiolvasórendszer között. Cui és kollégái egy Siemens SIMATIC S7-1500 PLC-n ([programozható logikai vezérlő) demonstrálták robotjukat, amelyből képesek voltak visszanyerni a titkosított firmware binárisok tartalmát. Hasonlóan sikeres támadást hajtottak végre egy CISCO IP Phone 8800-as sorozatú DDR3 DRAM memóriája ellen is, hogy futásidőben hozzáférjenek az ARM TrustZone adataihoz. Úgy vélik, hogy technikájuk alkalmazható a bonyolultabb DDR4 és DDR5 rendszerek esetében is, ha egy drágább (kb. 10 000 dollár körüli) FPGA-alapú memória kiolvasó platformot használnak - ez a költség várakozásaik szerint idővel csökkenni fog.
A hidegindítási támadásokat fizikai memóriatitkosítással lehet kivédeni, mondta Cui. "A modern CPU-kban és a játékkonzolokban már teljes mértékben titkosított memóriát használnak" - magyarázta Cui. "Az legyőzi ezt a megközelítést, mert még ha képesek is lennénk a fizikai memóriát feltörni, akkor is szükségünk lenne a fizikai kulcsra, ami valahol máshol van az eszközben. De minél fontosabb egy dolog a világ számára, annál kevésbé biztonságos" - mondta. "Szóval az XBoxnak van memóriatitkosítása. A PS5-nek is van. De mi nem rendelkezik vele? Bármely PLC lapka. A kritikus infrastruktúrához tartozó beágyazott dolgok, amelyektől függünk, szinte egyike sem tud kivédeni egy ilyen jellegű támadást."