Ranjivost u cryptsetup-u koja vam omogućuje da onemogućite enkripciju u LUKS2 particijama

Identificirana je ranjivost (CVE-2021-4122) u paketu Cryptsetup, koji se koristi za šifriranje particija diska u Linuxu, koji omogućuje onemogućavanje enkripcije na particijama u formatu LUKS2 (Linux Unified Key Setup) modificiranjem metapodataka. Kako bi iskoristio ranjivost, napadač mora imati fizički pristup kriptiranom mediju, tj. Metoda ima smisla uglavnom za napad na šifrirane vanjske uređaje za pohranu, kao što su Flash diskovi, kojima napadač ima pristup, ali ne zna lozinku za dekriptiranje podataka.

Napad je primjenjiv samo za LUKS2 format i povezan je s manipulacijom metapodataka odgovornih za aktivaciju ekstenzije “online reencryption” koja omogućuje, ako je potrebno promijeniti pristupni ključ, pokretanje procesa reenkripcije podataka u hodu. bez prekida rada s particijom. Budući da proces dešifriranja i enkripcije s novim ključem traje dosta vremena, "online reenkripcija" omogućuje da se ne prekida rad s particijom i izvrši re-enkripciju u pozadini, postupno ponovno šifrirajući podatke s jednog ključa na drugi . Također je moguće odabrati prazan ciljni ključ, koji vam omogućuje pretvaranje odjeljka u dešifrirani oblik.

Napadač može izvršiti izmjene u metapodacima LUKS2 koje simuliraju prekid operacije dešifriranja kao rezultat kvara i postići dešifriranje dijela particije nakon aktivacije i korištenja modificiranog pogona od strane vlasnika. U tom slučaju, korisnik koji je spojio modificirani pogon i otključao ga s ispravnom lozinkom ne prima nikakvo upozorenje o procesu vraćanja prekinute operacije reenkripcije i može samo saznati o tijeku ove operacije pomoću "luks Dump" naredba. Količina podataka koju napadač može dešifrirati ovisi o veličini LUKS2 zaglavlja, ali na zadanoj veličini (16 MiB) može premašiti 3 GB.

Problem je uzrokovan činjenicom da iako ponovna enkripcija zahtijeva izračun i provjeru raspršivača novog i starog ključa, raspršivanje nije potrebno za početak dešifriranja ako novo stanje podrazumijeva nepostojanje ključa otvorenog teksta za šifriranje. Osim toga, metapodaci LUKS2, koji određuju algoritam šifriranja, nisu zaštićeni od modifikacije ako dospiju u ruke napadaču. Kako bi blokirali ranjivost, programeri su dodali dodatnu zaštitu za metapodatke u LUKS2, za koje se sada provjerava dodatni hash, izračunat na temelju poznatih ključeva i sadržaja metapodataka, tj. napadač više ne može potajno promijeniti metapodatke bez poznavanja lozinke za dešifriranje.

Tipičan scenarij napada zahtijeva da se napadač više puta dočepa pogona. Prvo, napadač koji ne zna lozinku za pristup mijenja područje metapodataka, aktivirajući dešifriranje dijela podataka sljedeći put kada se pogon aktivira. Disk se zatim vraća na svoje mjesto, a napadač čeka da ga korisnik spoji unosom lozinke. Kada korisnik aktivira uređaj, pokreće se proces pozadinske ponovne enkripcije tijekom kojeg se dio šifriranih podataka zamjenjuje dekriptiranim podacima. Nadalje, ako se napadač ponovno uspije dočepati uređaja, neki će podaci na disku biti u dešifriranom obliku.

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

Izvor: opennet.ru

Dodajte komentar