En sårbarhet i cryptsetup som låter dig inaktivera kryptering i LUKS2-partitioner

En sårbarhet (CVE-2021-4122) har identifierats i Cryptsetup-paketet, som används för att kryptera diskpartitioner i Linux, vilket gör att kryptering kan inaktiveras på partitioner i formatet LUKS2 (Linux Unified Key Setup) genom att modifiera metadata. För att utnyttja sårbarheten måste angriparen ha fysisk tillgång till det krypterade mediet, d.v.s. Metoden är mest vettig för att attackera krypterade externa lagringsenheter, såsom flash-enheter, som angriparen har tillgång till men inte känner till lösenordet för att dekryptera data.

Attacken är endast tillämplig för LUKS2-formatet och är associerad med manipulering av metadata som är ansvarig för aktivering av tillägget "online omkryptering", som gör det möjligt att, om det är nödvändigt att ändra åtkomstnyckeln, initiera processen för omkryptering av data i farten utan att sluta arbeta med partitionen. Eftersom processen med dekryptering och kryptering med en ny nyckel tar mycket tid, gör "online omkryptering" det möjligt att inte avbryta arbetet med partitionen och utföra omkryptering i bakgrunden, gradvis omkryptera data från en nyckel till en annan . Det är också möjligt att välja en tom målnyckel, vilket gör att du kan konvertera avsnittet till en dekrypterad form.

En angripare kan göra ändringar i LUKS2-metadata som simulerar ett avbrytande av dekrypteringsoperationen som ett resultat av ett fel och uppnå dekryptering av en del av partitionen efter aktivering och användning av den modifierade enheten av ägaren. I det här fallet får användaren som har anslutit den modifierade enheten och låst upp den med rätt lösenord ingen varning om processen att återställa den avbrutna återkrypteringsoperationen och kan bara ta reda på hur denna operation fortskrider med hjälp av "luks Dump" kommando. Mängden data som en angripare kan dekryptera beror på storleken på LUKS2-huvudet, men vid standardstorleken (16 MiB) kan den överstiga 3 GB.

Problemet orsakas av det faktum att även om omkryptering kräver beräkning och verifiering av hash för de nya och gamla nycklarna, krävs inte en hash för att påbörja dekryptering om det nya tillståndet innebär frånvaron av en klartextnyckel för kryptering. Dessutom är LUKS2-metadata, som specificerar krypteringsalgoritmen, inte skyddad från modifiering om den hamnar i händerna på en angripare. För att blockera sårbarheten lade utvecklarna till ytterligare skydd för metadata till LUKS2, för vilket en extra hash nu kontrolleras, beräknad utifrån kända nycklar och metadatainnehåll, d.v.s. en angripare kan inte längre i smyg ändra metadata utan att känna till dekrypteringslösenordet.

Ett typiskt attackscenario kräver att angriparen kan lägga vantarna på enheten flera gånger. Först gör en angripare som inte känner till åtkomstlösenordet ändringar i metadataområdet, vilket utlöser dekrypteringen av en del av datan nästa gång enheten aktiveras. Enheten återförs sedan till sin plats och angriparen väntar tills användaren ansluter den genom att ange ett lösenord. När enheten aktiveras av användaren startas en omkrypteringsprocess i bakgrunden, under vilken en del av den krypterade datan ersätts med dekrypterad data. Vidare, om angriparen lyckas få tag på enheten igen, kommer en del av data på enheten att vara i dekrypterad form.

Problemet identifierades av cryptsetup-projektets underhållare och fixades i cryptsetup 2.4.3 och 2.3.7 uppdateringarna. Statusen för uppdateringar som genereras för att åtgärda problemet i distributioner kan spåras på dessa sidor: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Sårbarheten uppträder endast sedan släppet av cryptsetup 2.2.0, som introducerade stöd för operationen "online omkryptering". Som en lösning för skyddet kan start med alternativet "--disable-luks2-reencryption" användas.

Källa: opennet.ru

Lägg en kommentar