Визуализация графов в Neo4j и исследование кибербезопасности с GraphKer

Автор Категория ,
Визуализация графов в Neo4j и исследование кибербезопасности с GraphKer

Продвигая наш новый курс по графовой аналитике больших данных в бизнес-приложениях, сегодня поговорим про визуализацию графов в NoSQL-СУБД Neo4j. А также рассмотрим, как с помощью GraphKer получить визуальное отображение графа данных о информационной безопасности: уязвимости, атаки и прочие нарушения cybersecurity.

ТОП-5 способов визуализации графов в Neo4j

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

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

Некоторые из них непосредственно встроены в Neo4j, а какие-то являются сторонними подключаемыми продуктами. Далее мы рассмотрим те средства, которые интегрированы в эту графовую СУБД или созданы специально для нее.

Например, браузер Neo4j – интерактивная командная Cypher-оболочка, которая позволяет взаимодействовать с графом и визуализировать информацию в нем. Этот браузер входит в состав Neo4j и доступен во всех выпусках и версиях системы. По сути, он представляет собой инструмент разработчика для выполнения запросов Cypher. Браузер позволяет отображать результаты запросов в графическом или табличном формате. Хотя возможности визуализации в этом браузере ограничены, он отлично подходит для быстрого проектирования и оптимизации запросов Cypher.

Однако, Neo4j Browser имеет следующие недостатки: он требует знаний языка запросов Cypher, а также не позволяет сохранять, встраивать и совместно использовать полученные визуализации.

Если Browser больше подходит для разработчиков, то Bloom – отличный инструмент для дата-аналитиков, которым нужно динамически визуализировать большие графы. Bloom поддерживает текстовый поиск, позволяя людям с небольшим знанием Cypher исследовать графы Neo4j. Возможности по редактированию визуального отображения здесь намного богаче, а также можно сохранять визуализации и использовать их совместно.

Neovis.js – библиотека JavaScript, которая помогает разработчикам создавать визуализации графиков из данных Neo4j. Являясь оболочкой для популярной библиотеки Vis.js, он обеспечивает мост между Cypher и настраиваемой визуализацией графов в браузере. Neovis.js позволяет напрямую подключаться к экземпляру графовой СУБД, чтобы получать данные в реальном времени.

Еще одной открытой JavaScript-библиотекой от сообщества является popoto.js. Она основана на библиотеке D3.js, которая поддерживает большое количество визуализаций, включает интерактивный и настраиваемый визуальный конструктор Cypher-запросов с прямым подключением к Neo4j.

NeoDash – это графическое веб-приложение для создания JSON-дэшбордов из Neo4j за считанные минуты. При прямом подключении к Neo4j через Bolt, он заполняет отчеты по результатам Cypher-запросов, которые могут быть представлены в виде таблиц, графиков, гистограмм и пр. Пользователи могут в режиме онлайн выбирать параметры запроса для генерации отчетов, а также совмещать визуализации с текстом Markdown, чтобы создать интерактивный документ с использованием данных графа. Можно использовать NeoDash отдельно в веб-браузере или установить его в десктопном приложении Neo4j.

Разумеется, это далеко не единственные средства визуализации графов в Neo4j. В частности, интересным инструментом является GraphKer, который имеет специфическое прикладное назначение в сфере кибербезопасности. Что именно он представляет собой и как связан с Neo4j, мы рассмотрим далее.

Зачем вам GraphKer или как построить cybersecurity-граф

GraphKer – это бесплатный инструмент с открытым исходным кодом, предоставляющий подробную и обновленную базу данных графов кибербезопасности с использованием Neo4j. С GraphKer можно получить самое последнее обновление уязвимостей, слабых мест, шаблонов атак и платформ кибербезопасности от MITER и NIST, полезным и удобным способом.

GraphKer использует новый подход к онтологии для потоков данных, чтобы усилить способы извлечения знаний, которые предоставляют графовые базы данных. Используя Neo4j, можно искать эти графы быстрым и удобным способом, чтобы обсуждать их с пользователями, которые не имеют никакого представления о кибербезопасности и графовых СУБД. В частности, это особенно актуально в контексте недавней уязвимости в популярной библиотеке Apache Log4j, о чем мы писали здесь.

GraphKer использует Neo4j как платформу собственной графовой базы данных и процедуры библиотеки APOC для обеспечения эффективного способа хранения и извлечения данных.

Чтобы запустить GraphKer, нужно сперва установить Neo4j, создать и настроить графовую базу данных. Далее следует установить Python для GraphKer, а также приложения визуализации графов, например, ранее рассмотренные Bloom, Browser и пр. Наконец, можно перейти в терминал Linux или Windows и запустить GraphKer. Уже через 5-15 минут вы получите свежие потоки cybersecurity-данных об уязвимостях, атаках и пр.: CVE, CWE, CAPEC, CPE.

Полученный список можно визуализировать и детализировать его узлы с помощью Neo4j Bloom.

обучение Neo4j курсы дата-аналитиков, GraphKer Neo4j Bloom
Визуализация графа уязвимостей с GraphKer и Neo4j Bloom

Узнайте больше подробностей про использование Neo4j для графовой аналитики больших данных в бизнес-приложениях на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков больших данных в Москве:

Источники

  1. https://neo4j.com/developer-blog/15-tools-for-visualizing-your-neo4j-graph-database/
  2. https://medium.com/neo4j/how-to-have-a-cybersecurity-graph-database-on-your-pc-366884ac6a08
  3. https://github.com/amberzovitis/GraphKer