Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ndaal_public_auditd — 最佳实践 Linux Auditd 规则集,包含 14,956 条映射到 MITRE ATT&CK 的规则、Ansible 部署角色,以及用于安全监控和合规审计的 lint/测试工具。 | Kitploit
工具/GitLabGitLab/ndaal_open_source/ndaal_public_auditd
防御工具配置审计数字取证DevSecOps威胁情报入侵检测事件响应日志分析

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitLab
ndaal_open_source/ndaal_public_auditd

ndaal_public_auditd

最佳实践 Linux Auditd 规则集,包含 14,956 条映射到 MITRE ATT&CK 的规则、Ansible 部署角色,以及用于安全监控和合规审计的 lint/测试工具。

查看仓库
445天前尚未审核

Linux 审计守护进程 (Auditd) 最佳实践与部署

本仓库提供 Linux 审计守护进程 (Auditd) 配置与部署的全面最佳实践,包括一套广泛的安全导向审计规则、用于自动化部署的 Ansible 角色,以及在真实内核上测试这些规则的工具。

规则集、角色和测试的变更记录在 CHANGELOG.md 中。

概述

Auditd 是一个强大的 Linux 审计系统,提供全面的系统监控和日志记录能力。它旨在跟踪与安全相关的事件,对于以下方面至关重要:

  • 安全监控与威胁检测
  • 合规审计(PCI-DSS、NISPOM、FISMA、STIG)
  • 事件调查与取证
  • 系统行为分析

主要特性

  • 文件访问与修改跟踪
  • 进程执行监控
  • 用户身份验证日志记录
  • 系统配置变更检测
  • 安全相关事件记录
  • 系统调用审计

审计规则最佳实践

我们全面的审计规则(/ndaal/audit_best_practices.rules 或 /dataset/audit_best_practices.rules)旨在满足各种安全标准和最佳实践,包括:

  • PCI DSS 合规要求
  • NISPOM 合规指南
  • STIG 安全指南
  • 来自多个来源的行业最佳实践

规则文件

文件内容
dataset/audit_best_practices.rules主规则集:14,956 条活动规则,包含 903 个键,以 arch=b32/arch=b64 成对形式编写。这是 Ansible 角色下载的文件。
dataset/audit_best_practices_high_volume.rules配套文件,包含未经过滤的集合:非系统用户的每次 execve、kill/tkill/tgkill 以及出站 connect。其中的每条规则都被注释掉,因此该文件默认关闭。其文件头说明了如何一次启用一个块。
ndaal/两个文件的字节级相同副本。
*.rules.sha-256采用 sha256sum 格式的 SHA-256 附属文件。Ansible 角色会根据它们校验每次下载。编辑规则文件后,运行 tools/update_rules_checksums.sh 重新生成它们。
tools/key-decisions.tsv每个键冲突对对应一项决策,由 tools/resolve_key_collisions.py 应用。

经测量证明有误的规则会被注释掉,并附上带日期的说明给出原因。不会删除任何内容,因此文件保留了每项决策的历史。

键与 MITRE ATT&CK

以技术 ID 开头的键遵循 MITRE ATT&CK Enterprise 19.2。ATT&CK v19 撤销了该文件曾使用的六个 ID。在 2026-09-27,它们的键被重命名为 MITRE 为其指定的后继名称。请更改所有使用旧键的 SIEM 查询和告警:

旧键新键
T1562.001_Impair_Defenses_Disable_or_Modify_ToolsT1685_Disable_or_Modify_Tools
T1562.004_Impair_Defenses_Disable_or_Modify_System_FirewallT1686_Disable_or_Modify_System_Firewall
T1070.002_Indicator_Removal_Clear_Linux_or_Mac_System_LogsT1685.006_Disable_or_Modify_Tools_Clear_Linux_or_Mac_System_Logs
T1107_File_DeletionT1070.004_Indicator_Removal_File_Deletion
T1169_SudoT1548.003_Abuse_Elevation_Control_Mechanism_Sudo_and_Sudo_Caching
T1079_Multilayer_EncryptionT1573_Encrypted_Channel

对 /var/log/audit/ 的监视使用 T1685.004_Disable_or_Modify_Tools_Disable_or_Modify_Linux_Audit_System_Log,即 v19 中针对审计日志本身的子技术,而不是 T1685.006。在重命名之前编写的带日期说明,以及它们所解释的被注释掉的规则,保留旧名称。

