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

Белые списки - полезная концепция корреляции аналитики угроз, так как безобидные наблюдаемые объекты могут очень легко попасть в потоки индикаторов аналитики угроз, особенно. поступают от поставщиков или поставщиков с открытым исходным кодом, которые не проявляют такой осторожности, как следовало бы. Если эти каналы аналитики угроз используются для блокировки (например, в брандмауэрах или устройствах WAF) или для оповещения (например, корреляция журналов в SIEM или IDS), стоимость безопасных записей, попадающих в систему контроля безопасности, будет очень высокой (потраченное время аналитика на сортировка ложных срабатываний предупреждений или снижение производительности бизнеса для заблокированных легитимных веб-сайтов). Белые списки обычно используются для фильтрации наблюдаемых из каналов аналитики угроз, которые почти наверняка были бы отмечены как ложные срабатывания, если бы они были пересечены с журналами событий (например, журналы прокси-сервера bluecoat, журналы брандмауэра и т. Д.) И использовались для оповещения. Белые списки также очень полезны для создания помеченных наборов данных, необходимых для построения моделей машинного обучения и обогащения предупреждений контекстной информацией.

Классическим примером доброкачественной наблюдаемой является 8.8.8.8 (опубликованный Google открытый преобразователь DNS). Это по ошибке попало во многие каналы с открытым исходным кодом и коммерческие аналитические отчеты об угрозах, поскольку иногда вредоносные программы используют этот IP-адрес для разрешения DNS или пингуют его для проверки подключения. Есть много других наблюдаемых, которые обычно попадают в потоки угроз из-за того, как получаются / собираются потоки угроз. Ниже приводится краткое изложение основных источников ложных срабатываний каналов аналитики угроз и способов их выявления и предотвращения их использования. Большинство коммерческих платформ анализа угроз довольно хорошо распознают их сегодня, и доминирующая платформа анализа угроз с открытым исходным кодом MISP становится все лучше с ее списками предупреждений MISP, но, как вы обнаружите ниже, есть некоторые возможности для улучшения.

Доброкачественные входящие наблюдаемые

Доброкачественные входящие наблюдаемые объекты обычно появляются в потоках аналитических данных об угрозах, полученных от распределенных сетевых датчиков, таких как приманки или журналы межсетевого экрана. Эти IP-адреса отображаются в журналах брандмауэра и, как правило, безопасны или в лучшем случае считаются шумом. Ниже приведены несколько распространенных типов доброкачественных входящих наблюдаемых. К каждому типу также прилагаются рекомендуемые источники данных или методы сбора, перечисленные в подпунктах:

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

  • После выявления шаблонов можно использовать аналитику RDNS + DNS для их массового перечисления. Вот пример паттерна для гугл-ботов. Анализ больших коллекций данных 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.

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

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

Доброкачественные исходящие наблюдаемые

Доброкачественные исходящие наблюдаемые объекты часто появляются в каналах аналитики угроз, полученных из песочницы вредоносных программ, песочницы URL, сканирования исходящих веб-сообщений, песочницы электронной почты и других подобных каналов угроз. Ниже приведены несколько распространенных типов доброкачественных исходящих наблюдаемых. К каждому типу также прилагаются рекомендуемые источники данных или методы сбора, перечисленные в подпунктах:

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

Популярные IP-адреса. Популярные IP-адреса очень похожи на популярные домены. Они появляются повсюду, и когда они попадают в поток данных об угрозах, они вызывают много ложных срабатываний. Списки популярных IP-адресов могут быть созданы на основе разрешения списков популярных доменов. Эти списки не следует использовать как есть для внесения в белый список; их нужно фильтровать / уточнять. См. Раздел «Создание / поддержка данных белого списка» ниже для получения дополнительных сведений о рекомендациях по уточнению.

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

Рекламные серверы. Рекламные серверы очень часто появляются в фидах песочницы URL, поскольку эти фиды часто получаются при посещении многих веб-сайтов и ожидании попыток использования или предупреждений AV. Эти же серверы постоянно появляются в безвредном интернет-трафике. Easylist предоставляет такие данные.

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

Списки отозванных сертификатов (CRL) и домены / URL-адреса Online Certificate Status Protocol (OCSP) - при выполнении двоичного файла в изолированной программной среде вредоносного ПО и исполняемый файл был подписан, будут установлены соединения с серверами CRL и OCSP. . Из-за этого они часто по ошибке попадают в потоки угроз.

  • Получите сертификаты с лучших сайтов Alexa, извлеките URL-адрес OCSP. Этот старый пост Alienvault описывает процесс (наряду с другим подходом, использующим ныне несуществующую обсерваторию EFF SSL), и это репозиторий github предоставляет код для этого. Здесь следует проявлять осторожность, поскольку злоумышленники могут повлиять на собираемые таким образом данные.
  • Crl-ip-hostname списков предупреждений MISP

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

