От издательства....14
Об авторах....15
О техническом рецензенте....15
Вступительное слово....16
Благодарности....18
Список аббревиатур....19
Введение....23
Для кого предназначена эта книга....24
Структура книги....24
Как читать эту книгу....27
Часть I....28
Руткиты....28
Что такое руткит: TDL3....29
История распространения TDL3 по миру....30
Процедура заражения....31
Управление потоком данных....33
Скрытая файловая система....37
Итог: TDL3 встретил свою Немезиду....38
Руткит Festi: самый продвинутый бот для спама и DDoS-атак....40
Дело о сети ботов Festi....41
Устройство драйвера руткита....42
Конфигурационная информация Festi для взаимодействия с командно-управляющим сервером....43
Объектно-ориентированная структура Festi....44
Управление плагинами....45
Встроенные плагины....46
Методы противодействия виртуальной машине....48
Методы противодействия отладке....49
Метод сокрытия вредоносного драйвера на диске....50
Метод защиты раздела реестра Festi....52
Сетевой протокол Festi....53
Фаза инициализации....53
Рабочая фаза....54
Обход средств обеспечения безопасности и КТЭ....55
Алгоритм генерирования доменных имен в случае отказа C&C-сервера....58
Вредоносная деятельность....58
Модуль рассылки спама....59
Проведение DDoS-атак....59
Плагин прокси-сервиса....61
Заключение....62
Обнаружение заражения руткитом....63
Методы перехвата....64
Перехват системных событий....64
Перехват системных вызовов....66
Перехват операций с файлами....68
Перехват диспетчера объектов....69
Восстановление ядра системы....72
Великая гонка вооружений с руткитами: ностальгическая нотка....73
Заключение....75
Часть II....76
Буткиты....76
Эволюция буткита....77
Первые буткиты....77
Инфекторы загрузочного сектора....78
Эволюция буткитов....79
Закат эры BSI....79
Политика подписания кода режима ядра....80
Взлет безопасной загрузки....81
Современные буткиты....81
Заключение....84
Основы процесса загрузки операционной системы....85
Общий обзор процесса загрузки Windows....86
Старый процесс загрузки....87
Процесс загрузки Windows....88
BIOS и предзагрузочное окружение....88
Главная загрузочная запись....89
Загрузочная запись тома и начальный загрузчик программы....91
Модуль bootmgr и конфигурационные данные загрузки....92
Заключение....97
Безопасность процесса загрузки....98
Модуль раннего запуска антивредоносной программы....98
API обратных вызовов....99
Как буткиты обходят ELAM....101
Политика подписания кода режима ядра....102
Драйверы, подлежащие проверке целостности....102
Где находятся подписи драйвера....103
Слабость проверки целостности унаследованного кода....104
Модуль ci.dll....105
Дополнительные защитные меры в Windows 8....107
Технология безопасной загрузки....108
Безопасность на основе виртуализации в Windows 10....109
Трансляция адресов второго уровня....110
Виртуальный безопасный режим и Device Guard....110
Ограничения, налагаемые Device Guard на разработку драйверов....111
Заключение....112
Методы заражения буткитом....113
Методы заражения MBR....113
Модификация кода в MBR: метод заражения TDL4....114
Модификация таблицы разделов в MBR....121
Методы заражения VBR/IPL....121
Модификации IPL: Rovnix....122
Заражение VBR: Gapz....123
Заключение....123
Статический анализ буткита с помощью IDA Pro....125
Анализ MBR буткита....126
Загрузка и дешифрирование MBR....126
Анализ службы дисков BIOS....130
Анализ зараженной таблицы разделов MBR....135
Техника анализа VBR....136
Анализ IPL....137
Оценка других компонентов буткита....137
Продвинутая работа с IDA Pro: написание собственного загрузчика MBR....139
Файл loader.hpp....139
Реализация accept_file....140
Реализация load_file....141
Создание структуры, описывающей таблицу разделов....142
Заключение....143
Упражнения....144
Динамический анализ буткита: эмуляция и виртуализация....146
Эмуляция с помощью Bochs....147
Установка Bochs....148
Создание окружения Bochs....148
Заражение образа диска....151
Использование внутреннего отладчика Bochs....153
Комбинация Bochs с IDA....154
Виртуализация с помощью VMware Workstation....156
Конфигурирование VMware Workstation....157
Комбинация VMware GDB с IDA....158
Microsoft Hyper-V и Oracle VirtualBox....161
Заключение....162
Упражнения....162
Эволюция методов заражения MBR и VBR: Olmasco....164
Сбрасыватель....165
Ресурсы сбрасывателя....165
Средства трассировки для будущих разработок....167
Средства противодействия отладке и эмуляции....168
Функциональность буткита....170
Метод заражения....170
Процесс загрузки зараженной системы....171
Функциональность руткита....172
Подключение к объекту устройства диска и внедрение полезной нагрузки....173
Обслуживание скрытой файловой системы....173
Реализация интерфейса транспортного драйвера для перенаправления сетевого трафика....176
Заключение....177
Буткиты начального загрузчика программы: Rovnix and Carberp....178
Эволюция Rovnix....179
Архитектура буткита....180
Заражение системы....181
Процесс загрузки после заражения и IPL....183
Реализация полиморфного дешифровщика....183
Дешифрирование начального загрузчика Rovnix с помощью VMware и IDA Pro....185
Перехват управления путем изменения начального загрузчика Windows....191
Загрузка вредоносного драйвера....194
Функциональность вредоносного драйвера....195
Внедрение модуля полезной нагрузки....195
Механизмы скрытности и самозащиты....197
Скрытая файловая система....199
Форматирование раздела под файловую систему Virtual FAT....199
Шифрование скрытой файловой системы....199
Доступ к скрытой файловой системе....200
Скрытый канал связи....201
Реальный пример: троян Carberp....203
Разработка Carberp....203
Усовершенствования сбрасывателя....205
Утечка исходного кода....206
Заключение....206
Gapz: продвинутое заражение VBR....208
Сбрасыватель Gapz....209
Алгоритм сбрасывателя....211
Анализ сбрасывателя....212
Обход HIPS....213
Заражение системы буткитом Gapz....217
О блоке параметров BIOS....218
Заражение VBR....219
Загрузка вредоносного драйвера....221
Функциональность руткита Gapz....222
Скрытое хранилище....225
Самозащита от антивредоносных программ....226
Внедрение полезной нагрузки....228
Интерфейс взаимодействия с полезной нагрузкой....233
Собственный стек сетевых протоколов....236
Заключение....239
Взлет программ-вымогателей, заражающих MBR....240
Краткая история современных программ-вымогателей....241
Вымогатель с функциональностью буткита....242
Образ действий программ-вымогателей....243
Анализ вымогателя Petya....245
Получение привилегий администратора....245
Заражение жесткого диска (этап 1)....246
Шифрование с помощью конфигурационных данных вредоносного начального загрузчика....249
Обрушение системы....253
Шифрование MFT (этап 2)....254
Подводя итоги: заключительные мысли о Petya....259
Анализ вымогателя Satana....259
Сбрасыватель Satana....260
Заражение MBR....260
Отладочная информация сбрасывателя....261
Вредоносная MBR вымогателя Satana....262
Подводя итоги: заключительные мысли о Satana....265
Заключение....265
Сравнение процессов загрузки с помощью UEFI и MBR/VBR....267
Единый расширяемый интерфейс прошивки....268
Различия между процессами загрузки через BIOS и UEFI....269
Последовательность загрузки....269
Разбиение диска на разделы: MBR и GPT....270
Прочие отличия....271
Особенности таблицы разделов GUID....272
Как работает прошивка UEFI....276
Спецификация UEFI....277
Внутри загрузчика операционной системы....279
Начальный загрузчик Windows....285
Преимущества прошивки UEFI с точки зрения безопасности....288
Заключение....289
Современные UEFI-буткиты....290
Исторический обзор угроз BIOS....291
WinCIH, или первый вредонос, нацеленный на BIOS....291
Mebromi....292
Краткий обзор других угроз и контрмер....293
У любого оборудования есть прошивка....297
Уязвимости прошивки UEFI....298
Неэффективность битов защиты памяти....299
Проверки битов защиты....300
Способы заражения BIOS....301
Модификация дополнительного ПЗУ неподписанной UEFI....303
Добавление или модификация DXE-драйвера....305
Как происходит внедрение руткита....306
UEFI-руткиты на воле....312
Руткит Vector-EDK от группы Hacking Team....313
Заключение....321
Уязвимости прошивок UEFI....322
Почему прошивка может быть уязвимой?....323
Классификация уязвимостей UEFI....326
Постэксплуатационные уязвимости....328
Скомпрометированная цепочка поставок....328
Борьба с уязвимостью цепочки поставок....330
Исторический обзор защиты прошивок UEFI....330
Как работает защита BIOS....331
Защита флеш-памяти SPI и ее уязвимости....332
Риски неаутентифицированного обновления BIOS....335
Защита BIOS с помощью технологии безопасной загрузки....336
Intel Boot Guard....337
Технология Intel Boot Guard....337
Уязвимости Boot Guard....338
Уязвимости в модулях SMM....340
Что такое SMM....340
Эксплуатация обработчиков SMI....341
Уязвимости в загрузочном скрипте S3....345
Что делает скрипт S3....345
Атаки на слабости загрузочного скрипта S3....346
Эксплуатация уязвимости в загрузочном скрипте S3....347
Исправление уязвимости в загрузочном скрипте S3....350
Уязвимости в Intel Management Engine....350
История уязвимостей ME....350
Атаки на код ME....351
Пример: атаки на Intel AMT и BMC....352
Заключение....355
Часть III....356
Методы защиты и компьютерно-технической экспертизы....356
Как работает безопасная загрузка UEFI....357
Что такое безопасная загрузка?....358
Детали реализации безопасной загрузки UEFI....359
Последовательность загрузки....359
Аутентификация исполняемого файла с помощью цифровых подписей....360
База данных db....362
База данных dbx....365
Аутентификация с учетом времени....367
Ключи безопасной загрузки....367
Безопасная загрузка UEFI: полная картина....370
Политика безопасной загрузки....371
Защита от буткитов с помощью безопасной загрузки....373
Атаки на безопасную загрузку....375
Изменение прошивки PI с целью отключения безопасной загрузки....375
Модификация переменных UEFI для обхода проверок безопасности....376
Защита безопасной загрузки с помощью технологии верифицированной и измеренной загрузки....378
Верифицированная загрузка....379
Измеренная загрузка....379
Intel BootGuard....379
Где искать ACM....380
Изучение FIT....383
Конфигурирование Intel BootGuard....383
Trusted Boot Board в ARM....386
ARM Trust Zone....386
Начальные загрузчики в ARM....387
Поток выполнения в Trusted Boot....389
Верифицированная загрузка и руткиты прошивки....390
Заключение....391
Подходы к анализу скрытых файловых систем....392
Обзор скрытых файловых систем....393
Извлечение данных буткита из скрытой файловой системы....394
Извлечение данных из незапущенной системы....394
Чтение данных из активной системы....395
Подключение к драйверу мини-порта устройства хранения....395
Разбор образа скрытой файловой системы....401
Программа HiddenFsReader....402
Заключение....403
Предметный указатель....433
Компьютерно-техническая экспертиза BIOS/UEFI: подходы к получению и анализу прошивок....404
Ограничения наших методов КТЭ....405
Почему компьютерно-техническая экспертиза прошивки так важна....405
Атака на цепочку поставок....406
Компрометация BIOS через уязвимость прошивки....406
Как получить прошивку....406
Программный подход к получению прошивки....408
Местоположение регистров из конфигурационного пространства PCI....409
Вычисление адресов регистров конфигурации SPI....410
Использование регистров SPI....410
Чтение данных из флеш-памяти SPI....413
О недостатках программного подхода....414
Аппаратный подход к получению прошивки....415
Описание процедуры на примере Lenovo ThinkPad T540p....416
Местоположение микросхемы флеш-памяти SPI....417
Чтение флеш-памяти SPI с помощью мини-модуля FT2232....419
Анализ образа прошивки с помощью UEFITool....421
Какие существуют регионы флеш-памяти SPI....422
Просмотр регионов флеш-памяти SPI с помощью UEFITool....422
Анализ региона BIOS....424
Анализ образа прошивки с помощью Chipsec....428
Знакомство с архитектурой Chipsec....428
Анализ прошивки с помощью Chipsec Util....430
Заключение....432
Эта книга посвящена обнаружению, анализу и обратной разработке вредоносного ПО. В первой части описываются примеры руткитов, показывающие, как атакующий видит операционную систему изнутри и находит способы надежно внедрить свои импланты, используя собственные структуры ОС. Вторая часть рассказывает об эволюции буткитов, условиях, подхлестнувших эту эволюцию, и методах обратной разработки таких угроз.
Издание адресовано широкому кругу специалистов по информационной безопасности, интересующихся тем, как современные вредоносные программы обходят защитные механизмы на уровне операционной системы.