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

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

Это вовлеченные файлы:

  • auditd записей:

    type=PATH msg=audit(1451011319.268:533): ...
    type=CWD msg=audit(1451011319.268:533):  cwd=”/home/root”
    type=SYSCALL msg=audit(1451011319.268.230:533): ... key=(null)
    
  • /etc/audisp/audispd.conf как следует,

    q_depth = 80
    overflow_action = ignore
    priority_boost = 4
    max_restarts = 10
    name_format = HOSTNAME
    #name = mydomain
    
  • audispd файл конфигурации плагина в /etc/audisp/plugin.d/,

    active = yes
    direction = out
    path = /usr/bin/python
    type = always
    # two args, one is my Python script, the other is the log file
    args = /var/t/h.py /var/log/audit.log
    format = string
    
  • Мой h.py выглядит следующим образом:

    # -*- coding: utf-8 -*-
    
    import sys
    
    print sys.argv[1]
    ...
    

Тем не менее, мой скрипт Python не может получить какие-либо записи от auditd,

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

1 ответ

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

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

Особенно:

  • это создает пару сокетов в audisp/audispd.c#L484;
  • затем разветвляется, устанавливает дочерний стандарт на один конец пары сокетов: 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 модуль для разбора сообщений о событиях.

Другие вопросы по тегам