【网安合规】Audit 审计系统服务 - 快速监控检索系统安全事件,合规利器!

0e32269c65af2c828ecdd339f2707822.jpeg

145cce9d11cf81fd8e3d053c515743ef.gif

[ 当你的才华还撑不起你的野心时,那你就应该静下心来学习。]

大家好,我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者  
作者微信:WeiyiGeeker  
公众号/知识星球:全栈工程师修炼指南  
主页博客: 【 https://weiyigeek.top 】- 为者常成,行者常至。


0x00.实践在 Linux 系统快速搭建 audit 审计服务及日志转发

描述:此章节作者立足于网络安全等级保护以及安全运维工作的需要,从收集、归纳、实践三个部分开始,主要包括等保主机安全审计日志规则以及Linux各主流操作系统(kylinOS V10 SP3、Ubuntu、Rocky)快速搭建audit审计服务,作者花费大量时间精力,帮助各位运维看友可以快速为企业中各业务服务器加上审计服务,以保证等保合规要求,以及安全审计的需要,希望大家多多支持,也希望此文能够切实的帮助到正在做这方面的朋友。

06b6643e252bb8916bd20fadad428216.png

此处,在学习实践之前,简单复习一下一些基础知识。

原文链接: 【网安合规】Audit 审计系统服务 - 快速监控检索系统安全事件,合规利器!本章,作者从企业中网络安全等级保护以及安全运维工作中,抽取一部分安全审计方面的实践,主要介绍Linux主流操作系统(银河麒麟,Ubuntu、Rocky LInux)中audit审计服务系统的快速搭建配置,以及常用的Linux安全审计规则。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/N9c-8N6blIB9vTKgoLC_8A

什么是Linux审计服务系统?

Linux 审计系统提供了一种方式来跟踪系统上与安全相关的信息。根据预配置的规则,审计会生成日志条目,来尽可能多地记录系统上所发生的事件的相关信息。对于关键任务环境而言至关重要,可用来确定安全策略的违反者及其所执行的操作。审计不会为您的系统提供额外的安全,而是用于发现系统上使用的安全策略的违规。可以通过其他安全措施(如 SELinux)进一步防止这些违规。

Linux 系统 audit 审计服务介绍?

Linux Audit 是 Linux 操作系统上的一个功能,它允许系统管理员跟踪和监视系统上发生的各种事件和行为。这些事件包括文件和目录的访问、用户登录和注销、进程创建和终止,以及许多其他系统活动。Linux Audit 可以帮助管理员检测安全事件、审计系统配置和行为,并提供了对系统的更全面的可见性和控制。

Linux Audit 的主要优点包括:

  • 安全性: Linux Audit 可以帮助管理员检测和响应安全事件,提高系统的安全性。

  • 可追溯性: 通过审计日志,管理员可以追踪系统上发生的各种事件,包括用户活动、进程行为等,从而更好地了解系统的运行情况。

  • 合规性: 对于需要符合特定法规或标准的组织来说,如PCI DSS、HIPAA等,Linux Audit 提供了必要的审计功能,以确保系统的合规性。

总之,Linux Audit 是 Linux 系统上一个重要的安全功能,通过记录和监视系统上发生的各种事件,可以帮助管理员提高系统的安全性、可追溯性和合规性。

Linux 系统 audit 相关工具程序有那些?

Linux 用户空间审计系统由 auditd、auditctl、aureport、audispd、ausearch 和 autrace 等应用程序组成,下面作者依次简单介绍。

  • auditd :audit 守护进程负责把内核产生的信息写入到硬盘上,这些信息由应用程序和系统活动触发产生。用户空间审计系统通过 auditd 后台进程接收内核审计系统传送来的审计信息,将信息写入到 /var/log/audit/audit.log。

  • auditctl : 即时控制审计守护进程的行为的工具,如添加规则等。

    aureport : 查看和生成审计报告的工具。

    ausearch : 查找审计事件的工具

    auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。

    autrace : 一个用于跟踪进程的命令。类似于 strace,跟踪某一个进程,并将跟踪的结果写入日志文件之中。

