内核审计系统的实用程序

auditctl - 协助控制内核审计系统的实用程序

概要

auditctl[options]

描述

auditctl程序用于控制行为,获取状态,以及在2.6内核的审计系统中添加或删除规则。

选项

-bbacklog

设置允许的未完成审计缓冲区的最大数量(内核默认值= 64)如果所有缓冲区都已满,则查询故障标志

由内核采取行动。

-e[0..2]

设置启用标志。当通过0时,可以暂时禁用审计。当1作为参数传递时,它会

启用审核。要锁定审计配置以使其不能更改,请传递2作为参数。锁定配置 -

意图是任何人希望此功能处于活动状态的audit.rules中的最后一个命令。任何尝试改变

此模式下的配置将被审计和拒绝。只能通过重新启动机器来更改配置。

-f[0..2]

设置故障标志0 =silent 1 = printk 2 = panic。此选项允许您确定您希望内核如何处理关键错误。

咨询此标志的示例条件包括:到用户空间审计守护程序的传输错误,积压限制

超出,超出内核内存,并超过速率限制。默认值为1.安全环境可能需要设置

这到2。

-h帮助

-i从文件读取规则时忽略错误

-l每行列出所有规则1。这可以采取一个关键选项(-k)。

-kkey在审核规则上设置过滤器键。过滤器键是可以长达31个字节长的任意文本字符串。它可以

唯一标识由规则生成的审核记录。典型的用法是当你有几个规则一起满足a

安全要求。可以使用ausearch搜索键值,以便无论哪个规则触发了事件,您都可以

找到它的结果。该键还可以用于删除全部(-D)和列表规则(-l)以选择具有特定键的规则。你可以

如果您希望能够以多种方式搜索记录的事件,或者如果您有audispd,则对规则有多个键

插件使用一个键来帮助其分析。

-m文本

将用户空间消息发送到审计系统。这只能由root用户完成。

-p[r | w | x | a]

为文件系统监视设置权限过滤器。 r =读,w =写,x =执行,a =属性更改。这些权限不是

标准文件权限,而是那种可以做这种事情的系统调用。读写系统调用是省略 -

从这一套,因为他们会压倒原木。但是对于读或写,打开的标志看看什么

请求权限。

-q装载点,子树

如果你有一个现有的目录监视和绑定或移动挂载另一个子树在被监视的子树,你需要告诉

内核使子树被装载等同于被监视的目录。如果子树已经挂载在

时间发出目录监视,子树被自动标记为观看。请注意两者之间的逗号分隔

值。省略它会导致错误。

-r速率

设置限制在消息/秒(0 =无)。如果该速率不为零并且被超过,则内核查询失败标志

行动。默认值为0。

-R文件

从文件中读取规则。规则必须是每行一个,并且按照它们要执行的顺序。规则文件必须是

由root拥有,其他用户不可读,否则将被拒绝。规则文件可以通过启动嵌入注释

行以‘#‘字符。从文件读取的规则与在命令行上输入的规则相同,但它们除外

不在前面加上auditctl(因为auditctl是执行文件的那个)。

-s报告状态。请注意,pid为0表示审计守护程序未在运行。

-t在安装命令后修剪子树。

- 列表,行动

使用操作将规则附加到列表的结尾。请注意分隔两个值的逗号。省略它会导致错误。的

以下描述有效的列表名称:

任务向每个任务列表添加规则。此规则列表仅在创建任务时使用 - 当fork()或

clone()由父任务调用。当使用此列表时,您应该只使用在任务cre-

例如uid,gid等。

entry在syscall条目列表中添加规则。此列表在进入系统调用时使用,以确定是否发生审计事件

应该创建。

exit将规则添加到系统调用退出列表。此列表在退出系统调用时使用,以确定是否发生审计事件

应该创建。

user向用户消息过滤器列表中添加规则。此列表由内核用于过滤源自用户的事件

空间,然后将它们转发到审计守护程序。应该注意,唯一有效的字段是:uid,

auid,gid和pid。所有其他字段将被视为不匹配。

exclude将规则添加到事件类型排除筛选器列表。此列表用于过滤不希望看到的事件。

例如,如果您不想看到任何avc消息,您将使用此列表来记录。消息类型

