, Руткиты и буткиты. Противодействие современному вредоносному ПО и угрозам следующего поколения.

Руткиты и буткиты. Противодействие современному вредоносному ПО и угрозам следующего поколения.

Алекс Матросов, Евгений Родионов и Сергей Братус

 Состав исполнителей

Авторы
Алекс Матросов
Евгений Родионов
Сергей Братус
Издатель
Вильям Поллок
Редактор выпуска
Лаурель Чан
Дизайн обложки
Гарри Буз
Дизайн внутреннего содержания
Octopod Studios
Редакторы разработки
Лиз Чэдвик
Вильям Поллок
Фрэнсис Со
Технический рецензент
Родриго Рубира Брэнко
Литературный редактор
Рейчел Монаган
Наборщики
Кэсси Андредис
Бритт Боган
Корректор
Паула Л. Флеминг
Составитель индекса
Эрика Орлофф

 Об авторах

Алекс Матросов является ведущим исследователем безопасности в nVidia. Он обладает опытом в более чем два десятка лет относительно реверсивного проектирования, расширенного анализа вредоносного программного обеспечения (ПО), безопасности встраиваемого программного обеспечения и методов эксплуатации. До прихода в nVidia Алекс работал Главным исследователем безопасности в Intel Security Center of Excellence (SeCoE), провёл более шести лет в команде Intel Advanced Threat Research, а также был Старшим исследователем безопасности в ESET. Алекс был автором и соавтором многочисленных исследовательских работ, а также часто выступает на конференциях по безопасности, включая REcon, ZeroNights, Black Hat, DEFCON и тому подобных. Алекс получил награду от Hex-Rays за свой подключаемый модуль HexRaysCodeXplorer с открытым исходным кодом, поддерживаемый командой REhint начиная с 2013 года.

Евгений Родионов, доктор философии, является исследователем безопасности в Intel, работающим в области безопасности BIOSдля платформ клиентов. До этого Родионов работал во внутренних исследовательских проектах и проводил углубленный анализ сложных угроз в ESET. Сфера его интересов включает безопасность встраиваемого ПО, программирование в режиме ядра, технологии противодействия руткитам и реверсивное проектирование. Родионов выступал на конференциях по безопасности, таких как Black Hat, REcon, ZeroNights и CARO, а также являлся соавтором многочисленных исследовательских работ.

Сергей Братус является адьюнкт- профессором исследований на кафедре информатики в Дортмутском колледже. Ранее он работал в BBN Technologies в области исследований обработки естественного языка. Братус интересуется всеми вопросами безопасности Unix, в частности, безопасностью ядра Linux, а также выявлением и вредоностного ПО Linux и реверсивным проектированием.

 Технический рецензент

Родриго Рубира Брэнко (BSDeamon) работает в качестве Главного исследователя безопасности в корпорации Intel, где он возглавляет команду STORM (Strategic Offensive Research and Mitigations, Стратегические наступательные исследования и смягчение последствий). Родриго выявил десятки уязвимостей во множестве важных технологий и опубликовал инновационные исследования в области эксплуатации, реверсивного проектирования и анализа вредоносного ПО. Он является участником RISE Security Group и одим из организаторов Hackers to Hackers Conference (H2HC), старейшей конференции по исследованию безопасности в Латинской Америке.

 www.nostarch.com

Нашим семьям м тем, то сделал возможной эту книгу

 Содержание

