The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Обход полнодискового шифрования в Linux через непрерывное нажатие клавиши Enter, opennews (??), 02-Сен-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


202. "Обход использующего TPM шифрования диска в Linux через непре..."  +1 +/
Сообщение от Аноним (202), 03-Сен-23, 04:28 
Дать рута не спрашивая пароля рута? SystemDегиниально!
Ответить | Правка | Наверх | Cообщить модератору

237. "Обход использующего TPM шифрования диска в Linux через непре..."  +/
Сообщение от Аноним (241), 03-Сен-23, 11:37 
Ты вообще понимаешь о чём говоришь, гений? Как устроен процесс загрузки ядра? Что такое процесс инициализации?

// https://github.com/torvalds/linux/blob/master/init/main.c :
static int __ref kernel_init(void *unused)
{
//...

    if (!try_to_run_init_process("/sbin/init") ||
    !try_to_run_init_process("/etc/init") ||
    !try_to_run_init_process("/bin/init") ||
    !try_to_run_init_process("/bin/sh")) // sic!
    return 0;
//...
}

$ stat -c%N /sbin/init
'/sbin/init' -> '../lib/systemd/systemd'

Дальше нужно объяснять? Или ты сам видишь, что без системды у тебя рут-шелл вместо инита?

Повторяю для самых одарённых похов, нахов, няшей и прочих анонимных опеннет-экспертов: доступ к железке (хотя бы удаленный доступ к вводу на этапе загрузки) - это уже больше, чем "рут". Спасёт только дисковое шифрование данных и хранение пароля (а ещё лучше - заголовков LUKS и всего загрузчика, монтируемого на чтение, удаленно, только на момент загрузки) в надежном месте. TPM - надежным местом для паролей не является by design. Глупо полагаться, что в процессе загрузки ядра ничего не случится. Когда железки сообщают кривые ACPI/APM из кривых "биосов", а ещё до монтирования разделов (до cryptsetup) загружаются ранние модули ядра (привет, Невидии!). Слишком много переменных.

Ответить | Правка | Наверх | Cообщить модератору

275. "Обход использующего TPM шифрования диска в Linux через непре..."  +/
Сообщение от Аноним (199), 04-Сен-23, 01:05 
> !try_to_run_init_process("/bin/sh")

А теперь внимательнее почитай эту функцию. Там выше запускается /init из initramfs, который расшифровывает диск. Вот он должен быть максимально тупым, и никаких шеллов не запускать без предварительной блокировки (и проверки её успешности) ключа.

Если хочешь делать систему безопасной, снижай число переменных (уменьшай trusted computing base), а те, что остались, измеряй в PCR. Прежде, чем использовать TPM, стоит почитать рекомендации TCG.

Trusted computing base можно сделать даже меньше ядра Linux, если использовать TXT и late launch.

> доступ к железке (хотя бы удаленный доступ к вводу на этапе загрузки) - это уже больше, чем "рут"

Нет, если правильно настроены механизмы integrity. В Linux для этого есть kernel_lockdown(7) и IMA.

> TPM - надежным местом для паролей не является by design

By design TPM позволяет изолировать ключи и пароли от небезопасного состояния Host OS. То есть это альтернатива не сохранению ключа на флешку, пароля в мозг или носимый с собой криптотокен, а альтернатива записи его в конфиг на диске, находящимся под постоянным контролем Host OS.

> Глупо полагаться, что в процессе загрузки ядра ничего не случится.

Поэтому есть DRTM, SINIT ACM и TXT, позволяющие отменить всё то потенциально нехорошее, что случилось в процессе загрузки прошивки/загрузчика/ядра. Пристукнет даже ту малварь, которая в SMI handler смогла влезть.

Ответить | Правка | Наверх | Cообщить модератору

280. "Обход использующего TPM шифрования диска в Linux через непре..."  +/
Сообщение от Аноним (179), 04-Сен-23, 11:38 
>> !try_to_run_init_process("/bin/sh")
> А теперь внимательнее почитай эту функцию. Там выше запускается /init из initramfs,
> который расшифровывает диск. Вот он должен быть максимально тупым, и никаких
> шеллов не запускать без предварительной блокировки (и проверки её успешности) ключа.

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

А теперь, внимание, что же там запускается из initramfs:
# lsinitrd /boot/EFI/linux.efi |grep -e bin/init$
$ usr/bin/init -> ../lib/systemd/systemd

Вопрос, разумеется, не в том, кто-какую систему инициализации соберёт себе в инит. Можно вообще - никакую. (А без шелла уже вряд ли обойтись). Вопрос в ядерном дизайне процесса. Он таков, что не предусматривает надежности (и не должен). Жаль, M$ об этом "никто не рассказал", когда она проектировала свой бэкдор.

> TPM

