IDS入侵特征庫創(chuàng)建實例解析
更新時間:2007年01月16日 00:00:00 作者:
IDS要有效地捕捉入侵行為,必須擁有一個強大的入侵特征數(shù)據(jù)庫,這就如同公安部門必須擁有健全的罪犯信息庫一樣。但是,IDS一般所帶的特征數(shù)據(jù)庫都比較死板,遇到“變臉”的入侵行為往往相逢不相識。因此,管理員有必要學會如何創(chuàng)建滿足實際需要的特征數(shù)據(jù)樣板,做到萬變應萬變!本文將對入侵特征的概念、種類以及如何創(chuàng)建特征進行介紹,希望能幫助讀者盡快掌握對付“變臉”的方法。
一、特征(signature)的基本概念
IDS中的特征就是指用于判別通訊信息種類的樣板數(shù)據(jù),通常分為多種,以下是一些典型情況及識別方法:
來自保留IP地址的連接企圖:可通過檢查IP報頭(IP header)的來源地址輕易地識別。
帶有非法TCP 標志聯(lián)合物的數(shù)據(jù)包:可通過對比TCP報頭中的標志集與已知正確和錯誤標記聯(lián)合物的不同點來識別。
含有特殊病毒信息的Email:可通過對比每封Email的主題信息和病態(tài)Email的主題信息來識別,或者,通過搜索特定名字的附近來識別。
查詢負載中的DNS緩沖區(qū)溢出企圖:可通過解析DNS域及檢查每個域的長度來識別利用DNS域的緩沖區(qū)溢出企圖。還有另外一個識別方法是:在負載中搜索“殼代碼利用”(exploit shellcode)的序列代碼組合。
通過對POP3服務器發(fā)出上千次同一命令而導致的DoS攻擊:通過跟蹤記錄某個命令連續(xù)發(fā)出的次數(shù),看看是否超過了預設上限,而發(fā)出報警信息?! ?nbsp;
未登錄情況下使用文件和目錄命令對FTP服務器的文件訪問攻擊:通過創(chuàng)建具備狀態(tài)跟蹤的特征樣板以監(jiān)視成功登錄的FTP對話、發(fā)現(xiàn)未經(jīng)驗證卻發(fā)命令的入侵企圖。
從以上分類可以看出特征的涵蓋范圍很廣,有簡單的報頭域數(shù)值、有高度復雜的連接狀態(tài)跟蹤、有擴展的協(xié)議分析。一葉即可知秋,本文將從最簡單的特征入手,詳細討論其功能及開發(fā)、定制方法。
另外請注意:不同的IDS產(chǎn)品具有的特征功能也有所差異。例如:有些網(wǎng)絡IDS系統(tǒng)只允許很少地定制存在的特征數(shù)據(jù)或者編寫需要的特征數(shù)據(jù),另外一些則允許在很寬的范圍內(nèi)定制或編寫特征數(shù)據(jù),甚至可以是任意一個特征;一些IDS系統(tǒng)只能檢查確定的報頭或負載數(shù)值,另外一些則可以獲取任何信息包的任何位置的數(shù)據(jù)。
二、特征有什么作用?
這似乎是一個答案很明顯的問題:特征是檢測數(shù)據(jù)包中的可疑內(nèi)容是否真正“不可就要”的樣板,也就是“壞分子克隆”。IDS系統(tǒng)本身就帶有這個重要的部分,為什么還需要定制或編寫特征呢?是這樣:也許你經(jīng)常看到一些熟悉的通訊信息流在網(wǎng)絡上游蕩,由于IDS系統(tǒng)的特征數(shù)據(jù)庫過期或者這些通訊信息本身就不是攻擊或探測數(shù)據(jù),IDS系統(tǒng)并沒有對它們進行關注,而這時你的好奇心升起,想在這些可疑數(shù)據(jù)再次經(jīng)由時發(fā)出報警,想捕捉它們、仔細看看它們到底來自何方、有何貴干,因此,唯一的辦法就是對現(xiàn)有特征數(shù)據(jù)庫進行一些定制配置或者編寫新的特征數(shù)據(jù)了。
特征的定制或編寫程度可粗可細,完全取決于實際需求?;蛘呤侵慌袛嗍欠癜l(fā)生了異常行為而不確定具體是什么攻擊名號,從而節(jié)省資源和時間;或者是判斷出具體的攻擊手段或漏洞利用方式,從而獲取更多的信息。我感覺,前者適用于領導同志,后者需要具體做事者使用,宏觀加微觀,敵人別想遛進來!
三、首席特征代表:報頭值(Header Values)
報頭值的結構比較簡單,而且可以很清楚地識別出異常報頭信息,因此,特征數(shù)據(jù)的首席候選人就是它。一個經(jīng)典的例子是:明顯違背RFC793中規(guī)定的TCP標準、設置了SYN和FIN標記的TCP數(shù)據(jù)包。這種數(shù)據(jù)包被許多入侵軟件采用,向防火墻、路由器以及IDS系統(tǒng)發(fā)起攻擊。異常報頭值的來源有以下幾種:
因為大多數(shù)操作系統(tǒng)和應用軟件都是在假定RFC被嚴格遵守的情況下編寫的,沒有添加針對異常數(shù)據(jù)的錯誤處理程序,所以許多包含報頭值的漏洞利用都會故意違反RFC的標準定義,明目張膽地揭發(fā)被攻擊對象的偷工減料行為。
許多包含錯誤代碼的不完善軟件也會產(chǎn)生違反RFC定義的報頭值數(shù)據(jù)。
并非所有的操作系統(tǒng)和應用程序都能全面擁護RFC定義,至少會存在一個方面與RFC不協(xié)調(diào)。
隨著時間推移,執(zhí)行新功能的協(xié)議可能不被包含于現(xiàn)有RFC中。
由于以上幾種情況,嚴格基于RFC的IDS特征數(shù)據(jù)就有可能產(chǎn)生漏報或誤報效果。對此,RFC也隨著新出現(xiàn)的違反信息而不斷進行著更新,我們也有必要定期地回顧或更新存在的特征數(shù)據(jù)定義。
非法報頭值是特征數(shù)據(jù)的一個非?;A的部分,合法但可疑的報頭值也同等重要。例如,如果存在到端口31337或27374的可疑連接,就可報警說可能有特洛伊木馬在活動;再附加上其他更詳細地探測信息,就能夠進一步地判斷是真馬還是假馬。
一、特征(signature)的基本概念
IDS中的特征就是指用于判別通訊信息種類的樣板數(shù)據(jù),通常分為多種,以下是一些典型情況及識別方法:
來自保留IP地址的連接企圖:可通過檢查IP報頭(IP header)的來源地址輕易地識別。
帶有非法TCP 標志聯(lián)合物的數(shù)據(jù)包:可通過對比TCP報頭中的標志集與已知正確和錯誤標記聯(lián)合物的不同點來識別。
含有特殊病毒信息的Email:可通過對比每封Email的主題信息和病態(tài)Email的主題信息來識別,或者,通過搜索特定名字的附近來識別。
查詢負載中的DNS緩沖區(qū)溢出企圖:可通過解析DNS域及檢查每個域的長度來識別利用DNS域的緩沖區(qū)溢出企圖。還有另外一個識別方法是:在負載中搜索“殼代碼利用”(exploit shellcode)的序列代碼組合。
通過對POP3服務器發(fā)出上千次同一命令而導致的DoS攻擊:通過跟蹤記錄某個命令連續(xù)發(fā)出的次數(shù),看看是否超過了預設上限,而發(fā)出報警信息?! ?nbsp;
未登錄情況下使用文件和目錄命令對FTP服務器的文件訪問攻擊:通過創(chuàng)建具備狀態(tài)跟蹤的特征樣板以監(jiān)視成功登錄的FTP對話、發(fā)現(xiàn)未經(jīng)驗證卻發(fā)命令的入侵企圖。
從以上分類可以看出特征的涵蓋范圍很廣,有簡單的報頭域數(shù)值、有高度復雜的連接狀態(tài)跟蹤、有擴展的協(xié)議分析。一葉即可知秋,本文將從最簡單的特征入手,詳細討論其功能及開發(fā)、定制方法。
另外請注意:不同的IDS產(chǎn)品具有的特征功能也有所差異。例如:有些網(wǎng)絡IDS系統(tǒng)只允許很少地定制存在的特征數(shù)據(jù)或者編寫需要的特征數(shù)據(jù),另外一些則允許在很寬的范圍內(nèi)定制或編寫特征數(shù)據(jù),甚至可以是任意一個特征;一些IDS系統(tǒng)只能檢查確定的報頭或負載數(shù)值,另外一些則可以獲取任何信息包的任何位置的數(shù)據(jù)。
二、特征有什么作用?
這似乎是一個答案很明顯的問題:特征是檢測數(shù)據(jù)包中的可疑內(nèi)容是否真正“不可就要”的樣板,也就是“壞分子克隆”。IDS系統(tǒng)本身就帶有這個重要的部分,為什么還需要定制或編寫特征呢?是這樣:也許你經(jīng)常看到一些熟悉的通訊信息流在網(wǎng)絡上游蕩,由于IDS系統(tǒng)的特征數(shù)據(jù)庫過期或者這些通訊信息本身就不是攻擊或探測數(shù)據(jù),IDS系統(tǒng)并沒有對它們進行關注,而這時你的好奇心升起,想在這些可疑數(shù)據(jù)再次經(jīng)由時發(fā)出報警,想捕捉它們、仔細看看它們到底來自何方、有何貴干,因此,唯一的辦法就是對現(xiàn)有特征數(shù)據(jù)庫進行一些定制配置或者編寫新的特征數(shù)據(jù)了。
特征的定制或編寫程度可粗可細,完全取決于實際需求?;蛘呤侵慌袛嗍欠癜l(fā)生了異常行為而不確定具體是什么攻擊名號,從而節(jié)省資源和時間;或者是判斷出具體的攻擊手段或漏洞利用方式,從而獲取更多的信息。我感覺,前者適用于領導同志,后者需要具體做事者使用,宏觀加微觀,敵人別想遛進來!
三、首席特征代表:報頭值(Header Values)
報頭值的結構比較簡單,而且可以很清楚地識別出異常報頭信息,因此,特征數(shù)據(jù)的首席候選人就是它。一個經(jīng)典的例子是:明顯違背RFC793中規(guī)定的TCP標準、設置了SYN和FIN標記的TCP數(shù)據(jù)包。這種數(shù)據(jù)包被許多入侵軟件采用,向防火墻、路由器以及IDS系統(tǒng)發(fā)起攻擊。異常報頭值的來源有以下幾種:
因為大多數(shù)操作系統(tǒng)和應用軟件都是在假定RFC被嚴格遵守的情況下編寫的,沒有添加針對異常數(shù)據(jù)的錯誤處理程序,所以許多包含報頭值的漏洞利用都會故意違反RFC的標準定義,明目張膽地揭發(fā)被攻擊對象的偷工減料行為。
許多包含錯誤代碼的不完善軟件也會產(chǎn)生違反RFC定義的報頭值數(shù)據(jù)。
并非所有的操作系統(tǒng)和應用程序都能全面擁護RFC定義,至少會存在一個方面與RFC不協(xié)調(diào)。
隨著時間推移,執(zhí)行新功能的協(xié)議可能不被包含于現(xiàn)有RFC中。
由于以上幾種情況,嚴格基于RFC的IDS特征數(shù)據(jù)就有可能產(chǎn)生漏報或誤報效果。對此,RFC也隨著新出現(xiàn)的違反信息而不斷進行著更新,我們也有必要定期地回顧或更新存在的特征數(shù)據(jù)定義。
非法報頭值是特征數(shù)據(jù)的一個非?;A的部分,合法但可疑的報頭值也同等重要。例如,如果存在到端口31337或27374的可疑連接,就可報警說可能有特洛伊木馬在活動;再附加上其他更詳細地探測信息,就能夠進一步地判斷是真馬還是假馬。