Mayhem — támadás, amely a memóriában lévő bitek torzítását használja az azonosítás megkerülésére a sudo és OpenSSH esetében

A Worcester Polytechnic Institute (USA) kutatói bemutatták az új Mayhem támadást, amely a Rowhammer dinamikus RAM bitkihagyásos módszerét használja a veremben elhelyezett változók értékeinek megváltoztatására, amelyeket az autentikáció sikerességének és a biztonsági ellenőrzéseknek a meghatározására használnak. A támadás gyakorlati alkalmazásait demonstrálták a SUDO, OpenSSH és MySQL autentikáció illetéktelen megkerülésére, valamint a biztonsággal kapcsolatos ellenőrzések eredményének megváltoztatására az OpenSSL könyvtár segítségével.

A támadás olyan alkalmazásokra alkalmazható, ahol az ellenőrzések során a nem null értékek eltéréseinek összehasonlítása zajlik. Példa egy sebezhető kódra: int auth = 0; … // a kód ellenőrzi, hogy ha az autentikáció sikeres, megváltoztatja az auth értékét if(auth != 0) return AUTH_SUCCESS; else return AUTH_FAILURE;

Ez a példa keretein belül egy sikeres támadáshoz elegendő bármely bit megváltoztatása a veremben található 32 bites auth változó memóriájában. Ha bármely bit meg van változtatva, az érték már nem lesz nulla, és a feltételes állítás az autentikáció sikerességét határozza meg. Az ilyen ellenőrzési minták elterjedtek az alkalmazásokban, például a SUDO, OpenSSH, MySQL és OpenSSL esetében.

A Mayhem egy támadás, amely a memóriában lévő bitek torzításával kerüli meg az azonosítást a sudo és az OpenSSH esetében.

A támadás alkalmazható a „if(auth == 1)” típusú összehasonlításokra is, de ebben az esetben a végrehajtása bonyolultabb, mivel nem bármelyik 32 bitet kell megváltoztatni, hanem az utolsó bitet. A módszer szintén használható a processzorregiszterekben lévő változók értékeinek befolyásolására, mivel a regiszterek tartalma átmenetileg a verembe kerülhet kontextusváltás, függvényhívás vagy jelkezelő aktiválása esetén. Abban az időszakban, amíg a regiszterek értékei a memóriában vannak, abba a memóriába is be lehet vinni torzításokat, és a regiszter végül a megváltozott értéket fogja helyreállítani.

A Mayhem egy támadás, amely a memóriában lévő bitek torzításával kerüli meg az azonosítást a sudo és az OpenSSH esetében.

Bitok torzításához a RowHammer támadás egyik módosítását alkalmazzák. Mivel a DRAM memória kétdimenziós cellahálózatot alkot, ahol minden cella egy kondenzátorból és egy tranzisztorból áll, ugyanazon memória terület folyamatos olvasása feszültségingadozásokat és anomáliákat eredményez, amelyek révén a szomszédos cellákban kis töltésveszteség léphet fel. Ha az olvasás intenzitása nagy, a szomszédos cella elég jelentős töltést veszíthet, és a következő regenerálási ciklus nem képes visszaállítani az eredeti állapotát, ami a cellában tárolt adatok értékének megváltozását eredményezi. A RowHammer ellen védve a chipgyártók TRR (Target Row Refresh) mechanizmust építettek be, amely bizonyos esetekben blokkolja a cellák torzítását, de nem véd meg minden lehetséges támadási variációtól.

A Mayhem támadás ellen ajánlott az összehasonlításokban nem a nullától való eltérést vagy az egyes egyezéseket használni, hanem az egyezéseket véletlenszerű, nem nullával rendelkező byte-okból álló bemeneti értékkel ellenőrizni. Ekkor a megfelelő változóbeállításhoz pontosan torzítani kell egy jelentős számú bitet, ami irreális, szemben az egy bit torzításával. Példa a támadásnak ellenálló kódra: int auth = 0xbe406d1a; … // a kód, amely az auth értékét 0x23ab8701-re állítja a sikeres azonosítás esetén if(auth == 0x23ab8701) return AUTH_SUCCESS; else return AUTH_FAILURE;

A megadott védelmi módszert már alkalmazták a sudo fejlesztői, és a 1.9.15 kiadás része lett a CVE-2023-42465 sebezhetőség javításaként. A támadás megvalósításának prototípusát a fő sebezhető projektek javítása után tervezik közzétenni.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster