Zranitelnost v cryptsetup umožňující vypnout šifrování v LUKS2 oddílech.

V balíčku Cryptsetup, používaném pro šifrování diskových oddílů v Linuxu, byla zjištěna zranitelnost (CVE-2021-4122), která umožňuje deaktivaci šifrování v oddílech ve formátu LUKS2 (Linux Unified Key Setup) prostřednictvím modifikace metadat. Pro zneužití této zranitelnosti musí útočník mít fyzický přístup k zašifrovanému médiu, což činí tuto metodu v zásadě relevantní především pro útoky na zašifrované externí úložné zařízení, jako jsou USB 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 spočívá v manipulaci s metadaty, která odpovídají za aktivaci funkce "online reencryption", která umožňuje při nutnosti změny přístupového klíče iniciovat proces dešifrování dat za chodu, aniž by bylo nutné přerušit práci s oddílem. Protože proces dešifrování a šifrování s novým klíčem zabere hodně času, "online reencryption" umožňuje nepřerušovat práci s oddílem a provádět dešifrování na pozadí, postupně přetvářejíc data z jednoho klíče na druhý. Kromě toho existuje možnost použití prázdného cílového klíče, což umožňuje převést oddíl do dešifrovaného stavu.

Útočník může provést změny v metadatech LUKS2, které simulují nouzové přerušení dešifrování z důvodu selhání, a tím dosáhnout dešifrování části oddílu po aktivaci a použití modifikovaného média vlastníkem. Přitom uživatel, který připojí modifikované médium a odemkne ho správným heslem, nedostane žádné varování o probíhajícím procesu obnovení přerušené operace dešifrování a může se o stavu této operace dozvědět pouze pomocí příkazu "luks Dump". Množství dat, jejichž dešifrování může útočník dosáhnout, závisí na velikosti hlavičky LUKS2, ale při výchozí velikosti (16 MiB) může překročit 3 GB.

Problém je způsoben tím, že i když dešifrování vyžaduje výpočet a kontrolu hashů nových a starých klíčů, pro zahájení dešifrování hash není potřeba, pokud nové stavy předpokládají absenci klíče pro šifrování (čistý text). Navíc metadata LUKS2, v nichž je definován šifrovací algoritmus, nejsou chráněna před modifikací, pokud se dostanou do rukou útočníka. Aby se zranitelnost zablokovala, vývojáři přidali do LUKS2 dodatečnou ochranu metadat, kde se nyní kontroluje další hash, který se počítá na základě známých klíčů a obsahu metadat, takže útočník nyní nemůže nenápadně změnit metadata, aniž by znal heslo pro dešifrování.

Standardní scénář útoku vyžaduje, aby útočník měl možnost několikrát získat úložiště do svých rukou. Zpočátku útočník, který nezná přístupové heslo, provádí změny v oblasti metadat, které iniciují dešifrování části dat při příštím aktivaci úložiště. Poté je úložiště vráceno na místo a útočník čeká, až jej uživatel připojí, zadá heslo. Během aktivace zařízení uživatelem se spustí pozadí procesu přešifrování, během něhož se část zašifrovaných dat nahradí na dešifrovaná data. Dále, pokud útočník opět získá zařízení, část dat na úložišti bude ve dešifrované podobě.

Problém byl odhalen udržovatelem projektu cryptsetup a byl vyřešen v aktualizacích cryptsetup 2.4.3 a 2.3.7. Stav přípravy aktualizací s odstraněním problému v distribucích lze sledovat na těchto stránkách: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Zranitelnost se projevuje pouze od vydání cryptsetup 2.2.0, ve kterém byla přidána podpora operace „online reencryption“. Jako obcházející ochrana může být použito spuštění s volbou „—disable-luks2-reencryption“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster