SNARE-系統入侵分析和報告環境
來源:InterSect Alliance
編譯:nixe0n
1.簡介
在長期的對對Sun Microsystems Solaris、Microsoft Windows NT/2000、Novell Netware、IBM AIX和 IBM MVS (ACF2 and RACF)等系統平台的日志審計和入侵檢測過程中,InterSect Alliance的團隊積累了豐富的經驗。這個團隊在99v安全工具、商業領域的運作等方面也具有豐富的經驗。通過這些經驗我們知道了如何有效地配置主機和網絡入侵檢測系統,從而加強各個組織的商業安全,這些思想都是獨一無二的。(能夠把自己的成果與人分享多麼令人尊敬,雖然有點自吹自擂的味道。^_^)
我們認為,在很長一段時間內有一個重要的因素妨礙了Linux操作系統更為廣泛地應用,尤其是在對安全要求教高的組織內應用,這個因素就是Linux操作系統缺乏基於主機的入侵檢測能力。也即使說,一個內部的系統事件審計或者事件日志的功能。然而,我們承認把審計/事件日志能力直接放到內核智能造成內核的臃腫。而有些情況下,根本不會用到這種功能。
最近,在提交的Linux 2.5內核中,把模塊化安全延伸(modular security extension)放到Linux內核,受到這個消息的鼓舞,InterSect Alliance發布了一個動態加載模塊來實現基本的主機入侵檢測系統和Linux的C2風格的審計/事件日志能力。如果想使用這個動態加載模塊需要重新編譯內核。這就是SNARE(System iNtrusion Analysis & Reporting Environment)工程。InterSect Alliance使用GPL作為SNARE的許可證。
2.SNARE綜述
總體上,SNARE由三部分組成:
內核動態加載模塊auditmodule.o。
在用戶空間運行的審計監控程序auditd。
圖形截面的配置和報告工具snare。
auditmodule包裝(wrap)了一些比較危險的系統調用,例如:execve、open、mkdir,它把這些系統調用放到一個信息收集的例程,收集進程和用戶執行的一些有疑問的系統調用信息。接著,這個模塊把獲得的信息放到一個臨時緩沖區,用戶空間的監控程序auditd從這個緩沖區可以獲得這些信息。
用戶空間的監控程序auditd通過/dev/audit設備獲得auditmodule模塊收集的信息,把這些二進制審計數據轉換為文本格式的數據,並使用一系列標記對信息進行分割。除此之外,為了方便後續的處理,還需要使用三個域分割符:TABS分割標記;COMMAS分割每個標記中的數據;SPACES分割數據中的元素。原始的事件經過auditd的處理後,看起來這樣:
objective,clear,Mon Aug 6 19:43:25 2001,The program /usr/bin/gimp has been
executed by the user leigh event,execve(),Mon Aug 6 19:43:25 2001
user,leigh(500),users(500),leigh(500),users(500) process,1651,sh
path,/usr/bin/gimp arguments,gimp return,0
但是即使是這樣的格式,對於普通用戶來說也非常難以理解。因此SNARE提供一個用於日志分析的圖形前端snare。通過這個圖形前端可以容易地進行事件日志參數的配置和事件的顯示。下面就是一個snare主窗口的屏幕快照。
圖.1.主窗口
SNARE的開發平台是Linux2.4版內核,通過重新編譯,可以運行於任何打開內核模塊支持的Linux內核。為了方便用戶的使用,SNARE工程組提供了一些針對當前主流廠商二進制發布,包括:RedHat、SuSe和Debian。
3.SNARE的安裝、刪除和使用
安裝RPM包
通過RPM軟件包來安裝SNARE非常容易,SNARE的RPM發布由四個文件組成,這三個文件是:
snare-core-0.8-1.i386.rpm
包括安裝auditmodule和SNARE內核審計組件必須的二進制文件。這個包可以單獨安裝,不過為了方便應用還是建議安裝snare圖形界面。注意這個包中的內核模塊是針對RedHat-7.1默認的內核版本(2.4.2),如果你使用其它版本的內核需要重新編譯。
snare-0.8-1.i386.rpm
只包括snare圖形前端。這個包需要snare-core-0.8-1.i386.rpm,否則根本無法使用。
snare-core-0.8-1.src.rpm
包括snare-core的源代碼。
snare-0.8-1.src.rpm
snare圖形前端的源代碼。
你可以根據自己的情況下載需要的軟件包,如果使用的是RedHat7.1默認的內核,只要按照以下步驟進行安裝,運行就可以了。
以roo用戶登錄
#rpm -ihv snare-core-0.8-1.i386.rpm snare-0.8-1.i386.rpm
#/etc/init.d/auditd start
如果你使用的內核不是RedHat 7.1默認的內核,在執行以上命令之前,需要使用源代碼RPM包重新構造RPM包:
#rpm -rebuild snare-core-0.8-1.src.rpm
手工安裝
如果你不能使用RPM,就需要從使用源代碼壓縮包安裝。首先,下載snare-core-0.8-1.tar.gz和snare-0.8.tar.gz文件,將其解壓。然後分別按照如下步驟進行安裝:
snare-core
#make clean
#make
#make install
圖形前端
#./autogen.sh
#make
#make install
#cp snare-icon.png /usr/share/pixmaps
#cp snare.desktop /usr/share/gnome/apps/System
#cp snare.desktop /usr/share/gnome/ximian/Programs/Utilities
#cp Snare.kdelnk /usr/share/applnk/System
運行SNARE
安裝完成後,使用Ximian、KDE和Gnome的用戶可以從菜單啟動SNARE的圖形前端snare。對於Ximian,snare菜單項的位置是:Programs->Utilities->Snare - Event Logging;對於GNOME,snare菜單項的位置是:Programs->System->Snare ->Event Logging;在KDE中,SNARE菜單項位於系統菜單內。如果看不到這些菜單項,只要輸入snare命令就可以通過命令行方式啟動SNARE圖形前端。如果沒有安裝圖形前端,你需要手工配置審計配置文件。
通過NFS輸出snare日志目錄(默認是/var/log/audit),在遠程的圖形前端上也可以查看本地事件日志。不過,遠程圖形前端不能控制本地的監控進程auditd。
4.審計配置
SNARE的審計配置文件是/etc/audit/audit.conf。這個文件保存了auditd監控程序所需的所有配置選項。配置文件的錯誤不會使auditd終止,只會造成分析結果無法閱讀。注意:手工編輯/etc/audit/audit.con文件時一定要小心,而且如果手工配置之後,又通過圖形前端修改配置,原來手工配置的結果就會被覆蓋。
最簡單有效的方法是通過圖形前端修改審計配置。在主窗口上選擇Setup -> Audit Configuration菜單,或者直接點擊工具條上的按鈕,可以進入審計配置界面。
審計控制(Auditing Control)
初始的審計配置參數包括:
審計報告的可信度
報告類型
日志文件的位置
這三個參數在配置窗口的第一個表(Auditing Control)中顯示,如圖所示:
圖2.審計配置窗口-審計控制(Auditing Control)表
Linux是一個多任務分時操作系統,任何活動的進程都可能產生審計信息,因此audit內核模塊必須對審計數據進行緩沖,等auditd獲得進入運行狀態後從緩沖區取出審計數據進行分析。如果auditd所得CPU時間不足,不能及時從緩沖區取出審計數據,就可能造成審計數據的丟失。如果用戶選擇了grade of auditing的C2 Style按鈕,系統內核就會放慢運行產生審計數據的進程,以便auditd能夠跟上審計數據產生的速度,但是這個選項會造成系統效率的下降。如果用戶選擇normal按鈕,則可能造成審計數據的丟失。
審計類型可以是原始內核事件(raw kernel events)或者對象(objective,用戶定義的事件過濾器)。如果選用“原始內核事件”審計類型,會將導致選擇的系統調用產生的事件被直接寫入日志文件,而不經過任何的過濾。被審計的系統調用可以通過Kernel選擇,如圖3。這種方法更適合於C2風格的審計。
圖2.kernel表
通過設置對象(objective),可以對選擇的事件進行更高級的審計。用戶設置的所有對象都在審計配置窗口的objective卡中列出,如圖:
對象(objective)
對象(objective)為事件的選擇和報告提供高層控制。事件通過一組高層條件選擇,由選擇的過濾器進行篩選。事件按照如下條件分組:
打開/建立一個文件/目錄。
刪除一個文件/目錄。
啟動/停止一個程序。
修改系統文件/目錄的屬性。
改變用戶/組的標志。
登錄/退出(SNARE0.8版還沒有實現)。
對於每個組,都可以賦予一個危險級別。危險級別分為:ritical、priority、warning、information和clear。使用危險級別,用戶可以把審計事件影射到自己推廣的商業安全產品。通過SNARE圖形前端,還