歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

audit系統的功能和概念,以及相關的命令

本文簡要介紹了audit系統的功能和概念,以及相關的命令 一、AUDIT系統的概念: audit子系統提供了一種紀錄系統 安全 方面信息的方法,同時可以為系統管理員在用戶違反系統安全法則或存在違反的潛在可能時,提供及時的警告信息,這些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文件,可以選擇需紀錄的事件。

本文簡要介紹了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\n'行之前加入下行: /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文件的輸出表eventloginstatustimecommandFILE_RenamerootOK日 6月 29 12:02:07 2003xntpdfrompath: /etc/ntp.drift.TEMP topath: /etc/ntp.drift FS_ChdirrootOK日 6月 29 12:02:19 2003kshchange current directory to: / FS_ChdirrootOK日 6月 29 12:05:20 2003kshchange current directory to: /

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

STREAM文件的輸出表eventloginstatustimecommandFS_ChdirrootOK日 6月 29 12:05:19 2003kshFS_ChdirrootOK日 6月 29 12:05:20 2003kshFILE_UnlinkrootOK日 6月 29 12:05:29 2003ksh

審計結果比較多的時候,可以通過下面的方法來過濾:
/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是在一個連續行中定義的。

Copyright © Linux教程網 All Rights Reserved