Введение
Вступительное слово Родриго Рубира Брэнко
Благодарности
Принятые сокращения
Предисловие
Зачем читать эту книгу?
Что представляет собой эта книга?
Часть I: Руткиты
Часть II: Буткиты
Часть III: Техники защиты и криминалистики
Как читать эту книгу?
Часть I: Руткиты
Глава 1. Что представляет собой руткит: на примере TDL3
История распространения TDL3 в дикой природе
Процедура заражения
Управление потоком данных
Пользуйтесь своим собственным компоновщиком
Как работают специальные точки входа TDL3 режима ядра
Скрытая файловая система
TDL3 сталкивается со своим заклятым врагом
Глава 2. Руткит Festi: наиболее изощрённый бот спама и DDoS
Пример сети ботов Festi
Взламывая драйвер этого руткита
Сведения конфигурации Festi для взаимодействия C&C
Объектно- ориентированная инфраструктура Festi
Управление подключаемыми модулями
Встраивание подключаемых модулей
Технологии противодействия виртуальным машинам
Технологии противодействия отладке
Основной метод сокрытия своего вредоносного драйвера на диске
Основной метод защиты ключа регистрации самого Festi
Сетевой протокол взаимодействия Festi
Фаза инициализации
Фаза работы
Обход безопасности и ПО криминалистики
Алгоритм генерации домена для отказа C&C
Вредоносная функциональность
Модуль спама
Механизм DDoS
Подключаемый модуль посредника Festi
Заключение
Глава 3. Обзор заражения руткитами
Методы перехвата
Перехват системных событий
Перехват системых вызовов
Перехват файловых операций
Перехват планировщика объектов
Восстановление ядра системы
Великая гонка вооружений руткитов: ностальгическая заметка
Заключение
Часть II: Буткиты
Глава 4. Эволюция буткитов
Самые первые буткиты
Вирусы сектора загрузки
Elk Cloner и Load Runner
Вирус Brain
Эволюция буткитов
Конец эпохи BSI
Политики подписи кода режима ядра
Возникновение безопасного запуска
Современные буткиты
Заключение
Глава 5. Существенные моменты процесса загрузки операционной системы
Обзор процесса загрузки Windows на верхнем уровне
Наследуемый процесс загрузки
Процесс загрузки Windows
Среда BIOS и предзагрузки
Главная загрузочная запись
Загрузочная запись тома и загрузчик программы инициализации
Модуль bootmgr и данные настройки загрузки
Заключение
Глава 6. Безопасность процесса запуска
Модуль раннего запуска противодействия вредоносному ПО
API процедур обратного вызова
Классификация драйверов старта запуска
Политика ELAM
Как буткиты обходят ELAM
Политика подписи кода режима ядра Microsoft
Объект драйверов режима ядра для проверок целостности
Расположение подписей драйвера
Уязвимость целостности наследуемого кода
Модуль ci.dll
Защитные изменения в Windows 8
Технология безопасного запуска
Основанная на виртуализации безопасность в Windows 10
Трансляция адресов второго уровня
Режим виртуальной безопасности и защитник устройств
Ограничения защитника устройств при разработке драйвера
Заключение
Глава 7. Технологии заражения буткитом
Технологии заражения MBR
Изменение кода MBR: Технология заражения TDL4
Изменение таблицы разделов MBR
Технологии заражения VBR/ IPL
Изменение IPL: Rovnix
Заражение VBR: Gapz
Заключение
Глава 8. Статический анализ буткита с применением IDA Pro
Анализ имеющегося буткита MBR
Загрузка и дешифрация MBR
Анализ службы диска BIOS
Анализ заражённой таблицы разделов MBR
Технологии анализа VBR
Анализ имеющегося IPL
Вычисление прочих компонентов буткита
Расширенное применение IDA Pro: написание индивидуального загрузчика MBR
Основные сведения о loader.hpp
Реализация accept_file
Реализация load_file
Создание структуры таблицы разделов
Заключение
Упражнения
Глава 9. Динамический анализ буткита: эмуляция и виртуализация
Эмуляция с применением Bochs
Установка Bochs
Создание окружения Bochs
Заражение образа диска
Применение внутреннего отладчика Bochs
Сочетание Bochs с IDA
Виртуализация при помощи VMware Workstation
Настройка VMware Workstation
Сочетание VMware GDB с IDA
Заключение
Упражнения
Глава 10. Развитие технологий заржений MBR и VBR: Olmasco
Дроппер
Ресурсы Дроппер
Функциональность отслеживания для последующей разработки
Уловки противодействия отладки и эмулиции
Фкнкциональность буткита
Техника заражения буткитом
Процесс загрузки заражённой системы
Фкнкциональность руткита
Присоединение объекта устройства жёсткого диска и внедрение полезной нагрузки
Сопровождение скрытой файловой системы
Реализация интерфейса транспортного драйвера для перенаправления сетевого взаимодействия
Заключение
Глава 11. Буткиты IPL Bootkits: Rovnix и Carberp
Развитие Rovnix
Архитектура самого буткита
Заражение системы
Процесс загрузки и IPL после заражения
Реализация полиморфного дешифратора
Дешифрация начального загрузчика Robnix с применением VMWare и IDA Pro
Захват управления посредством исправления начального загрузчика Windows
Загрузка самого вредоносного драйвера режима ядра
Функциональность драйвера режима ядра
Модуль внедрения полезной нагрузки
Механизмы самообороны невидимостью
Скрытая файловая система
Форматирование имеющегося раздела в качестве виртуальной системы FAT
Шифрование скрытой файловой системы
Доступ к скрытой файловой системе
Канал скрытого взаимодействия
История ситуации: соединение Carberp
Разработка Carberp
Расширение Дроппер
Утечка исходного кода
Заключение
Глава 12. Gapz: изощрённое заражение VBR
Gapz Дроппер
Алгоритм Дроппер
Анализ Дроппер
Обход HIPS
Заражение системы посредством буткита Gapz
Обзор имеющегося блока параметров BIOS
Заражение VBR
Загрузка собственно вредоносного драйвера режима ядра
Функциональность руткита Gapz
Скрытое хранилище
Самооборона против ПО противодействия вредоносным средствам
Внедрение полезной нагрузки
Интерфейс взаимодествия полезной нагрузки
Индивидуальный стек сетевого протокола
Заключение
Глава 13. Возникновение ПО MBR с требованием выкупа
Краткая история современного вредоносного ПО с требованием выкупа
ПО с требованием выкупа с функциональностью буткита
Образ действий ПО с требованием выкупа
Анализ ПО с требованием выкупа Petya
Овладение полномочиями администратора
Заражение жёсткого диска (Шаг 1)
Шифрование при помощи данных настройки начального загрузчика самого вредоносного ПО
Крушение системы
Шифрование имеющейся MFT (Шаг 2)
Подводя итоги: последние соображения относительно Petya
Анализ ПО с требованием выкупа Satana
Дроппер Satana
Заражение MBR
Сведения отладки Дроппера
Собственно вредоносное ПО Дроппер MBR
Подводя итоги: последние соображения относительно Satana
Заключение
Глава 14. Сопоставление процессов загрузки UEFI и MBR/ VBR
Unified Extensible Firmware Interface
Различия между процессами загрузки наследуемого BIOS и UEFI
Поток процесса загрузки
Разбиение диска на разделы: сопоставление MBR и GPT
Прочие отличия
Отличительные особенности таблицы разделов GUID
Как работает встроенное ПО UEFI
Спецификация UEFI
Внутри загрузчика операционной системы
Доступ к Диспетчеру запуска Windows
Установка некой среды выполнения
Считывание Сведений конфигурации запуска
Передача управления в Winload
Начальный загрузчик Windows
Преимущества безопасности встроенного ПО UEFI
Заключение
Глава 15. Буткиты- ровесники UEFI
Обзор исторических угроз BIOS
WinCIH, самое первое вредоносное ПО, имеющее целью BIOS
Mebromi
Обзор прочих ургоз и фишек
Все аппаратные средства обладают встраиваемым ПО
Уязвимости встраиваемого ПО UEFI
(Не)Действенность битов защиты памяти
Проверки для битов защиты
Способы заражения имеющейся BIOS
Изменение варианта ПЗУ UEFI без подписи
Добавление или изменение драйвера DXE
Основы заражения руткитами
Руткиты UEFI в дикой среде
Взломанный руткит команды Vector-EDK
Заключение
Глава 16. Уязвимости встраиваемого ПО UEFI
Что делает встроенное ПО уязвимым?
Классификация уязвимостей встроенного ПО UEFI
Уязвимости последующей эксплуатации
Уязвимости компрометации цепочки поставок
Смягчение уязвимостей цепочки поставок
История защит встроенного ПО UEFI
Как работают защиты BIOS
Защиты SPI флеша и их уязвимости
Риски, связанные с обновлением BIOS без проверки подлинности
Защита BIOS посредством безопасного запуска
Защитник загрузки Intel
Технология защитника загрузки Intel
Уязвимости в защитнике загрузки
Уязвимости модулей SMM
Основы SMM
Эксплуатация обработчиков SMI
Уязвимости в сценарии загрузки S3
Основы сценария загрузки S3
Выявление целью слабых мест в сценарии загрузки S3
Эксплуатация уязвимостей сценария загрузки S3
Исправление уязвимостей сценария загрузки S3
Уязвимости в механизме управления Intel
История уязвимости ME
Атаки на код ME
Примеры для изучения: атаки на AMT и BMC Intel
Заключение
Часть III: Техники защиты и криминалистики
Глава 17. Как работает Безопасный запуск UEFI
Что представляет собой Безопасный запуск?
Подробности реализации Безопасного запуска UEFI
Последовательность запуска
Аутентификация исполнения при помощи цифровых подписей
База данных db
База данных dbx
Аутентификация на основе времени
Ключи Безопасного запуска
Ключ обмена ключами
Ключ платформы
Безопасный запуск UEFI: полная картина
Политики Безопасного запуска
Защита от буткитов при помощи Безопасного запуска
Атаки на безопасный запуск
Исправление встроенного ПО PI для запрета Безопасного запуска
Модификация переменных UEFI для обхода проверок безопасности
Защита Безопасного запуска через Подтверждённый и выверенный запуск
Подтверждённый запуск
Выверенный запуск
Защитник запуска Intel
Поиск необходимого ACM
Эксплуатация FIT
Настройка защитника запуска Intel
Доверенная плата запуска ARM
Зона доверия ARM
Загрузчики запуска ARM
Поток Доверенного запуска
Подтверждённый запуска против руткитов встроенного ПО
Заключение
Глава 18. Подходы анализа скрытых файловых систем
Обзор скрытых файловых систем
Выборка сведений буткита из скрытой файловой системы
Выборка сведений из отключённой системы
Считывание данных из работающей системы
присоединение драйвера хранилища Miniport
Синтаксический разбор образа скрытой файловой системы
Инструмент HiddenFsReader
Заключение
Глава 19. Криминалистика BIOS/ UEFI: различные подходы получения и анализа встроенного ПО
Ограничения наших технлогий криминалистики
В чём смысл криминалистики встроенного ПО
Атака на имеющиеся цепочки поставки
Компрометация BIOS через уязвимости встроенного ПО
Основы овладения встроенным ПО
Программный подход к овладению встроенным ПО
Определение местоположения регистров пространства конфигурации PCI
Вычисление адресов регистров конфигурации SPI
Применение регистров конфигурации SPI
Считывание сведений с SPI Flash
Учёт недостатков программного подхода
Аппаратный подход к овладению встроенным ПО
Обзор примера применения Lenovo ThinkPad T540p
Определение местоположения микросхемы памяти SPI Flash
Считывание SPI Flash с помощью мини модуля FT2232
Анализ полученного образа встроенного ПО при помощи UEFITool
Знакомство с областями SPI Flash
Просмотр областей SPI Flash через UEFITool
Анализ выбранной области BIOS
Анализ полученного образа встроенного ПО с применением Chipsec
Знакомство с архитектурой Chipsec
Анализ встроенного ПО посредством Chipsec Util
Заключение
Указатель

 Вступительное слово Родриго Рубира Брэнко

 Благодарности

 Принятые сокращения

 Предисловие

 Зачем читать эту книгу?

 Что представляет собой эта книга?

 

Часть I: Руткиты

 

Часть II: Буткиты

 

Часть III: Техники защиты и криминалистики

 Как читать эту книгу?

l>