丁志芳,徐孟春,費(fèi)勤福,武東英
(信息工程大學(xué) 數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室,河南 鄭州450002)
查找和識(shí)別惡意輸入、事件和輸出是入侵檢測(cè)系統(tǒng)的根本任務(wù)。構(gòu)建這樣的系統(tǒng)和對(duì)它們的屬性推理是入侵檢測(cè)研究的主要目標(biāo)。在這個(gè)領(lǐng)域中的一個(gè)關(guān)鍵問題是系統(tǒng)無(wú)法自動(dòng)保護(hù)自身免受攻擊。為了能夠識(shí)別和發(fā)現(xiàn)現(xiàn)有的和新出現(xiàn)的攻擊,系統(tǒng)必須具有自動(dòng)反應(yīng)機(jī)制。自我修復(fù)軟件技術(shù)的最新進(jìn)展為自動(dòng)入侵響應(yīng)鋪平了道路。檢測(cè)技術(shù)的局限性在于必須在響應(yīng)之前發(fā)現(xiàn)入侵檢測(cè)的缺陷 (誤報(bào)和漏報(bào),失效開放性,性能等),也就是說(shuō)在響應(yīng)之前必須檢測(cè)到攻擊。此外,許多系統(tǒng)管理員不愿意讓自動(dòng)防御系統(tǒng)擅自對(duì)計(jì)算環(huán)境做出改變,即便機(jī)器的反應(yīng)比人類快了不止一個(gè)數(shù)量級(jí)。
攻擊的不可預(yù)測(cè)性、檢測(cè)機(jī)制不精確性以及對(duì)自動(dòng)響應(yīng)系統(tǒng)缺乏分析,導(dǎo)致人們對(duì)自動(dòng)防御和自我修復(fù)系統(tǒng)的使用缺乏信心并且持懷疑態(tài)度。因此,自動(dòng)生成的解決方案必須以自動(dòng)化的方式進(jìn)行非常詳細(xì)、嚴(yán)謹(jǐn)和認(rèn)真的測(cè)試。ARV是入侵防御研究中值得進(jìn)一步探索的領(lǐng)域。本文研究的重點(diǎn)是,監(jiān)控以網(wǎng)絡(luò)為中心應(yīng)用的ARV系統(tǒng)所面臨的挑戰(zhàn)。以網(wǎng)絡(luò)為中心的應(yīng)用是普遍的攻擊目標(biāo),這是由于攻擊者可以匿名,并且很容易將輸入送到系統(tǒng)。網(wǎng)絡(luò)系統(tǒng)的復(fù)雜性大于其他系統(tǒng),更復(fù)雜的問題域有利于說(shuō)明ARV系統(tǒng)可能面臨眾多的挑戰(zhàn)。
輸入和事件的分類是入侵檢測(cè)系統(tǒng)根本目的,ARV的前提是適當(dāng)?shù)貙?duì)系統(tǒng)輸入分類?;诰W(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)的主要任務(wù)是掃描網(wǎng)絡(luò)數(shù)據(jù)包和流量,尋找與內(nèi)容相匹配的特征或超出正常范圍內(nèi)流量模型[1]。ARV的目標(biāo)是進(jìn)一步對(duì)涉嫌惡意流量進(jìn)行分類,并將它們與故障和修復(fù)相關(guān)聯(lián),然后再如實(shí)地重放引發(fā)最初的攻擊或漏洞檢測(cè)儀器的相關(guān)流量。
ARV系統(tǒng)的第一個(gè)關(guān)鍵任務(wù)是跟蹤輸入,這些輸入可能是惡意的,并與自我修復(fù)設(shè)備所生成的事件關(guān)聯(lián)。為了對(duì)惡意輸入進(jìn)行分類,以網(wǎng)絡(luò)為中心的ARV系統(tǒng)可以利用各種網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng) (network intrusion detection system,NIDS),根據(jù)實(shí)際系統(tǒng)的使用情況進(jìn)行分類。例如,誤用檢測(cè)系統(tǒng)依賴特征來(lái)檢測(cè)惡意流量,這種檢測(cè)無(wú)法識(shí)別新出現(xiàn)的攻擊。然而,ARV只能夠驗(yàn)證修復(fù)這些已知的有明顯特征的攻擊。由于這樣的特征常常是手動(dòng)創(chuàng)建的,ARV的分類能力對(duì)這類誤用檢測(cè)系統(tǒng)是徒勞的,除非特征是自動(dòng)生成的,這就是多個(gè)系統(tǒng)[2-8]這樣做的目的。
為了生成一個(gè)特征,大多數(shù)系統(tǒng)檢查網(wǎng)絡(luò)流量或識(shí)別惡意輸入的主機(jī)內(nèi)容。也可以采取一種混合的方法,尋求主機(jī)對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)的處理。
重傳流量的能力是一個(gè)以網(wǎng)絡(luò)為中心的ARV系統(tǒng)的第二個(gè)重要方面。TCPopera是廣泛適用于能夠快速,不停產(chǎn)生大量的真實(shí)的網(wǎng)絡(luò)數(shù)據(jù) (測(cè)試新的應(yīng)用,協(xié)議,網(wǎng)絡(luò)協(xié)議棧等)的情況,它是特別適合于ARV。事實(shí)上,測(cè)試入侵防御系統(tǒng) (intrusion prevention system,IPS)[9]是作為TCPopera一個(gè)有用的應(yīng)用。TCPopera的優(yōu)勢(shì)之一是該系統(tǒng)完全避免了在重傳過程中產(chǎn)生副作用的數(shù)據(jù)包,它如實(shí)地再現(xiàn)原流量。
重放網(wǎng)絡(luò)流量取決于流量產(chǎn)生的兩種主要方法首先,原始數(shù)據(jù)包流可以記錄和重放,但這種做法缺乏技巧,因?yàn)樗褦?shù)據(jù)包作為一個(gè)黑匣子。因此,調(diào)整或修改參數(shù)以反映實(shí)際的測(cè)試條件是困難的。此外,它可能需要大量的存儲(chǔ)。第二種方法是基于上建立一個(gè)流量分析模型,然后生成符合這些特征的流量。雖然這種做法避免了大量的數(shù)據(jù)存儲(chǔ)成本,并提供了靈活配置,但是該模型的預(yù)測(cè)可能是不正確的。
如果一個(gè)系統(tǒng)集成或通過一個(gè)自我修復(fù)機(jī)制保護(hù),ARV是唯一有意義的。大多數(shù)的這些機(jī)制都遵循ROAR(Recognize識(shí)別,Orien t定位,Adapt適應(yīng),Respond響應(yīng))工作流程。ARV是 “響應(yīng)”階段的一個(gè)合乎邏輯的重要組成部分:驗(yàn)證系統(tǒng)適應(yīng)性。
自我修復(fù)機(jī)制是活躍的研究課題。Rinard et al.等開發(fā)的編譯器插入代碼來(lái)處理訪問未分配的內(nèi)存,通過擴(kuò)大目標(biāo)緩沖區(qū) (在寫入的情況下),或者制造一個(gè)值 (在讀取的情況下)。這種技術(shù)是利用故障疏忽計(jì)算。
Viglante是需要包含Internet蠕蟲的系統(tǒng)。為此,Viglante提供了一個(gè)機(jī)制,及時(shí)發(fā)現(xiàn)已被利用的漏洞。此漏洞的具體做法的一個(gè)主要優(yōu)點(diǎn)是,Viglante與漏洞無(wú)關(guān),可以用來(lái)抵御多態(tài)蠕蟲。雖然Viglante并沒有解決自我修復(fù)利用的軟件,它定義了一個(gè)用于生產(chǎn)和驗(yàn)證的自認(rèn)證警報(bào) (SCA's),用于交換發(fā)現(xiàn)的弱點(diǎn)有關(guān)下列內(nèi)容的信息的數(shù)據(jù)結(jié)構(gòu)的架構(gòu)。Vigilante的工作原理是分析控制流路執(zhí)行注入的代碼。
最后,重要的是區(qū)分安全的自我修復(fù)系統(tǒng)和入侵防御系統(tǒng),作為ARV的目的是要使用與文獻(xiàn)中提到的系統(tǒng)形式結(jié)合。另一方面,IPS是當(dāng)今商業(yè)系統(tǒng)中,只有一個(gè)是原始形式的自我修復(fù)。自我修復(fù)軟件研究是一個(gè)系統(tǒng),可以自動(dòng)識(shí)別以前看不到的攻擊,利用先前未知的安全漏洞,防止發(fā)生的任何損害或撤銷的惡意輸入,并改變自己,擊敗未知的情況或變種的攻擊,對(duì)所有的正常運(yùn)行沒有任何不利影響。
輸入和事件的分類是入侵檢測(cè)系統(tǒng)根本目的,ARV的前提是適當(dāng)?shù)貙?duì)系統(tǒng)輸入分類?;诰W(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)的主要任務(wù)是掃描網(wǎng)絡(luò)數(shù)據(jù)包和流量,尋找與內(nèi)容相匹配的特征或超出正常范圍內(nèi)的流量模型[1]。ARV的目標(biāo)是進(jìn)一步對(duì)涉嫌惡意流量進(jìn)行分類,并將它們與故障和修復(fù)相關(guān)聯(lián),然后再如實(shí)地重放引發(fā)最初攻擊或漏洞檢測(cè)儀器的相關(guān)流量。
假設(shè)存在產(chǎn)生自我修復(fù)補(bǔ)丁或修復(fù)程序的系統(tǒng),ARV主要目標(biāo)是自動(dòng)驗(yàn)證系統(tǒng)的 “已修復(fù)的”新配置。為了自動(dòng)采用此修復(fù)程序,ARV必須確保兩個(gè)方面。首先,修正必須能抵御引發(fā)自我修復(fù)過程的實(shí)際攻擊輸入。其次,該補(bǔ)丁不能干擾該系統(tǒng)的正常操作。
傳統(tǒng)的回歸測(cè)試可以解決第二個(gè)問題,但是第一個(gè)問題仍然沒有解決,主要是因?yàn)椴东@攻擊輸入很困難。雖然可以從IDS軟件的提示中搜索使用審計(jì)信息,但在解決這個(gè)問題時(shí)仍然面臨著很多挑戰(zhàn)。
系統(tǒng)無(wú)法維護(hù)無(wú)限期日志流量。即使存在這樣的日志,搜索也是一個(gè)漫長(zhǎng)的過程,從而減緩了修復(fù)程序的自動(dòng)部署。此外,識(shí)別某一特征的流量也有一定的難度。如果日志中只包含警報(bào),使用警報(bào)中包含的信息往往不足以重建的報(bào)文攻擊流。
一個(gè)簡(jiǎn)單的方法是重放整個(gè)流量日志,以確保重放攻擊數(shù)據(jù)包,但很可能沒有必要重放幾個(gè)月的流量,特別是如果攻擊包含在最近一個(gè)或兩個(gè)數(shù)據(jù)包中。重放整個(gè)流量日志可能意味著資源的過度利用,特別是繁忙的服務(wù)器。
無(wú)論使用哪種具體機(jī)制,該過程對(duì)于被攻擊的應(yīng)用程序都應(yīng)是盡可能透明的。然而,實(shí)現(xiàn)透明度的成本是相當(dāng)高的,需要整個(gè)鏡像網(wǎng)絡(luò)以提供一個(gè)測(cè)試平臺(tái)。
最后,重放必須在真實(shí)的原始數(shù)據(jù)流和當(dāng)前狀態(tài)之間平衡。盡管創(chuàng)建一個(gè)隔離的虛擬網(wǎng)絡(luò),在這個(gè)網(wǎng)絡(luò)中重放應(yīng)用程序檢查點(diǎn)的流量可以解決這個(gè)問題,但是必須選擇保存或保留哪個(gè)狀態(tài)。
系統(tǒng)的3個(gè)主要任務(wù):
(1)有選擇地記錄網(wǎng)絡(luò)流量;
(2)在記錄流量中搜尋;
(3)重放適當(dāng)?shù)牧髁繙y(cè)試自動(dòng)生成的修復(fù)程序。
記錄流量的方法有很多。一個(gè)簡(jiǎn)單的方法是只記錄那些與已知的惡意內(nèi)容特征相匹配的流量 (如已知的蠕蟲特征)。另一種是用AD像PAYL[1]或Anagram標(biāo)記來(lái)自主機(jī)的正常流量模型的異常。也可以使用APE(abstract payload execution)[10]。 (相關(guān)的控制流圖建模)如tcpdump,TCPopera,TCPrecord,Roleplaying或Tcpflow實(shí)際記錄和/或重放流量時(shí)是有用的工具。一個(gè)更好的方法是同時(shí)標(biāo)記特定包破壞的變量或內(nèi)存位置。
自動(dòng)化的響應(yīng)策略是難以實(shí)現(xiàn)的,因?yàn)樵陧憫?yīng)錯(cuò)誤或攻擊時(shí)往往不清楚程序應(yīng)該做什么。響應(yīng)系統(tǒng)被迫預(yù)測(cè)程序員的意圖,即使這一意圖沒有得到很好的表示甚至是格式混亂的。理想的計(jì)算系統(tǒng)無(wú)需人工干預(yù)就能從攻擊和錯(cuò)誤中恢復(fù)。然而,現(xiàn)狀還遠(yuǎn)未成熟,大多數(shù)現(xiàn)有的響應(yīng)機(jī)制是外部保護(hù)系統(tǒng)。當(dāng)進(jìn)程被攻擊時(shí),一些響應(yīng)機(jī)制會(huì)直接銷毀進(jìn)程,并不采取任何措施來(lái)修復(fù)錯(cuò)誤,當(dāng)重新啟動(dòng)系統(tǒng)時(shí),系統(tǒng)仍然是脆弱的。其他系統(tǒng)可能會(huì)限制網(wǎng)絡(luò)連接或資源消耗。ARV的主要挑戰(zhàn)是提供一些證據(jù)表明,自動(dòng)響應(yīng)至少可以防止觸發(fā)自我修復(fù)機(jī)制的輸入。
該系統(tǒng)面臨著兩種困難。首先是界線問題:在該系統(tǒng)開始工作之前惡意輸入可能已經(jīng)進(jìn)入被保護(hù)系統(tǒng)。此外,由于物理內(nèi)存的限制,該系統(tǒng)可能是無(wú)法保持所有惡意流量的記錄。第二個(gè)問題涉及到當(dāng)輸入觸發(fā)自我修復(fù)設(shè)備時(shí),輸入的形式與最初進(jìn)入受保護(hù)系統(tǒng)的輸入之間的關(guān)聯(lián)。在最終發(fā)現(xiàn)惡意輸入之前,輸入可能已經(jīng)被受保護(hù)系統(tǒng)修改了很多次,有可能無(wú)法將輸入回朔到其原來(lái)的形式。ARV系統(tǒng)可能難以將惡意網(wǎng)絡(luò)流量與基于主機(jī)的特定事件關(guān)聯(lián)。
然而,基于主機(jī)和基于網(wǎng)絡(luò)的混合ARV系統(tǒng)比單獨(dú)考慮這兩種類型信息的系統(tǒng)要更好。許多基于主機(jī)的設(shè)備無(wú)法重建原始的輸入,因?yàn)樗鼈円床东@不到攻擊輸入,要么輸入發(fā)生了不可逆的改變?;旌螦RV系統(tǒng)是在應(yīng)用程序使用之前就將輸入記錄下來(lái)。然而,這種能力也有不足,尤其是在加密流量的情況下。因此,采用一種混合的方法,將應(yīng)用程序作為一個(gè)灰盒。一個(gè)可行的解決方法是當(dāng)數(shù)據(jù)包引起系統(tǒng)改變時(shí),用被改變的存儲(chǔ)器位置的地址字段和數(shù)據(jù)字段來(lái)標(biāo)記數(shù)據(jù)包。這種能力應(yīng)該標(biāo)準(zhǔn)化為應(yīng)用程序執(zhí)行的一個(gè)特征,作為操作系統(tǒng)的服務(wù)或者作為編譯器附加檢測(cè)儀。
系統(tǒng)的另一個(gè)潛在的不足是,它是面向特定攻擊的,因此其性能不如面向特定漏洞的系統(tǒng)如:Vigilante[11],Shield[12]或 (vulnerability-specific execution filters,VSEF)。這些系統(tǒng)在面對(duì)多態(tài)惡意軟件時(shí)表現(xiàn)很好,但面向特定攻擊的保護(hù)是無(wú)效的,因此,研究工作應(yīng)集中于開發(fā)面向特定漏洞的以及通用攻擊的防御機(jī)制。
該系統(tǒng)的主要目標(biāo)是識(shí)別特定攻擊的輸入,然而它的任務(wù)與通用攻擊防御系統(tǒng)的目標(biāo)并不沖突。相反,自我修復(fù)機(jī)制提供的保護(hù)是面向特定漏洞的,該系統(tǒng)可以確保這些系統(tǒng)的修復(fù)是正確的,并且至少保證可以防止惡意輸入。
把攻擊分為幾大類,使分析識(shí)別流量重放的技術(shù)更容易。分類使得我們能夠?qū)@些技術(shù)進(jìn)行比較。
最簡(jiǎn)單的攻擊是整個(gè)攻擊包含在一個(gè)單一的TCP流中。這是當(dāng)今最常見的攻擊,典型的例子是Slammer或Blaster等蠕蟲病毒。攻擊者打開一個(gè)TCP連接,發(fā)送攻擊代碼,然后關(guān)閉連接。在測(cè)試過程中,必須重新執(zhí)行整個(gè)流程。
在稍微復(fù)雜的情景中,攻擊可能只是一個(gè)大的流量中一個(gè)子集。例如:一個(gè)SSH連接,攻擊者在運(yùn)行幾個(gè)小時(shí)后運(yùn)行一個(gè)漏洞。在測(cè)試過程中必須重放的子集僅是總流量中一個(gè)非常小的部分。在測(cè)試時(shí),重放整個(gè)流量是可能的,但不得不將它單獨(dú)分成一類。例如,如果只有一部分是可疑的,它可能不期望存儲(chǔ)所有的持續(xù)很長(zhǎng)時(shí)間的流量。
攻擊可能分散在多個(gè)TCP流中,每一個(gè)看起來(lái)都都是安全的。假設(shè)有一個(gè)攻擊,其中TCP流溢出緩沖區(qū),第二個(gè)流提供其余的攻擊。這種形式的攻擊可能分布在任意多的流量中,在測(cè)試過程中,必須重新執(zhí)行所有的這些流量。為了使這種攻擊更復(fù)雜,惡意流量可隨時(shí)間分布,每個(gè)數(shù)據(jù)流之間相隔數(shù)天或數(shù)周。
一個(gè)攻擊也可以包含在多個(gè)流的時(shí)序關(guān)系中,或單一流的數(shù)據(jù)包的時(shí)序關(guān)系中。這種形式的攻擊利用多線程的競(jìng)爭(zhēng)情境,而重現(xiàn)這種競(jìng)爭(zhēng)情境是非常困難的。至少,數(shù)據(jù)包或者流之間的時(shí)序關(guān)系,必須保留用于測(cè)試。這讓快速自動(dòng)響應(yīng)變得困難,部署時(shí)間受制于攻擊者控制下的攻擊參數(shù)特性。
攻擊可能是多態(tài)的。即,用于產(chǎn)生攻擊代碼的算法可能使用了加密技術(shù)或其他啟發(fā)式算法,隨著時(shí)間的推移改變攻擊的形式。因此,搜索流中特定位模式不能識(shí)別這種形式的攻擊。
最后,攻擊可能取決于用戶行為。例如:攻擊者發(fā)送攻擊報(bào)文,之后有100個(gè)請(qǐng)求,最后一個(gè)觸發(fā)了這個(gè)攻擊。重放的流量必須包括攻擊數(shù)據(jù)包和所有100個(gè)請(qǐng)求。這類攻擊是難以識(shí)別的,因?yàn)橄到y(tǒng)在未經(jīng)訓(xùn)練的情況下,會(huì)認(rèn)為第100個(gè)包是非??梢傻?,而真正的攻擊數(shù)據(jù)包不一定很明顯。最糟糕的是,不管特定的補(bǔ)丁是否有效,在測(cè)試中第100個(gè)包總是會(huì)觸發(fā)攻擊。
最糟糕的情況是,一個(gè)特定的攻擊可能上述攻擊類別的任何組合組成。也就是說(shuō),攻擊可能是多態(tài)的,分布在多個(gè)TCP數(shù)據(jù)流中,并取決于某種形式的用戶行為。
系統(tǒng)的最簡(jiǎn)單的版本記錄所有網(wǎng)絡(luò)流量并按要求重放整個(gè)流量,這種做法顯然是不可行的。系統(tǒng)的資源是有限的,因此它只能存儲(chǔ)有限的流量。在一個(gè)與時(shí)間相關(guān)的應(yīng)用程序如自我修復(fù)軟件中,重放或搜索一個(gè)任意大的流量很可能是不可行的,在本節(jié)中,嘗試構(gòu)建基礎(chǔ)系統(tǒng)的擴(kuò)展和變型。
系統(tǒng)不能存儲(chǔ)所有數(shù)據(jù)流。另外,流量記錄的大小必須滿足,用于重放所有的流量的時(shí)間是合理的。在這里,考慮一些啟發(fā)式算法來(lái)選擇存儲(chǔ)流。
保存一個(gè)滑動(dòng)窗口的最后n天流量。這種啟發(fā)式算法有一些很好的特性。首先,算法容易實(shí)現(xiàn),其次,調(diào)整記錄的大小來(lái)優(yōu)化存儲(chǔ)空間或重放時(shí)間是簡(jiǎn)單的。最后,要測(cè)試一個(gè)針對(duì)記錄的補(bǔ)丁,只需重放所有存儲(chǔ)流量。這種啟發(fā)式算法的明顯不足是,在記錄中持續(xù)時(shí)間超過n天的攻擊它無(wú)法識(shí)別。
保存概率窗口。也就是說(shuō),不使用一個(gè)大小固定的窗口,而是。根據(jù)他們存儲(chǔ)時(shí)間長(zhǎng)短隨機(jī)將流舍去。這里有幾個(gè)選項(xiàng),一種是流存儲(chǔ)的時(shí)間越長(zhǎng),他們?cè)娇赡鼙簧崛ァA硪环N是在每當(dāng)一個(gè)新流存入時(shí),就隨機(jī)舍去一個(gè)已存儲(chǔ)的流。不考慮選擇的細(xì)節(jié),在此啟發(fā)式算法下,根據(jù)測(cè)試記錄中包含整個(gè)攻擊的概率,自我修復(fù)軟件只能對(duì)特定的修補(bǔ)程序有信心。
記錄通過基于特征的誤用檢測(cè) (如Snort)識(shí)別的那些流。這種啟發(fā)式算法的優(yōu)點(diǎn)是簡(jiǎn)單,但對(duì)新攻擊,自我修復(fù)系統(tǒng)可能不能很好地匹配修復(fù)。自我修復(fù)系統(tǒng)對(duì)以前從未出現(xiàn)過的攻擊可以修補(bǔ),但是該攻擊必須包含已存在的特征。
記錄通過基于有效載荷的異常檢測(cè)系統(tǒng)識(shí)別的流,如PAYL[6]。跟前面的例子不一樣,這種啟發(fā)式算法允許檢測(cè)和存儲(chǔ)從未見過的可疑流量。這種啟發(fā)式算法的可行性完全取決于異常檢測(cè)系統(tǒng)的能力。如果異常檢測(cè)系統(tǒng)具有較低漏報(bào)率,然后整個(gè)攻擊包被記錄的可能性非常高。
最后一個(gè)啟發(fā)式算法,專注于減少測(cè)試的時(shí)間,而不是減少存儲(chǔ)空間,包含以下污點(diǎn)傳播。當(dāng)一個(gè)特定的程序段處理每個(gè)流時(shí),它會(huì)修改 (或污染)各種數(shù)據(jù)結(jié)構(gòu)。如果每個(gè)流按照被污染的數(shù)據(jù)結(jié)構(gòu)進(jìn)行索引,那么在測(cè)試期間,只有那些污染了補(bǔ)丁中所涉及的數(shù)據(jù)結(jié)構(gòu)的流需要重放。
這些啟發(fā)式算法也可以結(jié)合起來(lái),在檔案大小,重放時(shí)間和可信度之間進(jìn)行權(quán)衡。
實(shí)驗(yàn)環(huán)境是在三臺(tái)機(jī)器上使用tcpdump來(lái)收集原始TCP流量,工作站fae、服務(wù)器sos17和一個(gè)蜜罐sos1。對(duì)于每一臺(tái)機(jī)器,收集了兩周內(nèi)所有流入和流出的流量。工作站fae是在Red Hat Linux機(jī)器下用來(lái)進(jìn)行日常文字處理,電子郵件、即時(shí)消息、瀏覽網(wǎng)頁(yè)和偶爾的大文件傳輸。sos17是Red Hat Linux機(jī)器,主要用于為Web和文件服務(wù)器,sos1是一個(gè)OpenBSD機(jī)器,設(shè)置為一個(gè)蜜罐,沒有運(yùn)行的服務(wù)。
取每個(gè)數(shù)據(jù)集前1/3作為傳感器的訓(xùn)練集。
在圖1中,fae.0和fae.1是工作站上的訓(xùn)練和測(cè)試數(shù)據(jù),sos1.0和sos1.1是蜜罐的訓(xùn)練和測(cè)試數(shù)據(jù);sos17.0和SOS17.1服務(wù)器的訓(xùn)練和測(cè)試數(shù)據(jù)。圖中給出了每個(gè)數(shù)據(jù)集的粗略的輪廓。左列表示數(shù)據(jù)集的包數(shù),右列表示每一組中有多少TCP流量。例如,在fae第1個(gè)數(shù)據(jù)集,在收集期間,有幾個(gè)大型文件傳輸,所以包數(shù)量較高,但是TCP流量數(shù)低。相反,sos17.0數(shù)據(jù)集顯示一個(gè) Web服務(wù)器,在每個(gè)新的TCP流只有很少的數(shù)據(jù)包,所以數(shù)據(jù)包和流量數(shù)是密切相關(guān)的。
圖1 訓(xùn)練和測(cè)試數(shù)據(jù)比較
對(duì)于每個(gè)數(shù)據(jù)集,我們進(jìn)行了幾個(gè)實(shí)驗(yàn),以探討怎么樣從基于特征的誤用檢測(cè)器和基于有效載荷的異常探測(cè)器減少數(shù)據(jù)集。對(duì)于前者,使用了Snort,一個(gè)流行的開源IDS,對(duì)于后者,用Anagram,一個(gè)基于有效載荷的異常檢測(cè)系統(tǒng)。
圖2顯示通過Snort過濾后數(shù)據(jù)集的減少情況。每個(gè)完整的tcpdump的文件通過的Snort處理后,只保留產(chǎn)生警報(bào)的TCP流。這些警報(bào)很大比例是ICMP目的地不可達(dá),這些警報(bào)是Linux機(jī)器上的防火墻機(jī)制的警示。進(jìn)一步過濾這些警報(bào),給出最后可疑流量的工作集,在圖2中的左列代表來(lái)自每個(gè)數(shù)據(jù)集的原始數(shù)據(jù)包的數(shù)量;中間代表所有Snort警告的數(shù)據(jù)包。右列代表那些除了目的地不可達(dá),還包含其他警報(bào)的數(shù)據(jù)包。正如圖2所示,在所有的情況下,數(shù)據(jù)集的減少大于99.9%。
圖2 用Snort過濾后,數(shù)據(jù)集的減少情況
圖3 顯示出對(duì)于相同的數(shù)據(jù)集,用基于有效載荷的誤用檢測(cè)系統(tǒng)Anagram過濾的結(jié)果。Anagram需要訓(xùn)練周期,所以每個(gè)數(shù)據(jù)集的前1/3的用于訓(xùn)練數(shù)據(jù),而后2/3被用作測(cè)試過濾數(shù)據(jù)。在圖3中的曲線顯示Anagram可以減少65%-80%的數(shù)據(jù)集。
注意,Anagram顯然沒有Snort(99.9%比減少65%)有效,因?yàn)锳nagram對(duì)所有可疑的數(shù)據(jù)包生成警報(bào),Snort可以只生成匹配已知警報(bào)特征的數(shù)據(jù)包。
圖3 通過Anagram過濾后的3個(gè)數(shù)據(jù)集
本實(shí)驗(yàn)的主要目的是驗(yàn)證減少ARV系統(tǒng)需要存儲(chǔ)的通信量是否是可行的。ARV本質(zhì)上是一個(gè)搜索問題,可以通過索引流量減少搜索時(shí)間,但對(duì)所有可能的項(xiàng)索引是不可行的,還需要額外的存儲(chǔ)空間存儲(chǔ)索引項(xiàng)。執(zhí)行在線搜索,如果語(yǔ)言資料庫(kù)的規(guī)模減少,甚至可以加快索引語(yǔ)言資料庫(kù)。
根據(jù)描述的實(shí)驗(yàn)裝置,使用簡(jiǎn)單的數(shù)據(jù)包的分類方案(Snort和Anagram),取得了較好的成績(jī)時(shí)。圖2和圖3顯示所獲得的結(jié)果。特別是,對(duì)于大部分使用Snort轉(zhuǎn)存數(shù)據(jù)庫(kù)過濾Snort警報(bào)子集。能夠?qū)崿F(xiàn)減少大于99%的流量。結(jié)果仍然令人鼓舞。使用的Anagram過濾獲得約60%到85%的減少。對(duì)于過濾可能包含以前不知道的攻擊流量,使用基于特征的誤用檢測(cè)器不是最佳的。對(duì)于這樣的任務(wù)基于異常的檢測(cè)器比較好,對(duì)ARV系統(tǒng)Anagram將是有益的。
由于許多攻擊都是自動(dòng)的,防御系統(tǒng)也必須有一定程度的自治能力。安全系統(tǒng)的最新進(jìn)展已經(jīng)導(dǎo)致自我修復(fù)軟件作為此問題的一個(gè)解決方法。然而,系統(tǒng)的所有者不愿意在響應(yīng)攻擊時(shí),自動(dòng)改變他們的環(huán)境和應(yīng)用程序。
測(cè)試自動(dòng)生成修復(fù)是提升自我修復(fù)系統(tǒng)可信等級(jí)的關(guān)鍵部分。這個(gè)測(cè)試的一部分是驗(yàn)證,自我修復(fù)機(jī)制產(chǎn)生的補(bǔ)丁或改變確實(shí)能夠防御原來(lái)的攻擊。
本文闡述了自動(dòng)修復(fù)驗(yàn)證 (ARV)的重要挑戰(zhàn),利用審計(jì)信息測(cè)試自我修復(fù)的恢復(fù)能力和性能。系統(tǒng)記錄可疑的網(wǎng)絡(luò)流量和并重放特定的漏洞相關(guān)的流量。該系統(tǒng)的設(shè)計(jì)過程,揭示了一些具有挑戰(zhàn)性的問題,研究社會(huì)需要解決的問題,以達(dá)到自動(dòng)自我保護(hù)系統(tǒng)成為現(xiàn)實(shí)。
[1]Wang K,Stolfo S J.Anomalous payload-based network intrusion detection[C]//Proceedings of the 7th International Symposium on Recent Advances in Intrusion Detection,2004:203-222.
[2]Kim H A,Karp B.Autograph:Toward automated,distributed worm signature detection[R].Proceedings of the USENIX Security Conference,2004.
[3]Newsome J,Karp B,Song D.Polygraph:Automatically generating signatures for polymorphic worms[R].Proceedings of the IEEE Symposium on Security and Privacy,2005.
[4]Newsome J,Brumley D,Song D.Vulnerability-specific execution filtering for exploit prevention on commodity software[C]//Proceedings of the 13st Symposium on Network and Distributed System Security,2006.
[5]Liang Z,Sekar R.Fast and automated generation of attack signatures:A basis for building self-protecting servers[R].Proceedings of the 12th ACM Conference on Computer and Communications Security,2005.
[6]Xu J,Ning P,Kil C,et al.Automatic diagnosis and response to memory corruption vulnerabilities[C]//Proceedings of the 12th ACM Conference on Computer and Communications Security,2005.
[7]Locasto M E,Wang K,Keromytis A D,et al.FLIPS:Hybrid adaptive intrusion prevention[C]//Proceedings of the 8th International Symposium on Recent Advances in Intrusion Detection,2005:82-101.
[8]Hong S S,Wu S F.On interactive internet traffic replay[C]//Proceedings of the 8th International Symposium on Recent Advances in Intrusion Detection,2005:247-264.
[9]DING Zhifang,XU Mengchun,ZHAO Xin.Proactive intrusion prevention system[J].Application Research of Computers.2008 (25):364-365.
[10]Toth T,Kruegel C.Accurate buffer overflow detection via abstract payload execution[C]//Proceedings of the 5th International Symposium on Recent Advances in Intrusion Detection,2002:274-291.
[11]Costa M,Crowcroft J,Castro M,et al.Vigilante:End-to-end containment of internet worms[R].Proceedings of the Symposium on Systems and Operating Systems Principles,2005.
[12]Wang H J,Guo C,Simon D R,et al.Shield:Vulnerabilitydriven network filters for preventing known vulnerability exploits[R].ACM Sigcomm,2004.