Linux基础备忘_09:Audit test

来源:互联网 发布:用户和数据库的接口 编辑:程序博客网 时间:2024/05/11 17:44

https://sourceforge.net/p/audit-test/wiki/Home/

编译过程中可能需要安装的:

#yum install libselinux-devel.x86_64 policycoreutils-devel.x86_64 setools-devel.x86_64

如遇miss sys/capability.h,则

#yum install libcap-devel

如遇miss seccomp.h,则

#yum install kernel-headers


最新git: https://github.com/linux-audit/audit-testsuite,安装了2017/04/17的master,

执行make -e test

1)exec_execve:

#auditctl -D >& /dev/null

#auditctl -a always,exit -F arch=b$ENV{MODE} -S execve -k $key

当系统ENV 没有MODE时则会FAIL

根本原因:ENV中没有变量MODE

解决方法:$ENV{'MODE'}=64;

或者my $mode="`uname -m`";
my $r1=system("auditctl -a always,exit -F arch=b$ENV{MODE} -S execve -k $key");

注意这个如果整体run不是FAIL,是PASS,因为在Makefile中MODE被初始化了,所以case无需修改

2)exec_name:

#auditctl -D >& /dev/null

#auditctl -a always,exit -S all -F exe=$exec -k $key

FAIL的原因: 当前的auditctl -F域值并没有exe而是path

解决方法: exe= 是rhel7.3的新特性,升级audit

或者简单改为 auditctl -a always,exit -S all -F path=$exec -k $key

3)filter_exclude

$result = system("auditctl -a exclude,always -F pid=$pid");

FAIL的原因:当前的auditctl,在filter为exclude时, -F域值只能是msgtype

解决方法: 升级audit,在7.3的release notes里:"the auditctl command now support many new options." 

在7.1和7.2 release notes都没有auditctl相关内容

4)filter_sessionid

类似,也是-F没有sessionid域

5)login_tty

FAIL的原因:在audit的记录中没有"tty="这一关键词。

升级后验证。

6)syscall_socketcall

FAIL的原因:在audit的记录中并不是"type=SOCKETCALL"这一关键词,而是"syscall=socketcall/"

升级后验证。


auditctl相关: https://github.com/linux-audit/audit-userspace/blob/master/src/auditctl.c
0 0
原创粉丝点击