日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

指纹识别零日攻击的仿真器

發(fā)布時(shí)間:2024/3/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 指纹识别零日攻击的仿真器 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Argos:指紋識別零日攻擊的仿真器

    • 摘要
    • 簡介
    • 2.背景和相關(guān)工作
    • 3.設(shè)計(jì)
    • 4. 實(shí)現(xiàn)
      • 4.1 擴(kuò)展動態(tài)污點(diǎn)分析
        • 4.1.1 標(biāo)記
        • 追蹤
        • 4.1.3 防止污染數(shù)據(jù)的無效使用
      • 生成簽名
      • 4.2.1 提取數(shù)據(jù)
        • 4.2.2 先進(jìn)的取證
    • 4.2.3 信息關(guān)聯(lián)
        • 4.2.4 SweetBait
    • 5 評估
      • 5.1 性能
      • 5.2 效果
      • 5.3 簽名
    • 6 結(jié)論
    • 未來的工作

摘要

當(dāng)現(xiàn)代操作系統(tǒng)和軟件變得越來越大也越來越復(fù)雜時(shí),它們也更有可能包含bug,可能會允許攻擊者獲取非法途徑。對于成功的網(wǎng)絡(luò)或者系統(tǒng)保護(hù)來說,一種能夠識別攻擊并且快速產(chǎn)生策略的快速并且可靠的機(jī)制是至關(guān)重要的。在本文中我們提出了Argos,對于蠕蟲和人們精心設(shè)計(jì)的攻擊來說的一個(gè)封閉環(huán)境。Argos是建立在一個(gè)快速的x86模擬器上,它能夠在整個(gè)執(zhí)行過程中追蹤網(wǎng)絡(luò)數(shù)據(jù)來識別其無效用作跳轉(zhuǎn)目標(biāo),函數(shù)地址,指令等。此外,系統(tǒng)調(diào)用規(guī)則不允許網(wǎng)絡(luò)數(shù)據(jù)作為特定調(diào)用的參數(shù)來使用。當(dāng)一個(gè)攻擊被發(fā)現(xiàn)時(shí),我們對相應(yīng)的模擬器狀態(tài)執(zhí)行“智能的”進(jìn)程或者內(nèi)核感知日志來進(jìn)行更進(jìn)一步的離線處理。此外,我們注入自己的取證溢出代碼來取代惡意的溢出代碼,來收集被攻擊進(jìn)程的信息。通過將模擬器記錄的數(shù)據(jù)和從網(wǎng)絡(luò)上收集的數(shù)據(jù)相關(guān)聯(lián),我們能夠?yàn)槊庥谪?fù)載編譯影響的漏洞利用生成精準(zhǔn)的網(wǎng)絡(luò)入侵檢測簽名。整個(gè)過程能夠自動化的完成,并且?guī)缀鯖]有任何誤報(bào),因此簽名的全球化規(guī)模的快速部署能夠?qū)崿F(xiàn)。

隨著現(xiàn)代操作系統(tǒng)和軟件變得越來越大,越來越復(fù)雜,它們更可能包含漏洞,這可能使攻擊者獲得非法訪問權(quán)。快速,可靠的機(jī)制來識別和生成針對此類攻擊的疫苗,對于成功保護(hù)網(wǎng)絡(luò)和系統(tǒng)至關(guān)重要。在本文中,我們介紹了Argos,一種用于蠕蟲以及人類精心策劃的攻擊的遏制環(huán)境。 Argos建立在快速的x86仿真器上,該仿真器在整個(gè)執(zhí)行過程中跟蹤網(wǎng)絡(luò)數(shù)據(jù),以識別其無效用作跳轉(zhuǎn)目標(biāo),函數(shù)地址,指令等。此外,系統(tǒng)調(diào)用策略不允許將網(wǎng)絡(luò)數(shù)據(jù)用作某些調(diào)用的參數(shù)。當(dāng)檢測到攻擊時(shí),我們對相應(yīng)的仿真器狀態(tài)執(zhí)行“智能”過程感知或內(nèi)核感知日志記錄,以進(jìn)行進(jìn)一步的在線處理。此外,我們還插入了自己的取證shellcode,代替了惡意的shellcode,以收集有關(guān)被攻擊進(jìn)程的信息。通過將仿真器記錄的數(shù)據(jù)與從網(wǎng)絡(luò)收集的數(shù)據(jù)相關(guān)聯(lián),我們能夠?yàn)椴皇苡行лd荷突變影響的漏洞利用產(chǎn)生準(zhǔn)確的網(wǎng)絡(luò)入侵檢測簽名。整個(gè)過程可以自動化,并且?guī)缀鯖]有誤報(bào),因此可以在全球范圍內(nèi)快速部署簽名。

簡介

對自我傳播攻擊在網(wǎng)絡(luò)上傳播速度的評估,促使了對自動響應(yīng)系統(tǒng)的大量研究。我們已經(jīng)遇到過能夠在短短十分鐘內(nèi)在網(wǎng)絡(luò)上傳播的蠕蟲,并且研究員宣稱更快的蠕蟲也是存在的。對于這種爆發(fā)速度來說,人類的干預(yù)太慢了,因此自動化的響應(yīng)系統(tǒng)是必不可少的。在實(shí)踐中,這些系統(tǒng)的重要標(biāo)準(zhǔn)是:(a)能夠可靠的檢測各種零日漏洞,(b)能夠可靠的產(chǎn)生能夠被用于阻止攻擊的簽名,(c)方便部署

自傳播攻擊在Internet上的傳播速度促使人們對自動響應(yīng)系統(tǒng)進(jìn)行了大量研究。 我們已經(jīng)遇到了僅在十分鐘之內(nèi)傳播到Internet的蠕蟲,而且研究人員聲稱,甚至更快的蠕蟲也指日可待[40]。 對于此類爆發(fā),人為干預(yù)太慢,需要自動響應(yīng)系統(tǒng)。 在實(shí)踐中,此類系統(tǒng)的重要標(biāo)準(zhǔn)是:(a)可靠地檢測各種各樣的零時(shí)差攻擊;(b)可靠地生成可用于停止攻擊的簽名;以及(c)具有成本效益的部署。

現(xiàn)有的自動化響應(yīng)系統(tǒng)在攻擊檢測中傾向于導(dǎo)致相當(dāng)大概率的誤報(bào),并使用簽名[43,37,23,15,27]。大規(guī)模的誤報(bào)違反了一二條件。盡管這些系統(tǒng)可能在入侵檢測系統(tǒng)中扮演了一個(gè)重要角色,但他們并不適合全自動響應(yīng)系統(tǒng)。

現(xiàn)有的自動響應(yīng)系統(tǒng)在攻擊檢測和簽名使用中往往會產(chǎn)生相當(dāng)大的誤報(bào)率[43、37、23、15、27]。 大量的誤報(bào)違反了前兩個(gè)標(biāo)準(zhǔn)。 盡管這些系統(tǒng)可能在入侵檢測系統(tǒng)(IDS)中發(fā)揮重要作用,但它們不適合用于全自動響應(yīng)系統(tǒng)

眾所周知的一個(gè)能夠嘗試避免誤報(bào)的方法是動態(tài)污點(diǎn)分析。簡單來說,來自互聯(lián)網(wǎng)的不被信任的數(shù)據(jù)會被標(biāo)記,當(dāng)進(jìn)行漏洞利用時(shí)(比如來自網(wǎng)絡(luò)的數(shù)據(jù)被執(zhí)行時(shí)),將會生成一個(gè)警報(bào)。這種技術(shù)被證明是可靠的,并且?guī)缀醪粫a(chǎn)生誤報(bào)。當(dāng)前項(xiàng)目使用的能夠被分為(1)面向硬件的全系統(tǒng)保護(hù),(2)特定于操作系統(tǒng)和進(jìn)程的軟件解決方案。這里有兩個(gè)不同的方式,并且每一個(gè)方法都有重要的意義。對我們的目的來說,這些方法中最重要的就是Minos和Vigilante。

一種嘗試完全避免誤報(bào)的方法稱為動態(tài)污點(diǎn)分析。 標(biāo)記來自網(wǎng)絡(luò)的賄賂,不受信任的數(shù)據(jù),并且僅在發(fā)生漏洞利用時(shí)(例如,當(dāng)執(zhí)行來自網(wǎng)絡(luò)的數(shù)據(jù)時(shí))才會生成警報(bào)(僅)。 事實(shí)證明,該技術(shù)是可靠的,幾乎不會產(chǎn)生誤報(bào)。 它在當(dāng)前項(xiàng)目中使用,可以歸類為(i)面向硬件的完整系統(tǒng)保護(hù),以及(ii)軟件中的OS和特定于過程的解決方案。 這是兩種不同的方法,每種方法都有重要的含義。 就我們的目的而言,這些方法的兩個(gè)最重要的代表分別是Minos [12]和Vigilante [28]。

Minos并不產(chǎn)生簽名,并且通過硬件來實(shí)現(xiàn)高效的調(diào)用。除此之外,它能夠僅僅通過查看物理地址檢測出漏洞利用攻擊,例如寄存器擴(kuò)展攻擊,但是這還需要一個(gè)笨拙的黑客來攻擊。同樣,他也不能直接處理從物理地址到虛擬地址的轉(zhuǎn)換。

Minos根本不生成簽名,而有效部署依賴于硬件實(shí)現(xiàn)。 而且,僅通過查看物理地址,它可以檢測到某些漏洞利用,例如寄存器彈簧攻擊[39],但需要笨拙的黑客來確定攻擊的起源[13]。 而且,它根本無法直接處理物理地址到虛擬地址的轉(zhuǎn)換。

與之相反,Vigilante代表一個(gè)處理虛擬地址的每個(gè)進(jìn)程的解決方案。同時(shí),這也限制了它的靈活性,正如它無法處理DMA或者內(nèi)存映射。同樣,由于Vigilante必須檢測單個(gè)服務(wù)并且根本不保護(hù)OS內(nèi)核,因此出現(xiàn)了效率問題。不幸的是內(nèi)核攻擊已經(jīng)變成了現(xiàn)實(shí),并且預(yù)計(jì)在未來會成為常態(tài)。對于簽名生成,它依賴于重播攻擊,由于與特定場景、隨機(jī)數(shù)等的挑戰(zhàn)/響應(yīng)交互,這通常是不可能的。

相比之下,Vigilante代表一種使用虛擬地址的按進(jìn)程解決方案。 同樣,這是一個(gè)設(shè)計(jì)由于它無法處理DMA或內(nèi)存映射,因此限制了其靈活性的決定。 同樣,由于Vigilante必須檢測單個(gè)服務(wù)并且根本不保護(hù)OS內(nèi)核,因此出現(xiàn)了成本有效的問題。 不幸的是,內(nèi)核攻擊已成為現(xiàn)實(shí),并有望在未來變得更加普遍[26]。 對于簽名生成,它依賴于重放攻擊,由于與隨機(jī)數(shù),隨機(jī)數(shù)等的質(zhì)詢/響應(yīng)交互,通常是不可能的

我們相信面向硬件的全系統(tǒng)解決方案和特定于操作系統(tǒng)和進(jìn)程的軟件解決方案在這部分的開始時(shí)都受限于上述的三個(gè)條件。我們設(shè)計(jì)提出一個(gè)第三方案,結(jié)合了兩個(gè)世界的優(yōu)點(diǎn)并且滿足所有的要求。

我們認(rèn)為,面向硬件的完整系統(tǒng)解決方案以及特定于操作系統(tǒng)和過程的軟件解決方案在本節(jié)開頭提到的所有三個(gè)方面都太受限制。 我們的設(shè)計(jì)提出了第三種方法,該方法結(jié)合了兩個(gè)方面的優(yōu)點(diǎn)并滿足所有標(biāo)準(zhǔn)

在本文中我們提到了Argos,它探索了自動化響應(yīng)系統(tǒng)設(shè)計(jì)領(lǐng)域的另一個(gè)極端。首先,就像Minos,我們通過修改運(yùn)行我們自己版本的動態(tài)污點(diǎn)分析的x86模擬器來在軟件中實(shí)現(xiàn)全系統(tǒng)的保護(hù)。換句話說,我們自動化的保護(hù)任何(未被修改的)操作系統(tǒng)和它所有的進(jìn)程、驅(qū)動等。第二,Argos考慮到了復(fù)雜的內(nèi)存操作,比如內(nèi)存映射和DMA(通常被其他項(xiàng)目忽視),同時(shí)相當(dāng)有能力處理復(fù)雜的exploit(比如寄存器爆發(fā))。這有很大概率是因?yàn)槲覀兲幚硖摂M地址和物理地址的能力。第三,自動化產(chǎn)生簽名是基于漏洞利用中內(nèi)存足跡的相關(guān)性以及網(wǎng)絡(luò)追蹤,作為結(jié)果:緩沖區(qū)溢出和格式化字符串或者代碼注入的漏洞利用將會觸發(fā)警報(bào)。第四,當(dāng)系統(tǒng)是操作系統(tǒng)和應(yīng)用時(shí),如果檢測到攻擊,我們會注入特定于操作系統(tǒng)的取證shellcode。換句話說,在攻擊發(fā)生時(shí),我們利用被攻擊的代碼來提取關(guān)于攻擊的額外信息,這些信息后來會被用于簽名的生成。第五,通過對比不同網(wǎng)站的簽名,我們優(yōu)化了Argos的自動生成的簽名。第六,簽名會自動分發(fā)到遠(yuǎn)程入侵檢測和防御系統(tǒng)。(IDS和IPS)

我們專注于那些被遠(yuǎn)程精心設(shè)計(jì)(就像蠕蟲)并且不需要使用者操作的攻擊。利用錯(cuò)誤設(shè)置的安全策略的方法不能被解決。雖然那些攻擊構(gòu)成了一個(gè)充足的安全問題,但是他們是在我們研究的另一邊,需要一個(gè)不同的方法。特別的,我們專注于exploit而不是攻擊的payload,也就是說,我們捕捉那些能夠觸發(fā)緩沖區(qū)溢出和注入代碼的代碼是為增加對機(jī)器的掌控,而不是捕獲攻擊行為。在我們看來,捕獲或者阻止exploit會更加的有用,因?yàn)殡x開了exploit實(shí)際的攻擊永遠(yuǎn)不能執(zhí)行。更多的是,在實(shí)際中相同的exploit經(jīng)常使用不同的payload,所以阻止exploit的收益可能是巨大的。此外,exploit相比于攻擊的payload更不易改變,并且即使是已經(jīng)發(fā)生了改變,也更加容易捕獲。

Argos被設(shè)計(jì)作為‘廣告蜜罐’,也就是說,是一個(gè)運(yùn)行真實(shí)服務(wù)的蜜罐,與普通蜜罐不同的是他并未被隱藏。而且,我們積極的鏈接它并且公布他的IP地址,讓利用命中訪問表的攻擊者(而不是隨機(jī)IP掃描來識別攻擊目標(biāo)的攻擊者)能夠訪問。我們?yōu)榇烁冻龅拇鷥r(jià)不同于傳統(tǒng)的蜜罐,我們希望收到一定數(shù)量的合法流量(例如網(wǎng)絡(luò)爬蟲)。從另一個(gè)角度,既然Argos的目標(biāo)是最為一個(gè)蜜罐,我們不需要表現(xiàn)得像是沒有被保護(hù)的系統(tǒng)。然而,他應(yīng)該足夠的快來運(yùn)行真實(shí)的服務(wù),同時(shí)有合理的響應(yīng)時(shí)間。

本文余下的內(nèi)容如下:本文討論了相關(guān)工作,我們總結(jié)了各種方法在Section2,在Section3我們介紹了Argos的設(shè)計(jì)。實(shí)現(xiàn)的細(xì)節(jié)在Section4中討論。在Section5中評估這個(gè)系統(tǒng)。在Section6中總結(jié)。

2.背景和相關(guān)工作

攻擊者進(jìn)攻主機(jī)時(shí),最重要的是轉(zhuǎn)移主機(jī)控制流來來執(zhí)行他自己的指令,或者是用自己的控制流來替代主機(jī)的控制流。為了實(shí)現(xiàn)這個(gè)操作,攻擊者需要重寫數(shù)值,比如:跳轉(zhuǎn)目標(biāo),函數(shù)地址和函數(shù)返回地址。或者它也可以重寫函數(shù)的參數(shù)甚至是指令。這些攻擊在過去幾年尤為顯著并且能夠被劃分為以下幾類:

棧溢出攻擊:攻擊者利用漏洞使一個(gè)棧的緩沖區(qū)溢出來改寫函數(shù)的返回地址,當(dāng)函數(shù)返回時(shí),攻擊者可以執(zhí)行想執(zhí)行的任意代碼。

堆腐爛攻擊:利用堆溢出來允許攻擊者重寫任意的內(nèi)存位置,最后可以執(zhí)行任意想執(zhí)行的代碼。

格式化字符串攻擊:這是最普遍的攻擊。他們利用printf()函數(shù)家族的特性:允許一定數(shù)目的字符被打印并被存儲在內(nèi)存中。當(dāng)用戶提供的字符串被當(dāng)作一個(gè)格式化字符串使用時(shí),攻擊者能夠操作字符串來用任意的代碼來改寫內(nèi)存中的任意位置。這些攻擊為協(xié)調(diào)器提供了更多的選項(xiàng),比如:execve()系統(tǒng)調(diào)用時(shí)要執(zhí)行的文件。

上述的這些攻擊方式已經(jīng)被安全領(lǐng)域研究數(shù)年。Stackguard、Stackshield和gcc擴(kuò)展已經(jīng)被用于對抗棧溢出攻擊。后來的研究發(fā)現(xiàn):這些方法中很多都可以被輕易繞過。大多數(shù)操作系統(tǒng)通過補(bǔ)丁來讓棧不可執(zhí)行,但是這也帶來了其他的問題(比如:trampolines依賴于棧的可執(zhí)行,信號也同樣是),同樣有時(shí)也可以被繞過。緩沖區(qū)溢出的檢測和保護(hù)方法有很多。他們讓通過重寫特殊的地址來轉(zhuǎn)移控制流變得幾乎不可能,例如:通過修改代碼和數(shù)據(jù)存入內(nèi)存的方式。相反,我們渴望一種能夠允許控制流但是在控制流嘗試轉(zhuǎn)移時(shí)能觸發(fā)警報(bào)的方法。除此之外,地址不應(yīng)該被修改,因?yàn)槲覀冎铝τ诘氖钱a(chǎn)生真實(shí)攻擊的可靠簽名。

一些現(xiàn)有的格式化字符串的保護(hù)方式是通過安裝補(bǔ)丁來實(shí)現(xiàn)對printf()的參數(shù)計(jì)數(shù)并且使用特定的形式來保證安全。這兩種方法都需要重新編譯代碼。代碼注入已經(jīng)通過指令系統(tǒng)隨機(jī)化和非法地址執(zhí)行系統(tǒng)調(diào)用的檢測來解決。當(dāng)我們想要產(chǎn)生簽名時(shí),指令系統(tǒng)隨機(jī)化對我們的目的就沒有太大作用。Dome提供的系統(tǒng)調(diào)用保護(hù)可能很有趣,但是他的局限性(系統(tǒng)調(diào)用)和不方便(系統(tǒng)調(diào)用地址的合法性需要對每一個(gè)應(yīng)用進(jìn)行靜態(tài)分析)還是讓他被淘汰了。

