En sårbarhed i cryptsetup, der giver dig mulighed for at deaktivere kryptering i LUKS2-partitioner

En sårbarhed (CVE-2021-4122) er blevet identificeret i Cryptsetup-pakken, der bruges til at kryptere diskpartitioner i Linux, som gør det muligt at deaktivere kryptering på partitioner i LUKS2-formatet (Linux Unified Key Setup) ved at ændre metadata. For at udnytte sårbarheden skal angriberen have fysisk adgang til det krypterede medie, dvs. Metoden giver hovedsageligt mening til at angribe krypterede eksterne lagerenheder, såsom flashdrev, som angriberen har adgang til, men som ikke kender adgangskoden til at dekryptere dataene.

Angrebet gælder kun for LUKS2-formatet og er forbundet med manipulation af metadata, der er ansvarlig for aktivering af "online reencryption"-udvidelsen, som gør det muligt, hvis det er nødvendigt at ændre adgangsnøglen, at starte processen med datagenkryptering i farten uden at stoppe arbejdet med partitionen. Da processen med dekryptering og kryptering med en ny nøgle tager meget tid, gør "online genkryptering" det muligt ikke at afbryde arbejdet med partitionen og udføre genkryptering i baggrunden og gradvist genkryptere data fra en nøgle til en anden . Det er også muligt at vælge en tom målnøgle, som giver dig mulighed for at konvertere afsnittet til en dekrypteret form.

En angriber kan foretage ændringer i LUKS2-metadataene, der simulerer en afbrydelse af dekrypteringsoperationen som følge af en fejl og opnå dekryptering af en del af partitionen efter aktivering og brug af det ændrede drev af ejeren. I dette tilfælde modtager brugeren, der har tilsluttet det ændrede drev og låst det op med den korrekte adgangskode, ingen advarsel om processen med at genoprette den afbrudte genkrypteringsoperation og kan kun finde ud af forløbet af denne operation ved hjælp af "luks Dump" kommando. Mængden af ​​data, som en angriber kan dekryptere, afhænger af størrelsen på LUKS2-headeren, men ved standardstørrelsen (16 MiB) kan den overstige 3 GB.

Problemet er forårsaget af det faktum, at selvom genkryptering kræver beregning og verificering af hashes af de nye og gamle nøgler, er en hash ikke påkrævet for at begynde dekryptering, hvis den nye tilstand indebærer fravær af en klartekstnøgle til kryptering. Derudover er LUKS2-metadataene, som specificerer krypteringsalgoritmen, ikke beskyttet mod ændringer, hvis de falder i hænderne på en angriber. For at blokere sårbarheden tilføjede udviklerne yderligere beskyttelse af metadata til LUKS2, som der nu tjekkes en ekstra hash for, beregnet ud fra kendte nøgler og metadataindhold, dvs. en angriber kan ikke længere i det skjulte ændre metadata uden at kende dekrypteringsadgangskoden.

Et typisk angrebsscenarie kræver, at angriberen er i stand til at få fingrene i drevet flere gange. For det første foretager en angriber, som ikke kender adgangskoden, ændringer i metadataområdet, hvilket udløser dekryptering af en del af dataene, næste gang drevet aktiveres. Drevet returneres derefter til sin plads, og angriberen venter, indtil brugeren forbinder det ved at indtaste en adgangskode. Når enheden aktiveres af brugeren, startes en genkrypteringsproces i baggrunden, hvor en del af de krypterede data erstattes med dekrypterede data. Yderligere, hvis det lykkes angriberen at få fingrene i enheden igen, vil nogle af dataene på drevet være i dekrypteret form.

Problemet blev identificeret af cryptsetup-projektets vedligeholder og rettet i cryptsetup 2.4.3 og 2.3.7-opdateringerne. Status for opdateringer, der genereres for at løse problemet i distributioner, kan spores på disse sider: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Sårbarheden vises kun siden udgivelsen af ​​cryptsetup 2.2.0, som introducerede understøttelse af "online genkryptering" operationen. Som en løsning til beskyttelse kan lancering med "--disable-luks2-reencryption" muligheden bruges.

Kilde: opennet.ru

Tilføj en kommentar