zhangguanzhang's Blog

Linux audit 审计

字数统计: 415阅读时长: 1 min
2020/07/05 Share

什么是audit?

linux audit子系统是一个用于收集记录系统、内核、用户进程发生的行为事件的一种安全审计系统。该系统可以可靠地收集有关上任何与安全相关(或与安全无关)事件的信息,它可以帮助跟踪在系统上执行过的一些操作。

使用

安装

好像高版本 os 都自带了,没有就 yum install -y audit

1
systemctl status auditd.service

例如追踪一个内核参数被谁修改

要注意的是 auditctl 只能临时生效,要想永久生效使用文件 audit.rules

基本信息查看

1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看状态
$ auditctl -s
enabled 1
failure 1
pid 705
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
loginuid_immutable 0 unlocked
# 查看 rule
$ auditctl -l
No rules

增加一个 rule

-w 选项增加一个 path 审计,-p 审计权限

1
2
3
$ auditctl -w /proc/sys/net/ipv4/ip_forward -pw -k sysctl-exec
$ auditctl -l
-w /proc/sys/net/ipv4/ip_forward -p w -k sysctl-exec

监听日志:

1
tailf /var/log/audit/audit.log  | grep sysctl-exec

另一个窗口写入触发审计日志记录

1
echo 1 > /proc/sys/net/ipv4/ip_forward

可以看到日志审计到了。

1
type=SYSCALL msg=audit(1624344618.910:10909123): arch=c000003e syscall=2 success=yes exit=3 a0=166ec40 a1=241 a2=1b6 a3=fffffff0 items=2 ppid=6419 pid=6421 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts3 ses=61322 comm="bash" exe="/usr/bin/bash" key="sysctl-exec"

使用 pstree 来查看进程树,也就是我另一个终端的 shell

1
2
$ pstree -sp 6419
systemd(1)───sshd(4866)───sshd(6419)───bash(6421)

清空 rule

1
auditctl -D
CATALOG
  1. 1. 什么是audit?
  2. 2. 使用
    1. 2.1. 安装
    2. 2.2. 例如追踪一个内核参数被谁修改
      1. 2.2.1. 基本信息查看
      2. 2.2.2. 增加一个 rule
      3. 2.2.3. 清空 rule