Ключ от замка под ковриком рядом с дверью. By design. Это лишь вопрос времени, когда кто-то догадается под него заглянуть.

> DRTM, SINIT ACM и TXT

Даже если на коврик положить гирьку.

Ответить | Правка | Наверх | Cообщить модератору

294. "Обход использующего TPM шифрования диска в Linux через непре..."  +/
Сообщение от Аноним (199), 04-Сен-23, 19:26 
> ты продолжишь учить меня внимательности?

Да. Это "ленивое выражение" находится внутри функции kernel_init, которая вызывает run_init_process(ramdisk_execute_command) до возможного запуска /bin/sh.

> А без шелла уже вряд ли обойтись

В initramfs - запросто. У меня там лежит статический бинарь на Go, который находит, готовит и монтирует корень.

> Вопрос в ядерном дизайне процесса.

В ядре в этом плане всё хорошо. Измерять себя и критические бинари перед запуском оно умеет.

> Ключ от замка под ковриком рядом с дверью.

Нет, это ключ от замка в специальном ящике, для которого нужен свой ключ. И в отличии от твоего кармана, этот ящик специально проектировали для того, чтобы безопасно держать в нём свои ключи.

Повторю свой вопрос: Что именно в спеке TCG TPM 2.0 вызывает проблемы? Где там бэкдор от M$?

Ответить | Правка | Наверх | Cообщить модератору

312. "Обход использующего TPM шифрования диска в Linux через непре..."  +/
Сообщение от Аноним (312), 05-Сен-23, 14:16 
> вызывает run_init_process(ramdisk_execute_command)

Которая тоже строка, содержащая путь ("/init", если не установлен другой), по которому окажется симлинк, ссылающийся куда-угодно.

> запросто. У меня там лежит статический бинарь на Go

Фигасе, запросто. Программу нужно написать и отладить. Хорошо, если смонтировать корень без нормальной обработки ошибок будет достаточно, а если нужен запуск служб, аутентификация пользователей? Переизобретать полноценный инит?

> В ядре в этом плане всё хорошо.

Строковые пути с симлинками - это требует большого внимания, а не слепого доверия. Особенно, со стороны "безопасных" модулей с ключами от квартир, где деньги лежат.

> И в отличии от твоего кармана, этот ящик специально проектировали для того, чтобы безопасно держать в нём свои ключи.

На моем кармане тоже титановая молния. Но, кроме того, мой карман всегда при мне, а не рядом с дверью. И ключ из него достается только в моем присутствии.

> Повторю свой вопрос: Что именно в спеке TCG TPM 2.0 вызывает проблемы? Где там бэкдор от M$?

Повторю свой ответ: хранить ключи, постоянно, рядом с замком. Хотя, если бы я сомневался в злом умысле M$, назвал бы это не бэкдором, а идиотизмом. Но поводов сомневаться нет.

Ответить | Правка | Наверх | Cообщить модератору

313. "Обход использующего TPM шифрования диска в Linux через непре..."  –1 +/
Сообщение от Аноним (312), 05-Сен-23, 15:01 
А ты вообще не замечаешь, как ловко у M$ всё выходит?
В рекламных буклетах M$ типа стоит на страже ваших данных. А на деле они просто переложили отвественность на других.
Ключи свистнули? Так это не мы! Это Linux/cryptsetup/dracut/systemd кривой! Вы же сами их подписали! Все дружно ругаем в Интернетах кривой Линукс. Прям бесплатная антипиар-кампания, раньше им за такое платить приходилось.. Но, подождите, инит-генераторов и инит-систем в природе миллион. И ещё столько же умолчальных настроек в разных дистрибутивах. И не только Линуксов! А админы, всё это настраивающие, что удивительно, люди, а не илоны-маски. Зато с M$ взятки гладки. Сам настроил, сам виноват! Ага, а когда ключи в контейнере расшифруют, так это тоже не МС будет виновата, а алгоритм и математики, которые его неправильно придумали. А за что тогда вообще M$-то отвечает? Какую-такую она нам безопасность обещает? А ни за что. Но ключи шифрования вы её, всё равно, доверьте, жалко что ли? Вам будто спокойнее, а бизнесменам - грант.
Ответить | Правка | К родителю #294 | Наверх | Cообщить модератору

314. "Обход использующего TPM шифрования диска в Linux через непре..."  +/
Сообщение от Аноним (312), 05-Сен-23, 15:12 
И в догонку.
Почему логика про "кривой Линукс" и "сам настроил, сам виноват" не работает. Потому что в природе не существует устройств, которые бы не взломали на этапе загрузки-инициализации, имея к ним железный доступ. Причем, даже не прибегая к пайке/монтированию. Если Гугель с миллионами долларов не смог, значит, и от Васи с тыщей рублей в кармане требовать большего глупо.
Ответить | Правка | К родителю #294 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру