Ранливост во cryptsetup што ви овозможува да го оневозможите шифрирањето во партициите на LUKS2

Идентификувана е ранливост (CVE-2021-4122) во пакетот Cryptsetup, кој се користи за шифрирање на партиции на дискови во Linux, што овозможува оневозможување на шифрирањето на партициите во формат LUKS2 (Linux Unified Key Setup) со менување на метаподатоците. За да ја искористи ранливоста, напаѓачот мора да има физички пристап до шифрираните медиуми, т.е. Методот има смисла главно за напад на шифрирани надворешни уреди за складирање, како што се флеш-дискови, до кои напаѓачот има пристап, но не ја знае лозинката за дешифрирање на податоците.

Нападот е применлив само за форматот LUKS2 и е поврзан со манипулација со метаподатоци одговорни за активирање на екстензијата „онлајн прешифрирање“, што овозможува, доколку е неопходно да се смени клучот за пристап, да се иницира процес на реенкрипција на податоците во лет. без прекин на работата со партицијата. Бидејќи процесот на дешифрирање и шифрирање со нов клуч трае многу време, „онлајн прешифрирањето“ овозможува да не се прекине работата со партицијата и да се изврши повторно шифрирање во заднина, постепено повторно шифрирање на податоците од еден клуч до друг. . Исто така, можно е да изберете празен целен клуч, кој ви овозможува да го претворите делот во дешифрирана форма.

Напаѓачот може да направи промени во метаподатоците на LUKS2 кои симулираат прекин на операцијата за дешифрирање како резултат на неуспех и да постигне дешифрирање на дел од партицијата по активирањето и користењето на изменетиот диск од сопственикот. Во овој случај, корисникот кој го поврзал изменетиот диск и го отклучил со точната лозинка, не добива никакво предупредување за процесот на враќање на прекинатата операција за рекрипција и може да дознае за напредокот на оваа операција само со помош на „luks Dump“ команда. Количината на податоци што напаѓачот може да ги дешифрира зависи од големината на заглавието LUKS2, но при стандардната големина (16 MiB) може да надмине 3 GB.

Проблемот е предизвикан од фактот дека иако повторното шифрирање бара пресметување и потврдување на хашовите на новите и старите клучеви, не е потребен хаш за да се започне со дешифрирање ако новата состојба подразбира отсуство на клуч на обичен текст за шифрирање. Покрај тоа, метаподатоците LUKS2, кои го специфицираат алгоритмот за шифрирање, не се заштитени од модификација доколку падне во рацете на напаѓачот. За да ја блокираат ранливоста, програмерите додадоа дополнителна заштита за метаподатоците на LUKS2, за што сега се проверува дополнителен хаш, пресметан врз основа на познати клучеви и содржина на метаподатоци, т.е. напаѓачот повеќе не може тајно да ги менува метаподатоците без да ја знае лозинката за дешифрирање.

Типичното сценарио за напад бара напаѓачот да може повеќе пати да го фати уредот. Прво, напаѓачот кој не ја знае лозинката за пристап прави промени во областа на метаподатоци, предизвикувајќи дешифрирање на дел од податоците следниот пат кога уредот ќе се активира. Погонот потоа се враќа на своето место и напаѓачот чека додека корисникот не го поврзе со внесување лозинка. Кога уредот е активиран од корисникот, започнува процес на повторно шифрирање во заднина, при што дел од шифрираните податоци се заменуваат со дешифрирани податоци. Понатаму, ако напаѓачот успее повторно да го фати уредот, некои од податоците на уредот ќе бидат во дешифрирана форма.

Проблемот беше идентификуван од одржувачот на проектот cryptsetup и поправен во ажурирањата на cryptsetup 2.4.3 и 2.3.7. Статусот на ажурирањата што се генерираат за да се реши проблемот во дистрибуциите може да се следи на овие страници: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Ранливоста се појавува само по објавувањето на cryptsetup 2.2.0, кој воведе поддршка за операцијата „онлајн прешифрирање“. Како решение за заштита, може да се користи стартувањето со опцијата „--disable-luks2-reencryption“.

Извор: opennet.ru

Додадете коментар