Kriptēšanas iestatīšanas ievainojamība, kas ļauj atspējot šifrēšanu LUKS2 nodalījumos

Cryptsetup pakotnē, ko izmanto diska nodalījumu šifrēšanai operētājsistēmā Linux, ir konstatēta ievainojamība (CVE-2021-4122), kas ļauj atspējot šifrēšanu LUKS2 (Linux vienotās atslēgas iestatīšanas) formāta nodalījumos, modificējot metadatus. Lai izmantotu ievainojamību, uzbrucējam ir jābūt fiziskai piekļuvei šifrētajam datu nesējam, t.i. Šī metode ir jēga galvenokārt uzbrukumam šifrētām ārējām atmiņas ierīcēm, piemēram, zibatmiņas diskdziņiem, kuriem uzbrucējs var piekļūt, bet nezina paroli datu atšifrēšanai.

Uzbrukums ir piemērojams tikai LUKS2 formātam un ir saistīts ar manipulācijām ar metadatiem, kas ir atbildīgi par paplašinājuma “tiešsaistes atkārtotas šifrēšanas” aktivizēšanu, kas ļauj, ja nepieciešams mainīt piekļuves atslēgu, lidojumā uzsākt datu atkārtotas šifrēšanas procesu. nepārtraucot darbu ar nodalījumu. Tā kā atšifrēšanas un šifrēšanas process ar jaunu atslēgu aizņem daudz laika, “tiešsaistes atkārtota šifrēšana” ļauj nepārtraukt darbu ar nodalījumu un veikt atkārtotu šifrēšanu fonā, pakāpeniski pāršifrējot datus no vienas atslēgas uz otru. . Ir iespējams arī izvēlēties tukšu mērķa atslēgu, kas ļauj pārvērst sadaļu atšifrētā formā.

Uzbrucējs var veikt izmaiņas LUKS2 metadatos, kas imitē atšifrēšanas darbības pārtraukšanu kļūmes rezultātā, un panākt nodalījuma daļas atšifrēšanu pēc tam, kad īpašnieks ir aktivizējis un izmantojis modificēto disku. Šajā gadījumā lietotājs, kurš ir pievienojis modificēto disku un atbloķējis to ar pareizo paroli, nesaņem brīdinājumu par pārtrauktās atkārtotās šifrēšanas darbības atjaunošanas procesu un var uzzināt tikai par šīs darbības gaitu, izmantojot “luks Dump” komandu. Datu apjoms, ko uzbrucējs var atšifrēt, ir atkarīgs no LUKS2 galvenes lieluma, taču pēc noklusējuma lieluma (16 MiB) tas var pārsniegt 3 GB.

Problēmu izraisa fakts, ka, lai gan atkārtotai šifrēšanai ir jāaprēķina un jāpārbauda jauno un veco atslēgu jaucējumi, jaukšana nav nepieciešama, lai sāktu atšifrēšanu, ja jaunais stāvoklis nozīmē, ka šifrēšanai nav vienkārša teksta atslēgas. Turklāt LUKS2 metadati, kas nosaka šifrēšanas algoritmu, nav aizsargāti pret modifikācijām, ja tie nonāk uzbrucēja rokās. Lai bloķētu ievainojamību, izstrādātāji LUKS2 pievienoja papildu aizsardzību metadatiem, kuriem tagad tiek pārbaudīts papildu hash, kas aprēķināts, pamatojoties uz zināmajām atslēgām un metadatu saturu, t.i. uzbrucējs vairs nevar slepeni mainīt metadatus, nezinot atšifrēšanas paroli.

Tipisks uzbrukuma scenārijs prasa, lai uzbrucējs varētu vairākas reizes pieķerties diskam. Pirmkārt, uzbrucējs, kurš nezina piekļuves paroli, veic izmaiņas metadatu apgabalā, izraisot daļas datu atšifrēšanu nākamajā diska aktivizēšanas reizē. Pēc tam disks tiek atgriezts savā vietā, un uzbrucējs gaida, līdz lietotājs to savienos, ievadot paroli. Kad lietotājs aktivizē ierīci, tiek uzsākts fona atkārtotas šifrēšanas process, kura laikā daļa šifrēto datu tiek aizstāta ar atšifrētiem datiem. Turklāt, ja uzbrucējam atkal izdosies dabūt ierīci rokās, daži diskā esošie dati tiks atšifrēti.

Problēmu identificēja cryptsetup projekta uzturētājs, un tā tika novērsta cryptsetup 2.4.3 un 2.3.7 atjauninājumos. To atjauninājumu statusu, kas tiek ģenerēti, lai novērstu problēmu izplatījumos, var izsekot šādās lapās: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Ievainojamība parādās tikai kopš cryptsetup 2.2.0 izlaišanas, kas ieviesa atbalstu “tiešsaistes atkārtotas šifrēšanas” darbībai. Kā aizsardzības risinājumu var izmantot palaišanu, izmantojot opciju “--disable-luks2-reencryption”.

Avots: opennet.ru

Pievieno komentāru