Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2015_лекции / Лекция №7_2015

.pdf
Скачиваний:
65
Добавлен:
22.03.2016
Размер:
1.21 Mб
Скачать

Федеральное агентство по образованию

Санкт-Петербургский Государственный Электротехнический Университет «ЛЭТИ»

Стратегии самозащиты вредоносного ПО. Эмуляция ПО и техники, затрудняющие эмуляцию Часть 2

Эмуляция

Эмуляторы используются для отслеживания выполнения программы путем выполнения программы вне ОС

По определению не изменяет код программы

Запуск исследуемой программы на эмулированном аппаратном обеспечение безопаснее отладки

Типы эмуляторов

Аппаратные

Эмуляторы разделяют аппаратные ресурсы хоста

Инструкции ЦПУ выполняются прямо на реальном ЦПУ

Высокая производительность

Примеры: VMWare, VirtualBox, Xen

Программные

Эмуляторы полностью реализованы с помощью ПО

Инструкции ЦПУ интерпретируются и транслируются динамически

Могут работать медленно

Примеры: Bochs, Qemu, FSSandbox

Пример программного эмулятора Bochs

Bochs: эмулятор процессора (x86/amd64) с открытым кодом

Интерпретирует инструкции для эмулирования

Портируемый, т.к. он использует среду C++.

Поддерживает обработку прерываний и исключений ЦПУ, функции обращения к памяти

Эмуляция: обобщенный

алгоритм

Инициализация анализатора кода. Начало цикла эмуляции программы.

1.Запуск процедур, входящих в состав анализатора кода.

2.Разбор инструкции дизассемблером. В том случае, если во время работы была допущена ошибка (например, встретилась неизвестная команда), эмулятор завершает работу.

3.Разбор эмулятором параметров инструкции (размер инструкции, используемые регистры, тип имитации исполнения) полученной от дизассемблера. В зависимости от действий, необходимых для имитации исполнения инструкции (параметр, который определяет дизассемблер), переход к пункту 4 или 5.

4.Запуск инструкции в специальных условиях ("карантине"). Переход к пункту 6.

5.Полная имитация выполнения инструкции.

6.Перевод указателя на следующую инструкцию.

Перейдем к началу цикла, если в ходе эмуляции инструкции:

Не произошло ошибок.

Требуемый участок кода не был исследован до конца (недостаточная глубина анализа).

Время, отведенное на эмуляцию программы, не было превышено.

Основные виды атак на

эмуляторы

Основные категории атак

Временные атаки

Особенности реализации эмулируемой ОС

Особенности аппаратной реализации

Наличие инструментов, связанных с эмуляцией,

например, VMWare tools

Атаки типа DDoS:

Большое количество исполняемых инструкций (например, подбор ключа простым перебором)

Антивирусные песочницы не могут выделить большое число временных тактов для эмуляции

Атаки, направленные на выход из эмулированной среды

Обнаружение эмуляторов: эмуляция ОС

Если эмуляторы не имитирует полноценную ОС, то эмуляция API легко может быть выявлена:

У Windows большое количество как документированного так и недокументированного API

Эмуляторы всегда стараются вернуть какое-либо значение даже при выполнении неподдерживаемого

API

Примеры:

Вызов API c неподдерживаемыми параметрами, проверка возвращаемых значений

Отслеживание изменение значений регистров, стека

Обнаружение эмуляторов:

аппаратная реализация

Эмуляция инструкций ЦПУ крайне сложная задача

Набор инструкций для Intel x86/amd64 состоит из приблизительно ~500 инструкций

Обработка исключений и страничную организацию памяти

Полноценный эмулятор процессоров должен реализовать достаточно большое число устройств

Пример: обнаружение VmWare

Анализ запущенных процессов

VmWareService.exe, VmWareTray.exe, VMWareUser.exe

Анализ реестра

Информация о виртуальных жестких дисках, адаптерах, мышь

Анализ MAC адреса при виртуализации сет адаптера

Для VMWare 00:0c:29

Анализ памяти

Использование уязвимых инструкций:

Пример: обнаружение VmWare

Уязвимые инструкции

Почти все инструкции, обращающие к аппарат. обеспечению, генерируют прерывания, которые кешируются и обрабатываются VmWare

Кроме sidt, sgdt, sltd, cpuid, str

sidt, sgdt, sltd возвращают адреса на таблицы описания

дескрипторов IDT, GDT, LTD

Что такое техника RED PILL

Самостоятельная работа!

Соседние файлы в папке 2015_лекции