Корневые серверы имен и серверы имен TLD

  • Выполните NS-поиск DNS для каждого домена в Списке публичных суффиксов, а затем выполните A-поиск DNS для каждого домена сервера имен, чтобы получить их IP-адреса.

Серверы почтового обмена

  • Получите список популярных почтовых доменов, а затем выполните поиск MX для популярных почтовых доменов, чтобы получить их соответствующие серверы почтового обмена (MX). Выполните A-поиск DNS в списке серверов MX, чтобы получить их IP-адреса.

Серверы STUN - Утилиты обхода сеанса для NAT (STUN) - это стандартизированный набор методов, включая сетевой протокол, для обхода шлюзов транслятора сетевых адресов (NAT) в приложениях передачи голоса и видео в реальном времени. , обмен сообщениями и другое интерактивное общение . через https://en.wikipedia.org/wiki/STUN. Ниже приведены некоторые источники серверов STUN (хотя некоторые из них кажутся старыми).

Парковочные IP-адреса - IP-адреса, используемые в качестве IP-адресов по умолчанию для записей DNS-A для новых зарегистрированных доменов.

Популярные открытые преобразователи DNS

Сайты компаний по безопасности, блоги по безопасности и сайты с инструментами безопасности. Эти сайты часто появляются в списках рассылки угроз, которые иногда обрабатываются как каналы угроз, и эти домены ошибочно помечаются как вредоносные.

Bit Torrent Trackers - github.com/ngosang/trackerslist

Домены отслеживания - обычно используются известными компаниями, занимающимися почтовым маркетингом. Часто появляется в потоках информации об угрозах, полученных из ям со спамом или фишингом. На практике приводит к высокому уровню ложноположительных результатов.

  • PDNS и / или Domain Whois-аналитика - один из способов выявления этих закономерностей. Ниже приведен пример использования данных Whois для Marketo.com и определения всех других доменов отслеживания электронной почты Marketo, которые используют сервер имен Marketo. Этот пример взят из Whoisology, но массовый майнинг Whois является предпочтительным методом.

Примечание. Списки предупреждений MISP сегодня содержат некоторые из этих элементов, но они могут быть устаревшими. В идеале все эти списки обновляются за счет автоматического сбора из авторитетных источников. См. Дополнительные советы в разделе Создание / поддержка данных белого списка.

Доброкачественные наблюдаемые на основе хоста

Доброкачественные Observables на основе хоста очень часто появляются в каналах аналитики угроз, основанных на изолированной программной среде вредоносных программ. Вот несколько примеров наблюдаемых типов. Пока что я нашел только достойные безобидные списки хэшей файлов (см. Ниже).

  • Файловые хэши
  • Мьютексы
  • Ключи реестра
  • Пути к файлам
  • Названия сервисов

Источники данных:

В ведущих академических и отраслевых исследованиях по обнаружению вредоносных программ обычно используется Virustotal для создания маркированных обучающих данных. Подробности смотрите в этом сообщении. Эти методы кажутся очень подходящими для создания обучающих данных, но не рекомендуются для внесения в белый список для оперативного использования из-за высокой вероятности ложноотрицательных результатов.

Примечание. Если вашей целью является построение модели машинного обучения на основе двоичных файлов, вам следует настоятельно рекомендовать Endgame Ember. Набор данных включает функции, извлеченные из 1,1 млн двоичных файлов: 900 тыс. Обучающих образцов (300 тыс. Вредоносных, 300 тыс. Безопасных, 300 тыс. Немаркированных) и 200 тыс. Тестовых образцов (100 тыс. Вредоносных, 100 тыс. Безопасных). См. EMBER: Открытый набор данных для обучения статическим моделям машинного обучения вредоносных программ PE для получения дополнительных сведений.

Исключения из белого списка

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

Домены с общим хостингом и домены с динамическим DNS - эти базовые домены никогда не должны получать уведомления, так как многие из них находятся в списке Alexa top 1m и будут очень шумными. НО их поддомены - это честная игра для оповещения, поскольку они легко контролируются злоумышленниками и часто ими злоупотребляют. Ниже приведены некоторые источники этой информации, но определение основных поставщиков и очистка их веб-сайтов или API-интерфейсов было бы лучшим способом поддерживать их в актуальном состоянии.

IP-адреса DNS Sinkhole