一個(gè)不同的方法是通過硬件實(shí)現(xiàn)防御溢出和攻擊。例如:StackGhost在Sparc架構(gòu)中保護(hù)棧。同樣的,可以使用動態(tài)信息流分析來防御溢出和一些格式化字符串的攻擊。對于最常使用的處理器或者操作系統(tǒng)來說,這些機(jī)理都不是普遍可用的,在我們看來并不如模擬。Dunlap和Garfinkel建議使用虛擬機(jī)。相同的工作在[42]中提出,它使用了Dynamo動態(tài)優(yōu)化器的修改版本。雖然Argos和這些項(xiàng)目在很多方面都不同,但我們使用了相同的方法,我們利用率基于x86架構(gòu)的模擬器。

大多數(shù)與我們的工作相關(guān)的比如Minos和Vigilante,都像Argos一樣,利用了污點(diǎn)分析來發(fā)現(xiàn)外來數(shù)據(jù)的不合法使用。然而,和Argos的區(qū)別是多方面的。簡單來說,Minos是一個(gè)硬件項(xiàng)目,在現(xiàn)在,虛擬計(jì)算機(jī)的軟件實(shí)現(xiàn)會造成巨大的性能損耗(多達(dá)幾個(gè)數(shù)量級的變慢)。一旦發(fā)現(xiàn)異常,Minos也不會產(chǎn)生簽名。因?yàn)橹铝τ谟布鉀Q方案,Minos不得不犧牲在性能上的靈活性,同樣在硬件層面能夠獲得的信息也是非常有限的。例如:硬件只能獲得物理地址,然而復(fù)雜的攻擊往往都是虛擬地址,例如寄存器爆炸攻擊。除此之外,Minos幾乎不可能生成類似于Vigilante的那種的自我警報(bào)(SCAs)。相反,雖然Argos也是處理物理地址,但我們通過軟件模擬為我們提供訪問物理地址到虛擬地址的映射和寄存器等。

Vigilante和Argos至少有三個(gè)方面的不同:(1)它保護(hù)個(gè)人的進(jìn)程(需要對每個(gè)進(jìn)程的管理,并且把內(nèi)核和沒有監(jiān)視的服務(wù)放入了危險(xiǎn)的地位)(2)它特定于操作系統(tǒng)(3)它只處理虛擬地址。雖然方便,但是虛擬地址的缺點(diǎn)也是明顯的,比如內(nèi)存映射的數(shù)據(jù)很難去核對。畢竟,那個(gè)地址空間應(yīng)該被污染是一個(gè)復(fù)雜的問題。正是因?yàn)檫@個(gè)原因,Vigilante和大多數(shù)的其他項(xiàng)目不能夠處理內(nèi)存映射區(qū)域。像Vigilante這類定位為應(yīng)用級的方法也不能監(jiān)視DMA活動。相反,Argos使用物理地址并且處理內(nèi)存映射和DMA一樣。

3.設(shè)計(jì)

Argos架構(gòu)概括在圖1.完整的執(zhí)行路徑由六個(gè)主要步驟組成,由圖中的數(shù)字表示,這些數(shù)字對應(yīng)于本節(jié)中圈起來的數(shù)字。傳入的流量既記錄在跟蹤數(shù)據(jù)庫中,又提供給運(yùn)行在模擬器1上的未修改的應(yīng)用程序/操作系統(tǒng)。在模擬器中,我們利用動態(tài)污點(diǎn)分析來檢測是否有利用漏洞來改變應(yīng)用的控制流。這是通過識別是否使用了可能不安全的數(shù)據(jù)比如網(wǎng)絡(luò)數(shù)據(jù)。這里有三步來實(shí)現(xiàn):
RFID數(shù)據(jù)來源于被污染的數(shù)據(jù)源
再執(zhí)行過程中追蹤被污染的數(shù)據(jù)
識別并阻止污染數(shù)據(jù)的非法使用

換句話說,來自網(wǎng)絡(luò)的數(shù)據(jù)將被標(biāo)記為污染數(shù)據(jù),無論什么時(shí)候他被復(fù)制到內(nèi)存或寄存器中,那么相應(yīng)的寄存器和內(nèi)存也是被污染了的,當(dāng)這些污染數(shù)據(jù)被使用時(shí),比如說作為跳轉(zhuǎn)的目標(biāo),我們就會產(chǎn)生警報(bào)。到目前為止,這類似于[28]和[31]。像之前說的,Argos和據(jù)大部分現(xiàn)有的項(xiàng)目不同的是我們追蹤的的是物理地址而不是虛擬地址。結(jié)果,內(nèi)存映射問題解決了,因?yàn)槟硞€(gè)頁面的所有虛擬地址空間映射都指向相同的物理地址。

當(dāng)一個(gè)違規(guī)操作被檢測到,會觸發(fā)警報(bào),導(dǎo)致簽名的生成如階段3-6.為了幫助簽名的生成,Argos首先將所有的污染塊和一些額外的信息轉(zhuǎn)儲到文件中,標(biāo)記出那些出發(fā)警報(bào)的特殊的地址,他們指向的內(nèi)存區(qū)域等。因?yàn)槲覀冇兄?jì)算機(jī)的全部權(quán)限、它的寄存器和它所有的映射所以我們能夠根據(jù)我們的需要將虛擬地址和物理地址轉(zhuǎn)換。轉(zhuǎn)儲的不僅僅是寄存器、物理內(nèi)存塊和特殊的虛擬地址,事實(shí)上這些充足的信息并不只是用于簽名的生成,也是為了后面的手動分析。

此外,我們利用了一個(gè)新的技術(shù)來對于被攻擊的代碼進(jìn)行自動取證。回想一下,Argos是與操作系統(tǒng)和應(yīng)用程序無關(guān)的,也就是我們可以在IA32指令集架構(gòu)上開箱即用任何操作系統(tǒng)和應(yīng)用程序(要求是沒有修改或者是重編譯)。當(dāng)檢測到攻擊時(shí),我們甚至都不知道是哪個(gè)進(jìn)程觸發(fā)了警報(bào)。為了發(fā)現(xiàn)關(guān)于應(yīng)用的額外信息(例如:進(jìn)程識別、可執(zhí)行文件的名字、打開文件和套接字等),我們注入我們自己的shellcode來執(zhí)行取證。換句話說,我們利用的是被攻擊的代碼和我們自己的shellcode。

我們強(qiáng)調(diào)的是即使沒有shellcode,Argos通過它成熟的特定于操作系統(tǒng)的特點(diǎn)仍然可以工作,盡管降低了準(zhǔn)確度。在我們看來,一個(gè)包含了特定于操作系統(tǒng)擴(kuò)展的與操作系統(tǒng)無關(guān)的框架能夠極大的提升性能,因?yàn)樗且粋€(gè)通用性的解決方案,而不需要降低性能或者準(zhǔn)確度。據(jù)我們所知,我們是第一個(gè)使用攻擊手段(shellcode)來實(shí)現(xiàn)防御目的。

內(nèi)存塊的轉(zhuǎn)儲(污染數(shù)據(jù),寄存器等)加上通過shellcode獲取的額外信息被用于與追蹤數(shù)據(jù)庫中的網(wǎng)絡(luò)數(shù)據(jù)產(chǎn)生相關(guān)性。對于TCP連接,我們在相關(guān)之前先重構(gòu)流。相關(guān)階段的結(jié)果是一個(gè)真正的簽名,可以用于過濾。然而,我們不認(rèn)為簽名是最優(yōu)的,所以我們嘗試提煉它。為了實(shí)現(xiàn)這個(gè)目的,Argos把提交給像SweetBait這樣的子系統(tǒng),子系統(tǒng)收集不同網(wǎng)站的簽名,并基于相似度來優(yōu)化簽名。例如:一個(gè)由exploit和被感染主機(jī)的IP地址組成的簽名在不同的網(wǎng)站會看起來有略微的不同。SweetBait發(fā)現(xiàn)兩個(gè)這樣的簽名之間的相似性,它會生成一個(gè)更短更加針對的簽名用于后面的篩選。

最后一步是自動化的使用簽名。連接SweetBait的是入侵檢測和防御系統(tǒng),SweetBait提供流量的簽名用于阻止或者追蹤。對于IDS我們使用的檢測器是基于著名的開源網(wǎng)絡(luò)IDS:snort,并且為了達(dá)到目的,SweetBait生成的是snort格式的規(guī)則。IPS是使用Aho-Corasick模式匹配算法來匹配網(wǎng)絡(luò)簽名的相對簡單的國產(chǎn)解決方案。盡管并不是非常復(fù)雜,我們還是把他作為Linux的內(nèi)核組件以便于SweetBait的直接使用。在努力下,一個(gè)作者研究出了基于Intel IXP1200網(wǎng)絡(luò)處理器的高速IPS版本,能夠被用作一個(gè)選擇。從某種程度來說,SweetBait是智能的,它能夠區(qū)分惡意攻擊和稀有的事件并相應(yīng)的傳播簽名。這類似于警方為危險(xiǎn)罪犯而不是扒手(比方說)發(fā)放apb的方式。

本文的重點(diǎn)主要是步驟1-4,并且我們會限制我們總結(jié)SweetBait的實(shí)現(xiàn)。感興趣的讀者可以閱讀[32]中的細(xì)節(jié)。

4. 實(shí)現(xiàn)

在檢測到攻擊時(shí),Argos通過給qemu提供污染和追蹤內(nèi)存并產(chǎn)生內(nèi)存足跡的方法來對qemu進(jìn)行擴(kuò)展。QEMU是一個(gè)快速且編寫的動態(tài)翻譯器,能夠模擬多種架構(gòu),比如:x86、x86-64、POWER-PC64等。不像其他的模擬器(比如Bochs),QEMU不是個(gè)解釋器。而是說,指令塊翻譯并緩存,因此如果相同的指令再次被執(zhí)行時(shí),不用重復(fù)翻譯。此外,Qemu并沒有提供與硬件系統(tǒng)相當(dāng)?shù)能浖?#xff0c;而是采用各種優(yōu)化來提高性能。因此,QEMU比大多數(shù)的模擬器都要快。

