Обход антивирусов, антиэмуляция. Часть I

Aceki

Повелитель клавиатуры
Joined
Jan 19, 2017
Messages
1,665
Reaction score
209
Age
92
Website
google.com
Привет! В этой статье мы обсудим и опробуем способы обхода антивирусов. Информация для подготовки статьи была взята отсюда. Обход антивирусов состоит из 2 больших шагов:
  • Скрытие кода, который может быть опознан как вредоносный. В большинстве случаев это происходит при использовании шифрования.
  • Создание загрузчика-расшифровщика таким образом, чтобы он не был обнаружен как вирус или не обходился эмуляцией/песочницей.
В этой статье я сфокусируюсь на последнем, на одурачивании антивирусных систем эмуляции/песочницы.
TTPJDseOjAw.jpg

Теория обхода антивирусов

Для того чтобы понять как обходить антивирусы, нужно понять как они работают. Вот 3 основных метода их работы.

1. Статический анализ сигнатур


Анализ сигнатур основан на чёрном списке методов. Когда антивирусным аналитиком обнаруживается новая малварь, для неё создаётся определённая сигнатура. Сигнатура может быть основана на конкретном коде или на данных (например использование некоторого строкового имени). Довольно часто сигнатуры построены на первых исполняемых байтах вредоносного файла. Антивирус содержит миллионы сигнатур в своей базе данных и они сравниваются со сканируемым кодом из этой базы данных. Первые антивирусы использовали этот метод; этот метод используется до сих пор комбинируя этот метод с эвристикой и с динамическом анализом.

Самая большая проблема анализа основанного на сигнатурах, это то, что метод не может быть использован для обнаружения новой малвари. Для обхода анализа основанного на сигнатурах, нужно просто построить новый код или существенно изменить существующий, чтобы обойти актуальную сигнатуру. Сила полиморфных вирусов заключается в автоматическом изменении его кода (используя шифрование), которая делает возможным генерацию нового бинарного хеша или для идентификации специфичной сигнатуры. Остаётся возможность построить сигнатуру для зашифрованного вредоносного кода, которые выглядят как специфичные инструкции в загрузчике-расшифровщике.

2. Статический эвристический анализ

В этом случае антивирус ищет шаблоны в коде, которые, специфичны для малвари. Есть много существующих правил, которые зависят от антивируса. Обычно эти правила держат в секрете (я полагаю, чтобы избежать их обхода), поэтому не всегда так просто понять почему антивирус считает программу вредоносной. Главная ценность эвристического анализа, это то что он может быть использован для поиска новой малвари, сигнатур которых нет в базе данных. Главный недостаток этого метода, это то что он генерирует ложные срабатывания.

Например: функция CallNextHookEx обычно используется в кейлоггерах. Некоторые антивирусы предполагают, что использование этой функции является угрозой, и выдает эвристическое предупреждение о программном обеспечении, если имя функции обнаружено в сегменте данных исполняемого файла. Другой пример, это открытие процесса "explorer.exe" и попытки записать в виртуальную память, это действие тоже расценивается как вредоносное.

Легчайший путь обхода эвристического анализа, это убедиться что весь вредоносный код скрыт. Шифрование кода это самый частый метод, который используется для этого. Если до расшифрования двоичный код не вызывает никаких подозрений, и если загрузчик-расшифровщик не выполняет никаких вредоносных действий, то вредоносное ПО не будет обнаружено.

3. Динамический анализ

В наши дни всё больше антивирусов полагаются на динамический подход. Когда исполняемый файл сканируется, то он на некоторое короткое время запускается в виртуальном окружении. Комбинирование с проверкой сигнатур и с эвристическом анализом позволяет обнаруживать неизвестную малварь, даже ту, которая полагается на шифрование. Большинство антивирусов позволяют обходить фазу расшифрования.

Это означает, что обход динамического анализа состоит из 2 вещей:
  • Необнаруживаемый механизм саморасшифрования
  • Не допустить, чтобы антивирус выполнил фазу расшифрования
Ограничения антивируса:

На самом деле динамический анализ - сложная функция, способная сканировать миллионы файлов, запускать их в эмулируемой среде и проверять на все сигнатуры... И она также имеет некоторые ограничения.

Модель динамического анализа имеет 3 главных ограничения, которые могут быть использованы в своих целях:
  • Сканирование происходит слишком быстро, поэтому существует ограничение на количество операций, которые он может выполнить для каждого сканирования.
  • Окружение эмулируется, поэтому не известны спецификации устройства и окружение малвари.
  • Эмулируемое/песочное окружение имеют несколько спецификаций, которые могут быть обнаружены малварью.
На этом всё, продолжение в следующей части.
 
Top