Обфускация вредоносного кода, социальная инженерия, использование «то ли багов, то ли фич» Windows — сегодняшний арсенал злоумышленников дает возможность успешно обходить сигнатурные средства защиты. Доклад посвящен опыту построения в корпоративной среде системы на базе опенсорса, нацеленной на выявление атак, не детектируемых классическими средствами защиты. Речь пойдет о элементах статического и динамического анализа, интересных инцидентах, которые были выявлены за время работы системы (с использованием эксплойтов на MS Office, JS-кода в CHM-файлах, трюков с упаковкой OLE в PDF и Multipart, с промежуточным взломом предприятия-контрагента и крупного авиаперевозчика), будет озвучена накопленная статистика по детекту самодельной системы, сигнатурных средств и одного коммерческого анти-APT-решения.
2. Расставим точки над «i»
Предмет рассмотрения – в первую очередь выявление
вредоносного содержимого на стадии доставки.
Других методов это разумеется не умоляет
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
2
4. Уровень абстракции
Корень зла – принципиальное отсутствие критериев
вредоносности
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
4
7. Как развивается атака
Доставка Развертывание Работа
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
7
8. Как детектировать?
Доставка Контейнер
OLE
PDF
etc
Развертывание Дроппер
Файлы
Ключи реестра
Объекты IPC
Работа Осн. модуль
Сетевая
активность
DNS-запросы
IP-трафик
Файловая
активность
Аномалии
данных
Аномалии
поведения
Неотличимо
от легитимного,
но уникально
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
8
9. Как детектировать?
Доставка Контейнер
OLE
PDF
etc
Развертывание Дроппер
Файлы
Ключи реестра
Объекты IPC
Работа Осн. модуль
Сетевая
активность
DNS-запросы
IP-трафик
Файловая
активность
Аномалии
данных
Аномалии
поведения
Неотличимо
от легитимного,
но уникально
Выявлять
Контро-
лировать
Определять
параметры
контроля
Эвристика
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
9
10. Казалось бы, все просто
ПЛОХО!
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
10
11. Как детектировать?
Доставка Контейнер
OLE
PDF
etc
Развертывание Дроппер
Файлы
Ключи реестра
Объекты IPC
Работа Осн. модуль
Сетевая
активность
DNS-запросы
IP-трафик
Файловая
активность
Аномалии
данных
Аномалии
поведения
Неотличимо
от легитимного,
но уникально
Понимание структуры данных
Упаковка/обфускация
Не всегда применимо
Вычислительные затраты
Задержки
Критерии выделения аномалий
11
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
12. Как детектировать?
Доставка Контейнер
OLE
PDF
etc
Развертывание Дроппер
Файлы
Ключи реестра
Объекты IPC
Работа Осн. модуль
Сетевая
активность
DNS-запросы
IP-трафик
Файловая
активность
Аномалии
данных
Аномалии
поведения
Неотличимо
от легитимного,
но уникально
Выявлять
Контро-
лировать
Определять
параметры
контроля
Предиктор
КорректорЭвристика
12
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
14. Эвристика
• GeoIP (черные списки, соответствие страны домена)
• Подмена адресов и записей Received
• Подмена времени
• Белые/черные списки отправителей
• Проверка заголовков вложений
• Статистический подход по типам вложений
Формат
Знаем Анализируем
Не знаем
Повышаем
критичность
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
14
15. Эвристика
Received: from [185.5.136.50] (port=55953 helo=f379.i.mail.ru)
by nt-8.ourdomain.ru (acSMTP/4.32.4964) with ESMTP id 67393.0.0
(envelope-from <social.engineer@mail.ru>)
for <vip@ourdomain.ru>; Thu, 10 Mar 2016 14:46:46 +0700
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru;
s=mail2;
h=Content-Type:Message-ID:Reply-To:Date:MIME-
Version:Subject:To:From; bh=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=;
b=YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=;
Received: from [115.177.235.182] (ident=mail)
by f379.i.mail.ru with local (envelope-from <social.engineer@mail.ru>)
id 1advJ1-0002hU-IH
for vip@ourdomain.ru; Thu, 10 Mar 2016 10:46:48 +0300
Received: from [115.177.235.182] by e.mail.ru with HTTP;
Thu, 10 Mar 2016 10:46:47 +0300
From: Attacker
< social.engineer@mail.ru >
15
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
19. Microsoft Office / OLE
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
19
20. Microsoft Office / OLE (норма)
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
20
21. Microsoft Office / OLE (макрос)
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
21
22. Microsoft Office / OLE (CVE-2012-0158)
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
22
23. PDF
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
23
24. PDF (норма)
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
24
25. PDF (JS)
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
25
26. Материалы по теме
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
Didier Stevens
• https://blog.didierstevens.com
• https://blog.nviso.be
26
30. Песочница: проблема №1
30
Изменения
Файлы
Ключи реестра
Объекты IPC
Системные вызовы
Запущенные процессы
Обращения к DNS
Сетевой трафик
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
33. Песочница: проблема №2
• Cuckoo Sandbox предлагает сигнатурный метод,
основанный на черных списках.
• Мы же пошли другим путем: белые списки с
возможностью обучения на легитимных файлах.
33
ЭТО ПЛОХО!
ЭТО ХОРОШО,
А ВСЕ, ЧТО НЕ ХОРОШО – ПЛОХО!
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
34. Схема вынесения вердикта
34
Изменения
после
открытия
файла
Файлы
Ключи реестра
Объекты IPC
Сис. вызовы
Процессы
DNS
Сетевой трафик
Глобальныеисключения
Легитимныедействиядля.doc
Флаг F
Флаг R
Флаг I
Флаг C
Флаг P
Флаг D
Флаг N
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
35. Схема вынесения вердикта
35
Флаг F
Флаг R
Флаг I
Флаг C
Флаг P
Флаг D
Флаг N
Правила вынесения вердикта:
I + R + N = ALERT
C + F + I = WARNING
D + P + R = ALERT
F + P + D = ALERT
I + R = WARNING
ETC
ALERT
WARNING
CLEAN
Аналогичная схема работает на стадии статического анализа
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
36. Режим обучения
36
Изменения
после
открытия
файла
Файлы
Ключи реестра
Объекты IPC
Сис. вызовы
Процессы
DNS
Сетевой трафик
Глобальныеисключения
Легитимныедействиядля.doc
Флаг F
Флаг R
Флаг I
Флаг C
Флаг P
Флаг D
Флаг N
Режим обучения
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
38. Контроль IOC
• Запросы DNS
• Логи прокси
• Netflow
• Трафик (snort)
• Файлы
• «Зацикленный» nmap в локалке
• Nmap+OpenVAS в ДМЗ
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
38
40. Что пришлось писать
• Агент для проверки почты (EmailAnalyzer aka EA)
• Очередь песочницы (многопоточность, приоритеты)
• Скрипт вынесения вердиктов песочницы (BirdBrain)
• Скрипты контроля запросов DNS и прокси
• Автоматизация nmap
• Система ведения разбирательств, база событий и IOC
• Универсальный извлекатель архивов (поддержка
разных форматов, рекурсия, пароли)
• Веб-интерфейс
• Telegram-бот для уведомлений J
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
40
49. Век живи – век учись
В процессе проблемы обнаруживаются на всех
фронтах:
• статический анализатор регулярно не справляется с
новыми ухищрениями вирусописателей;
• отсутствие результата в песочнице
Для поддержания качества детекта необходимо
периодически:
• «подтягивать» функционал;
• производить тюнинг FP (корректировка правил
вынесения вердикта, «обучение» BirdBrain).
49
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
50. Multipart
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
50
51. hh.exe
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
51
52. PDF: JS, Embedded File, OpenAction
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
52
54. Целенаправленные атаки
• Социальная инженерия:
• рассылки по тематике деятельности предприятия
• письма от имени действующих сотрудников
• подмена отправителя: действующие сотрудники, контрагенты
• поздравления с праздниками
• Технический арсенал:
• эксплойты на MS Office
• chm-js
• multipart
• варианты попроще: .scr, .exe, запароленные архивы
• Доставка на личную почту сотрудников
• Рассылки с взломанных контрагентов
На момент доставки
не детектируются
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
54
60. Трояны, вымогатели и др.
С чем приходится иметь дело:
• MS Office VBS
• JS, VBS, etc
• PDF-JS
• PDF с вложенным MS Office
• MS Office с вложенным PDF
• Макросы MS Office
• Экзотические форматы архивов типа .ACE
• Облачные хранилища
Курьезный случай: отправка вредоносного содержимого со
взломанного Roundcube крупного авиаперевозчика.
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
60
62. Как собиралась статистика
• Статистика собрана на вредоносном содержимом в
электронной почте (~8 тысяч писем в день).
• Данные по детекту антивирусов – результаты с
Virustotal, полученные по хэшам вложенных файлов
при обнаружении HANDMADE-системой.
• Сравнение с коммерческим AntiAPT – результат
двухмесячного тестирования.
На релевантность не
претендуем!
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
62
65. Антивирусы на стадии доставки
Microsoft
AVG
Symantec
TrendMicro
Avira
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Microsoft
Avast
AVG
DrWeb
Symantec
ESET-NOD32
TrendMicro
McAfee
Avira
Kaspersky
Процент от выявления
HANDMADE-системой
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
65
66. Антивирусы на стадии доставки
0 200 400 600 800 1000 1200 1400 1600
Microsoft
Avast
AVG
DrWeb
Symantec
ESET-NOD32
TrendMicro
McAfee
Avira
Kaspersky
HANDMADE
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
66
67. Антивирусы на стадии доставки
0 200 400 600 800 1000 1200 1400 1600
Microsoft
Avast
AVG
DrWeb
Symantec
ESET-NOD32
TrendMicro
McAfee
Avira
Kaspersky
HANDMADE
С начала 2017 г.
Лидер среди антивирусов Не выявлено
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
67
68. Антивирусы на стадии доставки
0%
20%
40%
60%
80%
100%
июня.16 июля.16 авг..16 сент..16 окт..16 нояб..16 дек..16 янв..17 февр..17 марта.17 апр..17 мая.17
DrWeb ESET-NOD32 Kaspersky
0%
20%
40%
60%
80%
100%
июня.16 июля.16 авг..16 сент..16 окт..16 нояб..16 дек..16 янв..17 февр..17 марта.17 апр..17 мая.17
McAfee Avira Kaspersky
Лидеры российского рынка
Лидеры сравнения
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
68
69. Пилот коммерческого Anti-APT
• Детект HANDMADE-системы адекватен в сравнении с
коммерческим продуктом
• Преимущества самоделки: мы работаем интрузивно
(привет шифровальщикам!), интеграция
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Выявлено Commercial (не выявлено HANDMADE) Не выявлено
HANDMADE
Антивирус
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
69
70. ИТОГО
• Антивирусом и файерволом нынче не обойтись
• Своими руками на базе опенсорса и костылей можно
собрать Анти-APT с неплохим детектом
• Век живи – век учись
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.
70
71. Даешь молодежь!
71
Мы работаем со студентами.
Коммиты становятся дипломами J
Бородавкин Д. А. <danil.borodavkin@gmail.com> // Анти-APT своими руками // PHDays 7 // Москва, 2017 г.