Chyba zabezpečení v cryptsetup, která umožňuje zakázat šifrování v oddílech LUKS2

V balíčku Cryptsetup, který se používá k šifrování diskových oddílů v Linuxu, byla identifikována zranitelnost (CVE-2021-4122), která umožňuje deaktivovat šifrování na oddílech ve formátu LUKS2 (Linux Unified Key Setup) úpravou metadat. Pro zneužití zranitelnosti musí mít útočník fyzický přístup k šifrovaným médiím, tzn. Metoda má smysl hlavně pro napadení šifrovaných externích úložných zařízení, jako jsou Flash disky, ke kterým má útočník přístup, ale nezná heslo pro dešifrování dat.

Útok je použitelný pouze pro formát LUKS2 a je spojen s manipulací s metadaty zodpovědnými za aktivaci rozšíření „online reencryption“, které umožňuje v případě nutnosti změny přístupového klíče zahájit proces opětovného šifrování dat za běhu. bez zastavení práce s oddílem. Protože proces dešifrování a šifrování pomocí nového klíče zabere spoustu času, „online rešifrování“ umožňuje nepřerušovat práci s diskovým oddílem a provádět opětovné šifrování na pozadí a postupně přešifrovat data z jednoho klíče na druhý. . Je také možné vybrat prázdný cílový klíč, který umožňuje převést sekci do dešifrované podoby.

Útočník může provést změny v metadatech LUKS2, které simulují přerušení operace dešifrování v důsledku selhání a dosáhnout dešifrování části oddílu po aktivaci a použití upraveného disku vlastníkem. V tomto případě uživatel, který připojil upravený disk a odemkl jej správným heslem, neobdrží žádné upozornění na proces obnovy přerušené operace opětovného šifrování a o průběhu této operace se může dozvědět pouze pomocí „luks Dump“ příkaz. Množství dat, které může útočník dešifrovat, závisí na velikosti hlavičky LUKS2, ale při výchozí velikosti (16 MiB) může přesáhnout 3 GB.

Problém je způsoben skutečností, že ačkoli opětovné zašifrování vyžaduje výpočet a ověření hash nového a starého klíče, hash není vyžadován k zahájení dešifrování, pokud nový stav implikuje absenci klíče prostého textu pro šifrování. Navíc metadata LUKS2, která specifikují šifrovací algoritmus, nejsou chráněna před úpravou, pokud se dostanou do rukou útočníka. Pro zablokování zranitelnosti přidali vývojáři do LUKS2 další ochranu pro metadata, u kterých je nyní kontrolován další hash, vypočítaný na základě známých klíčů a obsahu metadat, tzn. útočník již nemůže tajně měnit metadata, aniž by znal heslo pro dešifrování.

Typický scénář útoku vyžaduje, aby se útočníkovi podařilo dostat do rukou disk vícekrát. Za prvé, útočník, který nezná přístupové heslo, provede změny v oblasti metadat a při příští aktivaci disku spustí dešifrování části dat. Disk se poté vrátí na své místo a útočník čeká, až jej uživatel připojí zadáním hesla. Po aktivaci zařízení uživatelem je spuštěn proces opětovného šifrování na pozadí, během kterého je část šifrovaných dat nahrazena dešifrovanými daty. Dále, pokud se útočníkovi podaří znovu získat zařízení, některá data na disku budou v dešifrované podobě.

Problém byl identifikován správcem projektu cryptsetup a opraven v aktualizacích cryptsetup 2.4.3 a 2.3.7. Stav aktualizací generovaných k vyřešení problému v distribucích lze sledovat na těchto stránkách: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Chyba zabezpečení se objevuje pouze od vydání cryptsetup 2.2.0, který zavedl podporu pro operaci „online reencryption“. Jako řešení ochrany lze použít spuštění s možností „--disable-luks2-reencryption“.

Zdroj: opennet.ru

Přidat komentář