我們的實(shí)現(xiàn)通過擴(kuò)展QEMU的奔騰架構(gòu)。在本文的其他部分,它將被簡單的用作x86架構(gòu)。為了清晰區(qū)分,我們以客戶機(jī)和主機(jī)來區(qū)分模擬出的系統(tǒng)和本地的系統(tǒng)。

我們把Argos的應(yīng)用分為兩部分。第一部分包括我們擴(kuò)展動態(tài)污點(diǎn)分析,可以用來保護(hù)QEMU,同時(shí)也可以在發(fā)現(xiàn)攻擊時(shí)發(fā)出警報(bào)。第二部分是提取模擬器和操作系統(tǒng)的關(guān)鍵信息來生成簽名。

4.1 擴(kuò)展動態(tài)污點(diǎn)分析

Argos中的動態(tài)污點(diǎn)分析類似于其他項(xiàng)目中的。然而也有一些重要的不同。在這一節(jié)中,我們將會討論應(yīng)用的細(xì)節(jié)。

4.1.1 標(biāo)記

污點(diǎn)分析中的一個(gè)重點(diǎn)的實(shí)施決議就是標(biāo)記的顆粒度。一般來說,一個(gè)標(biāo)簽數(shù)據(jù)塊小的就1bit那么大,大的有4KB或者更大。我們選擇可變的顆粒度;物理內(nèi)存中的每一個(gè)byte都標(biāo)記,同時(shí)每一個(gè)CPU的寄存器都有一個(gè)標(biāo)記。內(nèi)存中的每一個(gè)字節(jié)標(biāo)記不會產(chǎn)生任何額外的機(jī)算成本,也就是說:超過兩字的標(biāo)記會產(chǎn)生更高的準(zhǔn)確度。從另一個(gè)方面,寄存器中的每一個(gè)標(biāo)記字節(jié)都會導(dǎo)致寄存器操作的復(fù)雜度提升,這是不能接受的。值得注意的是,修改Argos來使用不同的顆粒度是很容易的。因?yàn)樾阅艿脑?#xff0c;為了方便后期的取證過程,內(nèi)存和寄存器標(biāo)記的本質(zhì)也是不同的。

寄存器標(biāo)記。這里有八個(gè)普通的x86架構(gòu)的目的寄存器,給他們每個(gè)寄存器4B的標(biāo)記。這個(gè)標(biāo)記用于存儲產(chǎn)生寄存器內(nèi)容的物理內(nèi)存地址。部分寄存器和指令指針寄存器沒有被標(biāo)記,它們通常被認(rèn)為是不能被污染的。因?yàn)樗麄冎荒鼙话抵懈?#xff0c;因?yàn)樗麄兊囊?guī)則:他們是屬于系統(tǒng)保護(hù)的元素。標(biāo)志寄存器也沒有被標(biāo)記,認(rèn)為它是不能被污染的,因?yàn)樗?jīng)常受到操作的影響,包括不被信任的數(shù)據(jù),標(biāo)記它會讓它不能區(qū)分惡意的資源和正常的資源。默認(rèn)的,MMX和FPU寄存器也是被同樣處理的,盡管需要的話Argos也能夠標(biāo)記它們。我們把標(biāo)記這些寄存器僅僅作為一個(gè)選擇,因?yàn)樗鼈兩婕暗胶芫唧w的操作,而這些操作通常于攻擊無關(guān)。考慮到性能,我們默認(rèn)忽略它們。

內(nèi)存標(biāo)記。由于我們不為物理內(nèi)存標(biāo)記存儲任何額外的數(shù)據(jù),一個(gè)用于標(biāo)記的二進(jìn)制標(biāo)記就足夠了。不過,也可以使用字節(jié)標(biāo)志來增加內(nèi)存消耗,以換取性能增強(qiáng)。這可能看似代價(jià)很大,但是注意的是我們標(biāo)記的是物理內(nèi)存而不是虛擬內(nèi)存。盡管虛擬內(nèi)存空間可能會很大(例如64位計(jì)算機(jī)上的2的64次方),但是物理內(nèi)存卻不會那么大,通常只有512MB-1GB.此外,客戶的“物理”RAM不需要與主機(jī)上的物理內(nèi)存對應(yīng),因此硬件資源的成本可以保持相當(dāng)?shù)汀?梢栽诰幾g時(shí)配置要使用的方案。接下來我們將會探討這兩個(gè)標(biāo)記方案的更多計(jì)劃。

位圖是一個(gè)大數(shù)組,每個(gè)字節(jié)對應(yīng)內(nèi)存中的8個(gè)字節(jié)。在位圖中,任何物理內(nèi)存地址paddr的索引idx能夠通過首先移動地址右移3 (idx = paddr ? 3) 來定位包含標(biāo)記位 (map[idx])的字節(jié)。單個(gè)的標(biāo)記位能夠通過paddr (b = map[idx]L(0x01 ? (paddrL0x07)))的低三位找回。位圖的大小是客戶機(jī)可尋址物理內(nèi)存RAMSZ (size = RAMSZ/ 8 ), 的八分之一,也就是說512MB的客戶系統(tǒng)的位圖會是64MB.

同樣的,一個(gè)字節(jié)圖也是一個(gè)大數(shù)組,每一個(gè)字節(jié)對應(yīng)內(nèi)存中的一個(gè)字節(jié)。每一個(gè)字節(jié)的物理地址paddr也是字節(jié)圖中的索引idx。它的實(shí)際大小等于客戶機(jī)實(shí)際可尋址物理內(nèi)存RAMSZ (size = RAMSZ).

最后,傳入的網(wǎng)絡(luò)數(shù)據(jù)被標(biāo)記為污點(diǎn)。因?yàn)檫@整個(gè)過程并不需要操作系統(tǒng)的參加,標(biāo)記通過QEMU模擬的虛擬NE2000 NIC來執(zhí)行。操作系統(tǒng)通過兩個(gè)方法與外部設(shè)備交流:I/O端口和內(nèi)存映射I/O。Qemu的虛擬網(wǎng)卡只支持I/O端口,而在x86架構(gòu)中,這是通過輸入和輸出指令來執(zhí)行的。通過檢測并標(biāo)記從NE2000中寄存器加載的指令和數(shù)據(jù)為污點(diǎn),因?yàn)樗衅渌鸌/O端口的操作都會導(dǎo)致清除目的寄存器的標(biāo)記。

追蹤

Qemu通過動態(tài)鏈接實(shí)現(xiàn)相應(yīng)操作的函數(shù)塊,將所有來賓指令轉(zhuǎn)換為本機(jī)指令污點(diǎn)數(shù)據(jù)追蹤包括檢測這些操作標(biāo)記的函數(shù),比如移動或者改變數(shù)據(jù)。除了寄存器和內(nèi)存地址以外,我們認(rèn)為可獲得的指令操作數(shù)包括直接的數(shù)值是沒有被污染的。我們將插裝函數(shù)分為以下幾類:

2或3個(gè)操作數(shù)操作;這是大多數(shù)常用的操作包括:ADD,SUB,AND,XOR等。如果目標(biāo)操作數(shù)沒有被污染,則會導(dǎo)致將源操作數(shù)標(biāo)記復(fù)制到目標(biāo)操作數(shù)標(biāo)記。

數(shù)據(jù)移動操作;這些操作將數(shù)據(jù)從一個(gè)寄存器移動到另一個(gè)寄存器,將源操作數(shù)標(biāo)記復(fù)制到目標(biāo)操作數(shù)標(biāo)記。

單個(gè)寄存器操作;包括所有的LOAD,STRE,PUSH和POP操作。這些操作分別從內(nèi)存中存取標(biāo)記。

FPU,MMX或者SSE操作;由上所述,在這些通常被默認(rèn)忽略,除非他們的結(jié)果被存儲在我們追蹤的寄存器或者內(nèi)存中。在這些情況下,這些目的地會被清除。更多更加高級的指令比如SSE2和3DNow!不被QEMU支持。

沒有直接改變寄存器和內(nèi)存的操作;這些操作包括NOP,JMP等。在追蹤數(shù)據(jù)時(shí),他們大多數(shù)我們都不需要添加任何檢測代碼,但是為了識別他們的非法使用就需要,正如我們在接下來部分所講的。

清潔操作;某些相當(dāng)復(fù)雜的指令常會清理他們目的操作數(shù)的標(biāo)記。這是為了降低誤報(bào)的可能性。這樣的指令是旋轉(zhuǎn)左/右(ROR, ROL), BCD和SSE指令,以及雙精度移位。

幸運(yùn)的是我們并不需要擔(dān)心特殊指令的使用,比如:xor eax、eax、sub eax 。這些在X86中被大量用于將寄存器設(shè)置為0,因?yàn)椴幌馬ISC,并沒有可獲得的零寄存器。QEMU確保將這些翻譯成一個(gè)能夠把零給目標(biāo)寄存器的一個(gè)單獨(dú)的函數(shù)。當(dāng)編譯這個(gè)函數(shù)時(shí),它遵循本地架構(gòu)歸零寄存器的習(xí)慣做法。

現(xiàn)在的系統(tǒng)提供了一個(gè)外設(shè)直接寫入內(nèi)存而不需要消耗CPU循環(huán)的方法,也就是直接內(nèi)存操作(DMA)。當(dāng)操作系統(tǒng)使用的是DMA而不是從外設(shè)上獲取小塊的數(shù)據(jù)時(shí),它將分配一大塊內(nèi)存區(qū)域并把它的地址發(fā)給外設(shè),外設(shè)可以直接寫入數(shù)據(jù)而不需要占據(jù)CPU。QEMU為像硬盤這類的組件模擬DMA。只要在Argos中執(zhí)行DMA內(nèi)存寫入,就會被截獲,并清除相應(yīng)的內(nèi)存標(biāo)記。

