Ranjivost u cryptsetup-u koja vam omogućava da onemogućite šifriranje na LUKS2 particijama

Identifikovana je ranjivost (CVE-2021-4122) u paketu Cryptsetup, koji se koristi za šifrovanje particija diska u Linuxu, što omogućava da se onemogući šifrovanje na particijama u LUKS2 (Linux Unified Key Setup) formatu modifikovanjem metapodataka. Da bi iskoristio ranjivost, napadač mora imati fizički pristup šifrovanom mediju, tj. Metoda ima smisla uglavnom za napad na šifrovane eksterne uređaje za skladištenje, kao što su fleš diskovi, kojima napadač ima pristup, ali ne zna lozinku za dešifrovanje podataka.

Napad je primenljiv samo za format LUKS2 i povezan je sa manipulacijom metapodacima odgovornim za aktiviranje ekstenzije „online reencryption“, koja omogućava, ukoliko je potrebno promeniti pristupni ključ, da pokrene proces reenkripcije podataka u hodu. bez prekida rada sa particijom. Budući da proces dešifriranja i šifriranja novim ključem traje dosta vremena, "online reencryption" omogućava da se ne prekida rad s particijom i izvrši ponovno šifriranje u pozadini, postupno ponovno šifriranje podataka s jednog ključa na drugi . Također je moguće odabrati prazan ciljni ključ, koji vam omogućava da pretvorite odjeljak u dešifrirani oblik.

Napadač može napraviti promjene u LUKS2 metapodacima koji simuliraju prekid operacije dešifriranja kao rezultat neuspjeha i postići dešifriranje dijela particije nakon aktiviranja i korištenja modificiranog diska od strane vlasnika. U tom slučaju, korisnik koji je spojio modificirani disk i otključao ga ispravnom lozinkom ne dobija nikakvo upozorenje o procesu vraćanja prekinute operacije ponovnog šifriranja i može saznati samo o toku ove operacije koristeći “luks Dump” komanda. Količina podataka koju napadač može dešifrirati ovisi o veličini LUKS2 zaglavlja, ali pri zadanoj veličini (16 MiB) može premašiti 3 GB.

Problem je uzrokovan činjenicom da iako ponovno šifriranje zahtijeva izračunavanje i provjeru hešova novog i starog ključa, heš nije potreban za početak dešifriranja ako novo stanje implicira odsustvo ključa otvorenog teksta za šifriranje. Osim toga, LUKS2 metapodaci, koji specificiraju algoritam šifriranja, nisu zaštićeni od modifikacije ako padnu u ruke napadača. Kako bi blokirali ranjivost, programeri su dodali dodatnu zaštitu za metapodatke u LUKS2, za koji se sada provjerava dodatni hash, izračunat na osnovu poznatih ključeva i sadržaja metapodataka, tj. napadač više ne može potajno mijenjati metapodatke bez poznavanja lozinke za dešifriranje.

Tipičan scenario napada zahteva da napadač bude u mogućnosti da se više puta dočepa diska. Prvo, napadač koji ne zna pristupnu lozinku vrši promjene u području metapodataka, pokrećući dešifriranje dijela podataka sljedeći put kada se disk aktivira. Disk se zatim vraća na svoje mjesto i napadač čeka dok ga korisnik ne poveže unosom lozinke. Kada korisnik aktivira uređaj, pokreće se proces pozadinskog ponovnog šifriranja, tokom kojeg se dio šifriranih podataka zamjenjuje dešifriranim podacima. Dalje, ako se napadač ponovo dočepa uređaja, neki od podataka na disku će biti u dešifrovanom obliku.

Problem je identificirao održavatelj projekta cryptsetup i popravio ga u ažuriranjima cryptsetup 2.4.3 i 2.3.7. Status ažuriranja koja se generiraju kako bi se riješio problem u distribucijama može se pratiti na ovim stranicama: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Ranjivost se pojavljuje tek nakon izdavanja cryptsetup 2.2.0, koji je uveo podršku za operaciju “online reencryption”. Kao zaobilazno rješenje za zaštitu, može se koristiti pokretanje s opcijom “--disable-luks2-reencryption”.

izvor: opennet.ru

Dodajte komentar