1. Введение #
Версия Suri Oculus 3.0 включает полностью обновлённый REST API.
Backend реализован на C++17 + Pistache и оптимизирован для анализа трафика, управления Suricata, работы с IoC и построения визуализаций в реальном времени.
В этой статье — полный обзор всех маршрутов API, сгруппированных по подсистемам:
- Events
- Rules и управление Suricata
- Threats (IoC)
- Statistics
- Network Map
API стабилен, совместим с предыдущими версиями и готов для интеграции с SIEM, SOC-панелями и автоматизацией.
2. Архитектура сервера #
Backend может запускаться двумя способами:
Прямой запуск:
oculus-serverКак сервис systemd:
systemctl start oculus-server
Внутри сервер:
- использует
Pistache::Rest::Routerдля регистрации маршрутов; - обрабатывает CORS через
OPTIONS; - работает в нескольких потоках (по умолчанию 2);
- взаимодействует с Redis, Suricata и локальными файлами IoC.
Формат ответов: JSON.
3. Events API #
Пространство имён: Events
3.1 Основные операции с событиями #
| Метод | Путь | Описание |
|---|---|---|
| GET | /events/:event_type | Получить события типа alert, flow, dns, http, tls, ssh, ftp |
| GET | /events/count/:event_type | Количество событий |
| GET | /events/:event_type/:event_id | Событие по ID |
| GET | /events/search/:flow_id | Поиск по flow_id |
| DELETE | /events/delete/:event_type | Удалить все события типа |
| OPTIONS | /events/delete/:event_type | Preflight |
| GET | /events/find/:event_type | Расширенный поиск |
| GET | /events/check/:event_type | События за последние N часов |
| GET | /events/fast | Содержимое fast.log |
3.2 Метрики (события/час) #
Используются в графиках:
/events/alertsbyhours/events/anomaliesbyhours/events/flowsbyhours/events/dnsbyhours/events/tlsbyhours/events/httpbyhours/events/sshbyhours/events/ftpbyhours
3.3 Аналитика по alert #
/events/alertsmap— компактная карта alert-ов/events/alertssignatures— агрегация по сигнатурам
4. Rules & Suricata #
Пространство имён: Rules
4.1 Получение правил #
/rules/rules/:sid/rules/action/:action/rules/status/:status/rules/protocol/:proto/rules/search/rules/signature/:signature/rules/duplicated/:sid
4.2 Модификация правил #
Все POST + OPTIONS:
/rules/toggle//rules/add//rules/validate//rules/delete//rules/update//validate_rule_endpoint
4.3 Дополнительные правила #
/rules/additional/status//rules/additional/update/
4.4 Управление Suricata #
/suricata/start//suricata/stop//suricata/reload//rules/reload/blocking/rules/reload/nonblocking/suricata/update/
4.5 Управление демоном #
/daemon/start//daemon/stop/
5. Threats / IoC API #
Пространство имён: Threats
5.1 Получение IoC #
/ioc//ioc/download//ioc/filter/:n_days/ioc/ioc_type/:ioc_type/ioc/ioc_id/:id/ioc/ioc_status/:status/ioc/toggle/
5.2 IoC-правила #
/ioc/fetch//ioc/rules/status//ioc/rules/modify/
6. Statistics API #
Пространство имён: Stats
/stats//stats/pkts//stats/alerts//stats/cpu//stats/vm//stats/pm//stats/histogramm//suricata/running//stats/update/
7. Network Map API #
Пространство имён: Net
/net/map/— текущая карта сети/net/historicalmap/— историческая карта по долгосрочным потокам
8. Итоги #
API Suri Oculus 3.0 — это расширенный, структурный и стабильный слой управления Suricata и анализа сетевых событий.
Разделение на подсистемы обеспечивает ясность, масштабируемость и готовность к дальнейшему развитию — включая автоматизацию, интеграции и AI-модули.