A cryptsetup biztonsági rése, amely lehetővé teszi a titkosítás letiltását a LUKS2 partíciókban

A Linux rendszerben a lemezpartíciók titkosítására használt Cryptsetup csomagban egy biztonsági rést (CVE-2021-4122) azonosítottak, amely lehetővé teszi a titkosítás letiltását a LUKS2 (Linux Unified Key Setup) formátumú partíciókon a metaadatok módosításával. A sérülékenység kihasználásához a támadónak fizikai hozzáféréssel kell rendelkeznie a titkosított adathordozóhoz, pl. A módszer főként titkosított külső tárolóeszközök, például Flash meghajtók támadásakor van értelme, amelyekhez a támadó hozzáfér, de nem tudja az adatok visszafejtéséhez szükséges jelszót.

A támadás csak a LUKS2 formátumra vonatkozik, és az „online újratitkosítás” bővítmény aktiválásáért felelős metaadatok manipulálásához kapcsolódik, amely lehetővé teszi, hogy ha szükséges a hozzáférési kulcs megváltoztatása, az adatok újratitkosításának folyamata menet közben elindítható. a partícióval végzett munka leállítása nélkül. Mivel a visszafejtés és a titkosítás új kulccsal sok időt vesz igénybe, az „online újratitkosítás” lehetővé teszi, hogy ne szakítsa meg a partícióval végzett munkát, és a háttérben végezzen újratitkosítást, fokozatosan újra titkosítva az adatokat egyik kulcsról a másikra. . Lehetőség van üres célkulcs kiválasztására is, amely lehetővé teszi a szakasz dekódolt formává alakítását.

A támadó olyan változtatásokat hajthat végre a LUKS2 metaadatokon, amelyek a visszafejtési művelet megszakítását szimulálják hiba következtében, és elérhetik a partíció egy részének visszafejtését, miután a tulajdonos aktiválta és használja a módosított meghajtót. Ebben az esetben a módosított meghajtót csatlakoztató és a megfelelő jelszóval feloldó felhasználó nem kap semmilyen figyelmeztetést a megszakadt újratitkosítási művelet visszaállításának folyamatáról, és csak a „luks Dump” segítségével tudhatja meg a művelet előrehaladását. parancs. A támadó által visszafejthető adatmennyiség a LUKS2 fejléc méretétől függ, de az alapértelmezett méretben (16 MiB) meghaladhatja a 3 GB-ot.

A problémát az okozza, hogy bár az újratitkosítás megköveteli az új és a régi kulcsok hasheinek kiszámítását és ellenőrzését, nem szükséges a kivonat a visszafejtés megkezdéséhez, ha az új állapot azt jelenti, hogy nincs egyszerű szöveges kulcs a titkosításhoz. Ráadásul a titkosítási algoritmust meghatározó LUKS2 metaadatok nem védettek a módosítástól, ha támadó kezébe kerülnének. A sérülékenység blokkolása érdekében a fejlesztők a LUKS2-t további metaadatok védelmével látták el, amelyhez most egy további hash-t is ellenőriznek, amelyet az ismert kulcsok és metaadat-tartalmak alapján számítanak ki, pl. a támadó többé nem tudja titokban megváltoztatni a metaadatokat a visszafejtési jelszó ismerete nélkül.

Egy tipikus támadási forgatókönyv megköveteli, hogy a támadó többször is rá tudja tenni a kezét a meghajtóra. Először is, egy támadó, aki nem ismeri a hozzáférési jelszót, módosítja a metaadat-területet, és a meghajtó következő aktiválásakor az adatok egy részének visszafejtését indítja el. A meghajtó ezután visszakerül a helyére, és a támadó megvárja, amíg a felhasználó jelszó megadásával csatlakozik. Amikor a felhasználó aktiválja az eszközt, elindul egy háttér-újratitkosítási folyamat, melynek során a titkosított adatok egy részét visszafejtött adatokkal helyettesítik. Továbbá, ha a támadónak sikerül újra kézbe vennie az eszközt, a meghajtón lévő adatok egy része dekódolt formában lesz.

A problémát a cryptsetup projekt karbantartója azonosította, és a cryptsetup 2.4.3 és 2.3.7 frissítései javították. A disztribúciók problémájának megoldására generált frissítések állapota a következő oldalakon követhető nyomon: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. A sérülékenység csak a cryptsetup 2.2.0 kiadása óta jelenik meg, amely bevezette az „online újratitkosítás” művelet támogatását. A védelem megoldásaként a „--disable-luks2-reencryption” opcióval történő indítás használható.

Forrás: opennet.ru

Hozzászólás