4.1.3 防止污染數(shù)據(jù)的無效使用

今天所觀察到的大多數(shù)攻擊都是通過將控制重定向到攻擊者提供的指令(例如,shellcode),或者通過小心地操作參數(shù)(返回到libc)來獲得對主機(jī)的控制。要使這些攻擊成功,必須用攻擊者提供的值加載主機(jī)的指令指針。在X86架構(gòu)中,指令指針寄存器EIP通過下面的寄存器來加載:call,ret和jmp。通過檢測這些指令來確保被污染的數(shù)據(jù)是否加載到EIP中,我們利用這些方式來區(qū)分所有的攻擊。另外,我們還可以檢查是否在特定于模型的寄存器(MSR)或段寄存器上加載了受污染的值,但是到目前為止,我們還沒有遇到這種攻擊,我們也不知道它們的存在。

雖然這些方法捕獲了一個(gè)廣泛的漏洞類別,但僅憑它們是不夠的。例如,他們不能處理格式化字符串漏洞,這會允許攻擊者用任意的數(shù)據(jù)來重寫內(nèi)存中的任意位置。這些攻擊不會直接用網(wǎng)絡(luò)數(shù)據(jù)重寫關(guān)鍵的值,并且可能不會被檢測到。因此,我們擴(kuò)展了動態(tài)污染分析,以掃描代碼注入攻擊,否則無法捕獲這些攻擊。這可以簡單的通過檢查加載在EIP中的內(nèi)存位置是否被污染來完成。

最后,為了解決僅僅基于更改關(guān)鍵函數(shù)參數(shù)的攻擊比如:系統(tǒng)調(diào)用,我們檢查了QEMU來檢查提供給系統(tǒng)調(diào)用比如execve()的參數(shù)是何時(shí)被污染。為了可靠地實(shí)現(xiàn)這個(gè)功能,我們需要一個(gè)關(guān)于操作系統(tǒng)在Argos上運(yùn)行的提示,因?yàn)椴僮飨到y(tǒng)使用不同的系統(tǒng)調(diào)用。當(dāng)前版本的Argos只支持Linux操作系統(tǒng)的這個(gè)特性,但我們計(jì)劃將其擴(kuò)展到支持FreeBSD和MS Windows操作系統(tǒng)。

生成簽名

在本節(jié)中,我們將解釋如何在檢測到攻擊后提取有用的信息,如何生成簽名,以及如何通過關(guān)聯(lián)內(nèi)存和網(wǎng)絡(luò)跟蹤來專門化簽名。此外,我們還展示了如何細(xì)化簽名,以獲得包含漏洞核心的小簽名。另外,與[28]等相關(guān)項(xiàng)目不同的是,我們有意研究了不需要重播攻擊的簽名生成方法。重播攻擊是困難的,例如,因?yàn)橘|(zhì)詢/響應(yīng)身份驗(yàn)證可能會在交互中插入nonces。雖然我們知道有一個(gè)實(shí)例是在面對cookie和nonces[14]時(shí)實(shí)現(xiàn)重放,但是我們不相信當(dāng)前的方法能夠處理最復(fù)雜的協(xié)議。

我們強(qiáng)調(diào),本節(jié)描述的簽名生成方法只是第一個(gè)嘗試,主要用于演示如何使用合適的后端來利用Argos生成的豐富信息。我們目前正在探索更先進(jìn)的方法。在我們看來,能夠插入不同的后端(簽名生成器)是非常有用的。

4.2.1 提取數(shù)據(jù)

一個(gè)確定的攻擊可以成為整個(gè)網(wǎng)絡(luò)安全社區(qū)資產(chǎn),如果我們生成一個(gè)簽名成功在網(wǎng)絡(luò)層阻止它。為了達(dá)到這個(gè)目標(biāo),Argos導(dǎo)出有趣的客戶內(nèi)存區(qū)域的內(nèi)容進(jìn)行離線處理。為了減少導(dǎo)出的數(shù)據(jù)量我們動態(tài)地判斷這次襲擊是發(fā)生在用戶空間還是內(nèi)核空間。這是通過從Qemu的隱藏標(biāo)志寄存器檢索處理器特權(quán)環(huán)位。內(nèi)核總是運(yùn)行在特權(quán)環(huán)0,所以我們可以通過觀察我們運(yùn)行的環(huán)區(qū)分內(nèi)核中的進(jìn)程。

此外,每個(gè)進(jìn)程都與內(nèi)核共享其虛擬地址空間。操作系統(tǒng)通過分割地址空間來實(shí)現(xiàn)這一點(diǎn)。在Linux中使用3:1的分割,這意味著虛擬地址空間的四分之三被分配給進(jìn)程,而四分之一被分配給內(nèi)核。另一方面,Windows使用2:2分割。用戶/內(nèi)核空間分割在大多數(shù)操作系統(tǒng)配置中都是預(yù)定義的,所以只要我們知道哪個(gè)操作系統(tǒng)正在運(yùn)行,就可以使用靜態(tài)值。我們利用這些信息只轉(zhuǎn)儲相關(guān)數(shù)據(jù)。

為了確定哪些物理內(nèi)存頁是需要記錄的,我們遍歷安裝在處理器上的頁目錄。在x86架構(gòu)中,活動頁目錄的物理內(nèi)存地址存儲在控制寄存器3 (CR3)中。注意,因?yàn)槲覀儽闅v進(jìn)程的虛擬地址空間,所以映射到多個(gè)虛擬地址的物理頁面將被記錄多次(每個(gè)映射一次)。

通過定位進(jìn)程/內(nèi)核可以訪問的所有物理頁面,并確保不會跨越用戶/內(nèi)核空間分割,我們可以轉(zhuǎn)儲所有受污染的內(nèi)存區(qū)域以及EIP指向的物理頁面,而不管其標(biāo)記狀態(tài)如何。轉(zhuǎn)儲數(shù)據(jù)的結(jié)構(gòu)如圖2所示。對于每個(gè)檢測到攻擊導(dǎo)出以下信息:日志格式(格式),客戶機(jī)架構(gòu)(ARCH i386或x86 64),攻擊的類型(類型),時(shí)間戳(TS),登記內(nèi)容和標(biāo)簽(包括EIP及其起源),EFLAGS寄存器,最后記憶內(nèi)容塊。每個(gè)內(nèi)存塊前面都有以下標(biāo)頭:塊的格式(format)、受污染的標(biāo)記、塊的大小(以字節(jié)為單位)以及塊的物理(PADDR)和虛擬(VADDR)地址。接下來將寫入內(nèi)存塊的實(shí)際內(nèi)容。當(dāng)所有的塊都被寫完時(shí),轉(zhuǎn)儲的結(jié)束由一個(gè)只包含0的內(nèi)存塊頭來表示。

所有這些都記錄在一個(gè)名為“ark .csi.RID”的文件中。其中RID是一個(gè)隨機(jī)ID,也將用于下面討論的高級取證。

從Argos提取的數(shù)據(jù)不僅僅用于簽名生成。通過記錄所有可能“有趣”的數(shù)據(jù),可以對攻擊進(jìn)行徹底的分析。例如,考慮寄存器spring之類的技術(shù),它們不會直接將控制流更改為注入代碼。通過記錄用于spring的合法代碼,并利用日志中存在的物理和虛擬地址,安全專家可以有效地對大多數(shù)(如果不是全部)攻擊進(jìn)行逆向工程。

4.2.2 先進(jìn)的取證

Argos的一個(gè)本質(zhì)特征是它是過程不可知的。這給我們帶來了確定攻擊目標(biāo)的問題。發(fā)現(xiàn)受害過程,提供有價(jià)值的信息,可以用來定位脆弱的主機(jī),并協(xié)助簽名生成。為了克服這個(gè)障礙,我們提出了一個(gè)新穎的想法,使我們能夠在進(jìn)程的地址空間中執(zhí)行代碼,從而允許我們收集有關(guān)它的信息。

目前,大多數(shù)攻擊通過注入?yún)R編代碼(shell代碼)并將控制流轉(zhuǎn)移到進(jìn)程的開頭來劫持進(jìn)程。受上述啟發(fā),我們將自己的shell代碼注入到進(jìn)程的虛擬地址空間中。在檢測到攻擊和日志記錄狀態(tài)后,我們將shell代碼直接放到進(jìn)程的虛擬地址空間中。注入代碼的位置非常重要,經(jīng)過各種實(shí)驗(yàn)之后,我們選擇了地址空間開頭的最后一個(gè)文本段頁面。將代碼放在文本段中對于確保它不會被進(jìn)程覆蓋很重要,因?yàn)樗侵蛔x的。它還增加了我們不會覆蓋任何關(guān)鍵流程數(shù)據(jù)的可能性。有了適當(dāng)?shù)膕hell代碼,然后我們將EIP指向它的開始執(zhí)行。

作為一個(gè)示例,我們實(shí)現(xiàn)了shellcode,它提取了受害進(jìn)程的PID,并通過TCP連接將它與前面生成的RID一起傳輸。信息被傳輸?shù)皆诳蛻舳诉\(yùn)行的進(jìn)程,然后代碼進(jìn)入一個(gè)循環(huán),迫使它永遠(yuǎn)休眠,以確保它不會終止,但仍然處于休眠狀態(tài)。在另一端,客戶端的信息收集進(jìn)程接收PID并使用它來提取操作系統(tǒng)給出的進(jìn)程的信息。最后,將此信息傳輸?shù)街鳈C(jī),并將其存儲在主機(jī)上。

取證過程通過運(yùn)行顯示當(dāng)前網(wǎng)絡(luò)連接狀態(tài)來檢索關(guān)于被攻擊進(jìn)程的信息,或者如果顯示當(dāng)前網(wǎng)絡(luò)連接狀態(tài)不可用,則打開端口[1]。上面的工具提供了進(jìn)程的名稱,以及所有相關(guān)的端口。端口集可以用來限制我們在網(wǎng)絡(luò)跟蹤中的搜索(如4.2.3節(jié)所討論的),方法是丟棄發(fā)送到其他端口的流量。目前,取證可用于Linux和Win32系統(tǒng)。在未來,我們設(shè)想提取相同或更多的信息,而不需要在客戶端使用第三個(gè)過程。

