0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Audit执行Linux系统和安全审计

汽车玩家 来源:今日头条 作者:新钛云服 2020-05-05 22:17 次阅读

Linux Audit守护进程是一个可以审计Linux系统事件的框架。在本文中,我们一起看看安装、配置和使用这个框架来执行Linux系统和安全审计。

审计目标

通过使用一个强大的审计框架,系统可以追踪很多事件类型来监控和并审计它。这样的例子包括:

审计文件访问和修改

看看谁改变了一个特殊文件

检测未授权的改变

监控系统调用和函数

检测异常,比如崩溃的进程

为入侵检测目的设置“导火线”

记录各个用户使用的命令

组件

这个框架本身有数个组件:

内核:

audit:钩在内核中来捕获事件并将它们发送到auditd

二进制文件:

auditd:捕捉事件并记录它们(记录在日志文件中)的守护进程

auditctl:配置auditd的客户端工具

audispd:多路复用事件的守护进程

aureport:从日志文件(auditd.log)中读取内容的报告工具

ausearch:事件查看器(查看的内容是auditd.log)

autrace:使用内核中的审计组件来追踪二进制文件

aulast:和上一个类似,但是使用的是审计框架

aulastlog:和lastlog类似,但是也使用的是审计框架

ausyscall:映射系统调用ID和名字

auvirt:展示和审计有关虚拟机的信息

文件:

audit.rules:auditctl使用,它读取该文件来决定需要使用什么规则

auditd.conf:auditd的配置文件

安装

Debian/Ubuntu使用命令:apt-get install auditd audispd-plugins

Red Hat/CentOS/Fedora:通常已经安装了(包:audit和audit-libs)

配置

2个文件管理审计守护进程的配置,一个用于守护进程本身(auditd.conf),另一个是用于auditctl工具的规则(audit.rules)。

auditd.conf

文件auditd.conf对Linux audit守护进程的配置聚焦在它应该在哪里以及如何记录事件。它也定义了如何应对磁盘满的情况、如何处理日志轮转和要保留的日志文件数量。通常,对大多数系统来说,默认配置是足够的。

audit.rules

为了配置应该审计什么日志,审计框架使用了一个名为audit.rules的文件。

和大多数情况一样,从零开始而不加载任何规则。通过用-l参数来运行auditctl,我们可以确定使用中的规则。

[root@host ~]# auditctl -l

No rules

万一加载了任何规则的话,用-D参数运行auditctl来删除已加载规则。

现在是时候来监控点东西了,比如/etc/passwd文件。通过定义要查看的路径和权限,我们在这个文件上放一个观察点:

auditctl -a exit,always -F path=/etc/passwd -F perm=wa

通过定义path选项,我们告诉审计框架来监视什么目录或者文件。权限决定了什么类型的访问将触发一个事件。虽然这里的权限看起来类似文件的权限,但是要注意,在这2者之间有一个重大的区别。这里的4个选项是:

r = 读取

w = 写入

x = 执行

a = 属性改变

通过使用ausearch工具,我们可以快速的追踪对文件的访问和找到相关的事件。

用Audit执行Linux系统和安全审计

这个输出里面的一些重点是:

事件的时间(time)和对象的名称(name),当前的工作路径(cwd),相关的系统调用(syscall),审计用户ID(auid)和在这个文件上执行行为的二进制(exe)。请注意,auid定义了在登录过程中的原始用户。其他的用户ID字段可能指向了一个不同的用户,取决于在触发一个事件时在使用的实际用户。

转换系统调用

系统调用是以数字类型的值来记录的。因为在不同的服务器架构之间,这些值会有重叠,所以当前的服务器架构也记录了下来。

通过使用uname -m,我们可以确定服务器架构并使用ausyscall 来确定数字为188的系统调用代表了什么。

[root@host audit]# ausyscall x86_64 188

setxattr

现在,我们知道了这是属性的变化,这是讲得通的,因为我们定义了观察点,在属性变化(perm=a)的时候触发一个事件。

使用了临时规则并想再用老的规则?使用一个文件来刷新审计规则:

auditctl -R /etc/audit/audit.rules

审计Linux的进程

和使用strace类似,审计框架有一个名为autrace的工具。它使用了审计框架并增加了合适的规则来捕获信息并记录。收集到的信息可以使用ausearch来展示。

执行一次追踪:

使用ausearch来展示相关的文件:

按照用户来审计文件访问

审计框架可以用于监控系统调用,包括对文件的访问。如果你希望知道一个特定的用户ID访问了什么文件,使用像下面的这样一条规则:

auditctl -a exit,always -F arch=x86_64 -S open -F auid=80

-F arch=x86_64定义了使用什么架构(uname -m)来监控正确的系统调用(一些系统调用在不同的架构之间是不同的)。

-S open 选择 “open”系统调用

-F auid=80 相关的用户ID

这种类型的信息对于入侵检测确实是很有用的,而且对于在Linux系统上取证也确实是很有用的。

自动化

因为Linux审计守护进程可以提供有价值的审计数据,Lynis会检查这个框架的存在。如果没有这个框架,Lynis会建议你安装它。

另外,Lynis会执行一些测试来判定日志文件、可用的规则等等。

为了有效的入侵检测目的,和入侵检测系统集成对于事件发生的时候发现它们并采取恰当的行动是很关键的。

后记

审计守护进程有更多的用途。在本博客未来的文章中将列出其他例子。如果你是严肃对待Linux平台审计的,Linux审计框架一定是个很好的朋友!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10994

    浏览量

    206767
