Аудит
Аудит фиксирует значимые события обработки пользовательских запросов в Netgap. Audit-события помогают восстановить путь запроса через gateway и executor, подтвердить факт доставки ответа и выявить ошибки взаимодействия с внешними компонентами.
Audit-события являются частью функции События (event): для их вывода используется target_id: Audit. При необходимости те же события можно дополнительно отправлять в SIEM.
Аудируемые события
Netgap формирует audit-события на ключевых этапах обработки запроса.
| Компонент | Событие | Когда формируется |
|---|---|---|
netgap-gateway | http request | Gateway принял HTTP-запрос от клиента и поставил его в очередь для executor. |
netgap-executor | request pulled | Executor получил запрос из gateway для обработки в приватной зоне. |
netgap-executor | executing http request | Executor сформировал HTTP-запрос к целевому сервису. |
netgap-executor | response | Executor получил HTTP-ответ от целевого сервиса. |
netgap-executor | response delivered | Executor передал ответ обратно в gateway, и gateway подтвердил доставку. |
netgap-gateway | received response | Gateway получил ответ от executor и отправил его ожидающему клиентскому соединению. |
netgap-gateway | failed to handle | Gateway не смог обработать клиентское соединение. |
netgap-gateway | failed to accept | Gateway не смог принять входящее соединение. |
netgap-executor | HTTP request failed | Executor не смог выполнить HTTP-запрос к целевому сервису. |
Набор audit-событий ориентирован на контроль прохождения запроса через контур Netgap, а не на запись полного содержимого трафика.
Состав информации
В audit-запись попадает имя события, уровень, время, имя сервиса, целевой тип audit и поля, относящиеся к конкретному событию. При format: Json эти данные поставляются как структурированная JSON-запись; при format: Text или ColorizedANSI — как текстовая строка.
Типовые поля audit-событий:
| Поле | Где встречается | Назначение |
|---|---|---|
method | http request, request pulled, executing http request | HTTP-метод запроса. |
path | http request, request pulled, executing http request | HTTP-путь запроса. |
header_count / headers_count | Запросы и ответы | Количество заголовков без вывода их значений. |
body_bytes / resp_body_bytes | Запросы и ответы | Размер тела запроса или ответа в байтах без вывода содержимого. |
request_bytes | executing http request | Размер HTTP-запроса, сформированного executor для целевого сервиса. |
status_code | response, received response | HTTP-статус ответа. |
response_size | received response | Полный размер HTTP-ответа, отправленного клиенту. |
error | Ошибочные события | Текст ошибки при сбое обработки, приема соединения или вызова целевого сервиса. |
Если включена распределенная трассировка, audit-события создаются внутри текущих tracing span-ов и могут быть сопоставлены с трассами по контексту наблюдаемости, который поставляет выбранная система сбора.
Примеры конфигурации
Запись audit-событий в отдельный JSON-файл:
observability:
service_name: netgap-gateway
event_targets:
- level: info
target_id: Audit
target_destination: File
target_args: /var/log/netgap/audit.log
format: Json
Раздельный вывод технологических событий и audit-событий:
observability:
service_name: netgap-executor
event_targets:
- level: info
target_id: Tech
target_destination: Console
target_args: ""
format: ColorizedANSI
- level: info
target_id: Audit
target_destination: File
target_args: /var/log/netgap/audit.log
format: Json
Отправка audit-событий в SIEM по UDP:
observability:
service_name: netgap-gateway
event_targets:
- level: info
target_id: Tech
target_destination: File
target_args: /var/log/netgap/tech.log
format: Json
siem:
endpoint: 192.0.2.10:514
log_types: [Audit]
level: info
Результат и доставка
Результат работы аудита — поток audit-событий. Их можно доставлять теми же способами, что и остальные события Netgap:
- в консоль для локальной проверки;
- в файл с ежедневной ротацией для хранения и последующего сбора collector-ом;
- в Loki для централизованного поиска и анализа логов;
- в SIEM или syslog-совместимый приемник через функцию
siem.
Для рабочих окружений обычно используют format: Json, отдельный файл или отдельную цель доставки для target_id: Audit, а доступ к audit-журналам ограничивают по правилам безопасности организации.
Варианты применения
- расследование инцидентов и восстановление цепочки обработки запроса;
- контроль факта прохождения запроса через gateway и executor;
- контроль ошибок приема соединений и вызова целевых сервисов;
- передача значимых событий безопасности в SIEM/SOC;
- раздельное хранение технологических логов и audit-журналов с разными политиками доступа.