让我们先来构造一条audit日志。在home目录下新建一个目录,然后配置一条audit规则,对这个目录的wrax,都记录审计日志:

auditctl -w /home/audit_test -p wrax -k audit_test

root用户访问audit_test目录时,即在这个目录下ls,审计日志如下:

type=SYSCALL msg=audit(1523501721.433:4172989307): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=21e0550 a2=90800 a3=0 items=1 ppid=13329 pid=18721 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=10711 comm="ls" exe="/usr/bin/ls" key="audit_test"
type=CWD msg=audit(1523501721.433:4172989307): cwd="/home/audit_test"
type=PATH msg=audit(1523501721.433:4172989307): item=0 name="." inode=99213313 dev=08:11 mode=040755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL

使用ausearch命令可以看到这条日志的解释,使日志中的一些我们看不懂的参数转换为可读形式:

type=SYSCALL msg=audit(04/12/2018 10:55:21.433:4172989307) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x21e0550 a2=O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC a3=0x0 items=1 ppid=13329 pid=18721auid=root uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts2 ses=10711 comm=ls exe=/usr/bin/ls key=audit_testtype=CWD msg=audit(04/12/2018 10:55:21.433:4172989307) : cwd=/home/audit_testtype=PATH msg=audit(04/12/2018 10:55:21.433:4172989307) : item=0 name=. inode=99213313 dev=08:11 mode=dir,755 ouid=root ogid=root rdev=00:00 objtype=NORMAL

其他用户访问audit_test时,审计日志如下:

type=SYSCALL msg=audit(1523501777.709:4172989316): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=10ce550 a2=90800 a3=0 items=1 ppid=2354 pid=30729 auid=0 uid=1001 gid=1001 euid=1001 suid=1001 fsuid=1001 egid=1001 sgid=1001 fsgid=1001 tty=pts1 ses=9870 comm="ls" exe="/usr/bin/ls" key="audit_test"
type=CWD msg=audit(1523501777.709:4172989316): cwd="/home/audit_test"
type=PATH msg=audit(1523501777.709:4172989316): item=0 name="." inode=99213313 dev=08:11 mode=040755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL

type=SYSCALL msg=audit(04/12/2018 10:56:17.709:4172989316) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x10ce550 a2=O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC a3=0x0 items=1 ppid=2354 pid=30729 auid=root uid=lbh gid=lbh euid=lbh suid=lbh fsuid=lbh egid=lbh sgid=lbh fsgid=lbh tty=pts1 ses=9870 comm=ls exe=/usr/bin/ls key=audit_testtype=CWD msg=audit(04/12/2018 10:56:17.709:4172989316) : cwd=/home/audit_testtype=PATH msg=audit(04/12/2018 10:56:17.709:4172989316) : item=0 name=. inode=99213313 dev=08:11 mode=dir,755 ouid=root ogid=root rdev=00:00 objtype=NORMAL

下面我们来分析每个字段的含义:

type=SYSCALL

  每条记录都是以type=”keyword“开头,SYSCALL表示这条记录是向内核的系统调用触发产生的。更详细的type值和解释可以参考:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-Audit_Record_Types

msg=audit(1523501777.709:4172989316)

  在audit(time_stamp:ID)格式中,记录时间戳,从1970年1月1日00:00:00到现在的时间,ID为记录中唯一的ID标识,同一个事件产生的ID是相同的,如上访问audit_test目录会触发产生三条日志,但是事件ID是相同的。

arch=c000003e

  表示系统的CPU架构,这个十六进制表示”x86_64“,使用命令ausearch -i --arch c000003e可以打印出有这部分内容的audit.log中日志的解释。需要注意的是,使用ausearch来查询时,需要保证audit log中有这样的日志记录。

syscall=257

  向内核的系统调用的类型,类型值为257,在/usr/include/asm/unistd_64.h中有定义,这里257表示openat,可以使用命令ausyscall来查询不同的数字对应的系统调用名称。或者使用ausyscall --dump命令来显示所有的系统调用。

 # ausyscall 257
openat

# ausyscall --dump
Using x86_64 syscall table:
0 read
1 write
2 open

……

success=yes

  表示系统调用成功与否

exit=3

  系统调用结束时的返回码,可以使用如下命令来查看返回值为3的日志解释,不同的系统调用,返回值不同。

#ausearch --interpret --exit 3

a0=ffffffffffffff9c a1=21e0550 a2=90800 a3=0

  为系统调用时的前四个arguments,这些arguments依赖于使用的系统调用,可以使用ausearch来查看解释(部分参数可以打印出数值具体的解释)。

items=1

  表示跟在系统调用后,补充记录的个数。

ppid=2354

  父进程ID,如bash的ID。

pid=30729

  进程Id,即为ls进程的ID。我们通过ps来查询,可以看到bash的进程与ppid是对应的

