Анализ вредоносного ПО напоминает игру в кошки-мышки: никаких правил, ситуация постоянно меняется. Поэтому в данном случае имеет смысл изучать лишь неустаревающие вещи и алгоритмы. Как только перед вами встает задача защитить сеть (или тысячу сетей), вы приступаете к такому анализу, и без этой книги вам попросту не обойтись.
Внимание!
Об авторах
О техническом редакторе
О соавторах
Предисловие
Благодарности
Отдельное спасибо
Введение
В чем заключается анализ вредоносного ПО
Необходимая квалификация
Изучение на примерах
Структура книги
Глава 0. Анализ вредоносных программ для начинающих
Цель анализа вредоносных программ
Методики анализа вредоносного ПО
Типы вредоносного ПО
Общие правила анализа вредоносного ПО
Часть I. Базовый анализ
Глава 1. Основные статические методики
Сканирование антивирусом: первый шаг
Хеширование: отпечатки пальцев злоумышленника
Поиск строк
Упакованное и обфусцированное вредоносное ПО
Формат переносимых исполняемых файлов
Компонуемые библиотеки и функции
Статический анализ на практике
Заголовки и разделы PE-файла
Итоги главы
Глава 2. Анализ вредоносных программ в виртуальных машинах
Структура виртуальной машины
Запуск виртуальной машины для анализа вредоносного ПО
Использование виртуальной машины для анализа безопасности
Риски при использовании VMware для анализа безопасности
Запись/воспроизведение работы компьютера
Итоги главы
Глава 3. Основы динамического анализа
Песочницы: решение на скорую руку
Запуск вредоносных программ
Мониторинг с помощью Process Monitor
Просмотр процессов с помощью Process Explorer
Сравнение снимков реестра с помощью Regshot
Симуляция сети
Перехват пакетов с помощью Wireshark
Использование INetSim
Применение основных инструментов для динамического анализа
Итоги главы
Часть II. Продвинутый статический анализ
Глава 4. Ускоренный курс по ассемблеру для архитектуры x86
Уровни абстракции
Обратное проектирование
Архитектура x86
Итоги главы
Глава 5. IDA Pro
Загрузка исполняемого файла
Интерфейс IDA Pro
Использование перекрестных ссылок
Анализ функций
Схематическое представление
Повышение эффективности дизассемблирования
Плагины к IDA Pro
Итоги главы
Глава 6. Распознавание конструкций языка C в ассемблере
Переменные: локальные и глобальные
Дизассемблирование арифметических операций
Распознавание выражений if
Распознавание циклов
Соглашения, касающиеся вызова функций
Анализ выражений switch
Дизассемблирование массивов
Распознавание структур
Анализ обхода связного списка
Итоги главы
8 Оглавление
Глава 7. Анализ вредоносных программ для Windows
Windows API
Реестр Windows
API для работы с сетью
Отслеживание запущенной вредоносной программы
Сравнение режимов ядра и пользователя
Native API
Итоги главы
Часть III. Продвинутый динамический анализ
Глава 8. Отладка
Сравнение отладки на уровне исходного и дизассемблированного кода
Отладка на уровне ядра и пользователя
Использование отладчика
Исключения
Управление выполнением с помощью отладчика
Изменение хода выполнения программы на практике
Итоги главы
Глава 9. OllyDbg
Загрузка вредоносного ПО
Пользовательский интерфейс OllyDbg
Карта памяти
Просмотр потоков и стеков
Выполнение кода
Точки останова
Загрузка динамических библиотек
Трассировка
Обработка исключений
Редактирование кода
Анализ кода командной оболочки
Вспомогательные возможности
Подключаемые модули
Отладка с использованием скриптов
Итоги главы
Глава 10. Отладка ядра с помощью WinDbg
Драйверы и код ядра
Подготовка к отладке ядра
Использование WinDbg
Отладочные символы Microsoft
Отладка ядра на практике
Руткиты
Загрузка драйверов
Особенности ядра в Windows Vista, Windows 7 и 64-битных версиях
Итоги главы
Часть IV. Возможности вредоносного ПО
Глава 11. Поведение вредоносных программ
Программы для загрузки и запуска ПО
Бэкдоры
Похищение учетных данных
Механизм постоянного присутствия
Повышение привилегий
Заметая следы: руткиты, работающие в пользовательском режиме
Итоги главы
Глава 12. Скрытый запуск вредоносного ПО
Загрузчики
Внедрение в процесс
Подмена процесса
Внедрение перехватчиков
Detours
Внедрение асинхронных процедур
Итоги главы
Глава 13. Кодирование данных
Зачем нужно анализировать алгоритмы кодирования
Простые шифры
Распространенные криптографические алгоритмы
Нестандартное кодирование
Декодирование
Итоги главы
Глава 14. Сетевые сигнатуры, нацеленные на вредоносное ПО
Сетевые контрмеры
Безопасное расследование вредоносной деятельности в Интернете
Контрмеры, основанные на сетевом трафике
Углубленный анализ
Сочетание динамических и статических методик анализа
Понимание психологии злоумышленника
Итоги главы
Часть V. Противодействие обратному
проектированию
Глава 15. Антидизассемблирование
Понимание антидизассемблирования
Искажение алгоритмов дизассемблирования
Методики антидизассемблирования
Скрытие управления потоком
Срыв анализа слоя стека
Итоги главы
10 Оглавление
Глава 16. Антиотладка
Обнаружение отладчика в Windows
Распознавание поведения отладчика
Искажение работы отладчика
Уязвимости отладчиков
Итоги главы
Глава 17. Методы противодействия виртуальным машинам
Признаки присутствия VMware
Уязвимые инструкции
Изменение настроек
Побег из виртуальной машины
Итоги главы
Глава 18. Упаковщики и распаковка
Анатомия упаковщика
Распознавание упакованных программ
Способы распаковки
Автоматизированная распаковка
Ручная распаковка
Советы и приемы для работы с распространенными упаковщиками
Анализ без полной распаковки
Упакованные DLL
Итоги главы
Часть VI. Специальные темы
Глава 19. Анализ кода командной оболочки
Загрузка кода командной оболочки для анализа
Позиционно-независимый код
Определение адреса выполнения
Поиск символов вручную
Окончательная версия программы Hello World
Кодировки кода командной оболочки
NOP-цепочки
Поиск кода командной оболочки
Итоги главы
Глава 20. Анализ кода на C++
Объектно-ориентированное программирование
Обычные и виртуальные функции
Создание и уничтожение объектов
Итоги главы
Глава 21. Шестидесятичетырехбитные вредоносные программы
Какой смысл в 64-битном вредоносном ПО?
Особенности архитектуры x64
WOW64
Признаки вредоносного кода на платформе x64
Итоги главы
Приложения
Приложение А. Важные функции Windows
Приложение Б. Инструменты для анализа вредоносного ПО
Приложение В. Решения лабораторных работ
Об авторах
О техническом редакторе
О соавторах
Предисловие
Благодарности
Отдельное спасибо
Введение
В чем заключается анализ вредоносного ПО
Необходимая квалификация
Изучение на примерах
Структура книги
Глава 0. Анализ вредоносных программ для начинающих
Цель анализа вредоносных программ
Методики анализа вредоносного ПО
Типы вредоносного ПО
Общие правила анализа вредоносного ПО
Часть I. Базовый анализ
Глава 1. Основные статические методики
Сканирование антивирусом: первый шаг
Хеширование: отпечатки пальцев злоумышленника
Поиск строк
Упакованное и обфусцированное вредоносное ПО
Формат переносимых исполняемых файлов
Компонуемые библиотеки и функции
Статический анализ на практике
Заголовки и разделы PE-файла
Итоги главы
Глава 2. Анализ вредоносных программ в виртуальных машинах
Структура виртуальной машины
Запуск виртуальной машины для анализа вредоносного ПО
Использование виртуальной машины для анализа безопасности
Риски при использовании VMware для анализа безопасности
Запись/воспроизведение работы компьютера
Итоги главы
Глава 3. Основы динамического анализа
Песочницы: решение на скорую руку
Запуск вредоносных программ
Мониторинг с помощью Process Monitor
Просмотр процессов с помощью Process Explorer
Сравнение снимков реестра с помощью Regshot
Симуляция сети
Перехват пакетов с помощью Wireshark
Использование INetSim
Применение основных инструментов для динамического анализа
Итоги главы
Часть II. Продвинутый статический анализ
Глава 4. Ускоренный курс по ассемблеру для архитектуры x86
Уровни абстракции
Обратное проектирование
Архитектура x86
Итоги главы
Глава 5. IDA Pro
Загрузка исполняемого файла
Интерфейс IDA Pro
Использование перекрестных ссылок
Анализ функций
Схематическое представление
Повышение эффективности дизассемблирования
Плагины к IDA Pro
Итоги главы
Глава 6. Распознавание конструкций языка C в ассемблере
Переменные: локальные и глобальные
Дизассемблирование арифметических операций
Распознавание выражений if
Распознавание циклов
Соглашения, касающиеся вызова функций
Анализ выражений switch
Дизассемблирование массивов
Распознавание структур
Анализ обхода связного списка
Итоги главы
8 Оглавление
Глава 7. Анализ вредоносных программ для Windows
Windows API
Реестр Windows
API для работы с сетью
Отслеживание запущенной вредоносной программы
Сравнение режимов ядра и пользователя
Native API
Итоги главы
Часть III. Продвинутый динамический анализ
Глава 8. Отладка
Сравнение отладки на уровне исходного и дизассемблированного кода
Отладка на уровне ядра и пользователя
Использование отладчика
Исключения
Управление выполнением с помощью отладчика
Изменение хода выполнения программы на практике
Итоги главы
Глава 9. OllyDbg
Загрузка вредоносного ПО
Пользовательский интерфейс OllyDbg
Карта памяти
Просмотр потоков и стеков
Выполнение кода
Точки останова
Загрузка динамических библиотек
Трассировка
Обработка исключений
Редактирование кода
Анализ кода командной оболочки
Вспомогательные возможности
Подключаемые модули
Отладка с использованием скриптов
Итоги главы
Глава 10. Отладка ядра с помощью WinDbg
Драйверы и код ядра
Подготовка к отладке ядра
Использование WinDbg
Отладочные символы Microsoft
Отладка ядра на практике
Руткиты
Загрузка драйверов
Особенности ядра в Windows Vista, Windows 7 и 64-битных версиях
Итоги главы
Часть IV. Возможности вредоносного ПО
Глава 11. Поведение вредоносных программ
Программы для загрузки и запуска ПО
Бэкдоры
Похищение учетных данных
Механизм постоянного присутствия
Повышение привилегий
Заметая следы: руткиты, работающие в пользовательском режиме
Итоги главы
Глава 12. Скрытый запуск вредоносного ПО
Загрузчики
Внедрение в процесс
Подмена процесса
Внедрение перехватчиков
Detours
Внедрение асинхронных процедур
Итоги главы
Глава 13. Кодирование данных
Зачем нужно анализировать алгоритмы кодирования
Простые шифры
Распространенные криптографические алгоритмы
Нестандартное кодирование
Декодирование
Итоги главы
Глава 14. Сетевые сигнатуры, нацеленные на вредоносное ПО
Сетевые контрмеры
Безопасное расследование вредоносной деятельности в Интернете
Контрмеры, основанные на сетевом трафике
Углубленный анализ
Сочетание динамических и статических методик анализа
Понимание психологии злоумышленника
Итоги главы
Часть V. Противодействие обратному
проектированию
Глава 15. Антидизассемблирование
Понимание антидизассемблирования
Искажение алгоритмов дизассемблирования
Методики антидизассемблирования
Скрытие управления потоком
Срыв анализа слоя стека
Итоги главы
10 Оглавление
Глава 16. Антиотладка
Обнаружение отладчика в Windows
Распознавание поведения отладчика
Искажение работы отладчика
Уязвимости отладчиков
Итоги главы
Глава 17. Методы противодействия виртуальным машинам
Признаки присутствия VMware
Уязвимые инструкции
Изменение настроек
Побег из виртуальной машины
Итоги главы
Глава 18. Упаковщики и распаковка
Анатомия упаковщика
Распознавание упакованных программ
Способы распаковки
Автоматизированная распаковка
Ручная распаковка
Советы и приемы для работы с распространенными упаковщиками
Анализ без полной распаковки
Упакованные DLL
Итоги главы
Часть VI. Специальные темы
Глава 19. Анализ кода командной оболочки
Загрузка кода командной оболочки для анализа
Позиционно-независимый код
Определение адреса выполнения
Поиск символов вручную
Окончательная версия программы Hello World
Кодировки кода командной оболочки
NOP-цепочки
Поиск кода командной оболочки
Итоги главы
Глава 20. Анализ кода на C++
Объектно-ориентированное программирование
Обычные и виртуальные функции
Создание и уничтожение объектов
Итоги главы
Глава 21. Шестидесятичетырехбитные вредоносные программы
Какой смысл в 64-битном вредоносном ПО?
Особенности архитектуры x64
WOW64
Признаки вредоносного кода на платформе x64
Итоги главы
Приложения
Приложение А. Важные функции Windows
Приложение Б. Инструменты для анализа вредоносного ПО
Приложение В. Решения лабораторных работ
Название: Вскрытие покажет! Практический анализ вредоносного ПО
Автор: Майкл Сикорски, Эндрю Хониг
Год: 2018
Жанр: компьютерная
Серия: «Для профессионалов»
Издательство: Питер
Язык: Русский
Формат: pdf
Качество: eBook
Страниц: 768
Размер: 16 MB
Скачать Майкл Сикорски, Эндрю Хониг - Вскрытие покажет! Практический анализ вредоносного ПО (2018)