zoukankan      html  css  js  c++  java
  • linux audit审计(7)--读懂audit日志

    让我们先来构造一条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=18721
    auid=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_test
    type=CWD msg=audit(04/12/2018 10:55:21.433:4172989307) : cwd=/home/audit_test
    type=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_test
    type=CWD msg=audit(04/12/2018 10:56:17.709:4172989316) : cwd=/home/audit_test
    type=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

      

  • 相关阅读:
    nginx 注册为服务
    使用Windows Service Wrapper快速创建一个Windows Service
    mongo数据导入导出
    msql数据导入导出
    sql server 数据库之间导入导出数据表
    性能问题核对清单
    常用sqlserver性能分析
    Jmeter压测Mysql示例
    nginx日志定制
    zookeeper集群部署
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/8796961.html
Copyright © 2011-2022 走看看