Я пытаюсь отследить первопричину взлома веб-сайта клиента серверного хостинга.
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
.