Добро пожаловать в документацию по бэкенд-части нашего проекта, написанной на 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/
— Перезагрузить SuricataGET /rules/reload/blocking
— Перезагрузить правила с блокировкойGET /rules/reload/nonblocking
— Перезагрузить правила без блокировкиGET /rules/duplicated/:sid
— Найти дублирующиеся правила
Управление Suricata (Suricata Management) #
GET /suricata/start/
— Запустить SuricataGET /suricata/stop/
— Остановить SuricataGET /suricata/update/
— Обновить правила
Индикаторы компрометации (Threats / IoC) #
GET /ioc/download/
— Скачать свежие IoCGET /ioc/filter/:n_days
— Выбрать правила за периодn_days
GET /ioc/
— Отобразить все IoCGET /ioc/ioc_type/:ioc_type
— Получить IoC указанного типаGET /ioc/ioc_id/:id
— Получить IoC с заданнымid
GET /ioc/ioc_status/:status
— Отобразить все IoC с заданным статусомPOST /ioc/toggle/
— Изменить статус IoCGET /ioc/fetch/
— Создать файлы правил IoCGET /ioc/rules/status/
— Получить статусы правил IoCPOST /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/
— Проверить состояние процесса SuricataGET /stats/update/
— Обновить статистику
Эта документация поможет вам легко интегрировать и использовать API для управления системой безопасности, предоставляя мощные инструменты для мониторинга, анализа угроз и управления правилами.