Назад | Перейти на главную страницу

Отправка записей auditd в мой плагин audispd

После установки auditctlправил, я хочу отправить эти совпадающие записи в свой скрипт Python для дальнейшего анализа.

Это задействованные файлы:

Однако мой скрипт Python не может получить никаких записей из auditd.

Я не знаю, где не так, пожалуйста, помогите мне!

Кажется, что audispd записывает события аудита в свои плагины stdin.

(Ссылки на источник ниже относятся к https://github.com/packetstash/auditd/tree/ba912fa614a7e73160a4eba338e55890d6e8f62f. Это мой первый пост о сбое сервера, и я не могу включить более двух ссылок).

В частности:

  • он создает пару сокетов в audisp/audispd.c#L484;
  • затем разветвляется, устанавливает дочерний stdin на один конец пары сокетов: audisp/audispd.c#L500;
  • и записывает события в другой конец: audisp/audispd.c#L533.

Ваш скрипт унаследует дескрипторы открытых файлов от audispd, включая stdout (fd # 1), который будет повторно открыт для /dev/null. Так print в сценарии, скорее всего, не повлияет, вам придется писать в какой-то файл.

Попробуйте что-нибудь вроде:

import sys

with open('/tmp/my_audit.log', 'w') as log_file:
  for event_message in sys.stdin:
    log_file.write('%s\n' % event_message)

Вы также можете использовать bindings/python/auparse_python.c модуль для анализа сообщений о событиях.