Уроки Разработка малвари-7. Виды детектов


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 085
Репутация
8 208
1693122815450.png


Введение

Системы безопасности используют несколько техник для обнаружения вредоносного программного обеспечения.
Важно понимать, какие методы системы безопасности используют для классификации ПО как вредоносное.

Статическое по сигнатуре обнаружение

Сигнатура
- это ряд байтов или строк внутри вредоносного ПО, которые уникально его идентифицируют. Могут указываться и другие условия, такие как имена переменных и импортируемые функции. Как только система безопасности сканирует программу, она пытается сопоставить ее со списком известных правил. Эти правила должны быть предварительно созданы и загружены в систему безопасности.
YARA - это один из инструментов, который используют производители безопасности для создания правил обнаружения. Например, если шелл-код содержит последовательность байтов, которая начинается с ЕС 48 83 Е4 ЕО E8 СО 00 00 00 41 51 41 50 52 51, это можно использовать для обнаружения того, что полезная нагрузка является полезной нагрузкой Msfvenom's x64 exec. Тот же механизм обнаружения можно использовать для строк внутри файла.

Обнаружение по сигнатуре легко обойти, но это может занять много времени. Важно избегать жесткого кодирования значений в вредоносном ПО, которые можно использовать для уникальной идентификации реализации. Код, представленный на этом курсе, пытается избегать жесткого кодирования значений, которые могут быть закодированы, и вместо этого динамически извлекает или вычисляет значения.

Обнаружение по хешу

Обнаружение по хешу является подмножеством статического обнаружения по сигнатуре. Это очень простой метод обнаружения, и это самый быстрый и простой способ, которым система безопасности может обнаружить вредоносное ПО. Этот метод заключается в сохранении хешей (например, MD5, SHA256) известного вредоносного ПО в базе данных. Хеш файла вредоносного ПО будет сравниваться с базой данных хешей системы безопасности, чтобы увидеть, есть ли совпадение.

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

Эвристическое обнаружение

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

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

Разработчики вредоносного ПО встраивают техники обнаружения песочницы, чтобы определить среду песочницы. Если вредоносное ПО подтверждает, что оно выполняется в песочнице, тогда оно выполняет безвредный код, в противном случае - вредоносный код.

Обнаружение на основе поведения

Как только вредоносное ПО запускается, системы безопасности продолжают искать подозрительное поведение, совершаемое работающим процессом. Система безопасности будет искать подозрительные индикаторы, такие как загрузка DLL, вызов определенного API Windows и подключение к интернету. Как только подозрительное поведение обнаружено, система безопасности проводит сканирование процесса в памяти. Если процесс определен как вредоносный, он завершается.

Определенные действия могут завершить процесс немедленно без выполнения сканирования в памяти. Например, если вредоносное ПО выполняет инъекцию процесса в notepad.exe и подключается к интернету, это, вероятно, приведет к немедленному завершению процесса из-за высокой вероятности того, что это вредоносная активность.

Лучший способ избежать обнаружения на основе поведения - заставить процесс вести себя как можно более безвредно (например, избегать запуска дочернего процесса cmd.exe). Кроме того, сканирование в памяти можно обойти с помощью шифрования памяти. Это более сложная тема, которая будет обсуждаться в будущих модулях.

API-перехват

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

Это обнаружение считается комбинацией обнаружения в реальном времени и на основе поведения.

Диаграмма ниже показывает алгоритм API-перехвата.

1693122403959.png


Существует несколько способов обойти API-перехват, такие как отключение DLL и прямые системные вызовы. Эти темы будут рассмотрены в будущих модулях.

Проверка IAT

Одним из компонентов в структуре PE, является таблица адресов импорта или IAT. Чтобы кратко суммировать функциональность IAT, она содержит имена функций, которые используются в PE во время выполнения. Она также содержит библиотеки (DLL), которые экспортируют эти функции. Эта информация ценна для системы безопасности, так как она знает, какие WinAPI использует исполняемый файл.

Например, для шифрования файлов в ransomware вероятно, будет использовать криптографические функции и функции управления файлами. Когда система безопасности видит IAT, содержащую эти типы функций, таких как CreateFileaA/W, SetFilePointer, Read/WriteFile, CreateHash, CryptHashData, CryptGetHashParam, тогда или программа помечается, или на нее уделяется дополнительное внимание.

На изображении ниже показано, как инструмент dumpbin.exe используется для проверки IAT бинарного файла:

1693122630588.png


Один из способов обхода сканирования IAT - использование хеширования API, о котором будет рассказано в будущих модулях.

Ручной анализ

Несмотря на обход всех вышеупомянутых механизмов обнаружения, аналитики вредоносных программ все равно могут вручную анализировать вредоносное ПО.
Исследователь, хорошо знакомый с обратной инженерией вредоносных программ, вероятно, сможет обнаружить вредоносное ПО. Кроме того, системы безопасности часто отправляют копию подозрительных файлов в облако для дальнейшего анализа.

Разработчики вредоносного ПО могут реализовать техники против обратного анализа, чтобы усложнить процесс обратной инженерии. К некоторым техникам относятся обнаружение отладчика и обнаружение виртуализированной среды.
 
Автор темы Похожие темы Форум Ответы Дата
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 6
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 16
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 6
X-Shar Введение в разработку вредоносных программ 7
X-Shar Введение в разработку вредоносных программ 8
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 4
X-Shar Введение в разработку вредоносных программ 2
Похожие темы
Уроки Разработка вирусов-35.Обход EDRs.Последняя тема цикла
Уроки Разработка вирусов-34.Обход Windows defender
Уроки Разработка вирусов-33.Уменьшение вероятности детекта зверька
Уроки Разработка вирусов-32.Открываем врата ада
Уроки Разработка вирусов-31.Обход виртуальных машин
Уроки Разработка вирусов-30.Черпаем силы в антиотладке
Уроки Разработка вирусов-29. Предельная техника-2. Практика. Реализуем техники инъекции через сисколы
Уроки Разработка малвари-18.Определение PID нужного процесса, или перечисления процессов
Уроки Разработка малвари-14. Размещаем Payload удаленно на сервере
Уроки Разработка малвари-13.Инъекция шелл-кода в процесс
Уроки Разработка малвари-12. Иньекция в процесс
Уроки Разработка малвари-11. Локальный запуск Payload
Уроки Разработка малвари-10. Обфускация Payload
Уроки Разработка малвари-9. Шифруем Payload
Уроки Разработка малвари-8. Куда класть нагрузку ?
Уроки Разработка малвари-6. Процессы Windows
Уроки Разработка малвари - 5. Изучаем динамические библиотеки
Уроки Разработка малвари - 4. Шпаргалка по архитектуре винды
Уроки Разработка малвари - 3. Так какой-же язык выбрать !?
Уроки Разработка малвари - 2. Изучаем инструменты
Верх Низ