LINUXTALKS.CO

Обход использующего TPM шифрования диска в Linux через непрерывное нажатие клавиши Enter

 

L


0

0

Майкл Финчем (Michael Fincham) из компании Pulse Security выявил уязвимость в реализации механизма разблокировки полнодискового шифрования, позволяющую при наличии физического доступа к компьютеру выполнить свои команды с правами root на раннем этапе загрузки, вручную снять блокировку с шифрованного диска и получить полный доступ к информации, хранимой на дисках. Уязвимость затрагивает Linux-системы в которых используется формат шифрования LUKS (Linux Unified Key Setup), механизмы защиты ключей на базе TPM (Trusted Platform Module) и компоненты Clevis, dracut и systemd для организации автоматической разблокировки во время загрузки.

Метод атаки напоминает выявленную в 2016 году уязвимость в пакете Cryptsetup, позволявшую получить доступ с правами root в командную оболочку начального загрузочного окружения при удерживании клавиши Enter в ответ на запрос ввода пароля для разблокировки зашифрованного раздела. Новый вариант атаки был выявлен после проверки как отреагирует система, если генерировать нажатия Enter не вручную, а при помощи эмулятора клавиатуры, обеспечивающего минимально возможную задержку между нажатиями. Для проведения эксперимента был собран USB-брелок на базе микроконтроллера Atmel ATMEGA32U4, непрерывно симулирующий нажатие Enter c задержкой на уровне 15 миллисекунд, что примерно в 10 раз больше, чем при удерживании клавиши на обычной клавиатуре.

Успешная атака продемонстрирована в удовлетворяющей вышеотмеченным требованиям конфигурации на базе Ubuntu 20.04, которая применялась одним из клиентов Pulse Security. Подобные конфигурации на базе фреймворка Clevis и хранения информации для расшифровки ключей в TPM обычно применяются, когда необходимо обеспечить шифрование дисков на удалённых серверах, на которых нет возможности после каждой перезагрузки вручную вводить пароль для разблокировки зашифрованных дисков. При этом помимо автоматизированной разблокировки в подобных системах остаётся и возможность ручного ввода пароля разблокировки зашифрованного раздела, которая оставлена на случай сбоя автоматизированного процесса разблокировки.

Атака сводится к тому, что злоумышленник может подключить устройство для симуляции непрерывного нажатия Enter, откатить процесс загрузки на ручной ввод пароля разблокировки и успеть исчерпать максимальный лимит на число попыток ввода пароля в небольшой промежуток времени до окончания выполнения обработчика автоматической разблокировки (автоматическая разблокировка требует времени и симулируя очень быстрые нажатия Enter можно успеть завершить выполнение процесса ручной разблокировки раньше, чем отработает параллельно запущенный процесс автоматической разблокировки). Systemd, получив управление после неудачных попыток ручной разблокировки, не сможет получить доступ к файловым системам на зашифрованных дисках, предложит перейти в режим восстановления после сбоя и предоставит доступ к командной оболочке с правами root в окружении загрузочного ram-диска.

Далее, так как информация для расшифровки ключей хранится в TPM, атакующий, сохраняя за собой доступ с правами root, может инициировать штатный процесс автоматической разблокировки зашифрованных дисков при помощи инструментария Clevis и примонтировать корневой раздел из зашифрованного диска.

В качестве возможной меры для защиты от атаки рекомендуется выставить при загрузке параметры ядра rd.shell=0 и rd.emergency=reboot, при которых в случае сбоя на раннем этапе загрузки будет выполнена автоматическая перезагрузка, а не переход в интерактивный сеанс.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★☆☆☆
Ответ на: комментарий от Aleksandra

можно напомнить, когда этот прием впервые применялся? вообще я пытаюсь понять, за счет чего здесь идет обход защиты. видимо, дело все-таки в том, что TPM позволяет хранить ключи в читабельном виде. то есть, это атака на TPM по сути.

crypt    
★★☆☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome

Обход полнодискового шифрования в Linux через непрерывное нажатие клавиши Enter

Сначала читаю - ну думаю, хуйня какая-то, не может такого быть! Ведь если диск зашифрован парольной фразой, и вместо файлов на диске каша, откуда при холодном старте вообще взяться ключу разблокировки, не важно какие там уязвимости?..

Потом дочитал

Успешная атака продемонстрирована в удовлетворяющей вышеотмеченным требованиям конфигурации на базе Ubuntu 20.04, которая применялась одним из клиентов Pulse Security. Подобные конфигурации на базе фреймворка Clevis и хранения информации для расшифровки ключей в TPM обычно применяются, когда необходимо обеспечить шифрование дисков на удалённых серверах, на которых нет возможности после каждой перезагрузки вручную вводить пароль для разблокировки зашифрованных дисков.

Ну то есть это не «обход шифрования», а уязвимость в какой-то ссзб-надстройке для «облачков». Трушных параноиков и их зашифрованного лаптопа эта так называемая уязвимость никак коснуться не должна..

ThePlayerZero    
★★
Android / Chrome

Systemd, получив управление

Корень всех проблем.

torvn77    
★★
Linux / Chrome

Для проведения эксперимента был собран USB-брелок на базе микроконтроллера Atmel ATMEGA32U4, непрерывно симулирующий нажатие Enter c задержкой на уровне 15 миллисекунд, что примерно в 10 раз больше, чем при удерживании клавиши на обычной клавиатуре

Получается, проще наколхозить пердуину, чем пропатчить qemu, например?

TheAnonymous    
★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от TheAnonymous

я же беру с опеннета, это уже поменяли

crypt    
★★☆☆☆
FreeBSD / Chrome

олнодискового шифрования, позволяющую при наличии физического доступа к компьютеру выполнить

Ютубер-мануалщики и школьники теперь в шоке! Ведь все думали, что зашифровав диск, они станут неуязвимыми.

odalist    
★★★★★★★
Linux / Firefox
Ответ на: комментарий от Aleksandra

Классический прием

Именно так! Я так своему соседу разблокировал ПК. Бедолага свой пароль забыл :)

odalist    
★★★★★★★
Linux / Firefox
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90