什么是audit
syslog记录的信息有限,主要目的是软件调试,跟踪和打印软件的运行状态,而audit的目的则不同,它是linux安全体系的重要组成部分,是一种“被动”的防御体系。
在内核里有内核审计模块,记录系统中的各种动作和事件,比如系统调用,文件修改,执行的程序,系统登入登出和记录所有系统中所有的事件,它的主要目的是方便管理员根据日记审计系统是否允许有异常,是否有入侵等等。
而audit就是把与系统安全有关的事件记录下来。
auditd工具简介
audited是Linux审核系统的用户空间组件。
它负责将审核记录写入磁盘。
查看日志是通过ausearch或aureport实用程序完成的。
审核系统或加载规则的配置是使用auditctl实用程序完成的。
在启动过程中,/etc/audit/audit.rules中的规则由auditctl读取并加载到内核中。
另外,还有一个augenrules程序,它读取/etc/audit/rules.d/中的规则,并将它们编译为audit.rules文件。
审核守护进程本身有一些管理员可能希望自定义的配置选项,它们位于audited.conf文件中。
安装
apt-get install auditd audispd-plugins
auditd 配置文件
默认配置
# /etc/audit/auditd.conf
# 本地的事件是否记录,设置为no的场景应该是只作为远程日志收集的服务器,但自身的日志大多数时候也是有必要记录的
local_events = yes
# 日志是否落盘,设置为no的场景应该是将会把日志存储到远程服务器的客户端
write_logs = yes
# 指定日志的路径
log_file = /var/log/audit/audit.log
# 设置日志的组
log_group = adm
# 设置日志的格式
log_format = ENRICHED
# 指定日志刷星策略,INCREMENTAL_ASYNC表示异步增量刷新
flush = INCREMENTAL_ASYNC
# 与 flush 参数结合,指定每隔多少毫秒触发一次异步刷新
freq = 50
# 指定单个日志文件的最大大小 单位MB
max_log_file = 8
# 轮转日志时保留的日志格式
num_logs = 5
# 设置审计守护进程提高多少优先级。默认值为4
priority_boost = 4
# none、hostname、fqd、numeric和user。None表示没有向审计事件插入计算机名。Hostname是gethostname系统调用返回的名称。fqd意味着它接收主机名并通过dns解析为该机器的完全限定域名。Numeric类似于fqd,只是它可以解析机器的IP地址
name_format = NONE
##name = mydomain
# 当系统检测到已达到最大文件大小限制时采取什么操作。有效值为ignore、syslog、suspend、rotate和keep_logs。如果设置为ignore,审计守护进程什么都不做。Syslog表示它将向Syslog发出警告。Suspend将导致审计守护进程停止向磁盘写入记录。守护进程还会活着。rotate选项将导致审计守护进程旋转日志。需要注意的是,数值大的日志比数值小的日志要早。这与logrotate实用程序使用的约定相同。keep_logs选项类似于rotate,只是它不使用num_logs设置。这可以防止审计日志被覆盖。
max_log_file_action = ROTATE
# 在采取 space_left_action 之前剩余的空闲磁盘空间百分比
space_left = 75
# 当磁盘空间低于 space_left 时采取的行动,SYSLOG 表示记录到系统日志
space_left_action = SYSLOG
# 指示是否验证电子邮件地址的有效性
verify_email = yes
# 接收警报的电子邮件地址
action_mail_acct = root
# 在采取 admin_space_left_action 之前剩余的空闲磁盘空间百分比。
admin_space_left = 50
# 当磁盘空间低于 admin_space_left 时采取的行动,SUSPEND 表示暂停写入。
admin_space_left_action = SUSPEND
# 当磁盘空间已满时采取的行动。 SUSPEND 表示暂停写入。
disk_full_action = SUSPEND
# 当发生磁盘错误时采取的行动,SUSPEND 表示暂停写入。
disk_error_action = SUSPEND
# 指示是否使用 TCP 包装器进行访问控制。
use_libwrap = yes
##tcp_listen_port = 60
# 指定 TCP 监听队列的大小。
tcp_listen_queue = 5
# 指定每个 IP 地址允许的最大 TCP 连接数。
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
# 指定 TCP 客户端连接的最大空闲时间,0 表示无限制。
tcp_client_max_idle = 0
# 指定日志传输协议
transport = TCP
# 指定 Kerberos 主体名称
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
# 指示是否在网络上分发审计事件。
distribute_network = no
# 指定审计事件队列的深度。
q_depth = 1200
# 当队列溢出时采取的行动。
overflow_action = SYSLOG
# 指定在放弃之前允许的最大重新启动次数。
max_restarts = 10
# 插件目录的路径。
plugin_dir = /etc/audit/plugins.d
# 指定在事件结束超时后采取的行动的时间限制。
end_of_event_timeout = 2
auditd相关命令
- auditctl : 即时控制审计守护进程的行为的工具,如添加规则等。
- auditd :audit 守护进程负责把内核产生的信息写入到硬盘上,这些信息由应用程序和系统活动触发产生。用户空间审计系统通过 auditd 后台进程接收内核审计系统传送来的审计信息,将信息写入到 /var/log/audit/audit.log。
- aureport : 查看和生成审计报告的工具。
- ausearch : 查找审计事件的工具
- autrace : 一个用于跟踪进程的命令。类似于 strace,跟踪某一个进程,并将跟踪的结果写入日志文件之中。
- aulast: 与last类似,但使用审计框架安装
- aulastlog: 与lastlog类似,也使用审计框架
- ausyscall: 映射syscall ID和名称
- auvirt: 显示关于虚拟机的审计信息
相关配置文件
- /etc/audit/auditd.conf : auditd工具的配置文件
- /etc/audit/rules.d/audit.rules:包含审核规则的文件,如果我们需要修改审计范围,直接编辑该文件,并使用
auditctl -R <ruler_path>
命令重载审计规则配置文件 - /etc/audit/audit.rules : 记录审计规则的文件,该配置文件是根据 /etc/audit/rules.d/audit.rules 下的配置文件自动生成
auditd服务管理
查看auditd服务状态
systemctl status auditd
配置服务开机自启动
systemctl enable auditd
取消服务开机自启动
systemctl disable auditd
停止auditd服务
systemctl stop auditd
启动auditd服务
systemctl start auditd
重启auditd服务
systemctl restart auditd
重载审计规则配置
auditctl -R /etc/audit/rules.d/audit.rules
停止审计
auditd -s disable
开启审计
auditd -s enable
auditctl命令
audit 我们可以使用auditctl临时配置规则,服务重启失效,如果需要配置永久生效,我们需要将规则写入到配置文件中。auditd审计规则分成三个部分,
- 控制规则:这些规则用于更改审计系统本身的配置和设置。
- 文件系统规则:这些是文件或目录监视。 使用这些规则,我们可以审核对特定文件或目录的任何类型的访问。
- 系统调用规则:这些规则用于监视由任何进程或特定用户进行的系统调用。
语法
auditctl [options]
参数
参数 | 参数说明 |
---|---|
-w <path> |
指定要监控的文件夹或者文件路径 |
-W <path> |
删除指定path的规则和-w 对应,参数都要一样才能删除 |
-s |
查看审计状态 |
-r <rate> |
设置每秒生成信息的速率 |
-R <file> |
读取审计规则配置 |
-i |
从文件中读取规则时忽略错误 |
-p [r|w|x|a] |
指定触发审计的文件/目录的访问权限rwxa,指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr) |
-l |
列表展示审计规则 |
-k <key> |
在审核规则上设置过滤名称,方便后面使用ausearch查找 |
-D |
删除所有规则和监控 |
-d |
删除审计规则 需要用过滤条件来定位然后删除规则 |
-a <列表名称,动作> |
追加一条系统调用规则 |
-A <列表名称,动作> |
在最前面插入一条系统调用规则 |
-c |
加载规则时尽管错误仍然继续 |
-F <字段名> |
建立一个规则字段:名称、操作、值 |
-S <系统调用名|系统调用号|all> |
生成规则:系统调用的名称和编号 |
在使用 -a
参数时可以使用的列表名称
列表名称 | 描述 |
---|---|
task | 添加规则到每个任务列表。 只有在创建时就已知的字段(如 UID,GID)才能用在这个列表中 |
exclude | 添加规则到事件类型排除过滤列表。 使用此列表来过滤不希望看到的事件 |
exit | 添加规则到系统调用退出列表。 退出系统时调用此列表用于确定是否应建立审计事件 |
user | 添加规则到用户消息过滤列表。 内核在将用户空间事件传递给审计守护进程之前使用这个列表过滤用户空间事件。 有效的字段只有 UID、AUID、GID、PID、subj_user、subj_role、subj_type、subj_sen和subj_clr |
在使用 -a
选项时可以使用的动作
动作 | 描述 |
---|---|
never | 不生成审计记录,可以被用来抑制事件的生成 |
always | 分配审计上下文,总是把它填充在系统调用条目中,总是在系统调用退出时写一个审计记录 |
在使用 -F
选项时可以使用的有效的字段名
字段名 | 描述 |
---|---|
pid | 进程ID |
ppid | 父进程ID |
uid | 用户ID |
euid | 有效用户ID |
suid | 保存的用户ID |
fsuid | 文件系统用户ID |
gid | 组群ID |
egid | 有效组群ID |
sgid | 保存的组ID |
fsgid | 文件系统组ID |
msgtype | 用来匹配事件的记录类型 |
pers | 操作系统个性编码 |
path | 查看文件的完整路径 |
arch | 系统调用的CPU体系结构 |
auid | 审计ID,用户登录时使用的原始ID |
dir | 查看目录的完整路径 |
devmajor | 主设备号 |
devminor | 次设备号 |
inode | inode号 |
exit | 系统调用的返回值 |
success | 系统调用的成功值。1 表示 true/yes , 0 表示 false/no |
a0、al、a2、a3 | 分别表示系统调用的前4个参数,只能用数字表示 |
key | 设置用来标记事件的审计日志事件消息的过滤关键字 |
perm | 文件操作的权限过滤 |
filetype | 目标文件的类型 |
obj_user | 对象的SELinux用户 |
obj_role | 对象的SELinux角色 |
obj_type | 对象的SELinux类型 |
obj_lev_low | 资源的SELinux低级别 |
obj_lev_high | 资源的SELinux高级别 |
subj_sen | 程序的SELinux敏感度 |
subj_user | 程序的SELinux用户 |
subj_clr | 程序的SELinux清除率 |
subj_role | 程序的SELinux角色 |
subj_type | 程序的SELinux类型 |
示例
查看audit状态
$ auditctl -s
enabled 1
failure 1
pid 2372085
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
backlog_wait_time 60000
backlog_wait_time_actual 0
loginuid_immutable 0 unlocked
auditctl -s
命令用于显示当前审计子系统的状态信息。以下是各个字段的含义:
enabled
: 审计功能是否启用。值为1表示已启用,值为0表示未启用。failure
: 是否在遇到错误时记录日志。值为1表示记录错误日志,值为0表示不记录错误日志。pid
: 审计守护进程(auditd)的进程ID。rate_limit
: 每秒允许的记录事件数量上限。如果超过此限制,新事件将被丢弃。值为0表示没有限制。backlog_limit
: 审计日志队列的最大长度。当队列达到这个长度时,新事件将被丢弃。lost
: 已丢弃的事件数量。这些事件由于队列已满等原因而无法记录。backlog
: 当前审计日志队列中的事件数量。backlog_wait_time
: 当队列满时,新事件的等待时间(以毫秒为单位)。在这个时间内,新事件会等待队列中的空间。backlog_wait_time_actual
: 实际等待时间(以毫秒为单位)。这个值反映了新事件在队列满时的实际等待时间。loginuid_immutable
: 该字段与Linux内核参数CONFIG_AUDIT_LOGINUID_IMMUTABLE
有关。值为0表示可以通过prctl()
修改loginuid
,值为1表示loginuid
不可变。unlocked
表示该字段的状态是可更改的。
查看现有的audit规则
$ auditctl -l
-w /tmp/1 -p rwxa -k change_1
添加一条audit规则
记录用户ubuntu(UID为1000)的所有open系统调用
$ auditctl -a exit,always -S open -F uid=1000
WARNING - 32/64 bit syscall mismatch, you should specify an arch
监控文件1的读行为,并记录日志
auditctl -w /tmp/1 -p ra -k read_1
不记录USER_LOGIN类型的消息
auditctl -a exclude,always -F msgtype=USER_LOGIN
记录不成功的open系统调用
auditctl -a exit,always -S open -F success!=1 -k err_open
监视/etc/passwd文件被读、写、执行、修改文件属性的操作记录
auditctl -w /etc/passwd -p rwax -k mykey_name
记录进程PID为1005程序所做的所有系统调用
auditctl -a exit,always -S all -F pid=1005
删除一条audit规则
auditctl -d exit,always -S open -F uid=1000
auditctl -D -k read_1
# 或者
auditctl -W /tmp/1 -p ra -k read_1
删除所有audit规则
auditctl -D
重载审计规则配置
auditctl -R /etc/audit/rules.d/audit.rules
ausearch命令
使用 ausearch ,您可以过滤和搜索事件类型。
它还可以通过将数值转换为更加直观的值(如系统调用或用户名)来解释事件。
以根用户身份执行ausearch 命令,当显示结果时,每个记录用 4 条虚线组成的一行隔开,每个记录前均显示时间标记。
参数
选项 | 含义 |
---|---|
-f <文件名> |
基于文件名的搜索 |
-c <命令行名称> |
基于命令行名称的搜索 |
-ga <所有组群的ID> |
基于所有组群GID的搜索 |
-hn <主机名> |
基于远程主机名的搜索 |
-ui <用户UID> |
基于用户UID的搜索 |
-n <计算机名称> |
基于计算机名称的搜索 |
-p <进程ID> |
基于进程ID的搜索 |
-tm <终端> |
基于终端的搜索 |
-sv <成功值> |
基于系统调用或事件成功值的搜索 |
-k <键字段> |
基于键字段的搜索 |
-m <消息类型> |
基于消息类型的搜索 |
-pp <父进程ID> |
基于父进程ID的搜索 |
-ul <用户登录ID> |
基于用户登录ID的搜索 |
-x <可执行文件名> |
基于可执行文件名的搜索 |
-a <审计事件ID> |
基于审计事件ID的搜索 |
-ue <有效UID> |
基于有效UID的搜索 |
-ge <有效GID> |
基于有效GID的搜索 |
--session <登录会话ID> |
基于登录会话ID的搜索 |
-sc <系统调用的名称> |
基于系统调用的名称或对象编号的搜索 |
-se <SELinux上下文> |
基于任何主体或对象的上下文搜索 |
-0 <SELinux对象上下文> |
基于对象上下文的搜索 |
-ts <开始日期><开始时间> |
基于开始日期、开始时间的搜索 |
-ua <所有用户的UID> |
基于所有的用户UID的搜索 |
-te <结束日期> <结束时间> |
基于结束日期、结束时间的搜索 |
-su <SELinux上下文> |
基于主题的上下文的搜索 |
-e <退出代码> |
基于系统调用退出代码的搜索 |
-r | 完全未格式化输出 |
--format [raw|default|interpret|csv|text] |
结果输出的格式 |
示例
查看所有事件
ausearch -m all
基于用户root搜索审计记录
$ ausearch -ui 0
----
time->Wed Jun 12 17:17:01 2024
type=PROCTITLE msg=audit(1718183821.443:5115): proctitle=2F7573722F7362696E2F43524F4E002D66002D50
type=SYSCALL msg=audit(1718183821.443:5115): arch=c000003e syscall=1 success=yes exit=1 a0=7 a1=7fff3d431390 a2=1 a3=0 items=0 ppid=1051 pid=2526718 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=67 comm="cron" exe="/usr/sbin/cron" subj=unconfined key=(null)
----
time->Wed Jun 12 17:17:01 2024
type=USER_START msg=audit(1718183821.443:5116): pid=2526718 uid=0 auid=0 ses=67 subj=unconfined msg='op=PAM:session_open grantors=pam_loginuid,pam_env,pam_env,pam_permit,pam_umask,pam_unix,pam_limits acct="root" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
----
time->Wed Jun 12 17:17:01 2024
type=CRED_DISP msg=audit(1718183821.447:5117): pid=2526718 uid=0 auid=0 ses=67 subj=unconfined msg='op=PAM:setcred grantors=pam_permit acct="root" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
----
time->Wed Jun 12 17:17:01 2024
type=USER_END msg=audit(1718183821.447:5118): pid=2526718 uid=0 auid=0 ses=67 subj=unconfined msg='op=PAM:session_close grantors=pam_loginuid,pam_env,pam_env,pam_permit,pam_umask,pam_unix,pam_limits acct="root" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
基于终端 pts/3
搜索审计记录
$ ausearch -tm pts/3
----
time->Wed Jun 12 16:43:39 2024
type=USER_LOGIN msg=audit(1718181819.938:4930): pid=2490234 uid=0 auid=0 ses=59 subj=unconfined msg='op=login id=0 exe="/usr/sbin/sshd" hostname=192.168.128.62 addr=192.168.128.62 terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=USER_AUTH msg=audit(1718181829.954:4938): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:authentication grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=USER_ACCT msg=audit(1718181829.954:4939): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:accounting grantors=pam_permit acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=CRED_ACQ msg=audit(1718181829.958:4940): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
基于进程号1779搜索审计记录
$ ausearch -p 1051
查询2024年6月12日12点55到下午13点半的记录
$ ausearch -ts 06/12/2024 12:55:00 -te 6/12/2024 13:30:00
时间格式是 月/日/年 时:分:秒
否则会报 Month, Day, and Year are required. 或者 Hour, Minute, and Second are required
这样的报错表示 位置的错误
查询文件 /tmp/1相关的记录
ausearch -f /tmp/1
查询指定用户的记录
ausearch -ua root
根据系统调用查询日志
ausearch -sc open
根据过滤关键字查询日志
ausearch -k read_1
搜索系统登录失败日志
ausearch --message USER_LOGIN --success no --interpret
# 或者
ausearch -m USER_LOGIN -sv no --interpret
不同格式的输出
默认 default
$ ausearch -tm pts/3 --format default
----
time->Wed Jun 12 16:43:39 2024
type=USER_LOGIN msg=audit(1718181819.938:4930): pid=2490234 uid=0 auid=0 ses=59 subj=unconfined msg='op=login id=0 exe="/usr/sbin/sshd" hostname=192.168.128.62 addr=192.168.128.62 terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=USER_AUTH msg=audit(1718181829.954:4938): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:authentication grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=USER_ACCT msg=audit(1718181829.954:4939): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:accounting grantors=pam_permit acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=CRED_ACQ msg=audit(1718181829.958:4940): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:43:49 2024
type=USER_START msg=audit(1718181829.958:4941): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:session_open grantors=pam_keyinit,pam_env,pam_env,pam_mail,pam_limits,pam_permit,pam_umask,pam_unix,pam_systemd acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:50:11 2024
type=USER_END msg=audit(1718182211.017:4942): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:session_close grantors=pam_keyinit,pam_env,pam_env,pam_mail,pam_limits,pam_permit,pam_umask,pam_unix,pam_systemd acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
----
time->Wed Jun 12 16:50:11 2024
type=CRED_DISP msg=audit(1718182211.017:4943): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'
raw 格式
$ ausearch -tm pts/3 --format raw
type=USER_LOGIN msg=audit(1718181819.938:4930): pid=2490234 uid=0 auid=0 ses=59 subj=unconfined msg='op=login id=0 exe="/usr/sbin/sshd" hostname=192.168.128.62 addr=192.168.128.62 terminal=/dev/pts/3 res=success'UID="root" AUID="root" ID="root"
type=USER_AUTH msg=audit(1718181829.954:4938): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:authentication grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'UID="root" AUID="root"
type=USER_ACCT msg=audit(1718181829.954:4939): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:accounting grantors=pam_permit acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'UID="root" AUID="root"
type=CRED_ACQ msg=audit(1718181829.958:4940): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'UID="root" AUID="root"
type=USER_START msg=audit(1718181829.958:4941): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:session_open grantors=pam_keyinit,pam_env,pam_env,pam_mail,pam_limits,pam_permit,pam_umask,pam_unix,pam_systemd acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'UID="root" AUID="root"
type=USER_END msg=audit(1718182211.017:4942): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:session_close grantors=pam_keyinit,pam_env,pam_env,pam_mail,pam_limits,pam_permit,pam_umask,pam_unix,pam_systemd acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'UID="root" AUID="root"
type=CRED_DISP msg=audit(1718182211.017:4943): pid=2490485 uid=0 auid=0 ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct="ubuntu" exe="/usr/bin/su" hostname=? addr=? terminal=/dev/pts/3 res=success'UID="root" AUID="root"
interpret 格式
$ ausearch -tm pts/3 --format interpret
----
type=USER_LOGIN msg=audit(06/12/2024 16:43:39.938:4930) : pid=2490234 uid=root auid=root ses=59 subj=unconfined msg='op=login id=root exe=/usr/sbin/sshd hostname=192.168.128.62 addr=192.168.128.62 terminal=/dev/pts/3 res=success'
----
type=USER_AUTH msg=audit(06/12/2024 16:43:49.954:4938) : pid=2490485 uid=root auid=root ses=59 subj=unconfined msg='op=PAM:authentication grantors=pam_rootok acct=ubuntu exe=/usr/bin/su hostname=? addr=? terminal=/dev/pts/3 res=success'
----
type=USER_ACCT msg=audit(06/12/2024 16:43:49.954:4939) : pid=2490485 uid=root auid=root ses=59 subj=unconfined msg='op=PAM:accounting grantors=pam_permit acct=ubuntu exe=/usr/bin/su hostname=? addr=? terminal=/dev/pts/3 res=success'
----
type=CRED_ACQ msg=audit(06/12/2024 16:43:49.958:4940) : pid=2490485 uid=root auid=root ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct=ubuntu exe=/usr/bin/su hostname=? addr=? terminal=/dev/pts/3 res=success'
----
type=USER_START msg=audit(06/12/2024 16:43:49.958:4941) : pid=2490485 uid=root auid=root ses=59 subj=unconfined msg='op=PAM:session_open grantors=pam_keyinit,pam_env,pam_env,pam_mail,pam_limits,pam_permit,pam_umask,pam_unix,pam_systemd acct=ubuntu exe=/usr/bin/su hostname=? addr=? terminal=/dev/pts/3 res=success'
----
type=USER_END msg=audit(06/12/2024 16:50:11.017:4942) : pid=2490485 uid=root auid=root ses=59 subj=unconfined msg='op=PAM:session_close grantors=pam_keyinit,pam_env,pam_env,pam_mail,pam_limits,pam_permit,pam_umask,pam_unix,pam_systemd acct=ubuntu exe=/usr/bin/su hostname=? addr=? terminal=/dev/pts/3 res=success'
----
type=CRED_DISP msg=audit(06/12/2024 16:50:11.017:4943) : pid=2490485 uid=root auid=root ses=59 subj=unconfined msg='op=PAM:setcred grantors=pam_rootok acct=ubuntu exe=/usr/bin/su hostname=? addr=? terminal=/dev/pts/3 res=success'
csv格式
$ ausearch -tm pts/3 --format csv
NODE,EVENT,DATE,TIME,SERIAL_NUM,EVENT_KIND,SESSION,SUBJ_PRIME,SUBJ_SEC,SUBJ_KIND,ACTION,RESULT,OBJ_PRIME,OBJ_SEC,OBJ_KIND,HOW
,USER_LOGIN,06/12/2024,16:43:39,4930,user-login,59,root,,privileged-acct,logged-in,success,/dev/pts/3,,user-session,/usr/sbin/sshd
,USER_AUTH,06/12/2024,16:43:49,4938,user-login,59,root,root,privileged-acct,authenticated,success,ubuntu,,user-session,/usr/bin/su
,USER_ACCT,06/12/2024,16:43:49,4939,user-login,59,root,root,privileged-acct,was-authorized,success,ubuntu,,user-session,/usr/bin/su
,CRED_ACQ,06/12/2024,16:43:49,4940,user-login,59,root,root,privileged-acct,acquired-credentials,success,ubuntu,,user-session,/usr/bin/su
,USER_START,06/12/2024,16:43:49,4941,user-login,59,root,root,privileged-acct,started-session,success,/dev/pts/3,,user-session,/usr/bin/su
,USER_END,06/12/2024,16:50:11,4942,user-login,59,root,root,privileged-acct,ended-session,success,/dev/pts/3,,user-session,/usr/bin/su
,CRED_DISP,06/12/2024,16:50:11,4943,user-login,59,root,root,privileged-acct,disposed-credentials,success,ubuntu,,user-session,/usr/bin/su
text格式
$ ausearch -tm pts/3 --format text
At 16:43:39 06/12/2024 root successfully logged-in /dev/pts/3 using /usr/sbin/sshd
At 16:43:49 06/12/2024 root successfully authenticated ubuntu using /usr/bin/su
At 16:43:49 06/12/2024 root successfully was-authorized ubuntu using /usr/bin/su
At 16:43:49 06/12/2024 root successfully acquired-credentials ubuntu using /usr/bin/su
At 16:43:49 06/12/2024 root successfully started-session /dev/pts/3 using /usr/bin/su
At 16:50:11 06/12/2024 root successfully ended-session /dev/pts/3
At 16:50:11 06/12/2024 root successfully disposed-credentials ubuntu using /usr/bin/su
aureport命令
使用aureport命令可以生成审计信息的报表,必须以root用户执行aureport命令。如果执行aureport命令时没有使用任何选项,那么会显示汇总报表。
参数
选项 | 含义 |
---|---|
-a | 关于访问向量缓冲(AVC)信息的报表 |
-au | 关于身份验证的报表 |
-c | 关于配置更改的报表 |
-cr | 关于加密事件的报表 |
-e | 关于事件的报表 |
-f | 关于文件的报表 |
-i | 解释模式 |
-if <输入文件名> |
使用文件作为输入 |
-h | 关于主机的报表 |
-l | 有关登录的报表 |
-k | 关于key的报表 |
-m | 关于账户修改的报表 |
-ma | 关于强制访问控制(MAC)事件的报表 |
-p | 关于进程的报表 |
-s | 关于系统调用的报表 |
-tm | 关于终端的报表 |
--node <节点名> |
特定节点的事件 |
--succeSS | 在报表中只显示成功的事件 |
--failed | 在报表中只显示失败的事件 |
-n | 关于异常事件的报表 |
--summary | 在报表中为主要对象排序总数 |
-r | 关于异常事件响应的报表 |
-t | 日志时间范围报表 |
-te <结束日期><结束时间> |
报表结束时间 |
-ts <开始日期><开始时间> |
报表起始时间 |
--tty | 关于tty的报表 |
-u | 关于用户的报表 |
-x | 关于可执行文件的报表 |
示例
显示日志时间范围报表
$ aureport -t
Log Time Range Report
=====================
/var/log/audit/audit.log: 06/11/2024 17:18:23.716 - 06/12/2024 17:17:01.447
显示成功事件
$ aureport --success
Success Summary Report
======================
Range of time in logs: 06/11/2024 17:18:23.716 - 06/12/2024 17:17:01.447
Selected time for report: 06/11/2024 17:18:23 - 06/12/2024 17:17:01.447
Number of changes in configuration: 3336
Number of changes to accounts, groups, or roles: 0
Number of logins: 6
Number of failed logins: 0
Number of authentications: 17
Number of failed authentications: 0
Number of users: 2
Number of terminals: 12
Number of host names: 3
Number of executables: 16
Number of commands: 17
Number of files: 6
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 4
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 4
Number of process IDs: 3556
Number of events: 4135
显示失败事件
$ aureport --failed
Failed Summary Report
======================
Range of time in logs: 06/11/2024 17:18:23.716 - 06/12/2024 17:17:01.447
Selected time for report: 06/11/2024 17:18:23 - 06/12/2024 17:17:01.447
Number of changes in configuration: 1
Number of changes to accounts, groups, or roles: 0
Number of logins: 0
Number of failed logins: 0
Number of authentications: 0
Number of failed authentications: 0
Number of users: 2
Number of terminals: 4
Number of host names: 3
Number of executables: 5
Number of commands: 4
Number of files: 4
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 25
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 2
Number of process IDs: 16
Number of events: 37
生成15:00~17:00这段时间内的文件相关报表
$ aureport -ts 15:00 -te 17:00 -f
File Report
===============================================
# date time file syscall success exe auid event
===============================================
1. 06/12/2024 16:50:55 /tmp/ 44 yes /usr/sbin/auditctl 0 4945
2. 06/12/2024 16:51:11 /tmp/1 257 yes /usr/bin/cat 0 4946
3. 06/12/2024 16:51:40 /tmp/ 257 yes /usr/bin/bash 0 4947
4. 06/12/2024 16:55:24 /tmp/1 257 yes /usr/bin/cat 0 4949
列出没有被成功访问的文件
$ aureport -f --failed --summary
Failed File Summary Report
===========================
total file
===========================
10 /root/.curlrc
5 /etc/ssl/openssl.cnf
5 /root/.config/curlrc
4 /tmp/1
产生来自日志文件/var/log/audit/audit.log的报表
$ ureport -if /var/log/audit/audit.log
Summary Report
======================
Range of time in logs: 06/11/2024 17:18:23.716 - 06/12/2024 17:17:01.447
Selected time for report: 06/11/2024 17:18:23 - 06/12/2024 17:17:01.447
Number of changes in configuration: 3337
Number of changes to accounts, groups, or roles: 0
Number of logins: 6
Number of failed logins: 0
Number of authentications: 17
Number of failed authentications: 0
Number of users: 2
Number of terminals: 12
Number of host names: 3
Number of executables: 16
Number of commands: 17
Number of files: 9
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 25
Number of anomaly events: 229
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 4
Number of process IDs: 3561
Number of events: 5069
显示关于配置更改的报表
$ aureport -c
显示关于加密事件的报表
$ aureport -cr
生成用户相关的报告
$ aureport -u
显示登录相关的记录
$ aureport -l
Login Report
============================================
# date time auid host term exe success event
============================================
1. 06/11/2024 17:43:54 0 192.168.140.90 /dev/pts/1 /usr/sbin/sshd yes 57
2. 06/12/2024 09:10:54 0 192.168.128.62 /dev/pts/0 /usr/sbin/sshd yes 234
3. 06/12/2024 11:32:25 0 192.168.128.62 /dev/pts/1 /usr/sbin/sshd yes 3458
4. 06/12/2024 14:57:19 0 192.168.128.62 /dev/pts/2 /usr/sbin/sshd yes 4897
5. 06/12/2024 16:43:39 0 192.168.128.62 /dev/pts/3 /usr/sbin/sshd yes 4930
6. 06/12/2024 16:56:56 0 192.168.128.62 /dev/pts/4 /usr/sbin/sshd yes 4955
标签:审计,audit,12,Number,Auditd,2024,工具,root,pam
From: https://www.cnblogs.com/guangdelw/p/18242501