4.2.3 信息關(guān)聯(lián)

從客戶端收集的內(nèi)存指紋,以及使用高級取證技術(shù)提取的信息,隨后與客戶端和攻擊者之間交換的數(shù)據(jù)的網(wǎng)絡(luò)跟蹤相關(guān)聯(lián)。我們使用tcpdump捕獲流量,并將其直接存儲在定期垃圾收集的跟蹤數(shù)據(jù)庫中,以清除舊的流量流。在Argos的下一個(gè)版本中,我們使用自產(chǎn)的FFPF框架來捕獲流量,它允許我們在不同的跟蹤[6]中轉(zhuǎn)儲不同的流量。

收集到的網(wǎng)絡(luò)跟蹤首先通過重新組裝TCP流進(jìn)行預(yù)處理,以形成發(fā)送給客戶機(jī)的數(shù)據(jù)的連續(xù)圖像。對于流重新組裝,我們構(gòu)建在開源的ethereal library5上。這使我們能夠檢測被有意地拆分為多個(gè)包或作為TCP碎片的一部分的攻擊。

當(dāng)前版本的Argos使用取證提供的攻擊端口號過濾掉無趣的網(wǎng)絡(luò)流。此外,轉(zhuǎn)儲的內(nèi)存內(nèi)容也減少了。EIP的標(biāo)記值用于在網(wǎng)絡(luò)跟蹤中定位主要負(fù)責(zé)攻擊的受污染內(nèi)存塊。此塊以及其余的網(wǎng)絡(luò)流將被處理,以識別可以用作簽名的模式。Argos使用兩種不同的方法來定位這些模式:(i)最長公共子串(LCS)和(ii)關(guān)鍵利用串檢測(CREST)。

(i) LCS是一種流行的快速算法,用于檢測多個(gè)字符串之間的模式,其他自動簽名生成項(xiàng)目[27]也使用LCS。該算法的名字不言自明:它查找內(nèi)存和流量跟蹤中常見的最長的子字符串。然后,連同受攻擊的端口號和協(xié)議一起生成Snort簽名。雖然這個(gè)方法看起來很有前途,但是它在我們的設(shè)置中并沒有很好地工作,因?yàn)楦櫤蛢?nèi)存之間的公共子字符串(顯然)很大。雖然我們?nèi)栽诟倪M(jìn)LCS簽名生成,但我們已經(jīng)取得了迄今為止最好的結(jié)果

(ii) CREST是一種新的算法。其開發(fā)背后的動機(jī)是Argos的輸出提供了關(guān)于攻擊內(nèi)部工作的重要見解。轉(zhuǎn)儲信息允許我們生成針對觸發(fā)攻擊的字符串的簽名,因此這可能是非常準(zhǔn)確的,并且不受多態(tài)性等技術(shù)的影響。利用物理內(nèi)存源(OEIP)和虛擬內(nèi)存值(VEIP),我們可以鎖定充當(dāng)攻擊者立足點(diǎn)來控制賓操作系統(tǒng)的內(nèi)存位置。CREST的優(yōu)勢在于它能夠捕捉到攻擊的第一部分,而這一部分是不易改變的。當(dāng)前版本的CREST基于此攻擊字符串生成簽名。然而,我們現(xiàn)在正在開發(fā)CREST的一個(gè)更高級的實(shí)現(xiàn),在這個(gè)實(shí)現(xiàn)中,我們試圖準(zhǔn)確地隔離導(dǎo)致該漏洞的網(wǎng)絡(luò)跟蹤的(最小)部分。

當(dāng)前CREST的實(shí)現(xiàn)相當(dāng)簡單。本質(zhì)上,我們將VEIP定位在與應(yīng)用程序s端口對應(yīng)的網(wǎng)絡(luò)跟蹤中,然后將跟蹤擴(kuò)展到左邊和右邊。換句話說,我們將內(nèi)存轉(zhuǎn)儲中OEIP上下的各個(gè)字節(jié)與VEIP在網(wǎng)絡(luò)跟蹤中的位置之前和之后的字節(jié)進(jìn)行匹配。當(dāng)我們遇到不同的字節(jié)時(shí),我們會停下來。Argos使用產(chǎn)生的字節(jié)序列,并將其與端口號和協(xié)議組合起來,以snort規(guī)則格式生成簽名。以這種方式生成的簽名通常大小合理,只有幾百字節(jié),因此可以立即使用。此外,正如我們在第4.2.4節(jié)中所示,稍后將改進(jìn)簽名,使其更小。

請注意,盡管我們目前只使用了少量的操作,但是對于簽名生成,我們能夠處理大量的信息。實(shí)際上,Argos產(chǎn)生的信息比其他項(xiàng)目多得多[12,28],因?yàn)槲覀兛梢酝耆L問物理和虛擬內(nèi)存地址、寄存器、EIP等。因此,即使它被證明是非常有效的,即使在其目前的形式,CREST應(yīng)該被認(rèn)為是一個(gè)正在進(jìn)行的工作,當(dāng)前的實(shí)現(xiàn)是一個(gè)概念驗(yàn)證。例如,CREST將無法為格式字符串攻擊或任何成功的攻擊生成簽名

在我們的系統(tǒng)的下一個(gè)版本中,我們計(jì)劃跟蹤每個(gè)受污染的內(nèi)存單詞在網(wǎng)絡(luò)跟蹤中的確切起源。因此,我們將不再需要掃描特定字節(jié)模式的跟蹤。相反,我們將能夠直接查明網(wǎng)絡(luò)跟蹤中有問題的字節(jié),從而大大提高簽名生成方法的速度和準(zhǔn)確性。

Argos簽名生成的最后一個(gè)特性是它能夠同時(shí)生成流簽名和包簽名。如前所述,流簽名完全由字節(jié)序列組成。另一方面,對于包簽名,Argos將字節(jié)序列映射回各個(gè)包。換句話說,如果一個(gè)簽名包含一個(gè)以上的數(shù)據(jù)包,Argos將把它分成幾個(gè)組成部分。當(dāng)我們跟蹤組成完整流的各個(gè)包的貢獻(xiàn)時(shí),我們甚至能夠處理相當(dāng)復(fù)雜的情況,例如重疊的TCP段。包簽名對于不執(zhí)行流重新組裝的IDS和IPS實(shí)現(xiàn)非常有用。

4.2.4 SweetBait

SweetBait是一個(gè)自動簽名生成和部署系統(tǒng)[32]。它從多個(gè)來源(如蜜罐)收集類似于snort的簽名,并對其進(jìn)行處理以檢測相似性。雖然Argos是這個(gè)項(xiàng)目的主要投入,我們也將SweetBait連接到基于honeyd[33]和蜂巢[27]的低交互的蜜罐。應(yīng)該提到的是,為了處理不同性質(zhì)的簽名,SweetBait會鍵入它們以避免混淆。誘餌子系統(tǒng)如圖3所示。

誘餌子系統(tǒng)的大腦由控制中心(CC)組成。CC維護(hù)一個(gè)不斷更新的攻擊簽名數(shù)據(jù)庫,并根據(jù)其簽名預(yù)算將最嚴(yán)重攻擊的簽名推送到一組IDS和IPS傳感器,本節(jié)稍后將對此進(jìn)行解釋。除了IDS/IPS傳感器,我們還將一組Argos蜜罐與每個(gè)CC聯(lián)系起來。蜜罐通過ssl保護(hù)的通道將它們的簽名發(fā)送到它們的CC。簽名由CC收集并與已知簽名進(jìn)行比較。本質(zhì)上,它使用LCS來查找簽名之間的重疊量。如果兩個(gè)簽名足夠相似,它就得出結(jié)論:LCS代表了針對攻擊的更專門的簽名,并安裝了一個(gè)新的簽名版本,該版本不支持舊的簽名。通過這種方式,我們試圖定位簽名的不可變部分,并刪除可變部分,如目標(biāo)ip、主機(jī)名、攻擊有效載荷等。這樣做可以減少收集到的簽名的數(shù)量到一個(gè)可管理的規(guī)模。例如,我們使用了低交互(蜂蜜/蜂窩)蜜罐的SweetBait(因?yàn)檫@些蜜罐的簽名比Argos的簽名大得多),并且能夠?qū)⑷靸?nèi)生成的數(shù)千個(gè)簽名減少到少于30個(gè)(圖4)。

專業(yè)化過程主要由三個(gè)參數(shù)控制。最小匹配參數(shù)m表示兩個(gè)簽名在CC確定它們是相同簽名的變體之前的最小重疊量。值m表示為已知簽名大小的百分比。例如,m = 90%意味著新簽名應(yīng)該至少匹配數(shù)據(jù)庫中已經(jīng)存在的簽名的90%,以便將其歸類為此簽名的變體。最小和最大長度參數(shù)L和M分別表示可接受簽名的最小和最大長度。例如,L = 10和M = 1500意味著要接受簽名并將其存儲在數(shù)據(jù)庫中,簽名的長度應(yīng)該大于10字節(jié),小于1500。