你不希望看到的是msgtype字段。

以下描述规则的有效操作:

从不会生成审核记录。这可以用于抑制事件生成。一般来说,

位于列表顶部而不是底部的sions。这是因为事件触发第一个匹配规则。

总是分配一个审计上下文,总是在syscall入口时间填充它,并且总是在syscall出口写出一条记录

时间。

- 列表,动作

使用操作将规则添加到开始列表。

-dlist,action

使用操作从列表中删除规则。仅当该规则与系统调用名称和字段名完全匹配时,才会删除该规则。

-D删除所有规则和手表。这可以采取一个关键选项(-k)。

-S[Syscall名称或号码| all]

可以使用任何系统调用名称或数字。也可以使用“全部”这个词。如果这个系统调用是由一个程序,然后启动一个

审计记录。如果给定字段规则并且未指定系统调用,则它将默认为所有系统调用。您还可以指定mul-

通过在同一规则中使用多个-S选项,可以在同一规则中调整系统调用。这样做可以提高性能,因为规则较少

需要进行评估。如果你在一个双拱系统,如x86_64,你应该知道,auditctl只是采取的文本,

查找本机arch(在这种情况下为b64),并将该规则发送到内核。如果没有附加拱形导向件,

它将适用于32和64位的SYSCALLS。这可能有不良影响,因为不能保证

例如,打开的系统调用在32位和64位接口上具有相同的编号。你可能想要控制这个和写2个规则,

一个与拱等于b32和一个与b64,以确保内核找到您打算的事件。

-F[n = v | n!= v | n <v | n> v | n <= v | n> = v | n&v | n&amp; v]

构建规则字段:名称,操作,值。您最多可以在单个命令行上传递64个字段。每个人都必须开始

与-F。每个场方程彼此联合以触发审计记录。支持8个运算符 - 相等,不是

等于,小于,大于,小于或等于和大于或等于位掩码和位测试。位测试

将“和”的值并检查它们是否相等,位掩码只是“ands”的值。可以改为使用用户ID的字段

有用户名;程序会将名称转换为用户ID。组名也是如此。有效字段为:

a0,a1,a2,a3

分别是系统调用的前4个参数。请注意,不支持字符串参数。这是因为

内核被传递一个指向字符串的指针。触发指针地址值不太可能工作。所以,什么时候

使用这个,你应该只使用数字值。这很可能在复用的平台上使用

套接字或IPC操作。

arch系统调用的CPU体系结构。拱可以发现做‘uname-m‘。如果你不知道你的弓

机器,但是你想使用32位系统调用表和你的机器支持32位,你也可以使用b32为

拱。同样适用于64位系统调用表,可以使用b64。这样,你可以编写规则

有些拱独立,因为家庭类型将被自动检测。但是,系统调用可以是特定的和

什么在x86_64可用,可能不可用在ppc。 arch指令应该在-S选项前面

auditctl知道使用哪个内部表来查找系统调用号。

auid用户登录的原始ID。它的审计uid的缩写。有时它被称为loginuid。

可以使用文本或数字。

devmajor设备主要编号

devminor设备少数

dir要观看的目录的完整路径。这将在目录及其整个子树上放置一个递归监视。应该

只能在退出列表中使用。请参见“-w”。

egid有效组ID

euid有效用户ID

exit从系统调用退出值。如果退出代码是一个errno,你也可以使用文本表示。

fsgid文件系统组ID

fsuid文件系统用户ID

filetype目标文件的类型。可以是file,dir,socket,symlink,char,block或者fifo。

gid组ID

inodeInode编号

key这是另一种设置过滤器键的方法。请参阅上面关于-k选项的讨论。

msgtype这用于匹配消息类型编号。它应该只在排除过滤器列表上使用。

obj_user资源的SE Linux用户

obj_role资源的SE Linux角色

obj_type资源的SE Linux类型

obj_lev_low资源的SE Linux低级

obj_lev_high

资源的SE Linux高级

path要观察的文件的完整路径。只应在退出列表中使用。

perm文件操作的权限过滤器。请参见“-p”。只应在退出列表中使用。你可以使用这个没有speci-

fying一个系统调用,内核将选择满足请求的权限的系统调用。

persOS个性号