同样在 2026-09-27,命名了错误技术的键得到了更正。请同时更改这些规则的 SIEM 查询和告警:

规则旧键新键
对 /etc/passwd 的写入和属性更改(新增的一对;读取保留 T1087)T1087_Account_DiscoveryT1098_Account_Manipulation
对 /etc/shadow 的写入和属性更改T1087_Account_DiscoveryT1098_Account_Manipulation
某人读取 /etc/shadowT1087_Account_DiscoveryT1003.008_OS_Credential_Dumping_etc_passwd_and_etc_shadow
/etc/ssh/sshd_configT1021_Remote_ServicesT1021.004_Remote_Services_SSH
/root/.ssh/authorized_keysT1021_Remote_ServicesT1098.004_Account_Manipulation_SSH_Authorized_Keys
/etc/systemd/system/T1053.006_Scheduled_Task_Systemd_TimersT1543.002_Create_or_Modify_System_Process_Systemd_Service
dateT1083_File_and_Directory_DiscoveryT1124_System_Time_Discovery
Python 解释器(pip、pipx、conda 和 npm 保留 T1072)T1072_Software_Deployment_ToolsT1059.006_Command_and_Scripting_Interpreter_Python
由某人运行的 mysql 和 psqlT1213_002_database_accessT1213.006_Data_from_Information_Repositories_Databases
对 /etc/group 的写入和属性更改T1087_Account_DiscoveryT1098_Account_Manipulation
对 /etc/gshadow 的写入和属性更改(新增的一对;读取保留 T1087)T1087_Account_DiscoveryT1098_Account_Manipulation
/usr/lib/systemd/system/(/run/systemd/transient/ 保留 T1053.006)T1053.006_Scheduled_Task_Systemd_TimersT1543.002_Create_or_Modify_System_Process_Systemd_Service
/home/vagrant/.ssh/authorized_keysT1021_Remote_ServicesT1098.004_Account_Manipulation_SSH_Authorized_Keys
写入 /var/log/tomcat10/,64 位(一处拼写错误)tomcattomcattomcat
写入 /etc/mandiant/,32 位(一处拼写错误)mmandiant_configmandiant_config

unix_chkpwd 是 sudo 和屏幕锁的密码检查程序,它以该人员的审计 ID 读取 /etc/shadow,因此每次密码检查现在都以 T1003.008 出现。在用于凭据转储的 SIEM 规则中过滤 exe=/usr/sbin/unix_chkpwd。另外 34 条键采用 T1234_567 拼写形式的规则从未标记任何记录,因为更早的规则匹配了相同的事件。它们被注释掉,并附有说明指出那条规则。

kexec_load、capset、perf_event_open 和 semtimedop_time64 的 32 位调用现在携带 KEXEC、capability_change_ebpf、perf_event_ebpf 和 T1559_Inter-Process_Communication,而不是 32bit_abi。对整个数据目录的 elasticsearch-data 监视在两种 ABI 上均关闭:其警告使其成为选择性启用。在 64 位主机上,elasticsearch-nodes 和 elasticsearch-data-deletion 键(它在此之前一直占用)再次出现。

规则顺序:第一条匹配的规则提供键

内核会附加匹配某事件的最早加载规则的键。这同样适用于系统调用规则和路径监视(kernel/auditfilter.c、kernel/auditsc.c)。因此,放置在靠前位置的宽泛规则会从其后每条具体规则那里夺走键。直到 2026-09-20,未经过滤的 procmon execve 规则位于第 1,575 行,有 368 个键从未出现在任何记录上。

现在,兜底规则位于文件末尾,顺序如下:

  1. user_exec:登录会话(auid>=500、auid!=-1)中未被任何监视规则和提权规则认领的每次 execve
  2. procmon:所有剩余的 execve(守护进程、cron、启动)
  3. 主机范围的 setres*/setfs*、stime 和 32 位 umount 规则
  4. network_changes(每次 socket 和 setsockopt)和 elasticsearch-bind-success(每次成功的 bind)
  5. 32bit_abi:针对 arch=b32 的 -S all,始终是文件中最后一条 -a 规则

在此块之上添加每条新规则。tools/auditd-rules-lint.sh 会使兜底规则上移的文件检查失败:它会报告键遮蔽以及不是最后一条的 -S all 规则。