這些參數(shù)的最優(yōu)值隨簽名的性質(zhì)而變化。例如,如果簽名可能是不相關(guān)的,例如虛擬蜜罐/蜂巢生成的簽名,m應(yīng)該很大,以確保簽名確實(shí)是相關(guān)的。雖然在這種情況下,參數(shù)的最佳選擇是一個(gè)仔細(xì)調(diào)優(yōu)的問題,但是我們在處理Argos簽名時(shí)處于一個(gè)更好的位置。畢竟,在這里我們可以強(qiáng)制子系統(tǒng)只比較已知相關(guān)的簽名。例如,通過在專門化期間只比較簽名與相同的VEIP,我們知道只考慮類似的利用。本質(zhì)上,我們可以將m和M分別設(shè)置為任意低和任意高的值,并讓L完全控制這個(gè)過程。L的值是通過查看snort框架使用的實(shí)際簽名的大小來確定的。在snort中,大多數(shù)規(guī)則的內(nèi)容字段都非常小,通常小于10個(gè)字節(jié)。通過選擇稍微大于這個(gè)值的值,簽名可能既準(zhǔn)確又小。在實(shí)踐中,我們對Argos生成的簽名使用L = 12,并確保Argos在一個(gè)單獨(dú)的桶中生成相關(guān)的簽名(例如,具有相同的VEIP),然后由SweetBait作為一個(gè)單獨(dú)的組進(jìn)行處理。

SweetBait將簽名的最終版本部署到網(wǎng)絡(luò)IDS和IPS。為了保證所連接的IDSs和IPSs的性能水平提高,并處理IDSs和IPSs的異構(gòu)能力,可以指定字節(jié)數(shù)的簽名預(yù)算,以便推送到傳感器的簽名數(shù)不超過某個(gè)級別。

為了確定將被推送到傳感器的簽名,SweetBait使用網(wǎng)絡(luò)IDS傳感器來估計(jì)相應(yīng)攻擊的毒性。由IDS生成的警報(bào)的密度被用作攻擊的一個(gè)指示器,這反過來又決定了一個(gè)簽名是應(yīng)該推送到防御系統(tǒng),還是仍然處于監(jiān)視狀態(tài)。換句話說,由許多站點(diǎn)頻繁報(bào)告的簽名比由較少數(shù)量的蜜罐報(bào)告的簽名具有更高的毒力估計(jì),因此更有可能被推送到IDS/IPS傳感器。此外,可以手動將簽名標(biāo)記為有效或無效,以增加確定性。IPS傳感器是否根據(jù)未手動標(biāo)記為有效的簽名自動阻塞流量是一個(gè)可配置的參數(shù)。關(guān)于IPS傳感器的詳細(xì)信息超出了本文的范圍,可以在[32]和[22]中找到。

SweetBait子系統(tǒng)的一個(gè)重要特性是它能夠在全球范圍內(nèi)交換簽名。全球范圍的協(xié)作對于識別和防止“零日”攻擊是必要的,而SweetBait通過全球控制中心(GCC)使這在一定程度上成為可能。GCC收集簽名和統(tǒng)計(jì)數(shù)據(jù)的方式與CC類似,主要的區(qū)別是在將簽名推給CCs時(shí)缺少簽名預(yù)算。

CC定期與GCC交換信息。這包括新生成的簽名,以及已知簽名的活動統(tǒng)計(jì)信息。GCC接收到的統(tǒng)計(jì)數(shù)據(jù)與本地生成的統(tǒng)計(jì)數(shù)據(jù)一起累積,以確定蠕蟲的攻擊性。這種積累確保了即使CC本身尚未受到攻擊,它也能夠?qū)θ虮┌l(fā)作出反應(yīng),從而實(shí)現(xiàn)受保護(hù)網(wǎng)絡(luò)的免疫。同樣,我們使用SSL保護(hù)了CC和GCC之間的所有通信。

5 評估

我們從兩個(gè)方面來評估Argos:性能和有效性。雖然性能對于蜜罐來說并不重要,但它需要足夠快才能及時(shí)生成簽名。

5.1 性能

對于實(shí)際的性能度量,我們將在Argos上運(yùn)行的代碼的速度與在沒有仿真的情況下運(yùn)行的代碼的速度進(jìn)行比較。我們這樣做是為了各種現(xiàn)實(shí)的基準(zhǔn),即在現(xiàn)實(shí)生活中,基準(zhǔn)也用于比較PC性能。請注意,雖然這是一種顯示Argos引起的減速的誠實(shí)的方法,但它不一定是最相關(guān)的度量方法。畢竟,我們不使用Argos作為桌面,而且在實(shí)踐中幾乎不關(guān)心結(jié)果是否比沒有模擬時(shí)顯示得快得多。只有當(dāng)攻擊者決定避開運(yùn)行緩慢的主機(jī)時(shí),才會出現(xiàn)減速問題,因?yàn)橹鳈C(jī)可能是一個(gè)蜜罐。據(jù)我們所知,這種蠕蟲在實(shí)踐中并不存在。

通過對比觀察到在Argos和未修改的Qemu的各種配置以及原始主機(jī)上運(yùn)行的客戶機(jī)的減速,進(jìn)行了性能評價(jià)在這些實(shí)驗(yàn)中使用的主機(jī)是一臺AMD AthlonTM XP 2800在2 GHz, 512 KB的L2緩存,1 GB的RAM和2個(gè)IDE UDMA-5硬盤,運(yùn)行Gentoo Linux內(nèi)核2.6.12.5。來賓操作系統(tǒng)在Qemu 0.7.2和Argos之上運(yùn)行SlackWare Linux 10.1和內(nèi)核2.4.29。為了改善客戶的磁盤I/O性能,我們沒有將文件用作硬盤映像,而是專用于其中一個(gè)硬盤。

量化觀測放緩我們使用bunzip2和apache。bunzip2是一個(gè)CPU密集型UNIX減壓效用。我們用它來把Linux內(nèi)核v2.6.13解壓源代碼(約。38 MB),測量其執(zhí)行時(shí)間使用另一個(gè)UNIX實(shí)用程序。Apache,另一方面,是一個(gè)流行的web服務(wù)器,我們選擇,因?yàn)樗刮覀兡軌驕y試網(wǎng)絡(luò)服務(wù)的性能。我們測量它的吞吐量最大的每秒處理請求使用httperf HTTP性能工具。httperf是能夠產(chǎn)生高的單一文件要求確定web服務(wù)器的最大容量。

除此之外,我們還使用了BYTE magazine的UNIX基準(zhǔn)測試。這個(gè)基準(zhǔn)測試(簡寫為nbench)執(zhí)行各種CPU密集型測試以生成三個(gè)索引。每個(gè)索引對應(yīng)CPU的整數(shù)、浮點(diǎn)數(shù)和內(nèi)存操作,并表示它與233mhz的AMD K6TM的比較情況。

圖5顯示了評估的結(jié)果。我們在主機(jī)上測試了基準(zhǔn)測試應(yīng)用程序,在運(yùn)行原始Qemu的客戶機(jī)上測試了基準(zhǔn)測試應(yīng)用程序,并在不同的Argos配置下測試了基準(zhǔn)測試應(yīng)用程序:使用bytemap,使用啟用了codeinjection檢測的bytemap。如圖所示,分別為Vanilla QEMU、argoso - b和argoso - b - ci。y軸表示與沒有仿真的相同測試相比,測試慢了多少倍。xaxis顯示了測試的2個(gè)應(yīng)用程序以及nbench報(bào)告的3個(gè)索引。圖中的每種顏色都是經(jīng)過測試的配置,從上到下依次是:未修改的Qemu、使用bytemap進(jìn)行內(nèi)存標(biāo)記的Argos,以及啟用了代碼注入檢測的Argos。表1還顯示了Apache的吞吐量(以每秒處理的請求數(shù)計(jì)算)。

即使在最快的配置中,Argos至少比主機(jī)慢16倍。然而,大部分開銷是由Qemu本身引起的。帶有所有附加儀器的Argos速度最多比vanilla Qemu慢2倍。特別是在apache和float操作的情況下,只有18%的開銷。這是由于缺乏一個(gè)真實(shí)的網(wǎng)絡(luò)接口和仿真器中的硬件FPU,這導(dǎo)致了大部分的開銷。此外,我們強(qiáng)調(diào),我們沒有使用任何Qemu可用的優(yōu)化模塊。這些模塊將仿真器的性能提高到本機(jī)系統(tǒng)的一半左右。盡管我們很可能無法實(shí)現(xiàn)同樣大的提速,但我們有信心實(shí)現(xiàn)這么大的優(yōu)化

此外,盡管性能損失很大,但個(gè)人使用Argos的經(jīng)驗(yàn)告訴我們,這是可以忍受的。即使在執(zhí)行需要大量圖形的任務(wù)時(shí),這臺機(jī)器也為把它當(dāng)作桌面機(jī)器使用的操作人員提供了良好的可用性。此外,我們應(yīng)該記住,Argos不是作為一個(gè)桌面系統(tǒng)設(shè)計(jì)的,而是作為一個(gè)托管宣傳的蜜罐的平臺。性能不是我們主要關(guān)心的問題。盡管如此,我們?nèi)杂?jì)劃推出一些新功能,以進(jìn)一步提高Argos未來版本的性能。[4]中描述了一個(gè)相關(guān)的項(xiàng)目,它采用了類似的方法,但主要關(guān)注性能,同時(shí)考慮保護(hù)桌面。

5.2 效果

為了確定Argos在捕獲攻擊方面有多有效,我們針對運(yùn)行在其上的Windows和Linux操作系統(tǒng)發(fā)起了多次攻擊。對于Windows 2000操作系統(tǒng),我們使用Metasploit framework7,它提供了隨時(shí)可用的漏洞,以及一種方便的方式來啟動它們。我們測試了我們能夠獲得軟件的所有漏洞。特別地,所有的攻擊都是針對操作系統(tǒng)的專業(yè)版本所提供的軟件中的漏洞進(jìn)行的,除了第三方軟件War-FTPD ftp服務(wù)器。雖然我們也成功地在Argos上運(yùn)行了其他操作系統(tǒng)(如Windows XP),但我們只是剛剛開始對它進(jìn)行評估。對于Linux操作系統(tǒng),我們分別創(chuàng)建了兩個(gè)包含堆棧和堆緩沖區(qū)溢出的應(yīng)用程序,還使用了nbSMTP,這是一個(gè)SMTP客戶端,它包含一個(gè)遠(yuǎn)程格式字符串漏洞,我們使用一個(gè)公開可用的漏洞對其進(jìn)行了攻擊。

