View Categories

Маршруты API

Добро пожаловать в документацию по бэкенд-части нашего проекта, написанной на C++ с использованием фреймворка Pistache. В данной документации описываются функциональные возможности и использование маршрутов (routes) в нашем API. Наш API предоставляет широкий спектр возможностей для управления событиями, правилами, индикаторами компрометации (IoC), а также статистическими данными, что делает его мощным инструментом для мониторинга и администрирования различных аспектов систем безопасности.


Ключевые возможности #

События (Events) #

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

Правила (Rules) #

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

Угрозы (IOC — Indicators of Compromise) #

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

Статистика (Statistics) #

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

Управление Suricata #

API включает маршруты для управления процессом Suricata, позволяя запускать, останавливать и перезагружать Suricata, а также обновлять правила. Это обеспечивает высокий уровень контроля за работой системы обнаружения вторжений.

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


Маршруты API #

События (Events) #

  • GET /events/:event_type — Получить все события заданного типа (:event_type)
  • GET /events/count/:event_type — Получить количество событий заданного типа (:event_type)
  • GET /events/:event_type/:event_id — Найти событие заданного типа (:event_type) по event_id
  • GET /events/search/:flow_id — Найти событие заданного типа (:event_type) по flow_id
  • DELETE /events/delete/:event_type — Удалить все события заданного типа (:event_type)
  • GET /events/find/:event_type — Найти события заданного типа по параметрам
  • GET /events/check/:event_type — Получить все события заданного типа за определенный период времени
  • GET /events/fast — Вывести содержимое файла fast.log

Правила (Rules) #

  • GET /rules — Отобразить все правила
  • GET /rules/:sid — Найти правило с заданным sid
  • GET /rules/action/:action — Найти правило с заданным action
  • GET /rules/status/:status — Найти правило с заданным status
  • GET /rules/protocol/:proto — Найти правило с заданным proto
  • GET /rules/search — Найти правило по заданным параметрам
  • POST /rules/toggle/ — Изменить статус правила
  • POST /rules/add/ — Добавить правило
  • POST /rules/validate/ — Подтвердить правило
  • POST /rules/delete/ — Удалить правило
  • POST /rules/update/ — Обновить правила
  • GET /rules/additional/status/ — Получить статус дополнительных правил
  • POST /rules/additional/update/ — Обновить дополнительные правила
  • POST /validate_rule_endpoint — Валидация правил
  • GET /suricata/reload/ — Перезагрузить Suricata
  • GET /rules/reload/blocking — Перезагрузить правила с блокировкой
  • GET /rules/reload/nonblocking — Перезагрузить правила без блокировки
  • GET /rules/duplicated/:sid — Найти дублирующиеся правила

Управление Suricata (Suricata Management) #

  • GET /suricata/start/ — Запустить Suricata
  • GET /suricata/stop/ — Остановить Suricata
  • GET /suricata/update/ — Обновить правила

Индикаторы компрометации (Threats / IoC) #

  • GET /ioc/download/ — Скачать свежие IoC
  • GET /ioc/filter/:n_days — Выбрать правила за период n_days
  • GET /ioc/ — Отобразить все IoC
  • GET /ioc/ioc_type/:ioc_type — Получить IoC указанного типа
  • GET /ioc/ioc_id/:id — Получить IoC с заданным id
  • GET /ioc/ioc_status/:status — Отобразить все IoC с заданным статусом
  • POST /ioc/toggle/ — Изменить статус IoC
  • GET /ioc/fetch/ — Создать файлы правил IoC
  • GET /ioc/rules/status/ — Получить статусы правил IoC
  • POST /ioc/rules/modify/ — Изменить статусы правил IoC

Статистика (Stats) #

  • GET /stats/ — Получить статистические данные
  • GET /stats/pkts/ — Получить статистику по пакетам
  • GET /stats/alerts/ — Получить статистику по оповещениям
  • GET /stats/cpu/ — Получить статистику по процессору
  • GET /stats/vm/ — Получить статистику по виртуальной памяти
  • GET /stats/pm/ — Получить статистику по памяти
  • GET /stats/histogramm/ — Получить данные для гистограмм
  • GET /suricata/running/ — Проверить состояние процесса Suricata
  • GET /stats/update/ — Обновить статистику

Эта документация поможет вам легко интегрировать и использовать API для управления системой безопасности, предоставляя мощные инструменты для мониторинга, анализа угроз и управления правилами.