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

подавлять события аудита от конкретного пользователя

Я пытаюсь отследить первопричину взлома веб-сайта клиента серверного хостинга.

auditd очень помогает в том, чтобы показать мне, в какой каталог искать, когда появляется еще одна вредоносная программа (сайт является чем-то вроде беспорядок, но не мое, чтобы прояснить, даже если бы я хотел) активирует и закручивает сайт, но журналы аудита сложно читать, потому что он также регистрирует активность ssh из сценария мониторинга, который подключается каждые две минуты для проверки различных статусов, так как а также другая система мониторинга, запускаемая cron.

Я сделал несколько попыток в auditctl, чтобы он прекратил сообщать об этом:

root@zelia:/var/log/audit# auditctl -l 
-a never,user -F auid=116
-a never,task -F auid=116
-a never,exit -S all -F auid=116
-a never,exit -S all -F uid=116

(UID 116, пользователь meminfo - тот, который я хочу подавить)

Однако каждые несколько минут я все равно получаю следующее:

type=USER_ACCT msg=audit(1491386883.189:462708): pid=1502 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting acct="meminfo" exe="/usr/sbin/sshd" hostname=prtg.systemec.nl addr=89.20.80.149 terminal=ssh res=success'
type=CRED_ACQ msg=audit(1491386883.189:462709): pid=1502 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:setcred acct="meminfo" exe="/usr/sbin/sshd" hostname=monitor.company.internal addr=89.20.80.149 terminal=ssh res=success'
type=LOGIN msg=audit(1491386883.189:462710): pid=1502 uid=0 old-auid=4294967295 auid=116 old-ses=4294967295 ses=368164 res=1
type=USER_ACCT msg=audit(1491386883.197:462711): pid=1504 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting acct="meminfo" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=USER_START msg=audit(1491386883.197:462712): pid=1504 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:session_open acct="meminfo" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_START msg=audit(1491386883.213:462713): pid=1 uid=0 auid=4294967295 ses=4294967295 msg=' comm="user@116" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_STOP msg=audit(1491386883.365:462714): pid=1 uid=0 auid=4294967295 ses=4294967295 msg=' comm="user@116" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

В результате журналы аудита продолжают заполняться, и мне не хватает важной документации.

С другой стороны, пока я не считать взлом происходит через SSH, журнал регистрации пользователей на сервере, когда это может пригодиться.

Очевидно, правила, которые я попытался добавить, чтобы сохранить meminfo подавленные не работают правильно. Что я делаю не так?

ДОБАВЛЕНИЕ По какой-то причине добавление auditctl -a never,task впоследствии вызывает never,task правило загружается первым и все подавляется, в том числе то, что я действительно хотел увидеть.

ПРИЛОЖЕНИЕ №2 Как объяснено в этот вопроссообщения, которые я пытаюсь подавить, по умолчанию генерируются подсистемами PAM, а не дополнительными правилами в audit.rules, так что это дополнительная проблема ...

В вашем лог-файле uid=0 на этих строках означает, что эти процессы запускаются rootне meminfo.

auid=500

В поле auid записывается ID пользователя Audit, то есть loginuid. Этот идентификатор назначается пользователю при входе в систему и наследуется каждым процессом, даже если личность пользователя изменяется (например, путем переключения учетных записей пользователей с помощью su - john команда).

uid=500

В поле uid записывается идентификатор пользователя, запустившего анализируемый процесс. ID пользователя можно преобразовать в имена пользователей с помощью следующей команды: ausearch -i --uid UID. В таком случае, 500 это идентификатор пользователя пользователя shadowman.

Это может быть вызвано запуском программы из root пользователи crontab или если процесс вызывает службу, которая должна быть сначала запущена как root (с участием setuid), чтобы он мог использовать привилегированные порты <1024.

Наверное, вы не хотите подавлять все auid=0 активность, поскольку она подавила бы что-то значимое.

Если ваш auditd можно фильтровать по имени процесса, т.е. exe=, лайк RHEL7 с BZ № 1135562, подавление sshd начато root должен быть в безопасности, ЕСЛИ у вас также есть PermitRootLogin no:

auditctl
    -a never,user -F auid=0 -F exe="/usr/sbin/sshd"
    -a never,task -F auid=0 -F exe="/usr/sbin/sshd"

Однако в большинстве случаев -F ограничено полями за пределами msg=' ' и есть только операторы, которые не разрешают регулярные выражения: -F [n=v | n!=v | n<v | n>v | n<=v | n>=v | n&v | n&=v].


Один из вариантов - увеличить max_log_file или num_logs чтобы сохранить больше истории, если размер журнала не является проблемой. Вам не нужно напрямую читать формат журнала, как и у вас aureport и ausearch.