李小雪, 皇甫濤, 陳濤, 吳鵬
(中國(guó)移動(dòng)通信集團(tuán)重慶有限公司,重慶 401420)
安全基線(xiàn)是一個(gè)業(yè)務(wù)系統(tǒng)的最小安全保證,即該業(yè)務(wù)系統(tǒng)最基本需要滿(mǎn)足的安全要求,構(gòu)造業(yè)務(wù)系統(tǒng)安全基線(xiàn)是系統(tǒng)安全工程的首要步驟,同時(shí)也是進(jìn)行安全評(píng)估、發(fā)現(xiàn)和解決業(yè)務(wù)系統(tǒng)安全問(wèn)題的先決條件。本文將對(duì)系統(tǒng)安全狀態(tài)基線(xiàn)的建立和應(yīng)用進(jìn)行探討。
安全基線(xiàn)的內(nèi)容可以分為3個(gè)方面。
漏洞通常是由于軟件或協(xié)議等系統(tǒng)自身存在缺陷引起的安全風(fēng)險(xiǎn),一般包括了登錄漏洞、拒絕服務(wù)漏洞、緩沖區(qū)溢出、信息泄漏、蠕蟲(chóng)后門(mén)、意外情況處置錯(cuò)誤等,反映了系統(tǒng)自身的安全脆弱性。漏洞信息一般基于相應(yīng)的國(guó)際標(biāo)準(zhǔn),如CVE(Common Vulnerabilities& Exposures)。
通常都是由于人為操作的疏忽造成,主要包括了賬號(hào)、口令、授權(quán)、日志、IP通信等方面內(nèi)容,反映了系統(tǒng)自身的安全脆弱性。
系統(tǒng)狀態(tài)包含系統(tǒng)端口狀態(tài)、進(jìn)程、賬號(hào)以及重要文件變化的監(jiān)控等。這些內(nèi)容反映了業(yè)務(wù)系統(tǒng)當(dāng)前所處環(huán)境的安全狀況。
在安全基線(xiàn)與業(yè)務(wù)系統(tǒng)相結(jié)合的過(guò)程中,最重要也是最關(guān)鍵的內(nèi)容體現(xiàn)在系統(tǒng)安全狀態(tài)的基線(xiàn)要求上。系統(tǒng)安全狀態(tài)是指特定資產(chǎn)上包含的進(jìn)程白名單、端口白名單、賬號(hào)白名單、重要文件列表等的集合,作為安全檢查的度量維度,稱(chēng)作狀態(tài)基線(xiàn)。其中,重要文件列表是指對(duì)于特定類(lèi)型的資產(chǎn),根據(jù)其系統(tǒng)、服務(wù)屬性,通常一些重要文件經(jīng)過(guò)配置后不經(jīng)允許的更改為非法操作,重要文件列表是為保護(hù)和監(jiān)視這些重要文件改動(dòng)情況建立的快照列表。后文中對(duì)系統(tǒng)狀態(tài)基線(xiàn)的描述均限于系統(tǒng)文件狀態(tài)基線(xiàn)。
建立系統(tǒng)狀態(tài)基線(xiàn)的目標(biāo)有兩個(gè)方面:取證和管理。
創(chuàng)建基線(xiàn)的取證性目的,是在盡可能不對(duì)目標(biāo)系統(tǒng)造成干擾的情況下記錄下一個(gè)準(zhǔn)確的快照。最關(guān)心的問(wèn)題是證據(jù)保存的完整性、正確性及易用性。耗時(shí)和自動(dòng)化的考慮雖然重要,但并不是首要問(wèn)題。取證人員的首要目的是創(chuàng)建可以用于法庭檢測(cè)的證據(jù)。
創(chuàng)建基線(xiàn)的管理性目的,是在盡可能減少管理負(fù)擔(dān)的情況下記錄下一個(gè)準(zhǔn)確的快照。最關(guān)心的問(wèn)題是耗時(shí)、自動(dòng)化、可擴(kuò)展性、內(nèi)建分析功能、正確性和易用性。管理員希望的是能夠自動(dòng)發(fā)現(xiàn)和糾正問(wèn)題,同時(shí)也需要智能化的告警和完善的日志功能。
確定希望檢測(cè)的改變的屬性集合,然后開(kāi)發(fā)或者獲得相應(yīng)工具。這種工具應(yīng)能夠精確、系統(tǒng)地遍歷指定目錄和文件,收集或者生成需要的屬性,同時(shí)對(duì)目標(biāo)系統(tǒng)影響最小化。
選擇一個(gè)支持基線(xiàn)創(chuàng)建目標(biāo)的安全環(huán)境來(lái)運(yùn)行第一步選擇的工具;以能夠保存原始信息和確保完整性的方式將創(chuàng)建的基線(xiàn)結(jié)果存檔。
未來(lái)的某個(gè)時(shí)間點(diǎn),以第二步的方式重復(fù)建立快照;對(duì)比快照來(lái)確定是否有改變發(fā)生。
定期重復(fù)第三步;在需要建立新的基線(xiàn)時(shí),進(jìn)行第二個(gè)步驟。
2.3.1 替代平臺(tái)
從安全取證角度來(lái)看,創(chuàng)建一個(gè)系統(tǒng)狀態(tài)基線(xiàn)的最安全的方法,是使用一個(gè)專(zhuān)用的獨(dú)立主機(jī)。該主機(jī)運(yùn)行一個(gè)基線(xiàn)創(chuàng)建系統(tǒng),它經(jīng)過(guò)特殊配置,可以?huà)燧d和掃描從目標(biāo)系統(tǒng)提取的磁盤(pán)。但是,提取目標(biāo)磁盤(pán)的過(guò)程不一定容易或者可行,如果操作手段不正確,有可能導(dǎo)致無(wú)法挽回的破壞。這種方法的優(yōu)點(diǎn)有:
(1)這種方法完全獨(dú)立于目標(biāo)系統(tǒng),這為分析提取出的磁盤(pán)提供了必須的帶外安全環(huán)境。
(2) 由于基線(xiàn)創(chuàng)建工具運(yùn)行在目標(biāo)操作系統(tǒng)之外,此方法可以有效地訪(fǎng)問(wèn)目標(biāo)系統(tǒng)磁盤(pán)的所有文件。如果基線(xiàn)創(chuàng)建工具運(yùn)行在目標(biāo)操作系統(tǒng)上,則由于內(nèi)核或者其它鎖機(jī)制,即使基線(xiàn)創(chuàng)建工具具有完全的系統(tǒng)權(quán)限,也并不一定能訪(fǎng)問(wèn)到系統(tǒng)的所有文件。
(3)只要保存得當(dāng),基線(xiàn)創(chuàng)建工具和所收集到的數(shù)據(jù)的完整性就可以得到保證。
(4) 基線(xiàn)創(chuàng)建系統(tǒng)可以將目標(biāo)文件系統(tǒng)掛載為只讀訪(fǎng)問(wèn),這樣就避免了意外寫(xiě)入數(shù)據(jù)的可能。有的舊式的SCSI磁盤(pán)具有一個(gè)物理跳線(xiàn),可以設(shè)置磁盤(pán)為只讀模式;也可以設(shè)置寫(xiě)保護(hù)來(lái)保證只讀訪(fǎng)問(wèn)。
這種方法的缺點(diǎn)有:
(1) 維護(hù)人員必須對(duì)這種專(zhuān)用基線(xiàn)創(chuàng)建系統(tǒng)進(jìn)行維護(hù),增加了工作量。
(2) 這種方法耗時(shí)較長(zhǎng),而且需要人工干預(yù)和對(duì)所涉及系統(tǒng)進(jìn)行物理訪(fǎng)問(wèn)。
(3) 目標(biāo)操作系統(tǒng)必須離線(xiàn),可能持續(xù)數(shù)分鐘甚至數(shù)小時(shí),會(huì)對(duì)業(yè)務(wù)造成影響。
(4) 需要拆解目標(biāo)系統(tǒng)取出磁盤(pán),這樣有可能導(dǎo)致無(wú)法修復(fù)的損壞。操作者必須掌握較多的硬件知識(shí)。
2.3.2 替代操作系統(tǒng)
另一種創(chuàng)建系統(tǒng)狀態(tài)基線(xiàn)的相對(duì)安全的方式,是在目標(biāo)系統(tǒng)上啟動(dòng)一個(gè)替代操作系統(tǒng)。這個(gè)系統(tǒng)可以訪(fǎng)問(wèn)和掃描目標(biāo)文件系統(tǒng)。為了盡量不對(duì)原有數(shù)據(jù)造成影響,操作者不能將輸出寫(xiě)入到目標(biāo)媒體上。同時(shí),應(yīng)該盡可能把目標(biāo)文件系統(tǒng)掛載為只讀訪(fǎng)問(wèn),這種方法的優(yōu)點(diǎn)有:
(1) 完全獨(dú)立于目標(biāo)操作系統(tǒng),作為一種帶外方式來(lái)分析目標(biāo)系統(tǒng)磁盤(pán)。但是,如果目標(biāo)系統(tǒng)硬件/固件已被入侵,此方法就會(huì)有風(fēng)險(xiǎn)。
(2) 由于基線(xiàn)創(chuàng)建工具運(yùn)行在目標(biāo)操作系統(tǒng)之外,此方法可以有效地訪(fǎng)問(wèn)目標(biāo)系統(tǒng)磁盤(pán)的所有文件。
(3) 如果保存得當(dāng),且目標(biāo)系統(tǒng)硬件/固件未被入侵,則基線(xiàn)創(chuàng)建工具和所收集到的數(shù)據(jù)的完整性就可以得到保證。
(4) 替代操作系統(tǒng)可以以軟件只讀方式掛載目標(biāo)文件系統(tǒng)。
(5) 基線(xiàn)信息可以直接輸出到許多不同類(lèi)型的媒體,例如并口/串口/usb接口、網(wǎng)絡(luò)、SCSI磁盤(pán)、PCMCIA等。這就給予了操作者更多的方式來(lái)克服可能遇到的各種限制(例如沒(méi)有外接SCSI接口)。
這種方法的缺點(diǎn)有:
(1) 維護(hù)人員必須對(duì)替代操作系統(tǒng)的硬件、軟件等進(jìn)行維護(hù);每個(gè)目標(biāo)系統(tǒng)可能有獨(dú)特性,需要不同的替代操作系統(tǒng)硬件/軟件,增加了維護(hù)的復(fù)雜度。
(2)耗時(shí)較長(zhǎng),而且通常需要人工干預(yù)以及對(duì)目標(biāo)系統(tǒng)的物理訪(fǎng)問(wèn)。
(3) 目標(biāo)操作系統(tǒng)必須離線(xiàn),可能持續(xù)數(shù)分鐘甚至數(shù)小時(shí),會(huì)對(duì)業(yè)務(wù)造成影響。
(4) 當(dāng)今許多系統(tǒng)支持多個(gè)啟動(dòng)設(shè)備,具有多種啟動(dòng)選項(xiàng),操作者必須詳細(xì)了解每個(gè)目標(biāo)系統(tǒng)的啟動(dòng)過(guò)程。
(5) 替代操作系統(tǒng)必須具有各種目標(biāo)文件系統(tǒng)的驅(qū)動(dòng)程序。
(6) 如果替代操作系統(tǒng)和目標(biāo)操作系統(tǒng)共存,在獲取系統(tǒng)快照之前或之后都有可能造成基線(xiàn)創(chuàng)建工具或者其數(shù)據(jù)損壞。
2.3.3 單用戶(hù)模式
第3種創(chuàng)建基線(xiàn)的方法是將目標(biāo)系統(tǒng)置于單用戶(hù)模式。在此狀態(tài)下,會(huì)有少部分系統(tǒng)進(jìn)程運(yùn)行,網(wǎng)絡(luò)共享應(yīng)該被禁用,普通用戶(hù)應(yīng)不能訪(fǎng)問(wèn)系統(tǒng),同時(shí),應(yīng)可以以只讀方式重新掛載部分或全部目標(biāo)文件系統(tǒng)。不過(guò),并不是所有系統(tǒng)都支持單用戶(hù)模式(例如Windows),所以此方法并不完全通用。
此方法必須考慮到的一個(gè)主要問(wèn)題是如何輸出。如果可能的話(huà),輸出應(yīng)該寫(xiě)入到特定的外置存儲(chǔ)介質(zhì)。某些情況下,可能會(huì)出現(xiàn)輸出只能存儲(chǔ)到目標(biāo)系統(tǒng)的文件系統(tǒng)的現(xiàn)實(shí)問(wèn)題。令人遺憾的是,從安全取證角度考慮,這有可能在操作過(guò)程中覆蓋潛在證據(jù)。這些情況下提出的基線(xiàn)仍然具有價(jià)值,但是操作者應(yīng)在操作之前評(píng)估利益與風(fēng)險(xiǎn)。這種方法的優(yōu)點(diǎn)有:
(1) 為創(chuàng)建基線(xiàn)提供了一個(gè)受限訪(fǎng)問(wèn)環(huán)境。
(2) 可以有效地訪(fǎng)問(wèn)目標(biāo)文件系統(tǒng)的大多數(shù)或者全部文件。因?yàn)榛€(xiàn)創(chuàng)建工具在目標(biāo)操作系統(tǒng)上運(yùn)行,可能會(huì)缺少訪(fǎng)問(wèn)所有文件對(duì)象的必須權(quán)限。
(3) 大多數(shù)情況下,目標(biāo)文件系統(tǒng)可以重新掛載為只讀訪(fǎng)問(wèn)。這為避免破壞系統(tǒng)提供了額外的保護(hù)。
這種方法的缺點(diǎn)有:
(1) 完全基于目標(biāo)系統(tǒng),因此基線(xiàn)創(chuàng)建工具只有在帶內(nèi)環(huán)境下操作。這可能導(dǎo)致輸出不完整或者不可信。
(2) 耗時(shí)較長(zhǎng),而且通常需要人工干預(yù)以及對(duì)目標(biāo)系統(tǒng)的物理訪(fǎng)問(wèn)。
(3) 操作者可能不得不將輸出存儲(chǔ)在目標(biāo)系統(tǒng)的文件系統(tǒng)上,增加了潛在證據(jù)丟失的風(fēng)險(xiǎn),也可能將基線(xiàn)數(shù)據(jù)暴露在攻擊之下。
(4) 將目標(biāo)系統(tǒng)置于單用戶(hù)模式,也就導(dǎo)致了系統(tǒng)的不可用。這可能持續(xù)數(shù)分鐘甚至數(shù)小時(shí),會(huì)對(duì)業(yè)務(wù)造成影響。
(5) 創(chuàng)建基線(xiàn)的可執(zhí)行程序在內(nèi)存內(nèi)被執(zhí)行時(shí),以及執(zhí)行前在保存磁盤(pán)上都具有風(fēng)險(xiǎn)。通過(guò)在只讀媒體(例如CDROM)上執(zhí)行,可以消除在磁盤(pán)上被修改的風(fēng)險(xiǎn);因?yàn)橄到y(tǒng)處于單用戶(hù)模式,可以降低但無(wú)法消除在內(nèi)存內(nèi)被修改的風(fēng)險(xiǎn)。
2.3.4 多用戶(hù)模式
最后一種創(chuàng)建基線(xiàn)的方式是在正常系統(tǒng)模式下操作。在此模式下,可能無(wú)法重新掛載目標(biāo)文件系統(tǒng)到只讀模式。與單用戶(hù)模式類(lèi)似,也需要考慮數(shù)據(jù)輸出問(wèn)題。從安全取證角度考慮,此方法是所有方法中最不完善的一種,但是在時(shí)間或者可操作性的限制下,有可能也是唯一可行的方法。這種方法的優(yōu)點(diǎn)有:
(1) 當(dāng)可以遠(yuǎn)程訪(fǎng)問(wèn)時(shí),可能不必物理訪(fǎng)問(wèn)目標(biāo)系統(tǒng)。
(2)可以有效地訪(fǎng)問(wèn)目標(biāo)文件系統(tǒng)的大多數(shù)或者全部文件。因?yàn)榛€(xiàn)創(chuàng)建工具在目標(biāo)操作系統(tǒng)上運(yùn)行,可能會(huì)缺少訪(fǎng)問(wèn)所有文件對(duì)象的必須權(quán)限。
這種方法的缺點(diǎn)有:
(1) 完全基于目標(biāo)系統(tǒng),因此基線(xiàn)創(chuàng)建工具只有在帶內(nèi)環(huán)境下操作。這可能導(dǎo)致輸出不完整或者不可信。
(2) 結(jié)果輸出必須存儲(chǔ)至目標(biāo)系統(tǒng)或者網(wǎng)絡(luò)資源。兩種情況都對(duì)數(shù)據(jù)的完整性造成風(fēng)險(xiǎn)。加密可以降低風(fēng)險(xiǎn),但不一定能完全消除。
(3) 任意或者所有目標(biāo)文件系統(tǒng)被重新掛載為只讀訪(fǎng)問(wèn)的可能性較小。即使文件系統(tǒng)能夠以此方法重新掛載,也可能由于操作問(wèn)題等原因而無(wú)法實(shí)現(xiàn)。
(4) 創(chuàng)建基線(xiàn)的可執(zhí)行程序在內(nèi)存內(nèi)被執(zhí)行時(shí),以及執(zhí)行前在保存磁盤(pán)上都具有風(fēng)險(xiǎn)。通過(guò)在只讀媒體(例如CDROM)上執(zhí)行,可以消除在磁盤(pán)上被修改的風(fēng)險(xiǎn)。
(5) 目標(biāo)系統(tǒng)對(duì)用戶(hù)可用,普通進(jìn)程也會(huì)繼續(xù)運(yùn)行,這可能導(dǎo)致不完整、不一致或不正確的結(jié)果,因?yàn)樽C據(jù)可能在被收集之前就遭到修改或者破壞。
FTimes(File Topography and Integrity Monitoring on an Enterprise Scale,企業(yè)級(jí)文件形態(tài)和完整性監(jiān)控)是一個(gè)開(kāi)源項(xiàng)目。它的首要目的是收集和生成指定文件和系統(tǒng)的形態(tài)信息和屬性,支持內(nèi)容完整性檢測(cè)、事件響應(yīng)、入侵分析以及計(jì)算機(jī)安全取證。
FTimes作為一款輕量級(jí)工具,可以保存在一張軟盤(pán)內(nèi),無(wú)需在目標(biāo)系統(tǒng)安裝,只提供命令行界面。它具有兩種基本功能:文件形態(tài)生成和字符串查找。文件形態(tài)生成,意味著對(duì)一個(gè)指定的文件系統(tǒng)映射目錄和文件關(guān)鍵屬性,而字符串查找是指對(duì)指定的文件系統(tǒng)掃描挖掘特定的字節(jié)串。
FTimes支持兩種操作模式:工作臺(tái)模式和客戶(hù)端-服務(wù)器模式。在工作臺(tái)模式下,操作者使用FTimes對(duì)證據(jù)(例如從被入侵系統(tǒng)提取的文件或磁盤(pán)鏡像)進(jìn)行改變分析、查找特定屬性、檢查完整性等操作。在客戶(hù)端-服務(wù)器模式下,操作者可以從多個(gè)主機(jī)高效地監(jiān)測(cè)、管理和收集快照數(shù)據(jù),以HTTPS的安全傳輸方式保存至一個(gè)稱(chēng)為完整性服務(wù)器的集中化系統(tǒng)。圖1為一個(gè)典型結(jié)構(gòu)示意圖。
圖1 FTimes客戶(hù)端-服務(wù)器模式示意圖
FTimes支持對(duì)多種文件屬性收集生成所謂的文件形態(tài)(File Topography)。創(chuàng)建快照時(shí),F(xiàn)Times將目錄和文件列表作為輸入,收集相應(yīng)屬性,生成一個(gè)包含每個(gè)對(duì)象屬性的文本集。一些屬性(例如大小、訪(fǎng)問(wèn)時(shí)間等)直接從文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)中獲取,而MD5/SHA1等散列信息則通過(guò)計(jì)算獲得。
我們搭建的測(cè)試平臺(tái)拓?fù)鋱D如圖2所示,各服務(wù)器均為L(zhǎng)inux主機(jī),業(yè)務(wù)服務(wù)器模擬正常業(yè)務(wù)平臺(tái)的服務(wù)器,而完整性服務(wù)器為FTimes專(zhuān)用服務(wù)器,服務(wù)器之間通過(guò)交換機(jī)連接,實(shí)現(xiàn)網(wǎng)絡(luò)可達(dá)。FTimes部署為客戶(hù)端-服務(wù)器模式。
圖2 測(cè)試平臺(tái)拓?fù)?/p>
(1) 業(yè)務(wù)服務(wù)器配置:業(yè)務(wù)服務(wù)器在運(yùn)行正常業(yè)務(wù)程序的同時(shí)運(yùn)行FTimes客戶(hù)端程序,對(duì)/etc/、/usr/等關(guān)鍵目錄進(jìn)行監(jiān)控。
(2) FTimes完整性服務(wù)器配置:對(duì)FTimes完整性服務(wù)器進(jìn)行安全加固,配置FTimes服務(wù)端Web程序nph-ftimes.cgi,以支持FTimes的GET、PING和PUT等HTTP/S請(qǐng)求。
基線(xiàn)生成及監(jiān)控流程:
(1) 在確定業(yè)務(wù)正常、系統(tǒng)未被入侵的初始階段,使用FTimes對(duì)每個(gè)業(yè)務(wù)服務(wù)器生成關(guān)鍵目錄的狀態(tài)基線(xiàn),上傳至完整性服務(wù)器保存。
(2) 通過(guò)cron配置業(yè)務(wù)服務(wù)器FTimes定時(shí)生成關(guān)鍵目錄狀態(tài)快照,上傳至完整性服務(wù)器與基線(xiàn)進(jìn)行比對(duì)。
(3) 如果比對(duì)發(fā)現(xiàn)改變,則說(shuō)明該業(yè)務(wù)服務(wù)器文件遭到修改,可能遭受入侵。通過(guò)FTimes可以分析出被修改的文件,再經(jīng)手工核查,分析入侵過(guò)程及進(jìn)行修復(fù)。
異常情況處理:在系統(tǒng)部署完畢后,我們模擬了其中一臺(tái)業(yè)務(wù)服務(wù)器被入侵并被添加用戶(hù)的情況。由于造成了/etc/passwd文件的改動(dòng),系統(tǒng)快照已與之前的系統(tǒng)狀態(tài)基線(xiàn)有差異。在客戶(hù)端上傳快照至完整性服務(wù)器后,完整性服務(wù)器通過(guò)比對(duì)發(fā)現(xiàn)了差異,并自動(dòng)發(fā)送告警郵件至管理員的139郵箱。管理員通過(guò)手機(jī)收到郵件提醒短信,立即可以開(kāi)展事件響應(yīng)工作。
本文首先提出了安全基線(xiàn)的內(nèi)容,并把系統(tǒng)安全狀態(tài)基線(xiàn)作為重點(diǎn),討論了系統(tǒng)文件狀態(tài)基線(xiàn)建立的目標(biāo),并給出了創(chuàng)建基線(xiàn)和檢測(cè)改變的過(guò)程。之后,提出了4種系統(tǒng)狀態(tài)基線(xiàn)創(chuàng)建方法,并對(duì)每種方法的優(yōu)劣進(jìn)行了詳細(xì)分析,指出了適用場(chǎng)景。最后,對(duì)一種開(kāi)源的系統(tǒng)狀態(tài)基線(xiàn)創(chuàng)建工具FTimes進(jìn)行了介紹,并搭建測(cè)試平臺(tái)實(shí)現(xiàn)了自動(dòng)創(chuàng)建系統(tǒng)狀態(tài)基線(xiàn)并檢測(cè)改變的功能。通過(guò)平臺(tái)的實(shí)地測(cè)試,F(xiàn)Times實(shí)現(xiàn)了自動(dòng)監(jiān)測(cè)系統(tǒng)文件改變的功能,對(duì)增強(qiáng)系統(tǒng)基線(xiàn)安全、減輕維護(hù)人員工作量有較大幫助。
[1] 彭霄. 安全基線(xiàn)風(fēng)險(xiǎn)評(píng)估技術(shù)的研究[R]. 北京: 北京郵電大學(xué), 2010.
[2] 桂永宏. 業(yè)務(wù)系統(tǒng)安全基線(xiàn)的研究及應(yīng)用[J]. 北京: 計(jì)算機(jī)安全, 2011.
[3] FTimes Project[EB/OL]. http://ftimes.sourceforge.net.