劉勝利,鄒睿,彭飛,武東英,肖達
(中國人民解放軍信息工程大學數(shù)學工程與先進計算國家重點實驗室, 450000, 鄭州)
?
采用控制流監(jiān)控的Cisco IOS指針攻擊檢測方法
劉勝利,鄒睿,彭飛,武東英,肖達
(中國人民解放軍信息工程大學數(shù)學工程與先進計算國家重點實驗室, 450000, 鄭州)
針對當前Cisco IOS(internetwork operating system)漏洞攻擊檢測方法檢測效率低的問題,提出了一種采用控制流監(jiān)控來判定Cisco IOS指針攻擊的方法。該方法通過靜態(tài)分析和動態(tài)跟蹤相結合的方式對Cisco IOS中不同類別的控制流分別構造合法轉移地址集合(legal transfer address collection,LTAC),并在發(fā)生控制流轉移時將轉移地址在LTAC之外的控制流判定為攻擊,同時捕獲異??刂屏鬓D移的詳細信息。實驗結果表明:該方法可以準確地捕獲針對Cisco IOS的指針攻擊,支持對攻擊過程的分析,與現(xiàn)有的Cisco IOS漏洞攻擊檢測方法相比,具有較高的檢測效率,能夠為網(wǎng)絡安全性的提升提供幫助。
Cisco IOS;指針攻擊;控制流監(jiān)控;網(wǎng)絡安全;攻擊檢測
路由器作為網(wǎng)絡基礎設施的重要組成部分,其安全性影響著整個互聯(lián)網(wǎng)的安全。目前,生產(chǎn)路由器的公司主要有Cisco、華為、Juniper等。IDC 2014年公布的報告中,Cisco路由器占到了全球互聯(lián)網(wǎng)路由器市場的62.9%的份額[1],居于首位。
Cisco路由器中運行的是Cisco公司為其路由交換設備開發(fā)的操作系統(tǒng)Cisco IOS,用于管理路由器的硬件資源以及實現(xiàn)各種網(wǎng)絡服務。目前,在Cisco路由器脆弱性利用方面,Linder在文獻[2]中完整地分析了當時在Cisco IOS中發(fā)現(xiàn)的一些安全問題,同時給出了緩沖區(qū)溢出漏洞利用的一些方法。Lynn在文獻[3]中對Cisco IOS的體系結構進行了分析,探討了Cisco IOS任意代碼執(zhí)行的可行性。Muniz在文獻[4]中介紹了使用IDA輔助進行IOS逆向分析的腳本,并且給出了一種實現(xiàn)IOS rootkit注入的方法,并稱該方法可以達到高度的隱蔽性。Linder在文獻[5]中對Cisco IOS的注入方法進行了闡述,同時分析了其安全結構。Muniz在文獻[6]中提出了一種基于虛擬化的Fuzzing方法,用于Cisco IOS漏洞的挖掘和調試分析。在安全性檢測方面,Linder在文獻[7]中對Cisco IOS的取證工具CIR(Cisco incidence response)[8]作了介紹,該工具通過驗證IOS映像的完整性和路由器運行時的狀態(tài)來判斷IOS是否受到了安全威脅,由于Cisco IOS映像完整性很容易被突破[9],因此,其檢測效果較差。陳立根等提出了一種基于動態(tài)污點分析的Cisco IOS漏洞攻擊檢測方法,通過將內存讀寫和指針污染作為攻擊的判定規(guī)則來檢測攻擊[10],然而正常數(shù)據(jù)包頻繁的內存讀寫操作導致誤報率較高,同時檢測過程中的時間消耗較大。目前,針對Cisco路由器的脆弱性利用的方法不斷增多,同時對于其安全性檢測的方法十分有限,因此需要引入Cisco IOS攻擊檢測方法,及時發(fā)現(xiàn)路由器遭受的入侵。
在有源碼的指針攻擊檢測方面,gcc支持在編譯過程中對函數(shù)指針的保護,其保護的思想是通過判定canary word[11]是否被修改來判定攻擊。FPValidator[12]通過在編譯器中添加函數(shù)類型檢查模塊來判定目標程序是否受到了攻擊,檢測效率較高,但是其需要程序源碼的支持,不支持二進制程序的檢測。
目前,在二進制代碼漏洞攻擊檢測方面主要有動態(tài)污點分析[13]和控制流完整性檢查[14]兩種方法。動態(tài)污點分析技術通過將網(wǎng)絡數(shù)據(jù)包標記為污點源,在指令的執(zhí)行過程中實現(xiàn)污點屬性的傳播,并按照一定的策略實現(xiàn)對攻擊行為的檢測,由于污點分析本身的局限性,不可避免的存在一定的誤報率和漏報率;控制流完整性檢查的方法通過對控制流的轉移地址進行安全校驗來判定攻擊,一般需要對目標程序進行分析來構造合法的轉移地址集合。
本文深入分析了Cisco IOS中的分支轉移過程,提出了一種采用控制流監(jiān)控的Cisco IOS指針攻擊檢測方法,該方法通過監(jiān)控控制流轉移地址的合法性來判定攻擊?;赿ynamips模擬器[15],設計實現(xiàn)了Cisco IOS指針攻擊檢測系統(tǒng)(Cisco IOS detection system,CIDS),支持對函數(shù)返回和間接跳轉控制流的合法性判定,該系統(tǒng)具有不需要源碼,檢測結果準確的優(yōu)點。
目前,由于Cisco IOS內存結構的特殊性,在Cisco IOS的漏洞利用過程中,針對指針攻擊主要是基于“代碼重用技術”實現(xiàn)的[5]。下面是一個Cisco IOS中存在的漏洞利用實例,通過對其進行跟蹤分析之后發(fā)現(xiàn)其控制流的轉移過程,如圖1所示,其中存在異常的控制流轉移,包括異常的返回地址和異常的間接跳轉控制流轉移。
如圖1所示,程序在地址a處調用了函數(shù)func,其正常的返回地址應該是地址b。由于在func執(zhí)行的過程中導致了系統(tǒng)棧出現(xiàn)了溢出,使得返回地址(保存在棧中的LR寄存器的值)被覆蓋為地址x。在func執(zhí)行完畢進行正常的函數(shù)返回時,指令的執(zhí)行地址被修改為地址x,此時出現(xiàn)了異常函數(shù)返回控制流的轉移,同時,在地址x處的指令將系統(tǒng)棧中的地址p(shellcode地址)保存到了ctr寄存器中,并在地址y處實現(xiàn)了異常間接跳轉控制流的轉移,導致shellcode成功執(zhí)行。
圖1 Cisco IOS指針攻擊示例
從對上述Cisco IOS緩沖溢出漏洞利用過程中的控制流轉移的分析可知,控制流的轉移是進行攻擊行為檢測的入手點,本文就是基于對異常控制流的監(jiān)控識別來判定攻擊是否發(fā)生的。異常控制流轉移是漏洞攻擊過程中必不可少的過程,從控制流轉移的角度出發(fā)來對漏洞攻擊行為進行檢測可以從根本上判定目標程序是否受到攻擊。
本文進行IOS指針攻擊檢測主要是基于控制流完整性(control flow integrity,CFI)檢查的思想進行的??刂屏魍暾詸z查的方法通過限定控制流轉移的范圍,把目的地址在合法地址集合之外的控制流判定為攻擊。fpcheck[16]將二進制程序的代碼段作為間接跳轉控制流的合法轉移地址集合,并不適用于IOS的指針攻擊檢測,本文借鑒了fpcheck的檢測思想,將數(shù)據(jù)偏移量交叉引用代碼[17]的入口地址和函數(shù)入口點作為間接跳轉控制流的合法轉移地址集合,實現(xiàn)了對函數(shù)調用返回地址和間接跳轉等控制流的監(jiān)控。結合Cisco IOS本身的特點,提出的Cisco IOS指針攻擊檢測框架如圖2所示,主要包括兩個階段:在靜態(tài)分析與動態(tài)跟蹤階段,通過逆向二進制的IOS文件,定位出函數(shù)的入口點和數(shù)據(jù)偏移量交叉引用代碼的入口地址,來構造間接跳轉指令的合法轉移地址集合;在動態(tài)檢測階段,實現(xiàn)對控制流轉移合法性的判定。
圖2 Cisco IOS指針攻擊檢測框架
3.1 形式化描述
在進行Cisco IOS指針攻擊檢測框架的介紹之前,本文給出相關的形式化定義。同時,下文的指令均以PowerPC指令集為例進行分析。
定義1 控制流CF(control flow)是由間接跳轉指令indir_branch和返回指令return組成的。在Cisco IOS中,間接跳轉指令主要包括bctr、bctrl,返回指令有blr。
定義2 函數(shù)入口點集合F指的是Cisco IOS中所有函數(shù)(包括庫函數(shù)和普通函數(shù))的開始地址。Cisco IOS是在Unix下經(jīng)過gcc交叉編譯生成的,通過靜態(tài)分析發(fā)現(xiàn)Cisco IOS中的庫函數(shù)的地址和普通函數(shù)一樣是固定的,因此,本文將兩者當做普通的函數(shù)來使用。
定義3 數(shù)據(jù)偏移交叉引用代碼入口點集合K表示Cisco IOS中所有具有數(shù)據(jù)偏移交叉引用屬性的代碼段的開始地址。
定義4 跳轉表查詢函數(shù)J是查詢地址為x的間接跳轉指令對應的跳轉表的函數(shù)。其中X表示Cisco IOS中所有bctr指令的地址集合,?x∈X,Y表示地址x對應的跳轉表中地址的集合。
定義5 間接跳轉控制流轉移地址集合I表示Cisco IOS中間接跳轉控制流的合法轉移地址集合。I=B∪B′,其中B表示bctr指令的合法轉移地址集合,B′表示bctrl指令的合法轉移地址集合。
定義6 影子棧S表示在攻擊檢測過程中維護函數(shù)調用返回地址的影子棧,主要是用于判斷函數(shù)調用返回控制流的合法性。
定義7 攻擊判定規(guī)則D用于判定Cisco IOS是否受到攻擊的規(guī)則。當D=1時,表示判定攻擊存在,否則,判定攻擊不存在。
3.2 合法轉移地址集合構造
本文監(jiān)控的對象主要分為間接跳轉指令和函數(shù)調用返回指令兩類。
針對函數(shù)調用返回指令,本文在對攻擊行為動態(tài)檢測的過程中維護了一個用于存儲函數(shù)返回地址的影子棧,當發(fā)生函數(shù)調用返回時,系統(tǒng)會判斷函數(shù)返回地址是否在影子棧中來判定攻擊。
針對間接跳轉指令,本文采用靜態(tài)分析和動態(tài)跟蹤相結合的方法來完成I的構造。對于Cisco IOS而言,I是由間接跳轉指令bctr和bctrl兩者合法的目的地址集合B和B′構成。一方面,通過對Cisco IOS逆向分析之后發(fā)現(xiàn),bctr指令是用于處理switch等分支跳轉的指令,對于一個確定版本的IOS來說,bctr的目的地址處于跳轉表限定的范圍內。因此,B可以通過逆向分析的方法來構造,對跳轉表中的地址進行監(jiān)控可以防止修改跳轉表的攻擊,因為Cisco IOS中的數(shù)據(jù)段是可寫的;另一方面,通過對Cisco IOS動態(tài)執(zhí)行時的bctrl指令進行跟蹤分析發(fā)現(xiàn),其目的地址不僅僅是F、K,也可以是間接跳轉指令的目的地址。因此,對Cisco IOS逆向分析同樣可以構造B′。
目前普遍使用的權威反匯編工具是IDA Pro,并且支持IOS逆向分析的工具只有IDA的某些版本。如前文所述,在Cisco IOS中存在兩種函數(shù),即庫函數(shù)和一般的功能函數(shù),它們的地址在IOS中均是靜態(tài)值。為了更好地識別函數(shù)調用的異??刂屏?對于獲取的函數(shù)信息需滿足以下要求:①獲取函數(shù)信息的地址完整性,這是構造F必須滿足的條件,只有獲取完整的函數(shù)地址,才能保證函數(shù)入口點的完整性;②獲取函數(shù)控制流圖的完整性,函數(shù)調用CFG的完整性保證了函數(shù)功能的完整性;③對函數(shù)控制轉移分析的準確性,函數(shù)調用控制流轉移的準確性保證了對異常控制流識別的準確性。
在完成對Cisco IOS的逆向分析之后,可以根據(jù)匯編指令代碼以及CFG來構造B和B′,其中B的構造過程如下。
步驟1 對逆向Cisco IOS得到的匯編代碼從第一條指令開始遍歷。
步驟2 當遍歷的指令是間接跳轉指令bctr時,轉至步驟3;否則轉至步驟4。
步驟3 根據(jù)生成的CFG查詢跳轉表中的地址,并將bctr指令的地址和跳轉表中的地址集合作為一條記錄添加到B中。當本條指令不是最后一條指令時轉至步驟4;否則轉至步驟5。
步驟4 繼續(xù)遍歷下一條匯編指令,轉至步驟2。
步驟5 遍歷結束,輸出B集合。
B′同樣是通過遍歷IOS的匯編指令代碼進行構建的,查詢的是函數(shù)的入口點地址F和K,這里不再贅述。至此,間接跳轉控制流的合法轉移地址集合I構造完畢。
3.3 攻擊判定
3.3.1 函數(shù)調用返回控制流監(jiān)控 Cisco IOS在運行過程中,函數(shù)調用返回時會發(fā)生控制流的轉移。正常情況下,函數(shù)返回地址是函數(shù)在被調用時壓入函數(shù)棧幀中的地址,并通過LR寄存器傳遞。本文對函數(shù)返回控制流的監(jiān)控是在函數(shù)調用完畢返回之前進行的,如果發(fā)現(xiàn)被調用函數(shù)的返回地址非法,則判定受到了指針攻擊。在實現(xiàn)過程中本文借鑒了文獻[18]的檢測思想,在系統(tǒng)中動態(tài)維護一個用于存儲函數(shù)返回地址的影子棧,并在發(fā)生函數(shù)調用時,將返回地址存儲到影子棧中。當函數(shù)調用返回時,會檢查目的地址是否和影子棧中保存的地址相匹配,若不匹配則判定為異常控制流轉移,同時記錄控制流轉移的信息??紤]到異??刂屏鬓D移時,返回地址不一定在棧頂,本文只驗證函數(shù)返回地址是否在影子棧中,系統(tǒng)在驗證時會從棧頂?shù)綏5走M行遍歷查找,當查找到函數(shù)的返回地址時,則將返回地址及之前遍歷過的所有地址從棧中彈出。若在影子棧中沒有發(fā)現(xiàn)被調用函數(shù)的返回地址,則判定此控制流為異??刂屏鳌瘮?shù)調用返回控制流轉移合法性的判定規(guī)則為
(1)
式中:x表示函數(shù)調用返回指令的目的地址。D=0表示函數(shù)調用返回控制流合法;否則,判定為非法。
3.3.2 間接跳轉控制流監(jiān)控 間接跳轉控制流有兩類:一類是使用bctr指令進行間接跳轉的控制流;另一類是使用bctrl指令進行間接跳轉的控制流。間接跳轉控制流bctrl的合法地址應當是屬于F和K的并集,而bctr的合法轉移地址應當屬于其跳轉表所限定的范圍。因此,本文定義間接跳轉控制流合法性的判定規(guī)則如下
(2)
式中:y表示bctr指令的轉移地址;x表示對應bctr指令的地址。D=1表示間接跳轉控制流非法,否則表示合法。
(3)
式中:y′表示bctrl間接跳轉指令執(zhí)行時的目的地址。D=1表示間接跳轉控制流非法,否則說明控制流合法。
3.4 攻擊行為分析
本文在攻擊檢測過程中,當發(fā)現(xiàn)異常控制流轉移之后,會對異??刂屏骷捌渲蟮南嚓P指令和函數(shù)調用信息進行記錄。對于指令,記錄其執(zhí)行時的內存地址、操作數(shù)的值以及指令的類型;函數(shù)調用信息的記錄主要有函數(shù)的調用地址、運行時的參數(shù)值以及函數(shù)的返回值等信息。
通過對上述異??刂屏鞯霓D移信息進行分析,可以還原整個漏洞利用的過程。例如通過對緩沖區(qū)溢出攻擊過程中的異??刂屏鬟M行分析,可以了解漏洞觸發(fā)時溢出函數(shù)的地址以及修改的返回地址等信息;通過對異常控制流鏈的分析,可以了解攻擊者對于漏洞利用的步驟,對于網(wǎng)絡安全的提升具有重要意義。
為了驗證本文提出方法的有效性,基于dynamips設計實現(xiàn)了一個Cisco IOS指針攻擊檢測系統(tǒng)CIDS。為了降低系統(tǒng)運行的時間開銷,本文將間接跳轉指令對應的跳轉表用hash鏈表結構存儲,將F∪K中的地址用bitmap結構存儲。本文選取了IOS的公開漏洞作為樣本,從功能和性能兩個方面對CIDS進行測試。限于篇幅,在測試過程中只記錄了部分的實驗結果。實驗中CIDS系統(tǒng)運行于ubuntu12.04系統(tǒng)之上,并且支持多種型號的Cisco路由器的硬件虛擬化。
4.1 功能測試
下面以FTP MKD漏洞[19]樣本為例,對CIDS的測試過程如下。
首先,啟動CIDS加載運行Cisco 2600系列的主版本號為12.3的某款IOS,并在上面開啟FTP服務。其次,利用測試樣本向CIDS發(fā)送FTP MKD漏洞利用數(shù)據(jù)包,其中包含了shellcode漏洞利用代碼,在處理數(shù)據(jù)包的過程中會出現(xiàn)異??刂屏鞯霓D移。CIDS將不在合法轉移地址集合內的控制流轉移判定為攻擊,并記錄異常的控制流轉移時的上下文信息,如圖3所示。
本次攻擊的過程分為3個步驟。首先,在地址0x80a07e44處,blr函數(shù)返回地址出現(xiàn)異常,被修改為0x801523f8,在函數(shù)返回時,CPU會跳轉到地址0x801523f8處執(zhí)行,滿足式(1)所示的報警規(guī)則。其次,在地址0x80152424處,blr函數(shù)返回地址出現(xiàn)異常,返回地址被修改為0x80f23c58,之后函數(shù)返回,CPU跳轉到此處執(zhí)行,滿足式(1)所示的報警規(guī)則。最后,在地址0x80f23c74處,bctrl間接跳轉控制流出現(xiàn)異常,指令地址變成0x81e46e24,通過逆向分析發(fā)現(xiàn),該地址處于Cisco IOS的數(shù)據(jù)段,即CPU跳轉執(zhí)行了shellcode,滿足式(3)所示的報警規(guī)則。
圖3 異??刂屏鬓D移的信息
為了測試CIDS對Cisco IOS指針攻擊檢測的適用性,實驗中使用存在于相關版本IOS中的TFTP長文件名漏洞[20]、NHRP漏洞[21]、IP option[22]等漏洞作為測試樣本,對不同型號的路由器進行了測試。測試記錄的結果見表1。
表1 CIDS攻擊測試結果統(tǒng)計
由表1的測試結果可以看出,CIDS能夠準確檢測出Cisco IOS漏洞利用的攻擊行為,并可以記錄異常控制流的相關信息,證明了本文檢測方法的有效性。
4.2 性能測試
為了測試CIDS的檢測效率,實驗中對漏洞攻擊檢測的時間進行了測試,并與文獻[10]提出的CtaintDetect系統(tǒng)進行了對比分析。由于CtaintDetect和CIDS均是基于dynamips系統(tǒng)開發(fā)的,因此在測試過程中針對上述4個漏洞,本文對比測試了原型dynamips系統(tǒng)、CtaintDetect和CIDS三者在攻擊過程中的時間消耗比,如圖4所示,其中時間消耗比以dynamips原型系統(tǒng)的時間消耗為基準。實驗中選取了多個不同版本的IOS進行測試,針對每一個漏洞,其時間消耗比是多個樣本的平均值。
圖4 時間消耗對比測試結果
由圖4可以看出,CtaintDetect系統(tǒng)的時間消耗大概是dynamips原型系統(tǒng)的3.8倍,CIDS大概是dynamips原型系統(tǒng)的1.5倍,可以滿足性能方面的需求,因此與CtaintDetect系統(tǒng)相比,本文所提方法檢測效率更高。
從上述實驗結果可知,對于Cisco IOS的指針攻擊檢測而言,CIDS可以成功捕獲攻擊,并可以記錄攻擊過程中的異常控制流轉移的信息。與利用動態(tài)污點分析技術實現(xiàn)的CtaintDetect系統(tǒng)相比,CIDS進行攻擊檢測的時間開銷較低,證明了本文所提方法的有效性,并具有較高的檢測效率,可以為網(wǎng)絡安全提供支撐。
4.3 局限性分析
從實驗測試的結果來看,本文提出的針對Cisco IOS指針攻擊的檢測方法具有較好的檢測效果,但是也存在一定的局限性。針對指針攻擊檢測方法,在處理間接跳轉時,是以函數(shù)入口地址以及數(shù)據(jù)偏移量交叉引用代碼入口地址為合法的轉移地址集合,當異常的間接跳轉地址屬于合法轉移地址集合,并直接通過此數(shù)據(jù)偏移量交叉引用代碼或者函數(shù)來實現(xiàn)惡意攻擊時,本文方法會將此次間接跳轉判定為合法的控制流轉移,此時出現(xiàn)漏報。然而,目前主流針對Cisco IOS的漏洞利用攻擊的目的是為了獲取系統(tǒng)的訪問權限,一般通過開啟遠程的vty來實現(xiàn),通過單個函數(shù)或者數(shù)據(jù)偏移量交叉引用代碼很難完成上述功能,因此,此種攻擊方法很難在實際的攻擊過程中應用。
本文研究了Cisco IOS的指針攻擊檢測技術,提出了采用控制流監(jiān)控的Cisco IOS指針攻擊檢測方法。首先對比分析了當前二進制軟件的漏洞攻擊檢測方法,對Cisco IOS的分支轉移過程進行了深入分析,介紹了本文解決思路和檢測框架。其次,實現(xiàn)了Cisco IOS的指針攻擊檢測技術,包括不同控制流合法轉移地址集合的構造,不同攻擊行為的判定規(guī)則的設定等。最后,實現(xiàn)了一個Cisco IOS指針攻擊檢測系統(tǒng)CIDS,通過實驗對本文所提檢測方法的有效性進行了驗證,并與CtaintDetect系統(tǒng)進行了對比測試。實驗結果證明了本文所提方法的有效性。CIDS支持對攻擊流程的分析,并具有較高的檢測效率,有助于提升網(wǎng)絡安全性。
[1] IDC. IDC’s worldwide quarterly Ethernet switch and router tracker shows record ethernet switch market size, weaker router market [EB/OL]. (2014-12-03)[2015-03-15]. http: ∥www.idc.com/getdoc.jsp?containerId=prUS25266314.
[2] LINDER F. Design and software vulnerability in embedded system [EB/OL]. (2003-04-25)[2014-08-19]. https: ∥www.blackhat.com/presentation/bh-usa-03/bh-us-03-fx.pdf.
[3] LYNN M. The holy grail: Cisco IOS shellcode and exploitation techniques [EB/OL]. (2005-11-12)[2014-10-14]. http: ∥cryptome.org/lynn-cisco.pdf.
[4] MUNIZ S. Killing the myth of Cisco IOS rootkits: DIK (Da IOS rootKit) [EB/OL]. (2008-03-26)[2014-06-19]. http: ∥www.coresecurity.com/content/killing-the-myth-cisco-ios.pdf.
[5] LINDER F. Cisco IOS router exploitation [EB/OL]. (2009-06-22)[2014-09-02]. http: ∥www.blackhat. com/presentations/bh-usa-09/Linder/BH_US_09_ Linder_RouterExploit_PAPER.pdf.
[6] MUNIZ S, ORTEGA A. Fuzzing and debugging Cisco IOS [EB/OL]. (2011-12-21)[2014-07-18]. http: ∥www.pdfpedia.com/download/13758/fuzzing-and-debugging-cisoc-ios-blackhat-europe-2011-pdf.html.
[7] LINDER F. Developments in Cisco IOS forensics [EB/OL]. (2009-08-14)[2013-03-10]. http: ∥www. blackhat.com/presentions/bn-usa-08/Linder/BH_US_08_Linder_Developments_in_IOS_Froensics.pdf.
[8] Recurity Labs. CIR [EB/OL]. (2008-02-16)[2014-01-12]. http: ∥cir. recurity.com.
[9] SU Xiaoyan, WU Dongying, XIAO Da, et al. Research on Cisco IOS security mechanisms [C]∥ Proceedings of the International Conference on Computer Science and Information Technology. Piscataway, NJ, USA: IEEE, 2012, 51: 653.
[10]陳立根, 劉勝利, 高翔, 等. 一種基于動態(tài)污點分析的Cisco IOS漏洞攻擊檢測方法 [J]. 小型微型計算機系統(tǒng), 2014, 35(8): 1798-1802. CHEN Ligen, LIU Shengli, GAO Xiang, et al. A vulnerability attack detection method based on dynamic taint analysis for Cisco IOS [J]. Journal of Chinese Computer Systems, 2014, 35(8): 1798-1802.
[11]COWAN C, PU C, MAIER D, et al. StackGuard: automatic adaptive detection and prevention of buffer-overflow attacks [C]∥Proceedings of the 7th Conference on USENIX Security Symposium. Berkeley, CA, USA: USENIX, 1998: 63-78.
[12]WANG Hua, GUO Yao, CHEN Xianqqun. FPValidator: validating type equivalence of function pointers on the fly [C]∥Proceedings of the 2009 Annual Computer Security Applications Conference. Piscataway, NJ, USA: IEEE, 2009: 51-59.
[13]NEWSOME J, SONG D. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software [C]∥Proceedings of the 12th Annual Network and Distributed System Security Symposium. Reston, VA, USA: ISOC, 2005: 1-17.
[14]ABADI M, BUDIU M, ERLINGSSON U, et al. Control-flow integrity [C]∥Proceedings of the 12th ACM Conference on Computer and Communications Security. New York, USA: ACM, 2005: 340-353.
[15]ANUZELLI G, FILES N, EMULATION P I X, et al. Dynamips/Dynagen: tutorial [EB/OL]. (2011-10-07)[2013-07-13]. http: ∥materias.fi.uba.ar/7543 /2010-02/download/DynamipsTutorial.doc.
[16]代偉, 劉智, 劉益和. 基于地址完整性檢查的函數(shù)指針攻擊檢測 [J]. 計算機應用, 2015, 35(2): 424-429. DAI Wei, LIU Zhi, LIU Yihe. Function pointer attack detection with address integrity checking [J]. Journal of Computer Applications, 2015, 35(2): 424-429.
[17]EAGLE C. The IDA pro book: the unofficial guide to the world’s most popular disassembler [M]. San Francisca, CA, USA: No Starch Press, 2011.
[18]PRAKASH A, YIN H, LIANG Z. Enforcing system-wide control flow integrity for exploit detection and diagnosis [C]∥Proceedings of the 8th ACM SIGSAC Symposium on Information, Computer and Communications Security. New York, USA: ACM, 2013: 311-322.
[19]CISCO. Multiple vulnerabilities in the IOS FTP server [EB/OL]. (2007-05-09)[2013-11-10]. http: ∥tools. cisco.com/security/center/CiscoSecurityAdvisory/cisco-sa-20070509-iosftp.
[20]CISCO. TFTP long filename vulnerability [EB/OL]. (2002-07-20)[2014-04-10]. http: ∥tools.cisco.com/security/center/CiscoSecurityAdvisory/cisco-sa-2002 0730-ios-tftp-lfn.
[21]CISCO. Cisco IOS next hop resolution protocol vulnerability [EB/OL]. (2007-08-08)[2014-05-03]. http: ∥tools.cisco.com/security/center/CiscoSecurityAdvisory/cisco-sa-20070808-nhrp.
[22]CISCO. Crafted IP option vulnerability [EB/OL]. (2007-01-24)[2014-04-18]. http: ∥tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20070124-crafted-ip-option.
(編輯 武紅江)
A Method for Detecting Cisco IOS Pointer Attack Using Control Flow Monitoring
LIU Shengli,ZOU Rui,PENG Fei,WU Dongying,XIAO Da
(State Key Laboratory of Mathematical Engineering and Advanced Computing, The PLA Information Engineering University, Zhengzhou 450000, China)
A method to detect Cisco IOS(internetwork operating system) pointer attacks using control flow monitoring is proposed to solve the problem that current methods for detecting exploit attacks have low detection efficiency. Legal transfer address collection (LTAC) is constructed for different categories of control flows through a combination of static analysis and dynamic tracking. When an event of control flow transfer occurs, the control flow with jump address out of LTAC will be determined to be an attack and the details of the exception control flow transfer can be captured. Experimental results show that the proposed method can accurately capture pointer attacks against Cisco IOS, and support the analysis of attack process. Comparisons with the current detection methods show that the proposed method has higher detection efficiency, and can help to enhance network security.
Cisco IOS; pointer attack; control flow monitoring; cyber security; attack detection
2015-04-22。
劉勝利(1973—),男,副教授。
國家科技支撐計劃資助項目(2012 BAH47B01);國家自然科學基金資助項目(61271252)。
時間:2015-11-18
10.7652/xjtuxb201512011
TP309.08
A
0253-987X(2015)12-0065-06
網(wǎng)絡出版地址:http:∥www.cnki.net/kcms/detail/61.1069.T.20151118.1614.002.html