收藏 人收藏

    评论

    相关推荐

    Linux是做什么的?

    Linux是做什么的?Linux是一种开源的操作系统,广泛用于服务器、嵌入式设备和个人电脑等领域。它具有以下特点和用途: Linux是做什
    发表于 04-28 15:40

    linux和windows的区别 linux系统一般用来干嘛

    Linux的设计理念 Linux是一个开源操作系统,其设计理念是自由、共享和开放。Linux系统遵循类Unix的设计原则,注重
    的头像 发表于 02-05 14:06 332次阅读

    源代码审计怎么做?有哪些常用工具

    。 3、CodeQL:在 CodeQL 中,代码被视为数据,安全漏洞则被建模为可以对数据库执行的查询语句。 4、SonarQube:是一个用于代码质量管理的开源平台,用于管理源代码的质量。 在审计源代码
    发表于 01-17 09:35

    工业互联网安全管控与审计系统“保障”工控系统网络安全

    %攀升至2025年的55%。   由国联易安的研究团队自主研发的工业互联网安全审计系统从管理层面提供工业互联网安全性的有效监管,实现对工业控制系统
    的头像 发表于 01-15 17:34 274次阅读
    工业互联网<b class='flag-5'>安全</b>管控与<b class='flag-5'>审计</b><b class='flag-5'>系统</b>“保障”工控<b class='flag-5'>系统</b>网络<b class='flag-5'>安全</b>

    linux怎么执行vim编辑的程序

    Linux系统执行vim编辑的程序非常简单,只需要依次执行以下步骤: 打开终端:在Linux系统
    的头像 发表于 11-28 15:23 375次阅读

    malloc在Linux执行的是哪个系统调用

    malloc底层为什么是内存池 malloc大家都用过,其是库函数。我们都知道库函数在不同的操作系统中其实执行的是系统调用,那么malloc在Linux
    的头像 发表于 11-13 10:36 504次阅读
    malloc在<b class='flag-5'>Linux</b>上<b class='flag-5'>执行</b>的是哪个<b class='flag-5'>系统</b>调用

    介绍一种基于eBPF的Linux安全防护系统

    针对操作系统、内核安全,联通云操作系统团队开发了的一个基于 eBPF 的 Linux 安全防护系统
    的头像 发表于 11-07 17:43 476次阅读
    介绍一种基于eBPF的<b class='flag-5'>Linux</b><b class='flag-5'>安全</b>防护<b class='flag-5'>系统</b>

    南京审计大学携手诚迈科技探索审计大模型,联合打造审计智人

    随着信息技术的不断发展和普及,企业的数据量爆发式增加,传统的手工审计方法已经无法满足审计的需求。审计署在《“十四五”国家审计工作发展规划》中明确指出,“坚持科技强审,强化大数据思维,提
    的头像 发表于 10-20 17:15 1659次阅读
    南京<b class='flag-5'>审计</b>大学携手诚迈科技探索<b class='flag-5'>审计</b>大模型,联合打造<b class='flag-5'>审计</b>智人

    Linux驱动移植 Linux系统架构优点

    在操作系统上面有应用软件,应用软件程序的执行是依赖于操作系统的,应用程序需要调用 linux 操作系统的库函数来实现,也就是说,应用软件的
    的头像 发表于 07-27 17:06 570次阅读
    <b class='flag-5'>Linux</b>驱动移植 <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>架构优点

    虹科干货 | 虹科Panorama SCADA审计追踪功能的应用

    以及哪个工作站用于执行该操作,并且可以根据自己的需求进行显示其他的信息。虹科Panorama支持使用两种简单的方法构建审计追踪:●使用“动态持久化”功能的记录条目,
    的头像 发表于 07-05 10:11 414次阅读
    虹科干货 | 虹科Panorama SCADA<b class='flag-5'>审计</b>追踪功能的应用

    堡垒机是什么? 堡垒机(运维审计系统)的基本原理

    堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。
    的头像 发表于 05-25 09:43 1.1w次阅读
    堡垒机是什么? 堡垒机(运维<b class='flag-5'>审计</b><b class='flag-5'>系统</b>)的基本原理

    Linux命令执行Bypass常见姿势

    部署服务器端为Linux系统的http服务,留存get和post方式的一句话木马,用于命令执行测试。(测试思路可以对话Chatgpt)
    的头像 发表于 05-22 16:21 571次阅读
    <b class='flag-5'>Linux</b>命令<b class='flag-5'>执行</b>Bypass常见姿势

    Linux命令执行Bypass常见姿势介绍

    部署服务器端为Linux系统的http服务,留存get和post方式的一句话木马,用于命令执行测试。(测试思路可以对话Chatgpt)
    的头像 发表于 05-22 16:20 1586次阅读
    <b class='flag-5'>Linux</b>命令<b class='flag-5'>执行</b>Bypass常见姿势介绍

    Linux系统安全机制及技术大观

    Linux 系统是开放的, 其上安全机制、工具很多,不同的场景其安全目标和选择的工具都不相同。以下从个人角度仿ATT&CK列出一些常见的安全
    发表于 05-19 10:59 2154次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统安全</b>机制及技术大观

    Kali Linux和Parrot OS,哪个更适合安全

    与Kali Linux类似,Parrot OS拥有可用于IT安全、以及数字取证操作的完整便携式工具库。当然,Parrot OS也包括了为保护那些由用户自行开发的应用程序,所需的隐私工具。此外,Parrot OS还包含了数百个已预先安装的、有助于渗透测试和
    的头像 发表于 05-05 10:33 643次阅读
    Kali <b class='flag-5'>Linux</b>和Parrot OS,哪个更适合<b class='flag-5'>安全</b>