AIX系統中Audit系統的功能和概念,以及相關的命令

gaopengtttt發表於2011-10-24

[轉]AIX系統中Audit系統的功能和概念,以及相關的命令  

 

本文簡要介紹了audit系統的功能和概念,以及相關的命令

一、AUDIT系統的概念:

audit子系統提供了一種紀錄系統安全方面資訊的方法,同時可以為系統管理員在使用者違反系統安全法則或存在違反的潛在可能時,提供及時的警告資訊,這些audit子系統所蒐集的資訊包括:可被審計的事件名稱,事件狀態(成功或失敗),別的安全相關的資訊。

AIX定義了一些可被審計的事件,可以在/etc/security/audit/events中找到,通常,這些事件都是定義在系統呼叫級別的。那麼,一條命令可以產生多個事件,例如,如果使用者透過cat或more命令來顯示檔案,可以在審計報告中發現下列事件:

FILE_Open(開啟檔案)
FILE_Read(讀檔案)
FILE_Write(寫檔案)
PROC_Create(產生程式cat或more)
PROC_Execute(執行命令)
PROC_Delete(程式執行完畢)

如果不加選擇審計所有的事件會產生非常大量的資料,透過修改audit配置檔案/etc/security/audit/config檔案,可以選擇需紀錄的事件。

審計事件可以組成類,多個功能類似或相近的審計事件可以為它們定義一個類,類的定義也在/etc/security/audit/config中有,類的名字可以任意指定,類和使用者UID是關聯在一起的,需要對某使用者定義其需要被事件的類。

審計物件是那些單個可以被審計的檔案,能夠審計的操作包括讀、寫和執行,審計物件和使用者的UID不關聯,只要這些檔案被操作,不管是來自哪個使用者,都可以產生審計紀錄。審計物件在/etc/security/audit/objects中定義,如下:

/etc/security/environ:
        w = "S_ENVIRON_WRITE"
/etc/security/group:
        w = "S_GROUP_WRITE"
/etc/security/limits:
        w = "S_LIMITS_WRITE"
/etc/security/login.cfg:
        w = "S_LOGIN_WRITE"
/etc/security/passwd:
        r = "S_PASSWD_READ"
        w = "S_PASSWD_WRITE"
/etc/security/user:
        w = "S_USER_WRITE"
/etc/security/audit/config:
        w = "AUD_CONFIG_WR"

其中第一行為審計物件的檔名,第二行為輸出的格式,該格式在/etc/security/audit/events中定義如下:

/etc/security/environ
        S_ENVIRON_WRITE = printf "%s"
/etc/group
        S_GROUP_WRITE = printf "%s"
/etc/security/limits
        S_LIMITS_WRITE = printf "%s"

使用者可以自己在該檔案中定義審計物件。

審計可以以兩種模式執行:BIN和STREAM,BIN模式指的是audit將結果寫入臨時檔案bins,然後在寫入到一個單一的檔案中去。STREAM模式指的是審計子系統透過偽裝置檔案/dev/audit將資料寫入一個固定大小的檔案,當寫入資料超出時,最早寫入的資料將被覆蓋。

審計子系統可以以其中一種模式或兩種模式啟動。我們可以編輯審計子系統的配置檔案/etc/security/audit/config來更改所用模式,如下:

start:
        binmode = on
        streammode = off
bin:
        trail = /audit/trail
        bin1 = /audit/bin1
        bin2 = /audit/bin2
        binsize = 10240
        cmds = /etc/security/audit/bincmds
stream:
        cmds = /etc/security/audit/streamcmds

可見,該系統使用的是bin模式,它使用了兩個臨時bins檔案,bin1和bin2,它們的大小都是10240位元組,當其中一個檔案滿了之後,子系統將開啟另一個檔案,並把前一個檔案的紀錄都轉移到trail檔案中,子系統停止時,這些bins中的內容將都被加入到trail檔案中去,這些紀錄的檔案採用了二進位制方式,可用命令auditpr檢視。

在stream模式中,系統將透過呼叫/etc/security/audit/streamcmds命令來處理紀錄,這條命令將把輸出變成可讀的格式寫入檔案/audit/stream.out中,audit系統重新啟動時,它將被清空。所以,可以定時讀它或將它的內容列印出來。

下面介紹一下審計子系統的控制命令: (關於命令的詳細介紹還可以參考連結:

啟動和停止審計子系統 /usr/sbin/audit是控制審計子系統的基本命令,它有下列五條子命令:

  • audit start 啟用審計子系統
    這是啟動審計子系統的唯一正確方法
  • audit shutdown 停止審計子系統
    它將處理BIN模式下的bins臨時檔案,並刪除/audit/auditb檔案,這個檔案是一個審計子系統是否活著的標識
  • audit off 暫時掛起審計子系統
  • audit on 掛起後重新啟用審計子系統
  • audit query 顯示子系統狀態

如果不按順序使用這些命令,審計子系統會被弄亂,如果出現這種狀態,將/audit下的檔案都刪除(除去紀錄檔案train.stream.out, bin1, bin2等)

如希望在系統啟動時啟動審計子系統,可在/etc/rc中,在dspmsg rc.cat 5 'Multi-user initialization completed '行之前加入下行: /usr/sbin/audit start

如果審計子系統一直執行,那要確保系統關閉時它被正確地停止了,在/usr/sbin/shutdown中加入一行: /usr/sbin/audit/shutdown

配置審計子系統

審計子系統的配載檔案為/etc/security/audit/config,它包含以下幾段:

start: 按BIN或STREAM模式啟動
bin and stream: BIN和STREAM的配置,在前簡介文章中有介紹
classes: 定義的類。

預定義的類有:general, objects, SRC, kernel, files, SVIPC, mail, cron和TCPIP。例如general類的定義如下:

general = USER_SU,PASSWORD_Change,FILE_Unlink,FILE_Link, FILE_Rename,FS_Chdir,FS,PORT_Locked,PORT_Change,FS_Mkdir,FS_Rmdir

說明上述在/etc/security/audit/events中定義的事件被歸類為general,使用者可以自己編輯配置檔案來修改類的定義,但所用事件需在/etc/security/audit/events中存在,類的定義要和使用者聯絡在一起。

users: 該段中定義了使用類的使用者。
使用者必須是可登入使用者或default使用者,如下例:
users: root=general, joe=general,files,TCPIP default=general

當審計子系統啟動後,系統將會對root使用者發生的general事件做紀錄,對joe使用者發生的general,files,TCPIP事件做紀錄,對別的使用者,做general事件紀錄。對審計物件而言,審計子系統啟動是,會去監測/etc/security/audit/objects檔案,對其中的有效檔案開始做審計,無論哪個使用者,包括root使用者對它們的訪問都會被紀錄。

為一個使用者更改審計類可以透過smit選單執行
smit chuser * User NAME root
AUDIT classes []
選中相應類即可,或者直接編輯/etc/security/audit/config檔案。

BIN檔案可以透過下面命令來讀取: #auditpr -v /audit/trail | more

結果如下:

BIN檔案的輸出表
event login status time command
FILE_Rename root OK 日 6月 29 12:02:07 2003 xntpd
frompath: /etc/ntp.drift.TEMP topath: /etc/ntp.drift
FS_Chdir root OK 日 6月 29 12:02:19 2003 ksh
change current directory to: /
FS_Chdir root OK 日 6月 29 12:05:20 2003 ksh
change current directory to: /

STREAM檔案的輸出可以直接讀取如下: #more /audit/stream.out

STREAM檔案的輸出表
event login status time command
FS_Chdir root OK 日 6月 29 12:05:19 2003 ksh
FS_Chdir root OK 日 6月 29 12:05:20 2003 ksh
FILE_Unlink root OK 日 6月 29 12:05:29 2003 ksh

審計結果比較多的時候,可以透過下面的方法來過濾:
/usr/sbin/auditselect -f /audit/pick /audit/trail | /usr/sbin/auditpr -v

/audit/pick檔案是手工編輯的,內容如下:
command == rlogin &&
time 〉= 08:00:00 && time 〈 = 17:00:00 &&
data 〉= 04/01/96 && date 〈 = 04/12/96

這個過濾器將只顯示rlogin命令在指定的時間段和日期內的執行情況,指定的時間為每天的8AM到5PM,日期為96年四月一日至96年四月12日。

AUDIT系統一些常見錯誤如下:
  1. 執行audit start時報錯:
    ** failed setting kernel audit objects
    這通常是由於/etc/security/audit/objects中的語法錯誤引起的。
  2. 錯誤資訊:
    auditbin: ** failed backend command
    /etc/auditcat -p -o /audit/trail -r /audit/bin1
    這個錯誤可透過給BIN檔案改名或刪除來修正,有時停止並重啟子系統也可以修正錯誤。
  3. 錯誤資訊:
    Unable to find the user stanza in /etc/security/audit/config 如果對user段做了修改,請檢查/etc/security/audit/config中的使用者段,如為發現問題,仔細檢查classes段,確保每個classes是在一個連續行中定義的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-709605/,如需轉載,請註明出處,否則將追究法律責任。

相關文章