同一条规则决定了谁为安装操作打标签。安装以 root 身份运行,特权命令部分的 euid=0 和 auid!=uid execve 规则会认领每次 root 执行(T1548.001)。因此,包管理器(rpm、dnf、YaST/Zypper、dpkg 和 APT、Pacman、APK)位于该部分之上,与 Ceph 块一样:安装操作携带 T1072_Software_Deployment_Tools,而记录仍显示 euid=0 和该人员的审计 ID。直到 2026-09-27,它们位于其下方,从未标记任何安装操作。pip、conda 和 npm 保留在下方:Python 部分也监视解释器,而在上方,解释器监视会标记 root 运行的每个 Python 脚本。

系统调用参数很容易被误读。在 bind() 中,a0 是文件描述符,而不是端口。此前 42 条 bind -F a0=<port> 规则匹配的是描述符号,因此它们被禁用。

漏洞利用与会话覆盖(2026-09)

  • Copy Fail (AF_ALG): 两种架构上各三条规则,置于所有其他套接字规则之上,键为 T1068_Exploitation_for_Privilege_Escalation_AF_ALG:

    • socket 且 a0=38(AF_ALG)
    • bind 且 a2=88(sockaddr_alg 的大小)
    • setsockopt 且 a1=279(SOL_ALG)
  • Dirty Pipe (CVE-2022-0847): 两条规则:

    • 已公布的单行命令 -S splice -F a0=0x3 -F a2=0x5 -F a3=0x0,键为 dirtypipe_CVE-2022-0847
    • -S splice -F a1!=0,键为 T1068_Exploitation_for_Privilege_Escalation_splice_file_to_pipe。它捕获以显式偏移量复制到管道中的文件,无论描述符号是什么。
  • 登录会话执行: user_exec(见上文)。它将登录会话与守护进程区分开来。记录数量保持不变。

  • 文件系统和卷工具: XFS(xfsprogs、xfsdump)、Btrfs、NILFS2 和 LVM2/device-mapper:4 个位置中的 60 个工具。

  • SBOM 工具链: ndaal sbom_tools Ansible 角色的基于路径的规则(syft、cdxgen、cargo-sbom、tern、grype、trivy、osv-scanner、bomber、bitvex、bomdrift、shieldbom、inspektr_cli、provenant、ORT,以及 jaq 和 sha3sum),采用该角色的默认布局:

    • 从 /opt/ndaal/sbom-tools/bin、/usr/local/bin 或 /usr/bin 执行每个工具(T1518.001_Security_Software_Discovery)
    • 对已安装工具链的写入(T1554_Compromise_Host_Software_Binary)及其配置的写入(T1685_Disable_or_Modify_Tools)
    • 离线漏洞数据库中的写入、删除和重命名(T1565.001…)
    • 扫描报告的删除(T1070.004…),以及某人读取 SBOM 和报告(T1005…)

    该角色中按工具账户过滤的规则(-F uid=sbom_analyze_grype)保留在角色中:auditctl 会拒绝主机上不存在的用户名。

  • Ceph 存储集群: 软件包安装和 cephadm 共享 /etc/ceph/、/var/lib/ceph/ 和 /var/log/ceph/。该块的每个键都以 _Ceph 结尾,因此一次搜索即可找到该集群,且键遵循 MITRE ATT&CK Enterprise 19.2:

    • 对 ceph.conf、/etc/sysconfig/ceph 和 /etc/default/ceph 的写入(T1556_Modify_Authentication_Process_Ceph_Config):ceph.conf 决定 cephx 身份验证是否开启
    • /etc/ceph/ 中的密钥环以及任何人创建、更改或删除的 bootstrap-* 密钥,以及 ceph-authtool 和 radosgw-admin 的运行(T1098_Account_Manipulation_Ceph)
    • 某人读取密钥环、bootstrap 密钥或 MON 存储(其中保存着每个 cephx 密钥)(T1552.001_Unsecured_Credentials_Credentials_In_Files_Ceph)
    • 某人写入守护进程数据,以及运行离线存储和映射工具,如 ceph-objectstore-tool、ceph-bluestore-tool、monmaptool 和 crushtool(T1565.001_Stored_Data_Manipulation_Ceph)
    • cephadm 和 ceph-volume(T1072_Software_Deployment_Tools_Ceph)
    • 某人写入、删除、重命名或截断 Ceph 日志(T1685.006_Disable_or_Modify_Tools_Clear_Linux_or_Mac_System_Logs_Ceph)
    • 日常 CLI 和客户端 ceph、rados、rbd、ceph-conf、ceph-fuse、rbd-nbd 和 mount.ceph(ceph_cli)
下载工具