抑制特定用户的审计事件

抑制特定用户的审计事件

我正在尝试查找导致客户网站服务器被入侵的根本原因。

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,所以这是额外的问题……

答案1

在您的日志文件中,uid=0这些行意味着这些进程是由 启动的root,而不是meminfo

auid=500

auid 字段记录了审计用户 ID,即 loginuid。此 ID 在用户登录时分配给用户,并且即使用户身份发生变化(例如,通过使用命令切换用户帐户su - john),每个进程也会继承此 ID。

uid=500

uid 字段记录启动被分析进程的用户的用户 ID。可以使用以下命令将用户 ID 解释为用户名:ausearch -i --uid UID。在本例中,500是用户 的用户 ID 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你不必直接阅读日志格式,正如你所说aureportausearch

相关内容