5.3.3 审核(audit)规则

来源:互联网 发布:手机麻将作弊软件 编辑:程序博客网 时间:2024/05/29 07:18

http://www.startos.com/zhuanti/zt02/2010/1122/10829.html

5.3.3 审核(audit)规则

  SELinux有大量的工具记录日志信息,或审核、访问尝试被策略允许或拒绝的信息。审核消息通常叫做"AVC消息",它提供了详细了关于访问尝试的信息,包括是允许还是拒绝,源和目标的安全上下文,以及其它一些访问尝试涉及到资源信息。AVC消息与其它内核消息类似,都是存储在/var/log目录下的日志文件中,它是策略开发、系统管理和系统监视不可缺少的工具。在这一章中,我们检查是哪一个访问尝试产生了审核消息,第三部分提供了更多关于使用审核消息进调试和理解策略的内容。

  默认情况下,SELinux不会记录任何允许的访问检查,只会记录被拒绝的访问检查。这并没什么奇怪的,在大多数系统上,每秒会允许成千上万的访问,只有很少的一部分会被拒绝,允许的访问通常是在预料之中的,通常不需要审核,被拒绝的访问通常是(但不总是)非预期的访问,对它们进行审核便于管理员发现策略的bug和可能的入侵尝试。策略语言允许我们取消这些默认的预料之中的拒绝审核消息,改为记录允许的访问尝试审核消息。

  SELinux提供两个AV规则允许我们控制审核哪一种访问尝试:dontaudit和auditallow。使用这两条规则我们就可以改变默认的审核类型了,最常用的是dontaudit规则,它指出哪一个访问尝试被拒绝时不审核,这样就覆盖了SELinux默认的审核所有拒绝的访问尝试的行为。

  警告:仅当拒绝是由SELinux拒绝时,才会进行审核,回顾一下第3章中LSM模块钩子功能,只有当这些访问传递给标准Linux任意访问控制检查时才会调用它。这就意味着如果一个访问是由标准Linux访问检查给拒绝的,SELinux就不会有任何动作,更不会记录任何审核消息,如果你想审核任何拒绝访问的消息,而不管它为什么被拒绝,你只有直接使用Linux 2.6.x系列内核的审核系统,参考man auditd(8)和man auditctl(8)。

  例如:假设下面这个规则

  dontaudit httpd_t etc_t : dir search;

  指出类型为httpd_t的进程在类型为etc_t的目录上进行search时被拒绝,这个拒绝就不应该被审核,不要理睬默认的行为,你会发现Linux/Unix通常会显示出这种行为,即它们不需要这些东西也能正常工作,但它们就是要去访问。

  dontaudit规则在我们想屏蔽掉预期的审核拒绝消息时非常有用,这个规则允许我们避免授予不需要的访问权,也不会有大量预期的审核消息填充到日志文件中,正如我们前面所谈到的,这种行为太常见了。

  auditdeny规则

  早期的SELinux版本支持auditdeny规则,它的用途与dontaudit类似,即便是策略语言还支持这个规则,也很少使用它,我们也建议你不要使用这个规则。dontaudit规则和它默认的记录审核所有拒绝的消息的行为才是我们想要的。

  录允许的访问,一起来看一下下面这条规则:

  auditallow domain shadow_t : file write;

  这条规则指出当一个具有domain属性的类型的进程成功地获得了类型为shadow_t的文件的write访问许可,允许的访问被审核了,auditallow规则在审核一个重要的安全事件时非常有用,如这个例子中的对shadow密码文件的写操作,或将一个新的策略载入内核。

  记住,审核(audit)规则让我们覆盖了默认的审核设置,allow规则指出了什么访问是允许的,auditallow规则不允许访问,它只审核允许的许可。

  注意:在许可模式和强制模式下审核是不一样的。运行在强制模式下时,每次允许或拒绝时都会进行审核,应该在策略中对审核频率进行限制(可以使用auditctl实现)。在许可模式下时,只会记录第一次访问尝试,直到下一次策略载入,或固定为强制模式,在开发时通常使用的就是许可模式,这种模式可以减少日志文件的大小。


0 0
原创粉丝点击