Перейти к основному содержимому

Аудит

Аудит фиксирует значимые события обработки пользовательских запросов в Netgap. Audit-события помогают восстановить путь запроса через gateway и executor, подтвердить факт доставки ответа и выявить ошибки взаимодействия с внешними компонентами.

Audit-события являются частью функции События (event): для их вывода используется target_id: Audit. При необходимости те же события можно дополнительно отправлять в SIEM.

Аудируемые события

Netgap формирует audit-события на ключевых этапах обработки запроса.

КомпонентСобытиеКогда формируется
netgap-gatewayhttp requestGateway принял HTTP-запрос от клиента и поставил его в очередь для executor.
netgap-executorrequest pulledExecutor получил запрос из gateway для обработки в приватной зоне.
netgap-executorexecuting http requestExecutor сформировал HTTP-запрос к целевому сервису.
netgap-executorresponseExecutor получил HTTP-ответ от целевого сервиса.
netgap-executorresponse deliveredExecutor передал ответ обратно в gateway, и gateway подтвердил доставку.
netgap-gatewayreceived responseGateway получил ответ от executor и отправил его ожидающему клиентскому соединению.
netgap-gatewayfailed to handleGateway не смог обработать клиентское соединение.
netgap-gatewayfailed to acceptGateway не смог принять входящее соединение.
netgap-executorHTTP request failedExecutor не смог выполнить HTTP-запрос к целевому сервису.

Набор audit-событий ориентирован на контроль прохождения запроса через контур Netgap, а не на запись полного содержимого трафика.

Состав информации

В audit-запись попадает имя события, уровень, время, имя сервиса, целевой тип audit и поля, относящиеся к конкретному событию. При format: Json эти данные поставляются как структурированная JSON-запись; при format: Text или ColorizedANSI — как текстовая строка.

Типовые поля audit-событий:

ПолеГде встречаетсяНазначение
methodhttp request, request pulled, executing http requestHTTP-метод запроса.
pathhttp request, request pulled, executing http requestHTTP-путь запроса.
header_count / headers_countЗапросы и ответыКоличество заголовков без вывода их значений.
body_bytes / resp_body_bytesЗапросы и ответыРазмер тела запроса или ответа в байтах без вывода содержимого.
request_bytesexecuting http requestРазмер HTTP-запроса, сформированного executor для целевого сервиса.
status_coderesponse, received responseHTTP-статус ответа.
response_sizereceived 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-журналов с разными политиками доступа.