Наскоро новината съобщи това е установена уязвимост (вече изброени под CVE-2021-4122) в пакета Cryptsetup, който се използва за криптиране на дискови дялове в Linux.
Споменава се, че за да използва уязвимостта, нападателят трябва да има физически достъп към криптирания носител, т.е. методът има смисъл главно за атака на криптирани външни устройства, като например флаш памети, до които нападателят има достъп, но не знае паролата за декриптиране на данните.
Атаката той е приложим само за формат LUKS2 и е свързан с манипулиране на метаданни отговорен за активиране на разширението «онлайн повторно криптиране», което позволява, ако е необходимо, да промените ключа за достъп, да стартирате процеса на прекриптиране на данни в движение, без да спирате работата с дяла.
Тъй като процесът на декриптиране и криптиране с нов ключ отнема много време, "онлайн повторното криптиране" ви позволява да не прекъсвате работата с дяла и да извършвате повторно криптиране във фонов режим, като постепенно прехвърляте данни от един ключ на друг. По-специално, възможно е да изберете празен целеви ключ, който ви позволява да преведете секцията в некриптирана форма.
Нападателят може да направи промени в метаданните LUKS2, които симулират прекратяване на операцията по декриптиране в резултат на неуспех и да постигне декриптиране на част от дяла след последващо активиране и използване на модифицираното устройство от собственика. В този случай потребителят, който е свързал модифицираното устройство и го е отключил с правилната парола, не получава никакво предупреждение за възстановяване на прекъсната операция за повторно криптиране и може да разбере хода на тази операция само с командата „luks Dump“ . Количеството данни, което атакуващият може да декриптира, зависи от размера на заглавката LUKS2, но с размер по подразбиране (16 MiB) може да надхвърли 3 GB.
Проблемът произтича от факта, че въпреки че операцията за повторно криптиране изисква изчисление и проверка на хешовете на новия и стария ключ, хешът не е необходим за възстановяване на прекъснатия процес на декриптиране, ако новото състояние предполага липса на ключ за криптиране (обикновен текст).
Освен това, Метаданните LUKS2, указващи алгоритъма за криптиране, не са защитени от модификация ако попаднат в ръцете на нападател. За да блокират уязвимостта, разработчиците добавиха допълнителна защита на метаданните към LUKS2, за която вече се проверява допълнителен хеш, изчислен въз основа на известни ключове и съдържание на метаданни, т.е. нападателят вече няма да може да променя тайно метаданните, без да знае паролата за декриптиране.
Типичен сценарий на атака изисква нападателят да има възможност да си сложат ръцете на диска няколко пъти. Първо, нападателят, който не знае паролата за достъп, прави промени в областта на метаданните, която инициира декриптиране на част от данните при следващото активиране на устройството.
След това устройството се връща на мястото си и нападателят изчаква, докато потребителят го свърже, като въведе парола. По време на активиране на устройството от потребителя се стартира процес на повторно криптиране във фонов режим, по време на който част от криптираните данни се заменят с декриптирани данни. Освен това, ако нападателят успее да се добере до устройството отново, част от данните на устройството ще бъдат декриптирани.
Проблемът беше идентифициран от поддържащия проекта cryptsetup и отстранен в актуализациите на cryptsetup 2.4.3 и 2.3.7.
Състоянието на генериране на актуализации с решение на проблема в дистрибуциите може да се проследи на тези страници: RHEL, SUSE, Fedora, Ubuntu, Арка. Уязвимостта се появява едва след пускането на cryptsetup 2.2.0, която въведе поддръжка за операцията "онлайн рекриптиране". Започвайки с опцията „–disable-luks2-reencryption“ може да се използва като решение за сигурност.
Накрая ако се интересувате да научите повече за това за новините, можете да проверите подробностите в следваща връзка.