網(wǎng)絡技術(shù)具有資源共享、信息傳輸與集中處理、負載均衡與分布處理和綜合信息服務等功能,給我們的工作和生活提供了極大的方便。網(wǎng)絡技術(shù)豐富多彩,吸引著越來越多的人使用它,其正在改變我們長久以來形成的思維模式和生活模式。但是其在使用過程中也存在著一些漏洞,諸如帶寬短缺、IP地址資源匱乏、數(shù)據(jù)驅(qū)動型漏洞等。而這些漏洞的存在也影響著我們的正常安全使用,隨著科學技術(shù)的不斷進步,相信網(wǎng)絡技術(shù)所存在的漏洞都能夠逐一得到解決。
這里我們將對基于網(wǎng)絡技術(shù)的兩種數(shù)據(jù)驅(qū)動型漏洞形成原理進行介紹。攻擊者希望利用數(shù)據(jù)驅(qū)動型漏洞對網(wǎng)絡技術(shù)進行攻擊,進而得到自己想要的東西。為避免數(shù)據(jù)驅(qū)動型漏洞的出現(xiàn),我們應當了解其基本的形成原理,這樣才能夠從源頭上保證信息安全。
其一是緩沖區(qū)溢出漏洞。其攻擊原理是向程序中的緩沖區(qū)寫入超出其邊界的數(shù)據(jù),造成溢出。攻擊者所想的到的效果是溢出所產(chǎn)生的錯誤程序能夠執(zhí)行攻擊者預設(shè)的代碼,進而順利打開遠程連接的 She11,以得到自己想得到的信息。而棧溢出是最為常見的緩沖區(qū)溢出方式。程序編碼都有固定的函數(shù)表達方式,如果更改了函數(shù)的表達方式就會導致棧溢出。攻擊者通常會對某個函數(shù)進行調(diào)用,并在棧頂為調(diào)用的函數(shù)分配一個固定的棧幀結(jié)構(gòu),這樣就可以實現(xiàn)益處。攻擊者如果想要實現(xiàn)對程序的控制和信息的獲取,就可以將返回地址值覆蓋,這樣一來就可以使函數(shù)在返回程序的時候就會轉(zhuǎn)向新的地址繼續(xù)執(zhí)行,就可以實現(xiàn)對程序的控制和信息的獲取。
其二是格式化字符串漏洞。其形成原理是,當 Printf()系列函數(shù)被調(diào)用的時候,會從字符串里面讀取字符,如果遇到格式化的字符的時候,函數(shù)會按照控制字符從輸出表項對應的變量中讀取數(shù)據(jù),然后按照控制字符的規(guī)定格式輸出數(shù)據(jù),這樣就可以實現(xiàn)對系統(tǒng)程序的控制。程序的運行是依托于代碼的,如果更改了代碼內(nèi)的函數(shù)編排順序,就可以改變程序的運行方向,達到攻擊者的目的。而格式化字符串漏洞則是通過改變字符串的運行方式實現(xiàn)對系統(tǒng)的控制的。
網(wǎng)絡技術(shù)是從1990年左右逐漸發(fā)展起來的一項新技術(shù),而從那個時候開始,針對數(shù)據(jù)驅(qū)動型漏洞的研究就已經(jīng)開始了,發(fā)展到現(xiàn)在,對基于數(shù)據(jù)驅(qū)動漏洞的攻擊行為和方式的研究已經(jīng)比較成熟。數(shù)據(jù)驅(qū)動型漏洞的攻擊行為,從不同的角度觀察有著不同的結(jié)果。例如從程序員的角度觀察,基于網(wǎng)絡技術(shù)的數(shù)據(jù)驅(qū)動型漏洞的緩沖區(qū)溢出應當是不可避免的。從網(wǎng)絡技術(shù)開始應用的時候,國內(nèi)外就開始對基于數(shù)據(jù)驅(qū)動型漏洞的攻擊行為進行研究了。比較典型的有2000年的時候,在acm sigsoft會議上,CERT的Richard Pethia認為數(shù)據(jù)驅(qū)動型漏洞是唯一最重要的安全問題。而從我們現(xiàn)在的角度來看,他的這句話是及其正確的。目前我們在網(wǎng)絡技術(shù)的應用中,數(shù)據(jù)驅(qū)動型漏洞確實是唯一最重要的安全問題。而國內(nèi)對基于網(wǎng)絡技術(shù)的數(shù)據(jù)驅(qū)動型攻擊技術(shù)的研究起步較晚,沒有形成相應的體系,只有部分黑客和安全人員在這一方方面有著深入的研究。另外,國內(nèi)的一些比較知名的殺毒軟件,在進行軟件開發(fā)的時候,也對基于網(wǎng)絡技術(shù)的數(shù)據(jù)驅(qū)動型漏洞檢測技術(shù)有所研究。
目前針對數(shù)據(jù)驅(qū)動型漏洞的檢測主要有兩種,即動態(tài)監(jiān)測和靜態(tài)檢測。動態(tài)監(jiān)測技術(shù)主要是從操作系統(tǒng)的底層出發(fā),針對C語言編輯器本身的特征,對運行中的程序進行動態(tài)追蹤和保護。動態(tài)監(jiān)測顧名思義,需要編碼程序在運行過程中進行檢測工作,在程序運行過程中,如果收到惡意攻擊或者非法篡改代碼的情況,就會自動發(fā)出警告信息或者直接將程序停止運行,避免危險的侵入。這種技術(shù)主要包含增強編譯器技術(shù)、黑盒測試技術(shù)和安全鏈接技術(shù)等。而靜態(tài)檢測技術(shù)則依托于源代碼,并不需要程序運行。靜態(tài)檢測技術(shù)在應用過程中需要得到編譯理論的支持和對源代碼進行分析和模式匹配等,這樣才能夠保證靜態(tài)檢測技術(shù)的正常運行。靜態(tài)檢測技術(shù)在工作過程中,如果識別到漏洞信息,就會對其進行準確的定位,并發(fā)出警告和進行自動修復。在具體的應用過程中,可以結(jié)合這兩種技術(shù)進行使用,以最大程度的避免漏洞對網(wǎng)絡技術(shù)的損害。
數(shù)據(jù)驅(qū)動型漏洞的檢測系統(tǒng)依托的是語義分析的原型檢測系統(tǒng),是以編譯原理中的詞法分析和語法分析作為基礎(chǔ)的,采用的是Wagner對緩沖區(qū)的數(shù)學描述方法,實現(xiàn)語義方面的檢測。而原型系統(tǒng)主要包括四個模塊,即語法分析模塊、緩沖區(qū)預先搜索模塊、創(chuàng)建程序執(zhí)行流程模塊及綜合處理模塊。四個模塊分別具有自己的作用,通過四個模塊的協(xié)調(diào)配合,及時的監(jiān)測出與源代碼所不同的地方,并發(fā)出預警和盡可能的進行自我修復。語法分析模塊負責的事讀入源代碼文件及源代碼文件的關(guān)鍵字等部分,而緩沖區(qū)預先搜索模塊則是在源代碼系統(tǒng)中進行準確的緩沖區(qū)定位,而創(chuàng)建程序執(zhí)行流程模塊則是遍歷源代碼,生成程序執(zhí)行流程的有向圖,而綜合處理模塊則是采用語法分析、語義分析的手段對源代碼進行檢測,并及時的得出檢測的結(jié)果。
緩沖區(qū)溢出漏洞的檢測。針對緩沖區(qū)益處漏洞的檢測,采用的是緩沖區(qū)搜索的方法,對緩沖區(qū)進行全面的搜索,對溢出位置進行及時的警告,通過停止程序運行等方式對益處問題進行解決,從而保證信息安全。數(shù)據(jù)驅(qū)動型漏洞的形成與源代碼中緩沖區(qū)的開辟有著不可分割的關(guān)系,所以需要對源代碼的緩沖區(qū)進行搜索和預判,這樣才能夠及時的發(fā)現(xiàn)溢出位置,并進行解決,避免信息安全問題的出現(xiàn)。
格式化字符串漏洞的檢測。不同于其他漏洞的形成原理,格式化字符串漏洞是通過對格式化字符串實現(xiàn)的系統(tǒng)漏洞,通常是由 Printf()以及同一類的函數(shù)形成的,所以對其的漏洞檢測工作也比較簡單。針對格式化字符串攻擊的局限性,可以采用對源代碼進行檢測的方式實現(xiàn)對格式化字符串漏統(tǒng)的檢測。具體的檢測方式通常會采用模式匹配算法。這樣可以對字符串中的函數(shù)進行逐一的對比,對于出現(xiàn)錯誤或者出現(xiàn)缺少的參數(shù),會及時的提出字符串缺失或錯誤的信號,引起檢測者的注意。
數(shù)據(jù)驅(qū)動型漏洞是現(xiàn)有階段唯一最重要的安全問題,必須著手解決數(shù)據(jù)驅(qū)動型漏洞,才能夠保證信息安全。當軟件出現(xiàn)漏洞的時候,極其容易被木馬、病毒等利用,而產(chǎn)生信息安全問題,所以解決漏洞問題勢在必行。而數(shù)據(jù)驅(qū)動型漏洞又是漏洞問題中出現(xiàn)最多的一種形式。所以有必要加強數(shù)據(jù)驅(qū)動型漏洞的系統(tǒng)檢測工作,這樣才能夠從根本上保證網(wǎng)絡技術(shù)安全和網(wǎng)絡信息安全。