pid进程ID

ppid父进程ID

subj_user程序的SE Linux用户

subj_role程序的SE Linux角色

subj_type程序的SE Linux类型

subj_sen程序的SE Linux灵敏度

subj_clr程序的SE Linux清除

sgid保存的组ID。请参阅getresgid(2)手册页。

success如果退出值> = 0,则为true / yes,否则为false /no。在编写规则时,使用1表示true / yes和a

0表示假/否

suid保存的用户ID。请参阅getresuid(2)手册页。

uid用户ID

-w路径

在路径中插入文件系统对象的监视。您不能将表插入顶级目录。这是被禁止的

内核。通配符也不受支持,并将生成警告。手表的工作方式是跟踪inode

内部。如果对文件进行观察,则与在系统调用规则上使用-F路径选项相同。如果你戴上手表

一个目录,它与在系统调用规则上使用-F dir选项相同。书写表的-w形式是向后兼容的,

可行性和基于系统调用的形式更具表达性。与大多数系统调用审计规则不同,手表不会影响性能

基于发送到内核的规则的数量。使用手表时,唯一有效的选项是-p和-k。如果你需要

任何花哨像审计特定用户访问文件,然后使用syscall审计表单与path或dir字段。看到

示例“部分中的将一种形式转换为另一种形式的示例。

-W路径

在路径中删除文件系统对象的监视。

性能提示

每个程序的每个系统调用评估Syscall规则。如果你有10个系统调用规则,你的系统上的每个程序都会延迟

在审计系统期间系统调用每个。太多的系统调用规则会损害性能。尝试结合多达

您可以在过滤器,操作,键和字段相同时使用。例如:

auditctl-a exit,always -S打开-F成功= 0

auditctl-a exit,always -S truncate -F success = 0

可以重写为一条规则:

auditctl-a exit,always -S open -S truncate -F success = 0

此外,尽量在可行的情况下使用文件系统审计。这提高了性能。例如,如果你想捕获所有

失败的打开和截断像上面,但只关心/ etc中的文件,并不关心/ usr或/ sbin,它可能

使用此规则:

auditctl-a exit,always -S open -S truncate -F dir = / etc -F success = 0

这将是更高的性能,因为内核不会评估它每个和每个系统调用。它将由文件系统处理

审计代码并且仅检查与文件系统相关的系统调用。

例子

查看特定程序所产生的所有系统调用:

auditctl-a entry,always -S all -F pid = 1005

查看特定用户打开的文件:

auditctl-a exit,always -S打开-F auid = 510

要查看未成功的打开电话:

auditctl-a exit,always -S打开-F成功= 0

观看文件以进行更改(2种表达方式):

auditctl-w / etc / shadow -p wa

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

要递归地观察目录以进行更改(2种表达方式):

auditctl-w / etc / -p wa

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

文件

/etc/audit/audit.rules

时间: 2024-10-12 13:00:05

内核审计系统的实用程序的相关文章

Linux命令应用大词典-第30章 审计系统

30.1 auditctl:控制内核的审计系统 30.2 aureport:生成审计信息报表 30.3 ausearch:搜索审计记录 30.4 autrace:跟踪指定进程 30.5 audit-viewer:查看和总结审计事件的图形工具 30.1 auditctl:控制内核的审计系统 30.2 aureport:生成审计信息报表 30.3 ausearch:搜索审计记录 30.4 autrace:跟踪指定进程 30.5 audit-viewer:查看和总结审计事件的图形工具 原文地址:htt

提取操作系统的基本信息(内核、系统版本、网络地址等)

功能一:能够提取操作系统的基本信息(内核.系统版本.网络地址等) ############################################################################# #File Name:System_monitor.sh #Author:Ivan ############################################################################# #!/bin/bash #把之前屏幕上

linux 内核(系统)、函数的理解、宏的程序调试

1.操作系统 1.1.Linux 内核(系统)的组成的部分:     内核主要有:进程调度.内存管理.虚拟文件系统.网络接口和进程通信五个部分组成.                                              (1)进程调度     进程调度是CPU对多个进程对CPU访问的调度算法,使得进程宏观上并行执行.常用的调度算法有:先来先服务原则.高优先级别优先.短进程优先(谁执行的时间短,就上).时间片轮训(每个进程都给点时间运行).     系统所有的进程,都必须使用进

