Содержание статьи
- Что относится к инфраструктуре злоумышленников?
- Какие инструменты используют для обнаружения вредоносной инфраструктуры?
- Поисковые системы: Shodan, Censys, Fofa и другие
- VirusTotal
- Urlscan.io
- Открытые базы данных, например abuse.ch
- Как анализировать полученные данные и какие бывают паттерны поиска?
- HTTP-заголовки
- Favicon
- Сертификаты
- TLS fingerprinting
- Рекомендации
Эксперт по информационной безопасности компании «Инфосистемы Джет» Евгений Богачев отвечает: да, можно. В статье он объяснит, что такое вредоносная инфраструктура и какие инструменты и методы помогают находить ее компоненты.
Что относится к инфраструктуре злоумышленников?
Для кибератак злоумышленники используют собственную, часто сложную инфраструктуру. Своевременное обнаружение такой инфраструктуры помогает понять, как устроены атаки, как ведут себя злоумышленники и какие меры можно применить на ранних этапах, чтобы минимизировать возможный ущерб для компании.
Рассмотрим стандартную цепочку Cyber Kill Chain, которая включает семь этапов:
- Reconnaissance (разведка).
- Weaponization (вооружение).
- Delivery (доставка).
- Exploitation (заражение).
- Installation (установка).
- Command and control (получение контроля).
- Actions on objective (выполнение действий).
На разных этапах злоумышленники используют разные компоненты своей инфраструктуры. Например, на этапе вооружения готовят свои C2-серверы — они нужны для связи с вредоносным ПО в сети жертвы. Для этого идут в ход в том числе легитимные сервисы вроде Telegram, обычные хостинги, а также так называемые пуленепробиваемые хостинги, которые игнорируют жалобы на размещенный контент, в том числе вредоносный.
На этапе доставки злоумышленники закидывают вредоносное ПО в инфраструктуру жертвы. Чаще всего для этого используют фишинговые письма с зараженными вложениями или со ссылками на внешние ресурсы, откуда загружается вредоносный код. Такими ресурсами могут быть открытые директории, CDN или легитимные платформы вроде GitHub.
На этапе получения контроля злоумышленники активно используют C2-серверы. Это могут быть специализированные решения, разработанные под конкретную атаку и распространяемые на платной основе, или C2-фреймворки с открытым исходным кодом. К последним относятся такие популярные фреймворки, как Cobalt Strike, Mythic и Havoc.

Какие инструменты используют для обнаружения вредоносной инфраструктуры?
Чтобы найти компоненты вредоносной инфраструктуры, ИБ‑исследователи используют специальные поисковые системы, сканеры, анализаторы трафика и открытые базы данных индикаторов компрометации (IoC).
Поисковые системы: Shodan, Censys, Fofa и другие
Эти сервисы индексируют устройства, подключенные к интернету. У каждой системы свой синтаксис запросов, поэтому можно искать по разным ключевым словам. Однако поисковики все равно могут выдавать разные результаты.
Например, в Shodan запрос product: вернет около 56 миллионов хостов. В Censys похожий запрос найдет примерно 21 миллион. Чтобы получить более полную картину, лучше использовать несколько поисковых систем одновременно.

Все эти сервисы предоставляют API, поэтому их легко встроить в свои платформы и обрабатывать данные в привычной среде.
VirusTotal
Это сервис для анализа файлов, IP-адресов, доменов и URL. Он поддерживает множество функций и интегрируется со сторонними системами обнаружения и инструментами для анализа вредоносности артефактов.
Чтобы давать информацию о вредоносном артефакте, VirusTotal использует датасеты. Они лежат в основе платформы, структурируют данные об артефактах и показывают взаимосвязи между ними.
Чтобы обратиться к VirusTotal через графический интерфейс, пользователь вводит запрос: URL, домен, хеш файла (MD5, SHA-1 или SHA-256) или IP-адрес. После этого VirusTotal находит соответствующий артефакт и связанную с ним информацию в датасете и показывает эти данные в виде отчета по веб‑анализу.

Urlscan.io
Этот сервис позволяет безопасно исследовать потенциально вредоносные веб‑ресурсы. Он показывает информацию об HTTP-транзакциях, содержимом страницы, DOM-снимках, скриншотах, а также связанных индикаторах: IP-адресах, доменах, хешах файлов. Это особенно полезно, когда нужно изучить ресурс, не посещая его напрямую.
Открытые базы данных, например abuse.ch
В проект abuse.ch входят несколько платформ, например:
- MalwareBazaar — хранилище вредоносных образцов;
- SSL Blacklist — база вредоносных TLS‑сертификатов;
- URLhaus — сервис для сбора и отслеживания вредоносных URL‑адресов;
- ThreatFox — открытая база индикаторов компрометации.
Как анализировать полученные данные и какие бывают паттерны поиска?
Эти инструменты выдают массу данных, но полезно далеко не все. Чтобы вытащить нужное, используют разные паттерны поиска, например:
- заголовок HTTP;
- элементы HTML:
titleиbody; - значок сайта (favicon);
- сертификаты безопасности;
- отпечаток TLS (TLS fingerprinting).
Это не все паттерны, которые можно использовать, но они могут стать отправной точкой для твоего исследования.
Рассмотрим каждый из паттернов подробнее.
HTTP-заголовки
Можно анализировать как стандартные, так и нестандартные заголовки: Server, ETag, Content-Type, Public и другие. Например, C2-серверы Cobalt Strike часто выдают себя таким набором заголовков:
HTTP/1.1 404 Not Found
Date: Day, DD Mmm YYYY HH:MM:SS GMT
Content-Type: text/plain
Content-Lenght: 0
Далее рассмотрим Mythic C2 — фреймворк с открытым исходным кодом. Если внимательно изучить репозиторий, можно найти файл config. с параметрами для настройки C2-сервера. На их основе можно сформировать поисковый запрос:
port: 80 Cache-Control: max-age=0, no-cache Connection: keep-alive Content-Type: application/javascript; charset=utf-8 Pragma: no-cache Server: NetDNA-cache/2.2; ASN: AS14061