Создание / поддержка данных белого списка

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

  • Каждая сущность в белом списке должна быть классифицирована (какой это тип записи в белом списке?) И получена (откуда она взялась?), Чтобы мы точно знали, как она попала туда (то есть какой источник данных был ответственным) и когда он был добавлен / обновлено. Это поможет, если когда-либо возникнет проблема, связанная с белым списком, чтобы можно было устранить конкретный источник проблемы.
  • Получите записи белого списка с исходных сайтов и проанализируйте / извлеките данные оттуда. По возможности избегайте одноразовых дампов записей из белого списка, так как они очень быстро устареют. Если вы включаете разовые дампы, обязательно сохраните их происхождение.
  • Несколько наборов массовых данных будут очень полезны для аналитики для расширения или фильтрации различных белых списков.
  • Массовое активное разрешение DNS (A-поиск, MX-поиск, NS-поиск и TXT-поиск). Для этого могут пригодиться Adns.
  • Массовые данные RDNS (либо из scans.io, либо собранные самостоятельно).
  • Массовые данные Whois. Их можно приобрести у нескольких поставщиков. Вот несколько: whoisxmlapi.com, iqwhois.com, jsonwhois.com, whoisdatabasedownload.com и research.domaintools.com.
  • Данные пассивного DNS (PDNS). Данные PDNS можно приобрести у нескольких поставщиков, или вы можете использовать свою собственную сеть для сбора и хранения этих данных. Вот некоторые поставщики PDNS: farsightsecurity.com, Deteque.com, circl.lu, riskiq.com, passivedns.mnemonic.no и coresecurity.com (ранее Damballa).
  • Поиск и аналитика владения сетевым блоком (Maxmind) будут полезны для некоторых проверок.
  • Белый список следует обновлять не реже одного раза в день, чтобы он оставался актуальным. Могут быть источники данных, которые меняются более или менее часто, чем это.
  • БУДЬТЕ ОСТОРОЖНЫ при обновлении белого списка. Добавьте проверки работоспособности, чтобы убедиться, что новый белый список был создан правильно, прежде чем заменять старый. За неудачную загрузку белого списка придется заплатить массу ложных срабатываний (к сожалению, мне пришлось усвоить этот урок на горьком опыте…).
  • Списки популярных доменов нельзя принимать за чистую монету. Вредоносные домены постоянно попадают в эти списки. Используйте технику стабильной вершины X за N дней - например, Стабильный 6-месячный топ-500k Alexa - для борьбы с этим. Создайте производный список из лучших доменов Alexa, где вы фильтруете список только для доменов, которые были в списке лучших 500k Alexa каждый день в течение последних 6 месяцев. Этот метод обычно используется в литературе по обнаружению вредоносных доменов как способ создания высококачественных данных с доброкачественной маркировкой. Он несовершенен, и его, возможно, потребуется настроить в зависимости от того, как используется белый список. Этот метод требует ведения исторических списков популярных доменов. Wayback Machine, похоже, имеет большое историческое зеркало данных Alexa top1m, которое может быть подходящим для начальной загрузки вашей собственной коллекции.
  • Массовое DNS-разрешение этих списков также может быть полезно для создания списков популярных IP-адресов, но только при использовании концепции N-day стабильного top-X или при условии, что они используются с большой осторожностью.
  • Используйте набор исключений из белого списка для удаления категорий доменов / IP-адресов, которые вы никогда не хотите включать в белый список. Набор исключений из белого списка также должен обновляться за счет автоматического сбора из авторитетных источников (например, парсинга динамических DNS-провайдеров и веб-сайтов с общим хостингом, где это возможно, аналитика PDNS / Whois также может работать).
  • Наконец, будьте осторожны при создании белых списков и подумайте о том, какие аспекты данных контролируются злоумышленником. Это вещи, которым мы должны быть осторожны, чтобы не доверять слепо. Некоторые примеры: записи RDNS могут вводить в заблуждение, особенно если злоумышленник знает, что они используются для внесения в белый список. Например, злоумышленник может создавать записи PTR для своего IP-адресного пространства, которые идентичны RDNS Googlebot или Shodan census RDNS, НО он не может изменить запись A DNS, отображающую это доменное имя обратно в свое IP-пространство. Для них обычно также необходим прямой поиск (A Lookup) ИЛИ проверка владения сетевым блоком.

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

Как всегда, обратная связь приветствуется, поэтому, пожалуйста, оставьте сообщение здесь, на Medium или @ me на twitter!

–Джейсон
@jason_trost

Изначально это было размещено в моем личном блоге covert.io.