1案例1:部署audit監控文件
1.1問題
本案例要求熟悉audit書籍工具的基本使用,完成以下任務操作:
- 使用audit監控/etc/ssh/sshd_config
- 當該文件發生任何變化即記錄日誌
- 通過手動和ausearch工具查看日誌內容
1.2方案
審計的目的是基於事先配置的規則生成日誌,記錄可能發生在系統上的事件(正常或非正常行爲的事件),審計不會爲系統提供額外的安全保護,但她會發現並記錄違反安全策略的人及其對應的行爲。
審計能夠記錄的日誌內容:
- a)日期與事件以及事件的結果
- b)觸發事件的用戶
- c)所有認證機制的使用都可以被記錄,如ssh等
- d)對關鍵數據文件的修改行爲等都可以被記錄
1.3步驟
實現此案例需要按照如下步驟進行。
步驟一:配置audit審計系統
1)安裝軟件包,查看配置文件(確定審計日誌的位置)
[root@proxy ~]# yum -y install audit //安裝軟件包
[root@proxy ~]# cat /etc/audit/auditd.conf //查看配置文件,確定日誌位置
log_file = /var/log/audit/audit.log //日誌文件路徑
[root@proxy ~]# systemctl start auditd //啓動服務
[root@proxy ~]# systemctl enable auditd //設置開機自啓
2)配置審計規則
可以使用auditctl命令控制審計系統並設置規則決定哪些行爲會被記錄日誌。
語法格式如下:
[root@proxy ~]# auditctl -s //查詢狀態
[root@proxy ~]# auditctl -l //查看規則
[root@proxy ~]# auditctl -D //刪除所有規則
定義臨時文件系統規則:
#語法格式:auditctl -w path -p permission -k key_name
# path爲需要審計的文件或目錄
# 權限可以是r,w,x,a(文件或目錄的屬性發生變化)
# Key_name爲可選項,方便識別哪些規則生成特定的日誌項
[root@proxy ~]# auditctl -w /etc/passwd -p wa -k passwd_change
//設置規則所有對passwd文件的寫、屬性修改操作都會被記錄審計日誌
[root@proxy ~]# auditctl -w /etc/selinux/ -p wa -k selinux_change
//設置規則,監控/etc/selinux目錄
[root@proxy ~]# auditctl -w /usr/sbin/fdisk -p x -k disk_partition
//設置規則,監控fdisk程序
[root@proxy ~]# auditclt -w /etc/ssh/sshd_conf -p warx -k sshd_config
//設置規則,監控sshd_conf文件
如果需要創建永久審計規則,則需要修改規則配置文件:
[root@proxy ~]# vim /etc/audit/rules.d/audit.rules
-w /etc/passwd -p wa -k passwd_changes
-w /usr/sbin/fdisk -p x -k partition_disks
步驟二:查看分析日誌
1)動手查看日誌
查看SSH的主配置文件/etc/ssh/sshd_conf,查看audit日誌信息
[root@proxy ~]# tailf /var/log/audit/audit.log
type=SYSCALL msg=audit(1517557590.644:229228): arch=c000003e
syscall=2 success=yes exit=3
a0=7fff71721839 a1=0 a2=1fffffffffff0000 a3=7fff717204c0
items=1 ppid=7654 pid=7808 auid=0 uid=0 gid=0 euid=0 suid=0
fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="cat"
exe="/usr/bin/cat"
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="sshd_config"
.. ..
#內容分析
# type爲類型
# msg爲(time_stamp:ID),時間是date +%s(1970-1-1至今的秒數)
# arch=c000003e,代表x86_64(16進制)
# success=yes/no,事件是否成功
# a0-a3是程序調用時前4個參數,16進制編碼了
# ppid父進程ID,如bash,pid進程ID,如cat命令
# auid是審覈用戶的id,su - test, 依然可以追蹤su前的賬戶
# uid,gid用戶與組
# tty:從哪個終端執行的命令
# comm="cat" 用戶在命令行執行的指令
# exe="/bin/cat" 實際程序的路徑
# key="sshd_config" 管理員定義的策略關鍵字key
# type=CWD 用來記錄當前工作目錄
# cwd="/home/username"
# type=PATH
# ouid(owner's user id) 對象所有者id
# guid(owner's groupid) 對象所有者id
2)通過工具搜索日誌
系統提供的ausearch命令可以方便的搜索特定日誌,默認該程序會搜索/var/log/audit/audit.log,ausearch options -if file_name可以指定文件名。
[root@proxy ~]# ausearch -k sshd_config -i
//根據key搜索日誌,-i選項表示以交互式方式操作