Linux Audit 的主要组件包括以下几个方面:

  1. Auditd 服务: Auditd 是 Linux Audit 的核心组件,它是一个守护进程,负责收集系统上发生的各种事件,并将其记录到审计日志中。管理员可以通过配置 audit.rules 文件来定义需要监视的事件类型和规则。

  2. Auditctl 命令: Auditctl 是与 Auditd 服务交互的命令行工具。管理员可以使用 auditctl 命令动态地配置审计规则、启用或禁用审计功能,以及查询审计日志等。

  3. 审计规则: 管理员可以通过编辑 audit.rules 文件来定义审计规则,以指定要监视的事件类型、记录方式、日志路径等。这些规则可以根据需要进行定制,以满足特定的安全需求。

  4. 审计日志: 审计日志是记录 Linux 系统上发生的各种事件的文件。管理员可以使用工具如 ausearch、ausearch-dump 等来分析和检索审计日志,以了解系统的行为和事件发生情况。

0fe7df42df67dee184a2a44d59f8e225.png

简述 audit 和 syslog 日志系统之间的关系?

  • audit 审计系统:主要用来记录安全信息,用于对系统安全事件的追溯,其可以记录内核信息,包括文件的读写,权限的改变等。

  • syslog 日志系统:主要用来记录系统中的各种信息,如硬件警报和软件日志等,由于 syslog 属于应用层,没办法记录太多信息。

更多基础知识,可参考下述文章。

Linux 中 audit 审计相关命令使用实践,可参考作者发布的《Linux 命令 | 每日一学,Audit 安全审计相关工具》文章。

Linux 中 rsyslog 日志服务器搭建部署,可参考作者发布的《【网安合规】Rsyslog 开源日志服务器 - 快速收集企业网络日志,合规利器!》文章。

温馨提示:作者最近开通的知识星球,全栈系列从门到实践教程将会逐步同步到星球内(实时更新),加入星球将获得作者在安全、运维、开发(Sec、Ops、Dev)中的所有学习实践笔记,和问题答疑以及远程技术支持,希望大家多多支持!

d3c641e90c4600451c0a8ffe0872ffc6.jpeg

实践效果展示,以 Ubuntu、Rocky Linux 9 系统为例。

在 rsyslog 远程日志服务器查看从Ubuntu接收到 audit的 审计日志

dfdf79efd69177ff6484e9fa24038e01.png

weiyigeek.top-在rsyslog远程日志服务器查看接收到audit审计日志图

在 Grafana 可视化平台查看使用 Loki 从Ubuntu采集到的 auditd 审核日志

878004263282376986ab1a24c714157d.png

weiyigeek.top-在Grafana可视化平台查看使用Loki采集到auditd审核日志图

RockyLinux9系统auditd审计日志转发查看图

3b9ace803a760abef8e112bebb004039.png

weiyigeek.top-RockyLinux9系统auditd审计日志转发查看图


等保合规主机审计规则

描述:前面介绍 audit 相关审计工具的语法与使用示例,立足于等保主机安全合规要求,作者将抽取企业中的 Linux 操作系统里面配置的 audit 相关规则,进行实践触发规则并记录对应触发对象日志。

温馨提示:不同的操作系统、不同的 auditd 版本,在审计规则中有可能调用名称,以及参数有所差异,此时以实际的auditd版本的帮助文档为准。

1.记录修改系统日期和时间信息的事件,并使用标识符 “policy-time” 标记记录

tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-a always,exit -F arch=b64 -S adjtimex,settimeofday -k policy-time
-a always,exit -F arch=b32 -S adjtimex,settimeofday,stime -k policy-time
-a always,exit -F arch=b32 -S clock_settime -F a0=0x0 -F key=policy-time
-a always,exit -F arch=b64 -S clock_settime -F a0=0x0 -F key=policy-time
-w /etc/localtime -p wa -F key=policy-time
EOF

温馨提示:为规则打审计事件标签由两种方式,一种是使用 -k <lable>,一种是使用 -F key=<lable>

2.记录对用户和组的修改的事件

tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-w /etc/group -p wa -k policy-identity
-w /etc/passwd -p wa -k policy-identity
-w /etc/gshadow -p wa -k policy-identity
-w /etc/shadow -p wa -k policy-identity
-w /etc/security/opasswd -p wa -k policy-identity
EOF

3.记录对网络环境或影响系统调用的事件

tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-a always,exit -F dir=/etc/NetworkManager/ -F perm=wa -F key=policy-network
-a always,exit -F arch=b64 -S sethostname -S setdomainname -k policy-locale
-a always,exit -F arch=b32 -S sethostname -S setdomainname -k policy-locale
-w /etc/resolv.conf -p wa -k policy-locale
-w /etc/hosts -p wa -k policy-locale
-w /etc/hostname -p wa -k policy-locale
-w /etc/issue -p wa -k policy-locale
-w /etc/issue.net -p wa -k policy-locale
-a always,exit -F dir=/etc/selinux/ -F perm=wa -F key=policy-selinux
EOF

# rhel、CentOS、KylinOS
tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-w /etc/sysconfig/network -p wa -k policy-network-rhel
-w /etc/sysconfig/network-scripts/ -p wa -k policy-network-rhel
EOF

# debian、Ubuntu
tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-w /etc/networks -p wa -k policy-network-debian
-w /etc/netplan/ -p wa -k policy-network-debian
EOF

4.记录用户登录和登出以及会话事件

tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-w /var/log/tallylog -p wa -k policy-logins
-w /var/run/faillock/ -p wa -k policy-logins
-w /var/log/lastlog -p wa -k policy-logins
-w /var/run/utmp -p wa -k policy-session
-w /var/log/btmp -p wa -k policy-session
-w /var/log/wtmp -p wa -k policy-session
EOF

5.记录监视对文件权限、属性、所有权和组更改的事件

tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-a always,exit -F arch=b32 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -F key=policy-perm_mod
-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=unset -F key=policy-perm_mod
-a always,exit -F arch=b32 -S lchown,fchown,chown,fchownat -F auid>=1000 -F auid!=unset -F key=policy-perm_mod
-a always,exit -F arch=b64 -S chown,fchown,lchown,fchownat -F auid>=1000 -F auid!=unset -F key=policy-perm_mod
-a always,exit -F arch=b32 -S setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -F key=policy-perm_mod
-a always,exit -F arch=b64 -S setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -F key=policy-perm_mod
EOF

6.记录未授权文件访问尝试的事件

tee -a /etc/audit/rules.d/audit.rules << 'EOF'
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -F key=policy-access
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=policy-access
-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EACCES -F auid>=1000 -F auid!=unset -F key=policy-access
-a always,exit -F arch=b64 -S open,truncate,ftruncate,creat,openat,open_by_handle_at -F exit=-EPERM -F auid>=1000 -F auid!=unset -F key=policy-access
EOF

7.记录使用特权命令的事件

描述: 监视特权程序(那些在执行时设置了setuid和/或setgid位的程序)以确定没有权限的用户是否正在运行这些命令。

# 查找出系统中存在的特权文件
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f | awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>=1000 -k policy-privileged" }'

# 例如,
-a always,exit -F path=/usr/bin/fusermount -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/wall -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/chage -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/gpasswd -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/newgidmap -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/newgrp -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/newuidmap -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/mount -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/crontab -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/umount -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/write -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/sudo -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/staprun -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/passwd -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/pkexec -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/chfn -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/chsh -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/at -F perm=x -F auid>=1000 -k policy-privileged
-a always,exit -F path=/usr/bin/locate -F perm=x -F auid>=1000 -k policy-privileged

8.记录磁盘挂载情况事件(按需添加)

完整原文:【网安合规】Audit 审计系统服务 - 快速监控检索系统安全事件,合规利器!本章,作者从企业中网络安全等级保护以及安全运维工作中,抽取一部分安全审计方面的实践,主要介绍Linux主流操作系统(银河麒麟,Ubuntu、Rocky LInux)中audit审计服务系统的快速搭建配置,以及常用的Linux安全审计规则。icon-default.png?t=N7T8https://mp.weixin.qq.com/s/N9c-8N6blIB9vTKgoLC_8A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈工程师修炼指南

原创不易,赞赏鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值