Në paketën Cryptsetup, e cila përdoret për enkriptimin e ndarjeve të diskut në Linux, është zbuluar një vulnerabilitet (CVE-2021-4122) që lejon, përmes modifikimit të metadatave, çaktivizimin e enkriptimit në ndarjet në formatin LUKS2 (Linux Unified Key Setup). Për të shfrytëzuar këtë vulnerabilitet, sulmuesi duhet të ketë qasje fizike në mediumin e enkriptuar, pra, kjo metodë ka kuptim kryesisht për sulmin ndaj mediumeve të jashtme të enkriptuara, siç janë disqet Flash, për të cilat sulmuesi ka qasje, por nuk e di fjalëkalimin për dekriptimin e të dhënave.
Sulmi është i aplikueshëm vetëm për formatin LUKS2 dhe është i lidhur me manipulimin e metadatave që janë përgjegjëse për aktivizimin e zgjerimit 'online reencryption', i cili lejon në rastin e nevojës për të ndryshuar çelësin e aksesit, fillimin e procesit të ri-enkriptimit të të dhënave në kohë reale pa ndalur punën me ndarjen. Duke pasur parasysh që procesi i dekriptimit dhe enkriptimit me çelës të ri merr shumë kohë, 'online reencryption' ofron mundësinë që të mos ndërpritet puna me ndarjen dhe të kryhet ri-enkriptimi në sfond, duke përfunduar gradualisht ri-enkriptimin e të dhënave nga një çelës tek tjetri. Gjithashtu, ka mundësinë e zgjedhjes së një çelësi të synuar të zbrazët, që lejon kalimin e ndarjes në një formë të dekriptuar.
Sulmuesi mund të bëjë ndryshime në metadatë LUKS2 që simullojnë një ndërprerje emergjente të operacionit të dekriptimit si rezultat i një dështimi dhe të arrijë të dekriptojë një pjesë të ndarjes pas aktivizimit dhe përdorimit të mediumit të modifikuar nga pronari. Në këtë rast, përdoruesi që lidh mediumin e modifikuar dhe e çlodh atë me një fjalëkalim të saktë, nuk merr asnjë paralajmërim për procesin e rikuperimit të operacionit të ndërprerë të ri-enkriptimit dhe mund të mësojë mbi ecurinë e këtij operacioni vetëm me anë të komandës 'luks Dump'. Vëllimi i të dhënave që sulmuesi mund të dekriptojë varet nga madhësia e titullit LUKS2, por për madhësinë standarde (16 MiB) mund të tejkalojë 3 GB.
Problemi është shkaktuar nga fakti se, megjithëse ri-enkriptimi kërkon llogaritje dhe verifikim të hash-eve të çelësave të rinj dhe të vjetër, për të filluar dekriptimin, hash-i nuk është i nevojshëm nëse gjendja e re nënkupton mungesën e një çelësi për enkriptim (plaintext). Për më tepër, metadata LUKS2, në të cilën përcaktohet algoritmi i enkriptimit, nuk është e mbrojtur nga modifikimi në rast se bie në duar të keqdashësve. Për të bllokuar këtë vulnerabilitet, zhvilluesit kanë shtuar një mbrojtje të re për metadata në LUKS2, për të cilat tani kontrollohet një hash shtesë, e cila llogaritet mbi bazën e çelësave të njohur dhe përmbajtjes së metadata, domethënë, tani sulmuesi nuk mund ta ndryshojë pa u kuptuar metadata pa e ditur fjalëkalimin për dekriptimin.
Skenari tipik i sulmit kërkon që keqdashësi të ketë mundësinë të përfitojë disa herë nga disku. Në fillim, sulmuesi, i cili nuk e di fjalëkalimin e aksesit, bën ndryshime në zonën e meta-datat që inicojnë dekriptimin e një pjese të të dhënave gjatë aktivizimit të diskut në vazhdim. Më pas, disku kthehet në vendin e tij dhe sulmuesi pret derisa përdoruesi ta lidhë atë duke futur fjalëkalimin. Gjatë aktivizimit të pajisjes nga përdoruesi, nis një proces i pasëm ri-enkriptimi, në të cilin një pjesë e të dhënave të koduara zëvendësohet me të dhëna të dekriptuara. Në vazhdim, nëse sulmuesi arrin ta ketë në duar pajisjen për herë të dytë, një pjesë e të dhënave në disk do të jetë në format të dekriptuar.
Problemi është identifikuar nga maintainer-i i projektit cryptsetup dhe është eliminuar në përditësimet cryptsetup 2.4.3 dhe 2.3.7. Gjendja e formimit të përditësimeve për rregullimin e problemit në shpërndarjet mund të ndiqet në këto faqe: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Vulnerabiliteti manifestohët vetëm duke filluar nga lëshimi cryptsetup 2.2.0, në të cilin u shfaq mbështetje për operacionin "online reencryption". Si një rrugë anashkalimi për mbrojtje mund të përdoret nisja me opsionin "—disable-luks2-reencryption".
Burimi: opennet.ru
