linux audit審計讀懂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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM