摘要:論述了基于B3級安全操作系統審計報警模塊增強策略與方法。在審計面擴展方面,通過分析系統進程通信與資源使用特征,增加隱蔽通道審計;在報警決策方面,根據應用場景,提出了一種以具有豐富語義的審計事件為出發點的報警決策方案。通過審計事件多角度分析、安全字段參數控制、審計序列關聯分析、由時間戳控制隱蔽通道閾值、引入干擾等阻止信息傳遞策略,增強了系統的安全性能。
關鍵詞:B3級;安全策略;審計事件;報警
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)05-0101-04
操作系統的安全是整個計算機系統安全的基礎,而審計是保障操作系統安全的重要手段。因此各國的安全操作系統評估標準[tcsec][cc][gb17859][gb18336]普遍都要求用審計方法監視安全相關的活動。隨著對系統安全評估要求的提升,對審計的要求相應提高:一方面需要審計事件的擴充;一方面對安全事件的處理要求的提高。美國TCSEC對系統審計要求分為四個層次。對于B3級,在審計事件擴充方面,要求在B2級基礎上增加對隱蔽定時通道事件的審計;在安全事件處理方面,需增加報警策略的支持[1]。我國的《計算機系統安全性評估標準》(GB17859-1999)的最高保護級——訪問驗證保護級對安全審計的要求相當于B3的要求(用B3代表該評估級)。目前世界上已開發出的B3級系統寥寥無幾,極少見到研究成果的公開報告。國內對B3系統的研究尚未展開,該級別的審計技術研究尚屬空白。
通過分析設定的安全策略研究B3級系統安全審計模塊的設計機制:根據系統分析確定審計點、增加隱蔽通道審計并通過時間戳控制閾值解決審計難點;在報警檢測方面,目前IDS研究主要集中在使用系統調用方面;檢測方法存在一定的不足,如特征考慮不全面、誤報率高等[2~4];而且由于應用場景不同,與安全操作系統審計機制不太吻合。在前人研究的基礎上[3,5,6],揉合系統調用參數以及安全信息字段,通過改進Forrest、Kruegel的設計方案[2,7]提出了基于具有豐富語義的審計事件報警決策方案。該方案以審計事件為出發點,增加安全信息字段控制檢測,由單個記錄擴展到審計序列分析信息關聯實施報警決策。為了印證該項研究,在本文自主研發的達到B2要求的安勝4.0安全操作系統[8]上開發了審計報警模塊使之達到B3級安全操作系統對審計模塊的要求。
1審計關鍵點分析
構建B3級安全操作系統審計報警機制的主要意義有三點:①全面了解系統使用情況與用戶的行為,監督系統資源的正常、有效使用;②提供數據用于追查入侵,形成威懾;③實時中止違反安全策略的事件,提供保護機制。
B3級安全操作系統TCB需記錄的事件主要包括:使用身份鑒別機制,將客戶引入地址空間,刪除客體,使用隱蔽通道時的事件,由操作員、系統管理員、系統安全管理員實施的動作以及其他與系統安全相關的事件。其分為隱蔽通道事件、系統調用類事件、安全命令相關事件。
根據安全操作系統的特點,從安全模型與策略、頂層規范、源代碼來分析系統中可能存在的安全風險,以及發生風險時系統的使用情況。結合理論分析與工程實踐,確定審計報警的機制與相關閾值。
1.1隱蔽通道事件
B3級對審計最引人注目的要求就是對隱蔽通道事件的審計要求[1] 。隱蔽通道是允許進程以危害系統安全策略的方式傳輸信息的信道[gb17859] ,利用隱蔽通道技術可繞過安全操作系統的MAC機制。給定一個強制安全策略模型M及其在一個操作系統中的解釋I(M)。I(M)中的兩個主體I(Sh)和I(Sl)之間的通信是隱蔽的,當且僅當模型M中的對應主體Sh和Sl之間的任何通信都是非法的。隱蔽通道分為兩類,即隱蔽存儲通道和隱蔽定時通道。隱蔽存儲信道涉及到一個進程直接或者間接寫入一個共享存儲資源,而另外一個進程直接或間接讀這個存儲資源。隱蔽定時信道涉及到一個進程采用調節自己對系統資源(如CPU)的使用,從而影響另外一個進程觀察到的真實響應時間的方式發送信號。一般說來,所有未被安全模型控制的信息傳遞方式均屬于隱蔽通道范疇。GB17859對第四級只要求初步審計隱蔽存儲通道事件,而第五級要求審計全部隱蔽通道事件。
設計隱蔽通道審計機制的關鍵是明確審計機制應該記錄什么事件、審計工具應該維護什么數據。為保證使用隱蔽通道的事件全部被審計,必須記錄足夠的數據,確保能夠標志每次隱蔽通道的使用事件,并且能夠識別通道的發送者和接收者。審計隱蔽存儲通道與審計隱蔽定時通道采用的方法有所不同。
通過提取隱蔽存儲通道特征,并將這些特征列入審計事件,就能做到審計所有的隱蔽存儲通道行為。審計流程如下:
(1)確定PAh, Var, PVi三元組。其中Var是共享存儲資源(變量);Pah和Pvi分別是讀寫該共享資源變量的系統調用。
(2)標示出共享變量讀寫路徑。在讀寫路徑上加上隱蔽通道審計標記,以這些標記是否出現作為是否審計記錄審計事件的依據。
(3)通過讀、寫監視器監控資源。
例如設安全級別低的用戶是A,安全級高的用戶是B,文件f1、f2是安全級別低的文件。準備就緒后,B用打開讀f1發送1;打開讀f2發送0,A反復試圖打開寫f1、f2,依據操作是否成功每次發送1 bit信息,構成隱蔽存儲通道;通過監控文件f1、f2實現審計。
隱蔽定時通道的審計要困難得多。這類通道并不依靠將信息存入共享存儲資源的方式通信,而是靠對系統性能的影響來通信。目前對這種通道的標志仍然是世界性難題。但是在研究中發現了這種信道的一些規律,即構造這種通道,也離不開系統調用,只有某些系統調用可以被用于構造隱蔽定時通道,并且這些系統調用被用于構造定時通道時,必定使用一些特殊的參數。通過記錄這些標志性參數的出現情況,可以標志和審計一部分隱蔽定時通道。
對于圖1中根據CPU的調度策略構造的定時通道(Huskamp),敏感信息的發送者與接收者共享同一個CPU,兩者達成協議,在相繼的兩個CPU時間片之間,發送者在時間ti執行,表示發送1,不執行,表示發送0。接收者嘗試同時執行,將接收到的成功與失敗的記號解釋成0和1。審計這種隱蔽通道的關鍵在于識別隱蔽通道的發送/接收動作。盡管這個信道場景使用的操作都是系統中常見的操作,但是仍然有其獨特的特征,即休眠動作的高頻使用。為讓出對CPU的控制權,發送方和接收方都會使用休眠動作。每執行一次發送場景,就要進行兩次控制權的切換,即休眠兩次。如果一個這種信道的帶寬是1 000 bits(常見的隱蔽通道帶寬),則需要調用休眠指令2 000次/s。為了發送一個文件,該通道將反復高頻地調用休眠指令。通過對這種高頻休眠動作的審計,可以捕捉到這條信道的使用蹤跡。
1.2審計系統中的其他事件
與安全相關的系統調用類事件是最常見的審計事件(如Open、Exec等系統調用),還包括比較特殊的對客體的訪問類審計事件。它們與系統的安全使用有關,所以要記錄它們的執行情況。
與安全命令相關的審計事件是由應用層的命令所產生的與系統安全相關的事件,不涉及系統調用。由于其中包括一些與系統安全相關的系統命令和特權命令(如Login),審計系統也需詳細記錄這些命令的使用情況。與安全命令相關的事件的審計點處于用戶態,不能直接訪問內核的進程與數據結構,所以在審計數據收集時引入一個新的系統調用Auditdmp來傳遞事件的相關信息。
1.3審計數據收集
在Linux系統中,用戶程序與操作系統唯一的接口是系統調用,當用戶請求系統服務時必須經過系統調用。在此處增加審計控制,可保證所有安全相關事件被審計。
對于特權命令,由于一個特權命令使用多個系統調用,逐個審計所用到的系統調用會使審計數據復雜而難以理解。進行審計分析時需要綜合多條審計記錄才能進行正確的審計跟蹤。在被審計的特權命令的每個可能的出口處增加一個新的系統調用專門用于該命令的審計。
LSM提供的通用訪問控制框架并不完全適用于本文的設計。因此,對Hook函數的添加點主要集中在內核對客體的訪問控制以及系統的安全信息管理上。在LSM提供的Hook點上進行安全審計,會出現收集到的信息不完備等問題。根據最小擴展原則,采取審計系統添加自己的Hook函數的方法。審計Hook函數分為審計事件Hook函數和審計記錄Hook函數。審計事件Hook函數主要集中在系統調用的入口處;而審計記錄Hook函數主要安插在系統調用的出口處,用來保證審計的完備性。為提高其他安全策略模塊和審計自身的效率,避免了與其他安全策略共同使用同樣的安全操作集。在系統中定義安全審計操作集合Audit_operations,在Audit_operations中包含審計Hook函數。
1.4報警機制
在安全事件處理方面,B3級要求收集到審計數據后通過對數據檢測增加報警機制。高等級系統審計報警研究較少,相關的研究集中在IDS方面。Forrest提出通過監視特權進程的系統調用序列進行檢測[2],其只關注系統調用,很少記錄有用的信息。Kruegel根據系統調用參數建立檢測方案[7],但沒有進行關聯分析會影響誤報率。由于應用場景不同,IDS在安全策略控制與隱蔽通道方面具有局限性。本文參考改進的IDS,設計了符合B3級操作系統需求的審計報警。
結合安全操作系統審計實際特點與需求,引入審計事件。根據系統調用號、系統調用參數、用戶安全級別和客體安全級別等與安全相關的信息定義的審計事件已經蘊涵了系統調用參數信息并進行了擴展,在豐富語義的同時效率更高、更精確。以審計事件為出發點增加安全信息參數控制。根據事件關聯性,由單個記錄擴展到審計序列,進行連續事件關聯分析,實現了違反安全策略的報警設計。隱蔽通道報警引入抽樣分析與時間戳,并根據閾值進行控制。
1.4.1違反安全策略觸發的報警
違反安全策略的報警決策按照下列步驟依次進行:
(1)審計事件長度分析
(4)審計事件序列關聯
進程經常傳遞給系統調用參數相同的值,如標記、句柄。攻擊者通過改變正常的執行流,進入惡意代碼跳過安全約束。
對于單個審計事件,首先收集正常情況下的參數來源,組成標準集合,在檢測過程中分析審計記錄中的系統調用參數是否來自標準集合。隨機變量與枚舉的認定通過觀察不同的參數值產生的次數是否接受閾值的限制(隨機變量不受限制);對標志符與枚舉通過非參Kolmogorov-Smirnov檢驗判別,如果相異變量數量的增長符合標準遞減增長曲線,就可以認為是枚舉。儲存鑒別過程中收集到的枚舉變量進行組合以在隨后的檢測階段進行利用。對審計序列進行連續判別,當認定參數的值來自枚舉并且不屬于已知變量組的次數達到閾值t,則返回0;否則返回1。
(5)審計事件安全字段檢測
根據審計事件的相關安全信息(安全級別、事件成功與否)進行分析;通過對違反安全策略的事件進行跟蹤記錄,設定閾值,實現實時監控。超越閾值則視為違反系統設定的安全策略,返回0;否則返回1。
(6)報警決策
1.4.2隱蔽通道報警
隱蔽存儲通道報警不斷跟蹤讀、寫監視器的Count值的變化情況。當讀、寫監視器的Count值都達到審計閾值(發生次數)時,審計系統認為系統中已經發生了隱蔽通道活動,產生相應的審計記錄,寫入審計日志文件,并及時報警。定時通道通過標志性參數的出現情況判斷是否達到閾值。
隱蔽通道分為資源耗盡通道、事件計數通道、定時通道。對于產生海量信息的通道事件,如通過共享系統隱蔽通道變量表中的148個全局數據中某些變量的隱蔽通道事件會涉及到大量的操作,對信息進行完全監控會影響系統性能??紤]到事件發生間隔問題,設計采取以下措施:①間隔進行數據采樣,通過讀、寫監視器進行抽樣數據檢測。②管理員通過調整抽樣時間間隔進行粒度控制。③維護一個環形時間戳緩沖區來計算隱蔽通道被利用次數。添加當前事件的時間戳到這個主體的環形緩沖區,通過時間戳進行控制。這樣不但降低了復雜度,而且基本不會影響漏報率。
1.4.3中止事件的措施
按照設計要求,如果發生的安全相關事件繼續發生或積累,系統應能以最小的代價中止它們。針對存在隱蔽通道容易產生錯誤報警的問題,遵循最小代價的原則,提出通過干擾相關進程阻止非法信息傳遞的方法。
(1)引入噪聲與延時干擾進程。如前文中的定時通道、管理員通過延時進行信息流干擾。
(2)終止事件進程。
(3)殺死該進程用戶的所有進程,系統停止對該用戶的服務。
(4)關閉整個系統。可通過內核來調用系統關機程序/usr/bin/shutdown。
2應用設計
2.1安全策略
安全操作系統的安全策略是對安全要求的描述,包括機密性、完整性、可用性等方面的要求。安全策略是報警的依據,設計遵循的安全模型包括機密性模型、完整性模型、特權控制模型。系統中與審計報警模塊相關的安全機制如下:
(1)用戶標志和鑒別機制;
(2)對文件/目錄/設備等的訪問受DTE、MAC、ACL和特權的共同控制;
(3)對IPC等課題的訪問受MAC、ACL和特權的控制;
(4)信息流路徑受強制安全策略控制;
(5)對違反安全的事件進行審計。
存取控制表(ACL)是讀、寫、執行權限位的匹配;進程以X權限訪問客體,X必須在客體相應的ACL項中;進程搜索路徑,進程必須具有路徑名中對每一目錄分量的搜索權。MAC通過嚴格設置安全屬性進行控制。DTE權限分為讀、寫、創建、連接、目錄搜索,針對不同的域與型進行匹配;DTE通過定義不同域對不同型的訪問權限,以及主體在不同域中進行轉換的規則來達到保護信息完整性的目的。通過對信息流路徑進行控制以限制隱蔽通道的使用。
2.2審計模塊結構
審計報警模塊應具備四個功能:①審計事件的收集及過濾;②審計事件的記錄、審計日志維護及查詢;③審計機制的整體控制,如參數的設置;④決策報警,分析審計數據,為干預用戶行為提供決策。
根據對審計報警模塊的分析結果,設計安全審計報警模塊體系結構如圖2所示。
安全審計報警模塊包括六個部分:①主模塊??刂菩畔⒐芾碚麄€審計機制。②審計事件采集模塊,即擴展LSM中的審計事件Hook函數和審計記錄Hook函數。③安全事件監控模塊。從安全事件采集模塊接收安全相關信息,識別威脅系統安全策略的行為,并向安全事件響應模塊報警。④審計日志查詢模塊。⑤響應模塊。主要根據審計信息進行實時報警。⑥存儲模塊。實現數據存儲與保護。
3結束語
在設計中,通過系統文件/etc/security/TCB/audit/classes一共定義了23個事件類及84個事件,新的事件也能方便地添加進來,從而有效地實現了審計數據的獲取。加入審計機制的系統調用有130個,隱蔽通道方面分析全局變量為148個。
對于報警模塊,根據實際經驗,為取得誤操作與準確率之間的均衡,閾值在理論均值基礎上提高了10%。在性能方面,通過實驗驗證,系統的性能也受到一定的影響,CPU負荷與系統調用比率增長了8%左右。經過多次在正常情況下學習并進行矯正后,檢測效果有一定的提高,誤報率有所下降。
通過對B3級安全操作系統審計報警的分析研究,在審計點的設置、審計面的擴展、隱蔽通道審計、報警策略、最小代價中止事件等關鍵問題上進行改進與設計;完善了審計的功能,增強了系統的安全性。下一步的研究重點包括兩方面:①在海量信息過濾方面,Robert Schweller與Ashish Gupta等人提出的Sketch方法在隱蔽通道信息處理方面值得進行深入探討;②研究加入報警機制后系統性能與功能的優化,具體實現也有待進一步地經受應用的考驗。
參考文獻:
[1]National Computer Security Center.A guide to understanding audit in trusted systems,NCSCTG2001, ver2[R].[S.l.]:[s.n.],1988.
[2]WARRENDER C, FORREST S, PEARLMUTTER B. Detecting intrusions using system calls:alternative data models:proceedings of the IEEE Symposium on Security and Privacy[C].Los Alamitos:[s.n.],1999: 133-145.
[3]BISKUP J,FLEGEL U.Transaction-based pseudonyms in audit data for privacy respecting intrusion detection:LNCS 1907[C].Berlin: Springer-Verlag,2000:28-48.
[4]LEE S Y,LOW W L, WONG Peiyuen.Learning fingerprints for a database intrusion detection system:proc.of the 7th European Symposium on Research in Computer Security (ESORICS)[C].[S.l.]:[s.n.], 2002:264-280.
[5]訾小超,姚立紅,曾慶凱,等.操作系統安全增強技術研究進展[J].高技術通信,2003,13(7):106-110.
[6]卿斯漢,劉文清,溫紅子,等.操作系統安全[M].北京:清華大學出版社,2004:73-114.
[7]KRUEGEL C, MUTZ D,VALEUR F,et al. On the detection of anomalous system call arguments:proceedings of the 8th European Symposium on Research in Computer Security(ESORICS)[C].Gjovik:[s.n.],2003:101-118.
[8]SCHWELLER R,GUPTA A,CHEN Y,et al. Reversible sketches for efficient and accurate change detection over network data streams:proceedings of ACM SIGCOMM Internet Measurement Conference[C].[S.l.]:[s.n.],2004:207-212.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”