audit审计

audit审计

安装audit

参考: https://blog.csdn.net/u010039418/article/details/85091142

shell 复制代码
# rhel
dnf install -y audit

# debian
## audispd-plugins提供了 一些插件和规则
sudo apt install -y auditd audispd-plugins

配置审计服务

审计守护进程可以在/etc/audit/auditd.conf

配置文件中进行配置。此文件包含修改审核守护进程行为的配置参数。任何空行或#后面的文本都将被忽略

配置auditd capp 环境

默认auditd配置应该适用于多数环境。但是,如果您的环境必须满足受控访问保护配置文件(CAPP)设置的标准

  • 保存审核日志文件的目录(通常为/var/log/audit)驻留在单独的分区上。这可以防止其他进程占用此目录中的空间,并为审计守护进程提供对剩余空间的准确检测
  • max_log_file参数指定单个审计日志文件的最大大小,必须设置为充分利用保存审计日志文件的分区上的的可用空间
  • max_log_file_action参数一旦max_log_file达到设置时采取的操作,应设置keep_logs为防止审计日志文件被覆盖

定义审计规则

审计系统根据一组审计规则运行,这些规则定义了日志文件中捕获的内容,可以指定三种类型的审计规则

  1. 控制规则--允许修改审计系统的行为以及某些配置
  2. 文件系统规则-也称为文件监视,允许审计对特定文件或目录的访问
  3. 系统调用规则--允许记录任何指定程序进行的系统调用

可以使用auditctl程序在命令行指定审计规则(请注意,这些规则在重新启动后不会持久),或写入/etc/audit/audit.rules文件

shell 复制代码
# 创建审计规则文件
touch /etc/audit/rules.d/10-root-commands.rules

配置审计规则内容如下

shell 复制代码
# 审计规则:针对 64 位架构,监控以 root 身份执行的命令
## -a always,exit: 添加一条审计规则,始终生效并在系统调用退出时触发
## -F arch=b64: 仅适用于 64 位架构
## -S execve: 监控 `execve` 系统调用(用于执行程序)
## -F euid=0: 仅审计有效用户 ID 为 0(即 root 用户)的进程
## -k root-commands: 将审计事件标记为 `root-commands`,便于后续查询
-a always,exit -F arch=b64 -S execve -F euid=0 -k root-commands

# 审计规则:针对 32 位架构,监控以 root 身份执行的命令
## -a always,exit: 添加一条审计规则,始终生效并在系统调用退出时触发
## -F arch=b32: 仅适用于 32 位架构
## -S execve: 监控 `execve` 系统调用(用于执行程序)
## -F euid=0: 仅审计有效用户 ID 为 0(即 root 用户)的进程
## -k root-commands: 将审计事件标记为 `root-commands`,便于后续查询
-a always,exit -F arch=b32 -S execve -F euid=0 -k root-commands
使用auditctl应用程序定义审计规则

与审计服务和审计日志文件交互的所有命令都需要root权限。确保以root用户执行这些命令

auditctl命令允许您控制审计系统的基本功能并决定记录哪些事件的规则

定义控制规则

以下是一些允许您修改审计系统行为的控制规则

  • -b 设置内核中现有审计缓存区的最大数值
shell 复制代码
auditctl -b 8192
  • -f 该选项允许确定希望内核如何处理关键错误,有0,1,2三个值,0是不输出日志,1位输出printk日志,2会大量输出日志信息。默认值位1
shell 复制代码
auditctl -f 2

重载规则

shell 复制代码
# 重载规则
sudo augenrules --load

# 验证规则是否已加载
sudo auditctl -l

审计

shell 复制代码
# 审计
sudo ausearch -k root-commands

# 只看命令执行记录
sudo ausearch -k root-commands|grep argc

# 查看最近10分钟的
sudo ausearch -k root-commands -ts recent

# 查看今天的
sudo ausearch -k root-commands -ts today

## -i 格式化输出,更易读
sudo ausearch -k root-commands -i

# 向history一样只显示命令
ausearch -k root-commands -i | grep 'proctitle='
相关推荐
AlfredZhao9 个月前
使用触发器来审计表的DML、DDL操作
oracle·audit·trigger
luofengmacheng1 年前
【安全】audit的一些问题以及需要注意的地方
安全·audit
luofengmacheng1 年前
【安全】audispd调研
运维·安全·audit
luofengmacheng1 年前
【安全】2.6.6版本的audit审计机制分析
网络·安全·audit