Quantickle – Визуализация сетевых графов для аналитики угроз
Инструмент визуализации сетевых графов на основе браузера, построенный на Cytoscape.js. Quantickle помогает визуализировать и анализировать связанные данные любого типа, но ориентирован на аналитику угроз.
Установка
Содержание
Отказ от ответственности
Этот проект в значительной степени создан методом «vibecoding», поэтому соблюдайте соответствующие меры предосторожности.
Код был проверен реальными программистами, но не защищён от уязвимостей. Не открывайте внешний доступ без тщательного аудита безопасности.
Обзор
Quantickle — это интерактивный инструментарий, работающий в первую очередь в браузере, для построения и изучения сетевых графов. Фронтенд (Cytoscape.js + пользовательский интерфейс) отвечает за отрисовку, редактирование и выполнение раскладок, а лёгкий Express-сервер отдаёт интерфейс, проксирует вызовы интеграций и опционально сохраняет графы в Neo4j. Иными словами, браузер управляет состоянием графа и визуализацией, тогда как сервер предоставляет ресурсы и интеграции по мере необходимости.
✨ Ключевые возможности
- По умолчанию без серверного хранилища: Графы живут в вашем браузере, пока вы не экспортируете их или не синхронизируете через интеграции.
- Несколько способов ввода данных:
- Загрузка CSV/списка рёбер
- Интеграция через REST API
- Прямой ввод данных
- Высокая производительность:
- Рендеринг WebGL для больших графов
- Прогрессивная загрузка
- Автоматическая оптимизация производительности
- Гибкая визуализация:
- Более 20 алгоритмов раскладки
- Настраиваемые стили узлов и рёбер
- Поле информации для узлов с поддержкой Markdown
- Динамическая фильтрация
- Графы учитывают хронологию (таймлайны, окраска по времени)
- Стили кривых рёбер:
- Редактор рёбер позволяет выбирать изогнутые (
bezier), прямые, пучковые (unbundled-bezier), такси и округлённые такси.
- Cytoscape также поддерживает стили
haystack и segments через настраиваемые стили.
- Интерактивный интерфейс:
- Элементы управления масштабом/панорамированием
- Перетаскивание узлов
- Инструменты выделения
- Поиск
- Граф не сдвигается при перемещении отдельных узлов
- Контейнерные узлы для группировки связанных элементов
- Добавление выносок и изображений для контекста
- Все поверхности могут иметь настраиваемые иконки и фоны
- Связываемые графы:
- Добавьте узлы-графы для создания точки перехода к другому графу
- Целевой граф отобразит кнопку «Назад»
- Связывайте графы в древовидные структуры и дашборды
Возможности и примеры
Вот несколько примеров того, что умеет Quantickle:
Настройка всего: фоны, иконки, выноски, типы узлов и рёбер, а также области исследования
Выбор из более чем 20 алгоритмов раскладки (например, Klay vs Euler)
Заключение части графа в контейнерные узлы с отдельным стилем и раскладкой
Присвоение меток времени узлам для создания временных шкал или графов, раскрашенных по времени
Связывание графов для создания навигационных дашбордов и логических связей
Сохранение в JSON. Экспорт в CSV, PDF, PNG или статический HTML. Импорт CSV, вставка или загрузка данных из интеграций
Опциональное сохранение в базы данных Neo4j
Запросы к интеграциям, например VirusTotal или OpenAI — результаты возвращаются в отдельных контейнерах
Основные понятия
Quantickle опирается на небольшой набор общих понятий, связывающих документацию:
-
Система координат и пространственные раскладки — абсолютные раскладки Quantickle и раскладки с учётом глубины используют куб 0–1000 для координат x, y и z. Полные правила пространственного размещения и освещения см. в COORDINATE_SYSTEM.md.
-
Управление файлами графов и проектные файлы — файлы .qut представляют собой каноническое сохранённое состояние; они хранят узлы, рёбра, метаданные и иерархию контейнеров.
-
Интеграция с Neo4j — сервер может сохранять и извлекать графы из Neo4j, включая снимки метаданных. Конфигурацию и описание рабочего процесса см. в NEO4J_INTEGRATION_README.md.
Модель данных
Граф Quantickle — это набор узлов и рёбер с метаданными, которые управляют раскладкой, стилизацией и группировкой.