En sårbarhet i cryptsetup som lar deg deaktivere kryptering i LUKS2-partisjoner

En sårbarhet (CVE-2021-4122) er identifisert i Cryptsetup-pakken, brukt til å kryptere diskpartisjoner i Linux, som gjør at kryptering kan deaktiveres på partisjoner i LUKS2-formatet (Linux Unified Key Setup) ved å endre metadata. For å utnytte sårbarheten må angriperen ha fysisk tilgang til det krypterte mediet, dvs. Metoden er hovedsakelig fornuftig for å angripe krypterte eksterne lagringsenheter, for eksempel Flash-stasjoner, som angriperen har tilgang til, men som ikke kjenner passordet for å dekryptere dataene.

Angrepet gjelder kun for LUKS2-formatet og er assosiert med manipulering av metadata som er ansvarlig for aktivering av utvidelsen "online reencryption", som gjør det mulig, hvis det er nødvendig å endre tilgangsnøkkelen, å starte prosessen med data-rekryptering i farten uten å stoppe arbeidet med partisjonen. Siden prosessen med dekryptering og kryptering med en ny nøkkel tar mye tid, gjør "online reencryption" det mulig å ikke avbryte arbeidet med partisjonen og utføre re-kryptering i bakgrunnen, gradvis re-kryptere data fra en nøkkel til en annen . Det er også mulig å velge en tom målnøkkel, som lar deg konvertere delen til en dekryptert form.

En angriper kan gjøre endringer i LUKS2-metadataene som simulerer en avbrytelse av dekrypteringsoperasjonen som følge av en feil og oppnå dekryptering av en del av partisjonen etter aktivering og bruk av den modifiserte stasjonen av eieren. I dette tilfellet mottar ikke brukeren som har koblet til den modifiserte stasjonen og låst den opp med riktig passord noen advarsel om prosessen med å gjenopprette den avbrutte rekrypteringsoperasjonen og kan bare finne ut om fremdriften til denne operasjonen ved å bruke "luks Dump" kommando. Mengden data som en angriper kan dekryptere avhenger av størrelsen på LUKS2-headeren, men ved standardstørrelsen (16 MiB) kan den overstige 3 GB.

Problemet er forårsaket av det faktum at selv om re-kryptering krever beregning og verifisering av hash for de nye og gamle nøklene, er det ikke nødvendig med en hash for å begynne dekryptering hvis den nye tilstanden innebærer fravær av en ren tekstnøkkel for kryptering. I tillegg er LUKS2-metadataene, som spesifiserer krypteringsalgoritmen, ikke beskyttet mot endringer hvis de faller i hendene på en angriper. For å blokkere sårbarheten la utviklerne tilleggsbeskyttelse for metadata til LUKS2, som det nå sjekkes en ekstra hash for, beregnet ut fra kjente nøkler og metadatainnhold, d.v.s. en angriper kan ikke lenger i det skjulte endre metadata uten å kjenne dekrypteringspassordet.

Et typisk angrepsscenario krever at angriperen kan få hendene på stasjonen flere ganger. Først gjør en angriper som ikke kjenner tilgangspassordet endringer i metadataområdet, og utløser dekryptering av deler av dataene neste gang stasjonen aktiveres. Stasjonen blir deretter returnert til sin plass og angriperen venter til brukeren kobler den til ved å skrive inn et passord. Når enheten aktiveres av brukeren, startes en bakgrunnsrekrypteringsprosess, hvor en del av de krypterte dataene erstattes med dekrypterte data. Videre, hvis angriperen klarer å få hendene på enheten igjen, vil noen av dataene på stasjonen være i dekryptert form.

Problemet ble identifisert av cryptsetup-prosjektets vedlikeholder og løst i cryptsetup 2.4.3 og 2.3.7-oppdateringene. Statusen til oppdateringer som genereres for å fikse problemet i distribusjoner kan spores på disse sidene: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Sårbarheten vises kun siden utgivelsen av cryptsetup 2.2.0, som introduserte støtte for operasjonen "online reencryption". Som en løsning for beskyttelse kan oppstart med alternativet "--disable-luks2-reencryption" brukes.

Kilde: opennet.ru

Legg til en kommentar