Pull to refresh

Доверенная загрузка Шрёдингера. Intel Boot Guard

Reading time 19 min
Views 50K
Digital Security corporate blog Information Security *Reverse engineering *UEFI *

Предлагаем вновь спуститься на низкий уровень и поговорить о безопасности прошивок x86-совместимых компьютерных платформ. В этот раз главным ингредиентом исследования является Intel Boot Guard (не путать с Intel BIOS Guard!) – аппаратно-поддержанная технология доверенной загрузки BIOS, которую вендор компьютерной системы может перманентно включить или выключить на этапе производства. Ну а рецепт исследования нам уже знаком: тонко нарезать реверс-инжинирингом имплементацию данной технологии, описать её архитектуру, наполнив недокументированными деталями, приправить по вкусу векторами атак и перемешать. Подбавим огня рассказом о том, как годами клонируемая ошибка на производстве нескольких вендоров позволяет потенциальному злоумышленнику использовать эту технологию для создания в системе неудаляемого (даже программатором) скрытого руткита.

Кстати, в основе статьи – доклады «На страже руткитов: Intel BootGuard» с конференции ZeroNights 2016 и 29-й встречи DefCon Russia (обе презентации здесь).
Читать дальше →
Total votes 57: ↑57 and ↓0 +57
Comments 35

Intel Boot Guard на пальцах

Reading time 4 min
Views 11K
Information Security *Computer hardware CPU
Sandbox

Предлагаю окунуться в дебри микроархитектуры компьютера и разобраться с тем, как работает одна из наиболее распространенных технологий обеспечения аппаратной целостности загрузки BIOS — Intel Boot Guard. В статье освещены предпосылки появления технологии, перечислены все режимы работы, а так же описан алгоритм каждого из них. Обо всем по порядку.

Читать далее
Total votes 30: ↑29 and ↓1 +28
Comments 46

Дайте две или уязвимость защиты многостраничных PIC18

Reading time 4 min
Views 8.5K
Algorithms *Programming microcontrollers *Manufacture and development of electronics *

Как простыми средствами прочитать защищенную прошивку из микроконтроллеров PIC18, что для этого нужно. И как избежать "недозащиты" результатов разработки (только для PIC18).

Читать далее
Total votes 22: ↑22 and ↓0 +22
Comments 12

Маленькие хитрости для STM32

Reading time 4 min
Views 10K
Timeweb Cloud corporate blog Programming *C++ *Industrial Programming *Programming microcontrollers *
Tutorial

В процессе работы у каждого программиста иногда встречаются неожиданные проблемы, которые возникли как будто на ровном месте. Практически по Черномырдину «никогда такого не было, и вот опять!». После этого начинаешь искать решение в интернете или закапываешься в чтение мануалов и документации, чтобы разобраться в пустячном, на первый взгляд вопросе.

Через какое-то время решение находится (или ошибка исправляется), и ты даешь себе зарок запомнить этот случай, а еще лучше записать, чтобы не забыть выясненный нюанс в будущем. Но проходит время и свое обещание счастливо забывается. И в этом нет ничего удивительного, если трудоемкость решения оказалась очень низкой, такой, что при желании его может повторить практически любой желающий буквально за несколько часов, правда если он будет знать, в какую строну следует копать.

Продолжая серию статей про маленькие хитрости разработки под STM32, хочу поделиться двумя очень простыми, но полезными функциями. Они никак не тянут на полноценный проект на github.com, но способны облегчить жизнь (или наоборот, выпить немало крови), при определенном стечении обстоятельств.

  1. Буферизированный вывод отладочной информации в последовательный порт
  2. Автоматическое включение защиты от чтения и модификации прошивки
Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Comments 49