【Linux】安全审计-audit

文章目录

  • 一、audit简介
  • 二、启auditd服务
  • 三、相关文件
  • 四、审计规则
  • 五、审计日志查询及分析

参考文章:

1、【安全】linux audit审计使用入门
2、audit详细使用配置

写在前面:
1.写博客,做日常工作记录,好记性不如烂笔头嘛;
2.内容非原创,参考的文章已上文列出;
3.如有错误,欢迎指正。

一、audit简介

audit是Linux内核提供的一种审计机制,由于audit是内核提供的,因此,在使用audit的过程中就包含内核空间和用户空间部分

auditctl:用户态程序,用于审计规则配置和配置变更
kaudit:内核空间程序,根据配置好的审计规则记录发生的事件
auditd:用户态程序,通过netlink获取审计日志

通常的使用流程

用户通过auditctl配置审计规则
内核的kauditd程序获取到审计规则后,记录对应的审计日志
用户态的auditd获取审计日志并写入日志文件

二、启auditd服务

systemctl status auditd.service
systemctl start auditd.service

【Linux】安全审计-audit_第1张图片

三、相关文件

# 1.应用配置文件
/etc/audit/auditd.conf
# 2.添加规则的文件
/etc/audit/rules.d/audit.rules
# 3.日志所在目录
/var/log/audit/

四、审计规则

  1. 控制规则:用于更改审计系统本身的配置和设置。
auditctl -b 8192	# 配置buffer大小为8M
auditctl -e 0
auditctl -f 2
auditctl -s
  1. 文件系统规则:审核对特定文件或目录的任何类型的访问(比较常见)
# 项太多了,举例一个,监控针对/etc/passwd文件的读、写、执行和属性改变,关键字为change_passwd
auditctl -w /etc/passwd -p rwxa -k change_passwd
# 如果要查询,
ausearch -i -k change_passwd

详见 auditctl -h

  1. 系统调用规则:用于监视由任何进程或特定用户进行的系统调用
# -S 设置要监控的系统调用名或者系统调用号,下述命令仅作举例
auditctl -S openat

同样:详见 auditctl -h

哈哈:下面截了一个 auditctl -h,仅供参考
【Linux】安全审计-audit_第2张图片

五、审计日志查询及分析

# 仅列举比较常用的方式,-k后面跟创建审计规则时设置的关键字
ausearch -i -k ***

审计日志类似:(各个系统可不同)
【Linux】安全审计-audit_第3张图片
审计日志-字段分析

  • type:audit消息类型,消息类型有100多种
  • msg:消息的ID, 它有两个部分组成, 分号之前的是Unix的时间戳,分号之后的是真正的event ID(同一个应用程序的相同system call拥有相同的event ID, 同一个应用的不同system call则不同。)
  • arch: 调用system call的CPU构架
  • syscall:system call的类型(可以查看https://github.com/torvalds/linux/blob/master/arch/sh/include/asm/unistd.h)
  • success:system call是成功或者失败
  • comm: 出现在任务列表中,应用程序的名称。
  • exe: 二进制程序的解析路径。
  • ses: 用户登录的session ID.
  • auid: audit ID, 针对某一用户,一个进程会被分配一个audit ID, 该audit ID会被传递给子进程,尽管在系统中用户切换,该audit ID将始终保持一致。 这样我们可以针对对某一用户进行trace。
  • a0 to a3: 系统调用的前四个参数的数字化,可以通过ausearch解码查看
  • items: 传递到应用程序的字符串数量
  • ppid:父进程的PID
  • pid:该进程的PID
  • uid: user ID。
  • gid: group ID。
  • euid, suid, fsuid: Effective user ID, set user ID, and file system user ID.
  • egid, sgid, fsgid: Effective group ID, set group ID, and file system group ID.
  • tty: 应用程序开启的终端,这种情况下pseudo-terminal used in an SSH session.

(非重点关注内容,我置灰了,并且改小了)

你可能感兴趣的:(Linux学习,操作系统,linux,安全,运维)