智能主動防御系統(tǒng)(08-100)
6. 將配置信息傳遞給NDIS中間層驅(qū)動
本文引用地址:http://www.biyoush.com/article/91772.htm智能防火墻的數(shù)據(jù)包過濾功能的實現(xiàn)放在系統(tǒng)核心層(NDIS中間層驅(qū)動),由于在驅(qū)動層中對硬盤上的數(shù)據(jù)操作不方便,因此程序在啟動時,用戶態(tài)程序需要將配置參數(shù),入侵特征碼,本機/網(wǎng)關(guān)IP,本機/網(wǎng)關(guān)MAC等信息發(fā)送給驅(qū)動程序。并且當程序的設置參數(shù)發(fā)生改變以及用戶態(tài)程序捕獲到新的入侵特征碼時,也要將相應的數(shù)據(jù)送給驅(qū)動程序。
7. 將NDIS中間層驅(qū)動反饋的信息提示給用戶
當驅(qū)動程序攔截到攻擊時會給用戶態(tài)層程序發(fā)出通知,用戶態(tài)程序讀取驅(qū)動發(fā)送的攻擊信息后,以友好的托盤彈出式窗口提示用戶。
8. NDIS驅(qū)動的實現(xiàn)
在學習和比較了當前的網(wǎng)絡數(shù)據(jù)包攔截技術(shù)后,我們的智能防火墻采用了安全系統(tǒng)比較高的NDIS中間層驅(qū)動程序技術(shù)。由于基于NDIS中間層驅(qū)動模式的個人防火墻可截獲較為底層的封包,從而可以完成更為低級的操作,例如實現(xiàn)攔截ARP欺騙,阻止ICMP木馬通信。
智能防火墻NDIS中間層驅(qū)動程序的編寫是通過擴展Windows 2003 DDK中的Passthru完成的。Passthru是微軟提供的一個用NDIS中間層驅(qū)動程序?qū)崿F(xiàn)對網(wǎng)絡封包的截獲的程序,不過它直接將過往的數(shù)據(jù)包不做任何處理的轉(zhuǎn)發(fā),要實現(xiàn)我們的數(shù)據(jù)包過濾功能,需要對其進行進一步的擴展。
9. 根據(jù)特征庫,過濾到發(fā)給本機的數(shù)據(jù)
由于在驅(qū)動程序中不便于直接對硬盤上的數(shù)據(jù)進行操作,因此智能防火墻沒有采取直接讀取入侵特征庫的方式獲取入侵特征碼,而是在用戶態(tài)程序啟動時,通過用戶態(tài)程序?qū)⑷肭痔卣鞔a傳遞進來的,并將特征碼保存在一個便于進行查找操作的“哈希表”中。
NDIS中間層驅(qū)動程序捕獲發(fā)給本機的所有數(shù)據(jù)包。并計算每一個數(shù)據(jù)包的特征碼,并在“哈希表”中查找該特征碼,如果查找到,則說明該數(shù)據(jù)包是一個入侵數(shù)據(jù)包,直接將其丟棄。如果沒有找到,則對該包進行放行。
10. 傳遞攻擊信息給用戶態(tài)程序
當NDIS中間層驅(qū)動攔截到入侵數(shù)據(jù)包時,會通知用戶態(tài)程序,并將入侵數(shù)據(jù)包的相關(guān)信息(源IP,數(shù)據(jù)包類型,入侵時間)傳遞給用戶態(tài)程序。用戶態(tài)程序接收到通知后給用戶以友好的提示并將該次入侵信息寫入日志。
2.2 病毒主動防御的原理與實現(xiàn)
為了達到主動防御的目的,我們采取了攔截系統(tǒng)調(diào)用的方法,主要鉤掛了SSDT表和Shadow SSDT表中的函數(shù),把對這些函數(shù)的調(diào)用替換為調(diào)用我們自己定義的函數(shù)。
以下是SSDT表中鉤掛的函數(shù):
NtCreateSection,NtOpenProcess,NtTerminateProcess,NtCreateKey,NtDeleteKey,NtSetValueKey,NtDeleteValueKey,NtLoadDriver。
評論