В недавнем кейсе мы нашли двадцать хостов, подходящих под эти параметры. Анализ одного из них показал множество открытых портов, включая нестандартные, и запущенный Mythic C2. VirusTotal тоже помечает такие серверы как вредоносные.


Элементы HTTP < title> и < body>
Title — это заголовок веб‑страницы, отображаемый в браузере, а body — ее HTML-содержимое. Поисковый запрос имеет смысл строить по ключевым словам, которые ассоциируются с C2, вредоносным ПО, злоумышленником или другой опасной сущностью в твоем исследовании. Например, поиск по ключевым словам вроде login, panel, c2, stealer или по названиям вредоносов помогает находить управляющие панели. Поисковый запрос в Shodan выглядит так:
http.title:"C2 Panel"

Чтобы найти открытые директории с вредоносными файлами, в Censys можно использовать такой запрос (на примере Sliver C2):
(services.http.response.html_tags: "Index of /" or "Directory Listing for /") and services.http.response.body: "sliver")

Favicon
Favicon — значок сайта, который показывает браузер во вкладке. Для поиска можно использовать хеш изображения, например MurmurHash3, который поддерживают Shodan и Censys. Сгенерировать хеш можно следующим скриптом:
import mmh3import requestsimport codecsresponse = requests.get('https://domain.com/favicon.ico')favicon = codecs.encode(response.content,"base64")print(mmh3.hash(favicon))
Анализ фавиконок также полезен при поиске фишинговых ресурсов. Взяв иконку легитимного ресурса, например Netflix, можно найти домены, использующие этот значок, но ведущие на поддельные страницы.

Сертификаты
Еще один полезный паттерн — поиск по сертификатам, точнее, по их атрибутам, таким как:
- серийный номер сертификата;
- поля issuer и subject, где злоумышленники иногда указывают название своего вредоносного ПО или фреймворка C2.
Примеры запросов для поиска в Shodan серверов, связанных с OrcusRAT:
ssl.cert.serial:9b7c73f9e35ae5663d239b046beab9
ssl.cert.issuer.cn:"Quasar Server CA"
ssl.cert.subject.cn:"Quasar Server CA"
TLS fingerprinting
Помимо поиска по атрибутам сертификатов, можно использовать методы TLS-фингерпринтинга:
- JA3 — пассивный метод фингерпринтинга клиентской части TLS-рукопожатия. Собирает нужные данные из пакета Client Hello и формирует 32-символьный MD5-хеш, по которому можно идентифицировать вредоносное ПО.
- JA3s — пассивный метод фингерпринтинга серверной части TLS-рукопожатия, аналог JA3 для Server Hello. Используется для идентификации C2-серверов.
- JARM — активный метод фингерпринтинга. Отправляет десять пакетов Client Hello, извлекает из ответов сервера нужные данные и формирует 62-символьный хеш: первые 30 символов — версии и шифры TLS, оставшиеся 32 — SHA-256-хеш расширений сервера. Эффективен для поиска компонентов вредоносной инфраструктуры.
- JA4+ — набор методов фингерпринтинга, улучшенная версия JA3 и JA3s. В отличие от предыдущих методов, JA4+ представлены в удобном для чтения формате и для людей, и для систем, что повышает эффективность поиска и анализа угроз. Дополнительную информацию смотри в документации JA4+.
Предположим, у нас есть IP-адрес для анализа. Проверив его в VirusTotal, мы увидим, что он связан с большим количеством потенциально опасных файлов.

Попробуем найти похожие хосты. Для этого используем JARM сервера: JA3 и JA3s уже устарели, а JA4+ относительно новый и поддерживается не всеми поисковыми системами. Поэтому остановимся на JARM как на самом распространенном методе. Построим в Shodan такой поисковый запрос (значение JARM сервера можно взять прямо из VirusTotal):
ssl.jarm:27d27d27d29d27d00042d42d000000c2e0293a1b1651a6ff2a5a0cba2b4d7f
В итоге мы получили более 800 хостов, и большая часть из них не вредоносна. Чтобы отсеять такие «ложные срабатывания», нам нужно собрать больше информации.

Для начала проанализируем исходный IP-адрес. Видим, что на хосте открыт 80‑й порт и можно посмотреть его заголовки.

Модифицируем наш запрос:
ssl.jarm:27d27d27d29d27d00042d42d000000c2e0293a1b1651a6ff2a5a0cba2b4d7f Server: ipwhois
Мы сократили выдачу до семи хостов с похожими элементами.

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

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