Визуализация атак, аномалий и нарушений информационной безопасности с помощью OpenGraphiti

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

Интерактивная стена безопасности в офисе Cisco

Однако как и любая карта атак, а у меня в коллекции их уже 34, любая такая визуализация малоэффективна в реальной жизни. Показать начальству, показать журналистам, включить в какой-либо ролик… Это все полезно, но в практической деятельности применимо мало. Обычно у вас собственные наборы данных, которые генерятся вашими средствами защиты. И вам интересно то, что происходит в вашей сети или направлено на вашу сеть, но уж точно не красивые карты с «ударами баллистических ракет», которые рисуются абсолютным большинством компаний, предоставляющих сервисы визуализации атак.

Карта активности вредоносных программ от Cisco

Одним из решений возникшей задачи является open source инструментарий OpenGraphiti, разработанный компанией OpenDNS, являющейся сейчас частью компании Cisco. OpenGraphiti — это бесплатный движок для 3D-визуализации данных, который может быть использован аналитиками для отображения и анализа семантических сетей. Наличие собственного API позволяет эффективно задействовать OpenGraphiti в собственных целях, к которым, в случае с информационной безопасностью, можно отнести:

  • визуализация ботнетов
  • визуализация DDoS-атак
  • визуализация спамерских рассылок
  • визуализация хакерских кампаний
  • визуализация движения вредоносной программы/хакера по сети
  • визуализация уязвимостей
  • визуализация беспроводных устройств, в т.ч. и несанкционированных
  • визуализация IoT-устройств
  • визуализация информационных потоков внутри корпоративной или ведомственной сети, в том числе и в части анализа электронной почты
  • визуализация связей в социальных сетях
  • и т.п.

Вот как, например, выглядит часть семантической сети шпионской кампании Dark Hotel, построенная с помощью OpenGraphiti:

Визуализация кампании Dark Hotel

Необходимо дать некоторые пояснения к цветовой легенде данной семантической сети. Красным отображаются домены, к которым был направлен первоначальный запрос, а синим — финальная точка, к которой в итоге был перенаправлен запрос через промежуточные узлы, отмеченные белым. Стоит обратить внимание на эти отличия, так как они лишний раз демонстрируют, что банальные «черные» списки в прокси, системах контроля доступа к Интернет или даже в МСЭ, ориентированы на борьбу именно с «красными» узлами, полностью игнорируя сложную цепочку взаимодействия в вредоносной инфраструктуре.

А вот так выглядит семантическая сеть инфраструктуры ZeuS:

Визуализация инфраструктуры ZeuS

Наконец, вот так выглядит распространение уязвимости Shellshock:

Распространение уязвимости Shellshock

Разумеется, лучше всего суть семантической сети отображает не статическая картинка, а динамическая изменяющаяся карта, которая может менять свой масштаб и детализацию в зависимости от задач, стоящих перед аналитиками. Например, вот так видит сайт WikiLeaks и взаимодействие с ним:

Что такое семантическая сеть?

Семантическая сеть — это, как говорит Википедия, информационная модель предметной области, имеющая вид ориентированного графа. Этот граф состоит из вершин (узлов), которые представляют собой изучаемые сущности. Вот как, например, выглядит семантическая карта понятий отечественного ГОСТ Р ИСО/МЭК 15408, известного также как «Общие критерии».

Семантическая сеть на примере ГОСТ Р ИСО/МЭК 15408

Если быть более практичным и применить семантическую сеть к визуализации атак и иных аномалий, то в качестве сущностей или вершин графа могут рассматриваться различные характеристики серверов и узлов в сети — Web, почтовые, NTP, SSH и т.п. Другой пример — учетные записи в социальных сетях или ящики электронной почты. Ребра или дуги такого графа (соединения между узлами) описывают отношения между сущностями. Примерами таких ребер можно назвать пропускную способность, время, число соединений/сообщений и т.п.

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

  • Место работы
  • Дата создания учетной записи (позволяет вычислять ботов)
  • Активность учетной записи
  • Религия
  • Группы, в которых участвуют интересующие субъекты
  • И т.п.

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

  • время написания писем (или отправки сообщений с помощью мессенджеров)
  • способ коммуникации (e-mail, skype, Jabber и т.п.)
  • устройство (личное или служебное)
  • и т.п.

Семантическая сеть внутрикорпоративных коммуникаций

Если мы хотим проанализировать сетевое взаимодействие, то в качестве изучаемых сущностей мы можем взять IP-адреса, сервера, хосты, МСЭ, маршрутизаторы, прокси, автономные системы и т.д. А в качестве отношений (ребер графа) можем анализировать используемые в сетевом взаимодействии порты, имя узла (hostname), страну (гео-привязка), автономную система (AS), домен. Обратите внимание, автономная система упоминается дважды — и в качестве сущности, и в качестве отношения. Почему так? Все зависит от того, что мы хотим проанализировать. Если нас интересует, как циркулирует трафик между различными автономными системами, то они будут интересовать нас именно как сущности, то есть узлы семантической сети. А если нас интересует откуда чаще всего нас атакуют, то автономная система превращается для нас в отношение, то есть ребра графа.

К преимуществам, которыми обладает OpenGraphiti, можно отнести:

  • предоставление контекста для поиска различных взаимосвязей между интересующими нас сущностями, включая и различные аномалии
  • «рассказ» истории вашей защищенности на основе Больших Данных
  • возможность сравнения различных атак и кампаний
  • помощь в атрибуции злоумышленников и выяснении точек входа для различных нарушений ИБ
  • показ «шоу» в реальном времени, что позволяет соотнести атаку или иное нарушение с различными новостями из мира безопасности (публикацией сведений об уязвимостях, новых атаках и т.п.).

Если чуть больше внимания уделить первому преимуществу, то с помощью визуализации мы можем идентифицировать использование DGA (Domain Generation Algorithms), которые используются не только в целях маркетинга, но и вредоносными программами. Сайты-однодневки, домены которых создаются автоматически и в больших количествах с целью обхода механизма «черных» списков.

Примеры семантических карт для DGA-сайтов

Еще раз повторюсь, что OpenGraphiti — это бесплатный open source инструмент, требования к которому достаточно просты:

  • MacOS или Linux
  • Clang++ или g++
  • Python 2.7.x

Инструкция по инсталляции и настройке OpenGraphiti доступна на сайте www.opengraphiti.com. Сама по себе конструкция настраиваема и ее можно интегрировать в свои центры мониторинга (SOC), обвязывая ее своими данными. Вот так, например, OpenGraphiti работает на сайте OpenDNS (требуется Chrome):

Применение OpenGraphiti на сайте OpenDNS

Очевидно, что при росте объема данных растет и сложность карты. Ею можно управлять, используя группирование сущностей или выборку. Например, я могу визуализировать не всю сеть на миллионы IP-адресов (как в сети Cisco), а наборы узлов, сгруппированные по тем или иным критериям — географическая привязка, принадлежность к департаменту, важность узла и т.п. Это позволяет не сразу погружаться в детали, а охватить картину с высоты птичьего полета с последующим погружением в нужную нам в данный момент времени область.

Вот как, например, выглядит карта ботнета Zbot:

Карта ботнета Zbot

С помощью функции масштабирования по различным параметрам мы можем изменять уровень детализации той же самой карты:

Карта ботнета Zbot

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

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

Комментарии (0)

© Habrahabr.ru