Problémy s vymazáním klíčů šifrování disku z RAM při přechodu Linuxu do režimu spánku

Při portování nástroje cryptsetup-suspend pro NixOS byla zjištěna chyba v pod systému diskového šifrování LUKS (Linux Unified Key Setup), která vedla k tomu, že od jádra Linux 6.9 (problemový commit), vydaného v květnu 2024, přestala fungovat čistění šifrovacích klíčů z operační paměti při přechodu systému do režimu spánku.

Nástroj cryptsetup-suspend je používán v Debianu pro automatickou blokaci LUKS oddílů před přechodem do režimu spánku. Předpokládá se, že v případě krádeže notebooku, který byl převeden do režimu spánku, bude útočník zbaven možnosti získat přístup k datům, jelikož při probuzení ze spánku bude vyžadováno zadání hesla pro obnovení přístupu k zašifrovaným datům. V důsledku chyby v jádře Linux po blokaci LUKS oddílu příkazem "cryptsetup luksSuspend" klíče nebyly vyčištěny z operační paměti a zůstávaly viditelné přes /proc/keys, což umožnilo útočníkovi je extrahovat, například metodou "studeného restartu" a poté je použít k přístupu k datům.

Nedostatek čistění klíčů byl zjištěn při ladění stavu závodu, kvůli kterému se vyskytly problémy s přechodem do režimu spánku. Chyba se objevila po provedení refaktoringu v jádře 6.9, při kterém byly klíče přiřazeny k volajícímu vláknu a měly být odstraněny při jeho ukončení, ale ve skutečnosti zůstávaly v paměti. Pro zařazení do jádra Linux byl navržen jednorázový patch, který odstraňuje tuto chybu.

Tento patch nebyl přijat do jádra, neboť byla zjištěna nedostatečnost — patch funguje pouze pro fyzické disky, ale nefunguje pro virtuální loop zařízení. Namísto opravy problému na straně jádra navrhli vývojáři nástroje cryptsetup obcházející řešení vyčištění klíčů. Toto změna už byla přijata a bude součástí vydání cryptsetup 2.8.7.

Kromě toho byla pro NixOS vytvořena vlastní implementace skriptů pro blokování šifrovaných disků před přechodem do režimu spánku, ve které je využit starý patch jádra, který nebyl přijat v roce 2015 a který násilně čistí klíče z paměti před přechodem do spánkového režimu.

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