• 【Linux】安全审计-audit


    参考文章:

    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
    
    • 1
    • 2

    在这里插入图片描述

    三、相关文件

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

    四、审计规则

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

    详见 auditctl -h

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

    同样:详见 auditctl -h

    哈哈:下面截了一个 auditctl -h,仅供参考
    在这里插入图片描述

    五、审计日志查询及分析

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

    审计日志类似:(各个系统可不同)
    在这里插入图片描述
    审计日志-字段分析

    • 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.

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

  • 相关阅读:
    智能优化算法(源码)—蜣螂优化算法(Dung beetle optimizer,DBO)
    配置d3dx9.h
    【RV1103】RTL8723bs (SD卡形状模块)驱动开发
    基于粒子群优化算法的最优潮流(IEEE30节点(Matlab代码实现)
    Windows操作系统的文件组织结构和计算方法
    CRC校验原理及步骤
    STM32 | USART实战案例
    【Git忽略规则及.gitignore规则不生效的解决办法】
    实验2.6.3 函数拓展练习
    心脏滴血漏洞(CVE-2014-0160)分析与防护
  • 原文地址:https://blog.csdn.net/Sanayeah/article/details/134449631