Vid porteringen av verktygen cryptsetup-suspend för NixOS upptÀcktes ett fel i kryptosubsystemet LUKS (Linux Unified Key Setup), vilket ledde till att nycklarna för kryptering slutade rensas frÄn RAM-minnet nÀr systemet gick i vilolÀge, efter kÀrnversion 6.9 (felaktig commit) som slÀpptes i maj 2024.
Verktyget cryptsetup-suspend anvÀnds i Debian för att automatiskt lÄsa LUKS-partitioner innan de gÄr i vilolÀge. Antagandet Àr att vid stöld av en bÀrbar dator som satts i vilolÀge skulle en angripare inte kunna fÄ Ätkomst till data, eftersom ett lösenord mÄste anges för att ÄterfÄ Ätkomst till krypterade data nÀr systemet vaknar. PÄ grund av felet i kÀrnan efter att ha lÄst en LUKS-partition med kommandot 'cryptsetup luksSuspend' rensades inte nycklarna frÄn RAM-minnet och förblev synliga via /proc/keys, vilket gjorde det möjligt för en angripare att extrahera dem, till exempel genom
Avsaknaden av nyckelrensing upptÀcktes under avlusningen av ett race condition som orsakade problem vid övergÄng till vilolÀge. Felet uppstod efter en refaktorisering i kÀrnversion 6.9, dÀr nycklar kopplades till den anropande trÄden och skulle tas bort vid dess avslut, men förblev kvar i minnet. Ett enradigt patch-förslag för att ÄtgÀrda felet har föreslagits för Linux-kÀrnan.
Detta patch-förslag har inte antagits i kĂ€rnan eftersom det identifierades en brist â patchen fungerar endast för fysiska lagringsenheter, men inte för virtuella loop-enheter. IstĂ€llet för att Ă„tgĂ€rda problemet i kĂ€rnan föreslogs en workaround av utvecklarna av cryptsetup för att rensa nycklar. Denna Ă€ndring har redan antagits och kommer att ingĂ„ i versionen 2.8.7 av cryptsetup.
Dessutom har en egen implementation av skript för att lÄsa krypterade diskar innan övergÄngen till vilolÀge skapats för NixOS, dÀr en gammal patch till kÀrnan frÄn 2015 anvÀnds, som tvÄngsmÀssigt rensar nycklar frÄn minnet innan systemet gÄr i vilolÀge.
KĂ€lla: opennet.ru