为什么需要日志审计系统

什么是日志 简单地说,日志就是计算机系统.设备.软件等在某种情况下记录的信息.具体的内容取决于日志的来源.例如,Unix操作系统会记录用户登录和注销的消息,防火墙将记录ACL通过和拒绝的消息,磁盘存储系统在故障发生或者在某些系统认为将会发生故障的情况下生成日志信息.日志中有大量信息,这些信息告诉你为什么需要生成日志,系统已经发生了什么.例如,Web服务器一般会在有人访问Web页面请求资源(图片.文件等等)的时候记录日志.如果用户访问的页面需要通过认证,日志消息将会包含用户名.这就是日志数据的一个

Seay源代码审计系统2.0及源码开放 人人都是代码审计师

历史版本: 2013年7月15日 Seay源代码审计系统2.0 1.增加mysql执行监控,可以监控自定义断点后执行的所有SQL语句,方便调试SQL注入2.更换在线升级,安装好之后下次更新可以直接在线升级,无需重新安装3.更换皮肤,去除图片优化程序速度4.更换mysql管理系统为HeidiSql 2013年6月18日  Seay源代码审计系统1.1 1.审计规则禁用2.审计进度显示3.优化正则调试.编码转换输入框4.优化信息泄露插件扫描模式5.修复代码查看处的一个bug 2013年6月8日 Se

使用sybase数据库审计系统有什么独特的产品特点

伴随网络技术的不断发展,现在已经开始有越来越多的工作都需要通过网络的方式来完成的.就是在这样的基础下,网络数据库的发展速度更是在不断增加中.在现实的生活中大家可以接触到的网络数据模型库也是非常多,但是现在最容易受到使用者喜欢的产品还是sybase数据库审计系统.虽然它开发和使用的年限都不是非常久,但是使用者的数量却是在不断的增加中,而且使用者的增加速度更是逐渐在上升当中. 其实最根本的原因还是跟sybase数据库审计系统本身所带有的产品特点离不开的.和其他的数据库非常不同的一点,便是sybase

云端数据库审计系统

中安威士云数据库安全审计系统是中安威士(北京)科技有限公司自主研发的一款针对云数据库的安全管理工具.为用户提供在云环境下对数据库的安全审计,以实现对云数据库所面临的风险进行评估,对云数据库的操作内容进行全面审计等.产品由相互关联,且保护能力依次递增的系列功能模块构成.核心功能模块包括:敏感数据发现.性能审计.风险评估.数据库审计等.为客户带来的价值: 将云上数据访问活动可视化,提高数据安全管理能力: 满足合规要求,快速通过云等保等各种评测: 完善纵深防御体系,提升整体安全防护能力: 减少核心数据

日志审计系统

产品简介中安威士日志审计系统(简称VS-LS),采用业界领先的大数据技术,在克服海量数据的采集.存储.索引和运算的瓶颈之上,摒弃繁琐的多控制台界面,充分挖掘各类安全警告,通过大数据关联分析,清洗大量的误报信息.结合云端威胁情报和企业内网威胁情报,将在大规模网络环境中能够引起企业安全态势变化的要素进行获取.理解.呈现和趋势预测.产品功能? 海量安全日志.告警的汇聚.统计.分析.挖掘可对本地全量安全日志进行采集和集中存储,包括:主机安全基线日志.网络设备日志.中间件和应用日志.安全设备告警等.基于数

代码审计利器-Seay源代码审计系统

Seay源代码审计系统一款基于白盒测试的代码审计工具,具有自动代码审计功能,简化了人工审计的繁琐流程,使代码审计更加智能简洁. 一路默认安装 下载安装.net相关组件即可正常使用 这次还是以dvwa为例 左上角新建项目,选择dvwa源码文件夹 点击确定后在左侧列出了文件组织结构 点击上方菜单栏的自动审计 进度显示在下方 我们可以点击生成报告,方便持续跟踪审计 在浏览器中查看,漏洞类型,文件路径,可疑函数都一目了然 回到审计系统中,仔细看看扫描结果 不难发现,审计的结果大部分还是比较准的,比如ID