O vulnerabilitate în cryptsetup care vă permite să dezactivați criptarea în partițiile LUKS2

O vulnerabilitate (CVE-2021-4122) a fost identificată în pachetul Cryptsetup, folosit pentru a cripta partițiile de disc în Linux, care permite dezactivarea criptării pe partițiile în formatul LUKS2 (Linux Unified Key Setup) prin modificarea metadatelor. Pentru a exploata vulnerabilitatea, atacatorul trebuie să aibă acces fizic la media criptată, adică Metoda are sens în principal pentru atacarea dispozitivelor de stocare externe criptate, cum ar fi unitățile flash, la care atacatorul are acces, dar nu cunoaște parola pentru a decripta datele.

Atacul este aplicabil doar pentru formatul LUKS2 și este asociat cu manipularea metadatelor responsabile cu activarea extensiei „recriptare online”, care permite, dacă este necesar să se schimbe cheia de acces, să inițieze procesul de recriptare a datelor din mers. fără a opri lucrul cu partiția. Deoarece procesul de decriptare și criptare cu o cheie nouă durează mult timp, „recriptarea online” face posibilă să nu întrerupeți lucrul cu partiția și să efectuați re-criptarea în fundal, re-criptând treptat datele de la o cheie la alta . De asemenea, este posibil să selectați o cheie țintă goală, care vă permite să convertiți secțiunea într-o formă decriptată.

Un atacator poate face modificări la metadatele LUKS2 care simulează o întrerupere a operațiunii de decriptare ca urmare a unui eșec și poate realiza decriptarea unei părți a partiției după activarea și utilizarea unității modificate de către proprietar. În acest caz, utilizatorul care a conectat unitatea modificată și a deblocat-o cu parola corectă nu primește niciun avertisment cu privire la procesul de restabilire a operațiunii de recriptare întreruptă și poate afla numai despre progresul acestei operațiuni folosind „luks Dump” comanda. Cantitatea de date pe care un atacator o poate decripta depinde de dimensiunea antetului LUKS2, dar la dimensiunea implicită (16 MiB) poate depăși 3 GB.

Problema este cauzată de faptul că, deși re-criptarea necesită calcularea și verificarea hash-urilor cheilor noi și vechi, nu este necesar un hash pentru a începe decriptarea dacă noua stare implică absența unei chei de text simplu pentru criptare. În plus, metadatele LUKS2, care specifică algoritmul de criptare, nu sunt protejate împotriva modificărilor dacă intră în mâinile unui atacator. Pentru a bloca vulnerabilitatea, dezvoltatorii au adăugat protecție suplimentară pentru metadate la LUKS2, pentru care acum este verificat un hash suplimentar, calculat pe baza cheilor cunoscute și a conținutului metadatelor, de exemplu. un atacator nu mai poate schimba în mod secret metadatele fără să cunoască parola de decriptare.

Un scenariu tipic de atac necesită ca atacatorul să poată pune mâna pe unitate de mai multe ori. În primul rând, un atacator care nu cunoaște parola de acces face modificări în zona de metadate, declanșând decriptarea unei părți a datelor la următoarea activare a unității. Unitatea este apoi returnată la locul său, iar atacatorul așteaptă până când utilizatorul o conectează introducând o parolă. Când dispozitivul este activat de către utilizator, este pornit un proces de re-criptare în fundal, în timpul căruia o parte a datelor criptate este înlocuită cu date decriptate. În plus, dacă atacatorul reușește să pună din nou mâna pe dispozitiv, unele dintre datele de pe unitate vor fi decriptate.

Problema a fost identificată de întreținătorul proiectului cryptsetup și remediată în actualizările cryptsetup 2.4.3 și 2.3.7. Starea actualizărilor generate pentru a remedia problema în distribuții poate fi urmărită pe aceste pagini: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Vulnerabilitatea apare abia începând cu lansarea cryptsetup 2.2.0, care a introdus suport pentru operația de „recriptare online”. Ca o soluție pentru protecție, lansarea cu opțiunea „--disable-luks2-reencryption” poate fi utilizată.

Sursa: opennet.ru

Adauga un comentariu