linux-xdYUnA:/home/audit_test # ps -aux | grep bash
lbh       2354  0.0  0.0 115376  2100 pts/1    S+   Apr11   0:00 bash
root     12478  0.0  0.0 115888  2608 pts/0    Ss   Apr11   0:00 -bash
root     13329  0.1  0.0 115888  2612 pts/2    Ss   11:15   0:00 -bash
root     15531  0.0  0.0 112652   972 pts/2    S+   11:15   0:00 grep --color=auto bash
root     30707  0.0  0.0 115888  2632 pts/1    Ss   Apr11   0:00 -bash

  

转载于:https://www.cnblogs.com/xingmuxin/p/8796961.html

linux audit审计(7)--读懂audit日志相关推荐

  1. 一次CMS GC问题排查过程(理解原理+读懂GC日志)

    这个是之前处理过的一个线上问题,处理过程断断续续,经历了两周多的时间,中间各种尝试,总结如下.这篇文章分三部分: 1.问题的场景和处理过程:2.GC的一些理论东西:3.看懂GC的日志 先说一下问题吧 ...

  2. linux audit审计(6)--audit永久生效的规则配置

    定义reboot系统后,仍然生效的审计规则,有两种办法: 1.直接写入/etc/audit/audit.rules文件中,在service文件中需要加入ExecStartPost=-/sbin/aud ...

  3. linux 0755,linux audit审计(7-1)--读懂audit日志

    auid=0 auid记录Audit user ID,that is the loginuid.当我使用lbh用户登录系统时,再访问audit_test,此时记录的auid为1001,具体日志如下: ...

  4. 一文读懂开源日志管理方案 ELK 和 EFK 的区别

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 前言 主流的 ELK (Elasticsearch, Logstash, Kibana) 目前已经转变为 EFK ...

  5. 一文读懂常用日志框架(Log4j、SLF4J、Logback)有啥区别

    1.概述 相信目前大多数情况下,不管是开源框架或是平时我们工作编码中都离不开一种框架,它就是日志框架.因此本节就简单了解一下我们常用日志框架的区别. 2.Commons Logging common- ...

  6. iOS读懂崩溃日志,解析崩溃日志

    被苹惨剧,没有截图,就给你几个崩溃日志,整的是不是整个人都快崩溃了!!!!!别急. 一.既然苹果给我们反馈崩溃日志就有办法能够找出崩溃的地方.打开看一般看不懂的,下面我们就来解析一下这个崩溃日志 1. ...

  7. 使用Audit审计服务排查linux终端异常关机问题

    目录 [基本信息] [问题描述] [定位过程] 1,整理规律如下 2,部署audit审计服务定位问题 3,定位后期 [问题原因] [问题解决] [问题小结] 附录 1,audit审计服务部署脚本及其安 ...

  8. ORACLE AUDIT 审计

    转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计 ...

  9. Ranger 和 Ranger Audit 审计功能模块介绍

    目录 一.Ranger 介绍 1.Ranger概念 2.权限模型 二.Ranger Aduit审计功能模块详解 1.Ambari 中 Ranger config 2.Ranger Audit 功能模块 ...

  10. mysql 操作审计_利用mysql的audit审计功能记录用户操作信息

    mysql数据库中我们如果想记录用户的操作信息,可以通过audit审计功能来来实现.该功能是被自动触发的,在文件plugin_audit.h中可以看到比较详细的定义.在audit插件中,可控制的变量包 ...

最新文章

  1. 【组队学习】【23期】Datawhale深度推荐模型
  2. mybaits十一:使用association分步查询
  3. VS2013编译OBS源码
  4. 使用GZipStream实现压缩和解压缩
  5. leetcode 49. 字母异位词分组(排序+hash)
  6. C语言存储编码输出,C语言怎么输出一个菱形
  7. DIV+CSS_1_样式表的分类
  8. 快速锁屏电脑快捷键_MacBook Pro使用技能 一键锁屏
  9. The beautiful values of the palace(2019南京网络赛)
  10. CIO:节省IT部门开支十招
  11. 【转】The C10K problem(翻译 中文版)
  12. Android11权限管理,Android 11 中的权限更新
  13. 解决VS下载慢的问题
  14. 计算机硬盘满了怎么解决,电脑磁盘满了怎样清理
  15. 获取计算机主机mac地址的命令有,Mac系统获取远程电脑MAC地址的两种简单方法
  16. 传递给printf的额外参数
  17. startwith的使用方法
  18. 【React Native】使用react-native-wechat 进行微信好友、微信朋友圈进行分享
  19. IIS 服务器启动和关闭
  20. opencv学习日记——CV_8UC1 含义

热门文章

  1. 路灯干扰者路过时,路灯熄灭的照片
  2. 人工智能或可称之为人造智能
  3. 人都在你手下,难题我解决了,其他活也得我干?
  4. OpenCV编译时提示错误“ Built target libprotobuf”
  5. 解决办法:下列软件包有未满足的依赖关系,依赖。。。但是。。。正要被安装
  6. 从来都是少数决定多数
  7. 这不是海市蜃楼,这是平地雾
  8. UBUNTU安装后的root/su密码问题
  9. python利用tensorflow识别图形_表情识别与性别识别 实时识别模型附源代码 基于python的tensorflow与keras...
  10. Keil代码自动对齐 VS对齐功能