Internet kill-switch для vpn

Травыч

МируМир☮️
Регистрация
01.06.2025
Сообщения
9 151
Реакции
20 457
Баллы
113

Ранее я написал материал Бэкдор Intel ME и защита с помощью Coreboot. Там я описал о том, как защитить себя от потенциальной уязвимости Intel ME при помощи использования coreboot и me_cleaner.

Помимо данного бэкдора есть ещё 1 потенциальная угроза - атака Evil Maid или атака "злая горничная", эта атака при которой вы оставляете свое устройство, будь то ноутбук или ПК, без присмотра и кто-либо посторонний со злыми намерениями внедряет вредоносный код в загрузочную область вашей ОС имея временный физический доступ к вашему устройству.
Даже если используется шифрование диска, то раздел /boot остается незашифрованным и любой может получить к нему доступ, если имеет физический доступ к устройству. В данном разделе нет никаких чувствительных данных, но при внедрении вредоносного кода в данный раздел можно заразить и остальную часть системы. Решить эту проблему можно 2мя способами:
1. Использовать Coreboot с пэйлоадом GRUB, чтобы была возможность так же зашифровать раздел /boot;
2. Использовать Heads.
В данном материале я остановлюсь на 2м варианте и расскажу о том, что из себя представляет Heads.

Heads - решение на базе coreboot, которое представляет из себя мини-дистрибутив Linux с необходимыми утилитами.
Далее я расскажу о методах, которые применяются в Heads для защиты от некоторых видов атак.

TPM используется в качестве аппаратного хранилища ключей для расшифровки диска.
Кроме того, гипервизор (поскольку я рассматриваю Heads только в совокупности с QubesOS), ядро и образы initrd подписываются ключами, созданными пользователем. Так же, в Heads используется me_cleaner для деактивации Intel ME.
Вот список различных ключей, которые надо будет задать в Heads при первоначальной настройке:

1. Ключ восстановления диска (Disk Recovery Key passphrase)
Этот ключ необходим для:
2. Пароль TPM (TPM Ownership passphrase)
Используется для защиты TPM.

3. PIN от пользовательского ключа GPG (GPG User PIN)
4. PIN от админского ключа GPG
Он понадобится в случае, если GPG User PIN был заблокирован

5. Ключ разблокировки диска TPM (TPM Disk Unlock Key)

Закрытый GPG ключ хранится на внешнем USB-токене, поэтому при использвоании Heads придется его докупить. На данный момент поддерживаются токены: YubiKey 5-series, Nitrokey Pro 2, Nitrokey Storage 2, Nitrokey 3 и Librem Key. Я рекомендую использовать Librem Key.

Теперь покажу процесс настройки Heads после установки:

При 1ом старте выбрать Add a GPG key to the running BIOS, на этом этапе USB-токен должен быть вставлен в ПК:




После перезагрузки должно появиться сообщение о том, что не удается разблокировать TOTP, надо выбрать пункт Generate new HOTP/TOTP secret:




Будет сгенерирован QR-код, который можно отсканировать с помощью приложения для генерации кодов, например Aegis или FreeOTP+ и использовать для подтверждения того, что прошивка не изменена.

Теперь надо выбрать вариант загрузки по-умолчанию:




Ввести пароль шифрования диска и согласиться добавить его в TPM, вопросы про LVM можно пропустить, если LVM не используется:




Будет предложено ввести парольную фразу ключа восстановления диска, новую парольную фразу для разблокировки диска TPM, подтвердить ее и ввести свой GPG User PIN для подписи нового варианта загрузки по умолчанию перед перезагрузкой.

После перезагрузки нужно нажать Default boot для загрузки системы и затем ввести парольную фразу для разблокировки диска TPM:




Heads настроен и готов к работе.

Ниже будет представлен список ноутбуков, на которые можно установить Heads, я укажу не все ноутбуки, а только те, которые являются относительно современными:
Есть реализация Heads от Dasharo для материнских плат MSI z690 и z790, а так же для старых Dell Optiplex.

В списке поддерживаемых устройств есть и более старые модели ноутбуков, например Thinkpad x230, но их я использовать не рекомендую, т.к. железо уже устарело.

Pureboot в ноутбуках Purism Librem это тот же Heads, но с измененным названием.

Wiki проекта - https://osresearch.net/
Github репозиторий проекта - https://github.com/linuxboot/heads
 
Назад
Верх