Белые списки - это полезная концепция в корреляции при анализе угроз, поскольку недоброкачественные наблюдаемые данные могут легко попасть в сигналы индикаторов угроз, особенно от поставщиков с открытым исходным кодом или поставщиков, которые не так осторожны, как следовало бы.
Если эти данные используются для блокирования (например, в брандмауэрах или WAF-устройствах) или оповещения (например, для корреляции журналов в SIEM или IDS), стоимость недоброкачественных записей, попавших в систему безопасности, будет очень высокой (потеря времени аналитиков на устранение ложных срабатываний или снижение производительности бизнеса из-за блокировки легитимных веб-сайтов). Белые списки обычно используются для отсеивания наблюдаемых данных из потоков информации об угрозах, которые почти наверняка будут отмечены как ложные срабатывания, если их сопоставить с журналами событий (например, журналами прокси-серверов bluecoat, журналами брандмауэров и т. д.) и использовать для оповещения. Белые списки также очень полезны для создания маркированных наборов данных, необходимых для построения моделей машинного обучения и обогащения оповещений контекстной информацией.
Какие бывают индикаторы компрометации (IOC, Indicators of Compromise)
Классическим примером доброкачественного наблюдаемого списка является 8.8.8.8 (опубликованный открытый DNS-резольвер Google). Он по ошибке попал во многие открытые и коммерческие базы данных анализа угроз, поскольку иногда вредоносные программы используют этот IP для разрешения DNS или пингуют его для проверки подключения.
Существует множество других наблюдаемых параметров, которые обычно попадают в ленты угроз из-за того, как эти ленты получаются/собираются. Ниже перечислены основные источники ложных срабатываний в каналах анализа угроз и способы их выявления, чтобы предотвратить их использование. Большинство коммерческих платформ анализа угроз сегодня неплохо справляются с их выявлением, а доминирующая платформа анализа угроз с открытым исходным кодом MISP становится все лучше благодаря своим спискам предупреждений MISP, но, как вы увидите ниже, есть и возможности для совершенствования.
Доброкачественные входящие наблюдаемые
Доброкачественные входящие наблюдаемые обычно появляются в потоках информации об угрозах, получаемых от распределенных сетевых датчиков, таких как honeypots или журналы брандмауэра. Эти IP-адреса появляются в журналах брандмауэра и обычно являются доброкачественными или, в лучшем случае, считаются шумом. Ниже приведены несколько распространенных типов доброкачественных входящих наблюдаемых. К каждому типу также прилагаются рекомендуемые источники данных или методы сбора, перечисленные в виде подпунктов:
Известные веб-краулеры - веб-краулеры представляют собой серверы, которые просматривают Всемирную паутину и в результате этого процесса могут проникнуть в сети многих компаний или случайно попасть в медовые точки или брандмауэры.
RDNS + DNS-аналитика могут быть использованы для массового перечисления этих данных после выявления шаблонов. Вот пример шаблона для googlebots. Добыча больших коллекций данных rdns может выявить и другие закономерности, на которых следует сосредоточиться. Ниже приведен пример простого PTR-поиска по известному IP-адресу googlebot. Это должно начать выявлять закономерности, которые можно кодифицировать, если у вас есть доступ к большому массиву данных RDNS, как это сделано здесь (или может быть легко сгенерировано).
Известные сканеры портов, связанные с известными проектами или компаниями, занимающимися безопасностью (Shodan, Censys, Rapid7 Project Sonar, ShadowServer и т. д.).
RDNS + DNS-аналитика может быть в состоянии перечислить их в массовом порядке (при условии, что поставщики хотят быть идентифицированы). Пример:
Почтовые серверы - эти серверы отправляют электронную почту, которая иногда по ошибке попадает в ленту угроз.
Чтобы перечислить их, вам понадобится хороший список популярных почтовых доменов. Затем выполните DNS TXT-запрос к этому списку и проанализируйте записи SPF. Скорее всего, потребуется несколько запросов, так как SPF допускает перенаправления и включения. Ниже показаны команды, необходимые для выполнения этой операции вручную для примера gmail.com. Полученные блоки CIDR - это IP-адреса, с которых отправляются электронные письма gmail. Оповещение или блокировка по ним приведет к плохому дню.
Поставщики облачных PaaS - большинство облачных провайдеров публикуют свои IP-пространства через API или в своей документации. Эти списки полезны для составления белых списков, но их необходимо дополнительно фильтровать. В идеале в белые списки следует вносить только те IP-пространства облачных сервисов, которые являются массово используемыми (например, S3, CLOUDFRONT и т. д.), а не IP, которые легко использовать злоумышленникам, например, EC2. Эти белые списки не должны использоваться для исключения доменных имен, которые разрешаются в это IP-пространство, а должны использоваться либо для обогащения оповещений, либо для подавления оповещений на основе IOC из этих диапазонов IP.
- Диапазоны IP-адресов Amazon AWS
- Диапазоны IP-адресов Google Cloud Platform
- Диапазоны IP-адресов Azure
Greynoise - это коммерческий поставщик разведданных "против угроз" (т. е. они выявляют шум и другие доброкачественные наблюдаемые объекты). Они очень хороши в определении типов доброкачественных наблюдаемых объектов, перечисленных выше, поскольку поддерживают глобально распределенный массив датчиков и специально анализируют сетевые события с целью выявления доброкачественной активности.
MISP-warninglists предоставляет многие из этих пунктов сегодня, но они могут быть устаревшими (некоторые из их списков не обновлялись месяцами). В идеале все эти списки должны обновляться путем автоматического сбора данных из авторитетных источников, а не с помощью жестко закодированных данных, хранящихся на github (если только они не обновляются автоматически). Дополнительные советы см. в разделе "Создание/поддержание данных белых списков".
Доброкачественные исходящие наблюдения
Доброкачественные исходящие наблюдаемые данные часто появляются в потоках информации об угрозах, полученных в результате песочницы вредоносных программ, песочницы URL-адресов, исходящего веб-ползания, песочницы электронной почты и других подобных потоков информации об угрозах. Ниже приведены несколько распространенных типов доброкачественных исходящих наблюдаемых. К каждому типу также прилагаются рекомендуемые источники данных или методы сбора, перечисленные в виде подпунктов:
Популярные домены - популярные домены могут попасть в базу данных анализа угроз, особенно если они получены из песочницы вредоносного ПО, поскольку часто вредоносные программы используют доброкачественные домены для проверки связи, а некоторые вредоносные программы, например те, что занимаются мошенничеством с кликами, действуют скорее как веб-гусеницы, посещая множество различных доброкачественных сайтов. Эти же популярные домены очень часто встречаются в большинстве корпоративных сетей и почти всегда являются доброкачественными по своей природе (Примечание: они могут быть взломаны и использованы для размещения вредоносного контента, поэтому здесь необходимо соблюдать особую осторожность).
Ниже представлено несколько источников данных о популярных доменных именах. Каждый из них немного отличается по способу измерения популярности (по количеству веб-посетителей, по частоте встречаемости в данных веб-краулинга, по количеству DNS-запросов или по их сочетанию). Эти списки не следует использовать как таковые для создания белых списков; их необходимо фильтровать/уточнять. Подробнее о рекомендациях по уточнению см. в разделе "Создание/поддержание данных белых списков" ниже.
- Cisco Umbrella топ 1 млн.
- Domcop Top 10m Domains (data) - 10 миллионов лучших сайтов, взятых из Open PageRank Initiative.
- Majestic Million Domains
- Tranco: ориентированный на исследования рейтинг лучших сайтов, защищенный от манипуляций
- MISP-warninglists: dax30 websites, bank websites, university domains, url shorteners, whats-my-ip sites
Популярные IP-адреса - Популярные IP-адреса очень похожи на популярные домены. Они появляются повсюду, и когда они попадают в ленты анализа угроз, то вызывают множество ложных срабатываний. Списки популярных IP-адресов могут быть сгенерированы путем разрешения списков популярных доменов. Эти списки не следует использовать как таковые для создания белых списков; их необходимо фильтровать/очищать. Подробнее о рекомендациях по уточнению см. в разделе "Создание/поддержание данных белых списков" ниже.
Домены бесплатной электронной почты - домены бесплатной электронной почты иногда случайно появляются в лентах аналитики угроз, поэтому полезно вести хороший список таких доменов, чтобы избежать ложных срабатываний. Компания Hubspot предоставляет неплохой список.
Рекламные серверы - рекламные серверы очень часто появляются в лентах URL песочницы, поскольку эти ленты часто получаются путем посещения множества веб-сайтов и ожидания попыток эксплуатации или предупреждений AV. Эти же серверы постоянно появляются в доброкачественном интернет-трафике. Easylist предоставляет такие данные.
CDN IPs - Content Distribution Networks - географически распределенная сеть прокси-серверов или кэшей, обеспечивающих высокую доступность и производительность для распространения веб-контента. Их серверы массово используются для распространения разнообразного веб-контента. Когда IP-адреса сетей CDN попадают в базу данных для анализа угроз, вскоре появляются ложные срабатывания. Ниже приведены несколько источников IP-адресов и доменов CDN.
- Список CDN WPO-Foundation (встроенный в код Python)
- Диапазоны IP-адресов AWS - но отфильтрованные для cloudfront и S3 IP-пространства.
- Диапазоны IP-адресов Cloudflare
- Диапазоны IP-адресов Fastly
- Очень похоже на определение известных веб-краулеров, аналитика DNS PTR-Lookup + DNS A-Lookup может быть использована для массового перечисления после выявления шаблонов.
Списки отзыва сертификатов (CRL) и домены/URL онлайн-протокола статуса сертификатов (OCSP) - при выполнении двоичного файла в "песочнице" вредоносного ПО, если исполняемый файл был подписан, будут установлены соединения с серверами CRL и OCSP. Из-за этого они часто ошибочно попадают в ленты угроз.
- Захват сертификатов с сайтов, входящих в топ Alexa, извлечение OCSP URL. Здесь следует соблюдать осторожность, поскольку противники могут повлиять на данные, собранные таким образом.
- MISP-warninglists: crl-hostname, crl-ip
Серверы NTP - некоторые вредоносные программы обращаются к серверам NTP для проверки соединения или определения реальной даты/времени. Из-за этого серверы NTP часто ошибочно попадают в ленты анализа угроз, полученные из песочницы вредоносного ПО.
В Интернете можно найти списки NTP-серверов (например, NIST Internet Time Servers и NTP Pool Project Servers) и выполнить DNS-резолюцию, чтобы определить все серверы, расположенные за каждым региональным балансировщиком нагрузки.
Корневые серверы имен и серверы имен - Выполните DNS NS-запросы для каждого домена в списке публичных суффиксов, а затем выполните DNS A-запросы для каждого домена-сервера имен, чтобы получить их IP-адреса.
Серверы почтового обмена - Получите список популярных почтовых доменов, а затем выполните поиск MX в популярных почтовых доменах, чтобы получить их соответствующие серверы Mail Exchange (MX). Выполните DNS A-поиск по списку MX-серверов, чтобы получить их IP-адреса.
Серверы STUN - "Session Traversal Utilities for NAT (STUN) - это стандартизированный набор методов, включая сетевой протокол, для обхода шлюзов транслятора сетевых адресов (NAT) в приложениях для передачи голоса, видео, сообщений и других интерактивных коммуникаций в реальном времени. Ниже приведены некоторые источники серверов STUN (некоторые из них, однако, кажутся устаревшими).
- https://www.voip-info.org/stun/
- https://gist.github.com/mondain/b0ec1cf5f60ae726202e
- https://gist.github.com/zziuni/3741933
- http://enumer.org/public-stun.txt
Парковочные IP - IP-адреса, используемые по умолчанию для DNS-A-записей новых зарегистрированных доменов.(maltrails parking_sites)
Популярные открытые DNS-резольверы
Public DNS Server List - содержит большой список открытых рекурсивных серверов имен, которые могут быть полезны для контекста, но не должны вноситься в белый список.
Компании по безопасности, блоги по безопасности и сайты инструментов по безопасности - эти сайты часто появляются в списках рассылки угроз, которые иногда попадают как фиды угроз, и эти домены ошибочно помечаются как вредоносные.
Бит-торрент трекеры - https://github.com/ngosang/trackerslist
Отслеживающие домены - обычно используются известными компаниями, занимающимися маркетингом электронной почты. Часто появляются в информационных лентах угроз, полученных из спама или фишинговых почтовых ям. На практике приводит к высоким показателям ложных срабатываний.
Аналитика PDNS и/или Domain Whois - один из способов выявления таких доменов после обнаружения закономерностей. Ниже приведен пример использования данных Whois для Marketo.com и выявления всех других доменов Marketo для отслеживания электронной почты, которые используют сервер имен Marketo. Этот пример взят из Whoisology, но массовый анализ Whois является более предпочтительным методом.
MISP-warninglists предоставляет некоторые из этих пунктов сегодня, но они могут быть устаревшими. В идеале все эти списки поддерживаются в актуальном состоянии путем автоматического сбора данных из авторитетных источников.
Доброкачественные наблюдения на основе хоста
Доброкачественные наблюдения на основе хоста очень часто появляются в отчетах об угрозах, основанных на песочнице вредоносного ПО. Вот несколько примеров типов наблюдаемых. Пока что мне удалось найти достойные списки доброкачественных наблюдаемых только для хэшей файлов (см. ниже).
- Файловые хэши
- Мьютексы
- Ключи реестра
- Пути к файлам
- Имена служб
Источники данных:
В ведущих академических и отраслевых исследованиях, посвященных обнаружению вредоносных программ, для создания маркированных обучающих данных обычно используется Virustotal. Более подробную информацию см. в этом посте. Эти методы кажутся очень подходящими для создания обучающих данных, но не рекомендуются для создания белых списков для оперативного использования из-за высокой вероятности ложноотрицательных результатов.
Если вашей целью является построение модели машинного обучения на двоичных файлах, вам следует обратить внимание на Ember от Endgame. "Набор данных включает признаки, извлеченные из 1,1 млн двоичных файлов: 900K обучающих образцов (300K вредоносных, 300K доброкачественных, 300K немаркированных) и 200K тестовых образцов (100K вредоносных, 100K доброкачественных)".
Исключения из белых списков
Существует множество наблюдаемых, которые мы никогда не захотим вносить в белый список из-за их популярности или важности. Их следует хранить в списке исключений из белого списка (также известном как greylist). Ниже приведены некоторые примеры:
Домены виртуального хостинга и домены с динамическим DNS - на эти базовые домены никогда не следует подавать оповещения, поскольку многие из них входят в список Alexa top 1m и будут невероятно шумными. Но поддомены этих доменов - честная игра для оповещения, так как они легко контролируются противником и часто злоупотребляются. Ниже приведены некоторые источники этой информации, но выявление основных провайдеров и сбор информации с их веб-сайтов или API было бы лучшим способом сохранить эту информацию свежей.
- Общий хостинг - Maltrails бесплатный веб-хостинг
- Динамический DNS - Maltrails DynDNS
IP-адреса DNS-воронок
- https://tisiphone.net/2017/05/16/consolidated-malware-sinkhole-list/
- github.com/brakmic/Sinkholes
- sinkdb.abuse.ch
- MISP warninglists sinkholes
- DGA-IP sinkhole
Создание / ведение данных белых списков
Формирование белых списков должно быть автоматизировано, чтобы их можно было поддерживать. Из этого правила могут быть исключения для тех вещей, которые вы хотите обеспечить постоянное присутствие в белом списке, но для всего остального, в идеале, они должны быть собраны из авторитетных источников или сгенерированы на основе надежных аналитических методов. Не всегда можно слепо доверять каждому источнику данных, перечисленному выше. Для некоторых из них потребуется автоматическая проверка, фильтрация или аналитика. Ниже приведены несколько советов о том, как сделать это эффективно.
- Каждая сущность в белом списке должна быть классифицирована (какой это тип записи в белом списке?) и иметь источник (откуда она взялась?), чтобы мы точно знали, как она туда попала (т. е. какой источник данных за это отвечает) и когда она была добавлена/обновлена. Это поможет в случае возникновения проблем, связанных с белым списком, и позволит найти конкретный источник проблемы.
- Извлекайте записи из белых списков с сайтов-источников и анализируйте/извлекайте данные оттуда. По возможности избегайте одноразовых дампов записей белого списка, поскольку они очень быстро устаревают. Если вы включаете одноразовые дампы, обязательно сохраняйте их историю.
- Несколько массовых наборов данных будут очень полезны для аналитики, чтобы расширить или отфильтровать различные белые списки
- Массовое активное разрешение DNS (A-lookups, MX-lookups, NS-lookups и TXT-lookups).
- Массовые данные RDNS (либо от scans.io, либо собранные самостоятельно).
- Объемные данные Whois - их можно приобрести у нескольких продавцов.
- Пассивные данные DNS (PDNS) - данные PDNS можно приобрести у нескольких поставщиков или создать собственную сеть для сбора и хранения этих данных.
- Поиск/анализ владельцев Netblock (Maxmind) будет полезен для частичной проверки.
- Чтобы белый список оставался свежим, его следует обновлять как минимум ежедневно. Источники данных могут меняться чаще или реже.
- Будьте осторожны при обновлении белого списка. Перед заменой старого списка добавьте проверки на корректность, чтобы убедиться, что новый белый список был создан правильно. Ценой неудачной загрузки белого списка будет масса ложных срабатываний (к сожалению, мне пришлось усвоить этот урок на собственном опыте...).
- Популярные списки доменов нельзя принимать за чистую монету. Вредоносные домены постоянно попадают в эти списки. Для борьбы с этим используйте технику N-day stable top-X - например, Stable 6-month Alexa top 500k. Создайте производный список из топ-доменов Alexa, в котором отфильтруйте только те домены, которые были в списке Alexa top 500k каждый день в течение последних 6 месяцев. Эта техника широко используется в литературе по обнаружению вредоносных доменов как способ создания высококачественных доброкачественных помеченных данных. Она не идеальна и может нуждаться в настройке в зависимости от того, как используется белый список. Эта техника требует хранения исторических списков популярных доменов. На Wayback Machine есть большое историческое зеркало данных Alexa top1m, которое может подойти для создания собственной коллекции.
- Массовое разрешение DNS этих списков также может быть полезно для создания списков популярных IP-адресов, но только при использовании концепции N-day stable top-X или при соблюдении особой осторожности в их использовании.
- Используйте набор исключений из белого списка для удаления категорий доменов/IP, которые вы никогда не хотите включать в белый список. Набор исключений из белого списка также должен быть свежим благодаря автоматическому сбору данных из авторитетных источников (например, по возможности скрести динамические DNS-провайдеры и веб-сайты виртуального хостинга, также может работать PDNS / Whois-аналитика).
- И наконец, будьте осторожны при составлении белых списков и подумайте, какие аспекты данных контролируются противником. Это те вещи, которым мы должны быть осторожны и не доверять слепо. Некоторые примеры: Записи RDNS можно сделать обманчивыми, особенно если противник знает, что они используются для белых списков. Например, противник может создать PTR-записи для принадлежащего ему пространства IP-адресов, идентичные RDNS googlebot от Google или RDNS census от Shodan, НО он не может изменить запись DNS A, сопоставляющую это доменное имя с его IP-пространством. Для этого, как правило, также требуется прямой поиск (A Lookup) ИЛИ проверка владения нетблоком.
Заключение
В заключение следует отметить, что белые списки полезны для фильтрации наблюдаемых данных из списков разведки угроз перед корреляцией с данными о событиях, создания маркированных наборов данных для моделей машинного обучения и обогащения разведки угроз или оповещений контекстной информацией. Создание и ведение таких списков может потребовать много работы. Необходимо тщательно следить за тем, чтобы не зайти слишком далеко и не включить в белый список домены или IP-адреса, которые легко контролируются противником.