表2列出了測試的漏洞以及底層操作系統(tǒng)及其相關(guān)蠕蟲。對于Windows,我們只列出了相當(dāng)著名的漏洞。所有的攻擊都被Argos成功捕獲,因此被攻擊的進(jìn)程被停止以防止從執(zhí)行中利用有效載荷。此外,我們的取證shell代碼執(zhí)行成功,在攻擊時(shí)為我們提供了進(jìn)程名、id和開放端口號。

最后,在性能評估和攻擊準(zhǔn)備過程中,Argos并沒有產(chǎn)生任何關(guān)于攻擊的錯(cuò)誤警報(bào)。少量的誤報(bào)對自動響應(yīng)系統(tǒng)至關(guān)重要。盡管這些結(jié)果并不能不可否認(rèn)地證明Argos永遠(yuǎn)不會產(chǎn)生假陽性結(jié)果,但是考慮到已經(jīng)測試了大量的漏洞,這可能表明Argos是相當(dāng)可靠的。出于這個(gè)原因,我們暫時(shí)決定按原樣使用簽名,而不是生成自認(rèn)證警報(bào)(SCAs[28])。但是,如果將來出現(xiàn)誤報(bào),Argos非常適合生成SCAs。

5.3 簽名

評估的最后一部分涉及簽名生成。為了說明這個(gè)過程,我們詳細(xì)解釋了Argos為表2中列出的Windows RPC DCOM漏洞生成的簽名。

我們使用Metasploit框架,針對3個(gè)不同的Argos實(shí)例,使用不同的ip,使用上面提到的相同漏洞,用不同的有效負(fù)載發(fā)起3次攻擊。這樣做的動機(jī)是為了迫使Argos為相同的漏洞生成不同的簽名。在本實(shí)驗(yàn)中,我們使用CREST算法(第4.2.3節(jié))來生成簽名,并將其提交給SweetBait子系統(tǒng)。

在關(guān)聯(lián)過程中,CREST通過網(wǎng)絡(luò)跟蹤進(jìn)行搜索,并重構(gòu)相關(guān)TCP流的字節(jié)流。注意,簽名生成器考慮的日志通常相當(dāng)短,因?yàn)槲覀兛梢允褂米越ǖ腇FPF框架[6]將不同的流存儲在不同的文件中。因此,CREST可能會忽略很久以前完成的流,以及流向其他端口的流,而不是流向取證報(bào)告中報(bào)告的端口。簽名生成時(shí)間包括各種大小日志的TCP重新組裝如圖6所示。

如4.2.4節(jié)所述,SweetBait被配置為執(zhí)行積極的簽名專門化。在接收到所有簽名后,我們檢查了它的數(shù)據(jù)庫,發(fā)現(xiàn)它成功地將這些簽名歸類為同一攻擊的一部分,并根據(jù)它們的相似之處生成了一個(gè)專門的簽名。簽名的大小有效地從大約180字節(jié)減少到只有16字節(jié),如圖7所示。該圖顯示了原始簽名的有效載荷部分,由沒有誘餌子系統(tǒng)的Argos生成,以及誘餌的專業(yè)化。簽名以snort規(guī)則中表示內(nèi)容字段的方式表示,即,可打印字符序列顯示為字符串,而不可打印字節(jié)序列由字符|在左右包圍,并由其十六進(jìn)制值表示。注意,在每個(gè)原始簽名中都可以找到SweetBait生成的專用簽名,如圖7中的框所示。

此外,我們使用專門的簽名來掃描善意的網(wǎng)絡(luò)跟蹤,以確定是否可能產(chǎn)生誤報(bào)。除了自產(chǎn)的痕跡,我們使用了RootFu DEFCON8競爭網(wǎng)絡(luò)痕跡,這是公開的研究目的。我們首先通過使用開放源碼社區(qū)snort規(guī)則(使用從snort9獲取的規(guī)則)掃描跟蹤,從而驗(yàn)證該漏洞不存在于跟蹤中。接下來,我們用Argos生成的簽名掃描它。同樣,沒有(錯(cuò)誤的)警報(bào)。

盡管我們的簽名生成算法相當(dāng)簡單,但是通過SweetBait子系統(tǒng)和在多個(gè)Argos網(wǎng)站的部署,我們能夠以非常小的誤報(bào)概率自動生成簽名。

6 結(jié)論

在本文中,我們討論了自動化入侵檢測和響應(yīng)系統(tǒng)設(shè)計(jì)領(lǐng)域的一個(gè)極端:一個(gè)基于x86仿真器的純軟件全系統(tǒng)解決方案,它使用動態(tài)污染分析來檢測漏洞并保護(hù)未修改的操作系統(tǒng)、進(jìn)程等。通過選擇一個(gè)有利的位置,結(jié)合來自硬件級別(例如,物理地址的感知、內(nèi)存映射和DMA)和更高級別(虛擬地址、每進(jìn)程取證)的有吸引力的屬性,我們相信我們的方法能夠滿足自動響應(yīng)系統(tǒng)的需求

一旦檢測到攻擊,系統(tǒng)就會立即導(dǎo)出受污染的內(nèi)存塊和附加信息,然后將取證外殼代碼注入到受攻擊的代碼中,以提取附加信息(例如,可執(zhí)行名稱和進(jìn)程標(biāo)識符)。接下來,它將內(nèi)存塊與網(wǎng)絡(luò)跟蹤關(guān)聯(lián)起來以生成簽名。來自多個(gè)站點(diǎn)的類似簽名隨后被細(xì)化以生成更小、更專業(yè)的簽名,這些簽名隨后被傳輸?shù)饺肭址烙到y(tǒng)。不使用任何仿真器優(yōu)化模塊的性能比不使用仿真器運(yùn)行的代碼要慢得多。即使如此,由于我們的預(yù)期應(yīng)用領(lǐng)域是(廣告)蜜罐,我們相信開銷是可以接受的。更重要的是,該系統(tǒng)被證明是有效的,并被用于捕獲和指紋一系列真正的漏洞。

未來的工作

我們整個(gè)項(xiàng)目的重點(diǎn)是檢測真正的攻擊和生成可用的網(wǎng)絡(luò)簽名。由于我們還沒有遇到誤報(bào),所以這些簽名應(yīng)該直接使用,例如在我們自己的[22]這樣的IPSs和snort[35]這樣的IDSs中。在誤報(bào)的情況下,我們計(jì)劃生成自認(rèn)證警報(bào)[28]的簽名。未來的研究還涉及更先進(jìn)的簽名生成和攻擊的自動分析。

總結(jié)

以上是生活随笔為你收集整理的指纹识别零日攻击的仿真器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本一区二区免费看 | 亚洲制服丝袜在线播放 | 久久久夜色精品 | 亚洲欧美日韩一区二区 | 韩国av在线播放 | 性调教学院高h学校 | 91国产在线免费观看 | 奇米四色网 | 超级黄色录像 | 桃色视频网 | 国产乱码一区二区三区 | 日本黄色免费网址 | 久久精品国产免费 | 国产午夜福利片 | 成人在线中文字幕 | 亚洲精品天堂在线 | 日韩一区二区在线免费观看 | 裸体黄色片 | 亚洲A∨无码国产精品 | 午夜影院福利社 | 五月激情片 | 最新中文字幕2019 | 久久久久久久久久久久久久久久久久久 | 免费看的黄色 | 公侵犯人妻中文字慕一区二区 | 免费激情网站 | 日本一区二区免费视频 | 国产伦乱视频 | 欧美久久久久久久久 | a v视频在线观看 | 456亚洲视频 | 国产真实老熟女无套内射 | 亚洲天堂免费在线观看视频 | 欧美亚洲精品一区二区 | 青青视频网 | 99久久免费国产精精品 | 中文字幕免费高清视频 | 国产精品高潮呻吟久久久久久 | 日韩大片免费看 | 公车激情云雨小说 | 国语对白一区二区三区 | 欧美视频免费看欧美视频 | 日韩精品一线二线三线 | 欧美亚洲一区二区在线观看 | 中文字幕人成乱码熟女香港 | 污片视频在线观看 | 国产成人免费观看 | 日本a视频| jizzjizz国产| 欧亚一级片 | 国产一区二区三区观看 | 国产在线视频一区二区三区 | 黄色一级播放 | 西欧free性满足hd老熟妇 | 成人综合网站 | 一区二区三区少妇 | 波多野结衣家庭主妇 | 亚洲AV成人无码网站天堂久久 | 精品国产亚洲一区二区麻豆 | 国产视频xxxx | 欧洲视频一区二区 | 亚洲精品久久久久久久久久久久久 | 亚洲激情久久 | 麻豆视频二区 | 成人在线免费 | 青青草视频在线看 | 黄色av一区二区三区 | 91丨porny丨成人蝌蚪 | 壮汉被书生c到合不拢腿 | 热玖玖 | 超碰免费视 | 9色在线视频 | 国产精品日韩在线观看 | 8x8x成人 | 国模福利视频 | 精品播放| 91污片 | 日韩精品一区二区三区视频 | 亚洲爱爱爱 | 欧美人交a欧美精品 | 午夜影院在线播放 | 久久丝袜美腿 | 一区二区欧美精品 | 欧美日韩黑人 | 欧美日韩一级二级 | 久99热 | 丰满少妇aaaaaa爰片毛片 | 视频在线观看一区 | 国产精品久久婷婷 | 真人毛片97级无遮挡精品 | 性开放的欧美大片 | 成人三级在线视频 | 亚洲欧美乱日韩乱国产 | 日韩欧美精品中文字幕 | 欧美激情一区二区三级高清视频 | 精品一区二区视频在线观看 | 亚洲毛片视频 | 亚洲视频一区 | 一卡二卡精品 |