Kriptografijos pažeidžiamumas, leidžiantis išjungti šifravimą LUKS2 skaidiniuose

Pažeidžiamumas (CVE-2021-4122) buvo nustatytas „Cryptsetup“ pakete, kuris naudojamas disko skaidiniams užšifruoti sistemoje „Linux“, todėl modifikuojant metaduomenis galima išjungti šifravimą skaidiniuose LUKS2 („Linux Unified Key Setup“) formatu. Norėdamas išnaudoti pažeidžiamumą, užpuolikas turi turėti fizinę prieigą prie šifruotos laikmenos, t.y. Šis metodas yra prasmingas daugiausia atakuojant užšifruotus išorinius saugojimo įrenginius, pvz., „Flash“ diskus, prie kurių užpuolikas turi prieigą, bet nežino slaptažodžio duomenims iššifruoti.

Ataka taikoma tik LUKS2 formatui ir yra susijusi su metaduomenų manipuliavimu, atsakingu už „internetinio pakartotinio šifravimo“ plėtinio aktyvavimą, kuris leidžia, jei reikia pakeisti prieigos raktą, pradėti duomenų pakartotinio šifravimo procesą. nenutraukiant darbo su pertvara. Kadangi iššifravimo ir šifravimo nauju raktu procesas užtrunka daug laiko, internetinis pakartotinis šifravimas leidžia nenutraukti darbo su skaidiniu ir atlikti pakartotinį šifravimą fone, palaipsniui peršifruojant duomenis iš vieno rakto į kitą. . Taip pat galima pasirinkti tuščią tikslinį raktą, kuris leidžia konvertuoti skyrių į iššifruotą formą.

Užpuolikas gali atlikti LUKS2 metaduomenų pakeitimus, kurie imituoja iššifravimo operacijos nutraukimą dėl gedimo ir gali iššifruoti dalį skaidinio po to, kai savininkas aktyvuoja ir naudoja modifikuotą diską. Tokiu atveju vartotojas, prijungęs modifikuotą diską ir atrakinęs jį teisingu slaptažodžiu, negauna įspėjimo apie pertrauktos pakartotinio šifravimo operacijos atkūrimo procesą ir gali sužinoti apie šios operacijos eigą tik naudodamasis „luks Dump“. komandą. Duomenų kiekis, kurį užpuolikas gali iššifruoti, priklauso nuo LUKS2 antraštės dydžio, tačiau esant numatytam dydžiui (16 MiB) jis gali viršyti 3 GB.

Problema kyla dėl to, kad nors norint pakartotinai šifruoti reikia apskaičiuoti ir patikrinti naujų ir senų raktų maišą, maišos nereikia norint pradėti iššifravimą, jei naujoji būsena reiškia, kad šifravimui nėra paprasto teksto rakto. Be to, LUKS2 metaduomenys, nurodantys šifravimo algoritmą, nėra apsaugoti nuo modifikacijų, jei patektų į užpuoliko rankas. Norėdami užblokuoti pažeidžiamumą, kūrėjai prie LUKS2 pridėjo papildomą metaduomenų apsaugą, kuriai dabar tikrinama papildoma maiša, skaičiuojama pagal žinomus raktus ir metaduomenų turinį, t.y. užpuolikas nebegali slapta keisti metaduomenų, nežinodamas iššifravimo slaptažodžio.

Įprastas atakos scenarijus reikalauja, kad užpuolikas galėtų kelis kartus patekti į diską. Pirma, užpuolikas, nežinantis prieigos slaptažodžio, pakeičia metaduomenų sritį, suaktyvindamas dalies duomenų iššifravimą, kai kitą kartą suaktyvinamas diskas. Tada diskas grąžinamas į savo vietą, o užpuolikas laukia, kol vartotojas jį prijungs įvesdamas slaptažodį. Vartotojui suaktyvinus įrenginį, pradedamas foninis pakartotinio šifravimo procesas, kurio metu dalis užšifruotų duomenų pakeičiama iššifruotais duomenimis. Be to, jei užpuolikui vėl pavyks patekti į įrenginį, kai kurie diske esantys duomenys bus iššifruoti.

Problemą nustatė cryptsetup projekto prižiūrėtojas ir ištaisė cryptsetup 2.4.3 ir 2.3.7 atnaujinimus. Atnaujinimų, generuojamų siekiant išspręsti platinimo problemą, būseną galima stebėti šiuose puslapiuose: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Pažeidžiamumas atsirado tik po to, kai buvo išleista cryptsetup 2.2.0, kuri pristatė „internetinio pakartotinio šifravimo“ operacijos palaikymą. Kaip apsaugos priemonę galima naudoti paleidimą naudojant parinktį „--disable-luks2-reencryption“.

Šaltinis: opennet.ru

Добавить комментарий