欧美18videos极品massage,中文字幕久久精品一区二区三区 ,性xxxxfreexxxxx欧美,最近国语高清免费观看视频,亚洲一卡2卡三卡4卡乱码

  • 歡迎使用超級蜘蛛池(CJZZC)網(wǎng)站外鏈優(yōu)化,收藏快捷鍵 CTRL + D

漏洞是如何产生的,漏洞是如何挖掘出来的


大家都知道黑客發(fā)起攻擊、入侵等行為都需要挖掘其網(wǎng)絡、系統(tǒng)、程序的"漏洞",然后利用其"漏洞"來完成目標實施,那么"漏洞是如何產(chǎn)生的"?又是如何被挖掘出來被利用的呢?

今天就以本篇文章內(nèi)容給大家詳細闡述一下"漏洞的定義、趨勢、產(chǎn)生、分類、以及漏洞的挖掘和分析技術(shù)詳解"!

漏洞是如何產(chǎn)生的,漏洞是如何挖掘出來的

一、漏洞的基本理解

我們經(jīng)常聽到漏洞這個概念,可什么是安全漏洞?

官方定義:漏洞是在硬件、軟件、協(xié)議的具體實現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的下訪問或破壞系統(tǒng)。

基本理解:漏洞是硬件、軟件、協(xié)議在生命周期的各個階段(設(shè)計、實現(xiàn)、運維等過程)中產(chǎn)生的某類問題,這些問題會對系統(tǒng)的安全(機密性、完整性、可用性)產(chǎn)生影響。

有人經(jīng)常理解為BUG就是漏洞,其實它們兩者之間還是有很大區(qū)別的,漏洞與Bug并不等同,他們之間的關(guān)系基本可以描述為:大部分的Bug影響功能性,并不涉及安全性,也就不構(gòu)成漏洞;大部分的漏洞來源于Bug,但并不是全部,它們之間只是有一個很大的交集。

漏洞是如何產(chǎn)生的,漏洞是如何挖掘出來的

二、漏洞的趨勢

近幾年來漏洞數(shù)量依然處在上升趨勢,不僅如此,新漏洞從公布到被利用的時間越來越短,黑客對發(fā)布的漏洞信息進行分析研究,往往在極短時間內(nèi)就能成功利用這些漏洞。除了利用已知漏洞,黑客們也善于挖掘并利用一些尚未公布的漏洞,發(fā)起病毒攻擊,或出售漏洞資料,滿足經(jīng)濟目的。因此漏洞的研究值得感興趣的小伙伴們深度研究,國家信息安全漏洞共享平臺(CNVD),對漏洞研究有成果的會員會給予相應獎勵。

漏洞是如何產(chǎn)生的,漏洞是如何挖掘出來的


三、漏洞產(chǎn)生的主要原因

漏洞是在硬件、軟件、協(xié)議的具體實現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的情況下訪問或破壞系統(tǒng)。即某個程序(包括操作系統(tǒng))在設(shè)計時未考慮周全,當程序遇到一個看似合理,但實際無法處理的問題時,引發(fā)的不可預見的錯誤

它不是安裝的時候的結(jié)果 也不是永久后的結(jié)果而是編程人員的人為因素,在程序編寫過程,為實現(xiàn)不可告人的目的,在程序代碼的隱蔽處保留后門,受編程人員的能力、經(jīng)驗和當時安全技術(shù)所限,在程序中難免會有不足之處,輕則影響程序效率,重則導致非授權(quán)用戶的權(quán)限提升。

漏洞是如何產(chǎn)生的,漏洞是如何挖掘出來的


以軟件漏洞來舉例的產(chǎn)生的主要來源如下:

1、緩沖區(qū)溢出(buffer overflows)

緩沖區(qū)溢出是軟件安全漏洞的主要來源。所謂緩沖區(qū)溢出,指的就是代碼寫入的數(shù)據(jù)超過了緩沖區(qū)的邊界,比如向大小10KB的緩沖區(qū)寫如12KB的數(shù)據(jù),那么這個緩沖就溢出了。當然,前向溢出也算溢出,也就是寫入的數(shù)據(jù)寫入到了緩沖區(qū)的起始邊界之前。

緩沖區(qū)溢出是一種比較常見的編碼錯誤,特別是在字符串處理過程中。緩沖區(qū)造成的危害也是比較多樣的。比較輕微的就是程序直接崩潰,除了用戶體驗也沒什么大損失;比較嚴重的就是錯誤的寫入覆蓋了其他敏感數(shù)據(jù),造成數(shù)據(jù)的丟失;最嚴重的莫過于執(zhí)行惡意代碼,因為數(shù)據(jù)寫入越界,惡意代碼可以將原先正常的函數(shù)修改為自己的代碼,從而獲得整個軟件的執(zhí)行權(quán)。

緩沖區(qū)溢出根據(jù)溢出的內(nèi)存類型分為:

棧溢出()

棧內(nèi)的數(shù)據(jù)溢出。

堆溢出(heap overflow)

堆內(nèi)的數(shù)據(jù)溢出,

根據(jù)溢出的類型可分為overflow及underflow

overflow,寫入的數(shù)據(jù)超過了緩沖的邊界

underflow, 緩沖中有用數(shù)據(jù)的大小小于緩沖區(qū)長度,這有可能造成臟數(shù)據(jù)的問題

2、未驗證輸入(Unvalidated Input)

一款應用往往需要接收各種各樣的輸入,針對一款iOS應用,主要的輸入有讀取文件,讀取用戶輸入,讀取網(wǎng)絡傳輸數(shù)據(jù),或通過URL被啟動(URL Schema)。各種類型的輸入都有可能是非法的,甚至是惡意的,所以針對所有類型的輸入,應用都要進行檢驗,確保輸入的數(shù)據(jù)是符合程序要求的,合理的,合法的數(shù)據(jù)。

非法輸入可能造成的危害主要有:

輸入的數(shù)據(jù)大于接收緩沖,會造成緩沖溢出

格式化字符串注入,對這些字符串進行處理時,如果不小心會造成程序的崩潰,或某些敏感數(shù)據(jù)被篡改

URLSchema中的命令為惡意命令,執(zhí)行了惡意的命令

代碼注入,輸入的URL或命令中帶有腳本、代碼等惡意片段

3、競爭條件(Race Condtions)

如果一個任務的完成需要幾個特定的子任務以特定的順序完成來完成,那么這個任務就是存在競爭條件這個漏洞的。黑客可以通過修改事件完成的順序來改變應用的行為。

競爭條件類型的漏洞主要有以下兩種:

Time of Check Versus Time of Use (TOCTOU)

應用運行的過程中,在某個操作之前,比如寫文件,都會檢查一下文件是否存在,在檢查與真正的寫入之間的間隔就是一個可以被利用的Race Condition,惡意軟件可以將用戶檢查的文件替換成自己的文件,這樣數(shù)據(jù)就泄露了。

Signal Handling

處理信號的過程中,是隨時可以被另一個信號的處理打斷的,如果在處理一個信號的過程中另一個信號到來,那么這個過程會被馬上中斷,這樣,系統(tǒng)就會處于一種未知的狀態(tài)。

4、進程間通信(Interprocess Communication)

進程間通信采用的方法很多,共享內(nèi)存,管道,油槽等,由于通信管道兩端的應用的不同,那么,有可能存在這鐘管道被惡意利用的肯能性,也就是說,進程間通信也是軟件漏洞的一個來源,當與另一個應用通信的時候,要默認此應用是不安全的,要對通信的內(nèi)容進行安全方面的驗證。

5、不安全的文件操作(Insecure File Operation)

應用對文件進行處理時,若果沒有進行進行有效的驗證,那么有可能處理的文件已經(jīng)是被惡意軟件修改過的,是不安全的。所以,進行有效的驗證是安全處理文件的重要保證。不安全文件操作類型有以幾種:

讀取或?qū)懭胍粋€位于其他應用也擁有讀寫權(quán)限路徑下的文件。

對文件信息,例如權(quán)限等信息沒有進行有效驗證便進行處理。

對文件操作的返回結(jié)果沒有進行有效利用

假定一個擁有本地文件名的文件就是真正的本地文件。

6、權(quán)限控制問題(Access Control)

很多情況下,權(quán)限控制是安全機制保證的核心,同時也是漏洞的主要來源。每個應用都有與其匹配的權(quán)限,應用申請的權(quán)限應該物盡其用,不能申請超過自身需求的權(quán)限,而很多的軟件漏洞就是因為應用申請了超過自身需求的權(quán)限,比如root權(quán)限,然后被惡意軟件利用,也就有了對整個系統(tǒng)執(zhí)行所有操作的權(quán)限。

很多情況下,對權(quán)限的申請進行驗證是明智的選擇,例如輸入用戶名及密碼來提升權(quán)限。注意,在采用驗證機制時,最好使用系統(tǒng)內(nèi)置的權(quán)限驗證方法,而不是自己取實現(xiàn),這里需要額外提一下,權(quán)限控制是操作系統(tǒng)級別的,當硬件設(shè)備被控制時,各種權(quán)限的控制也就顯得無力,這種情況下,數(shù)據(jù)的加密保護就顯現(xiàn)出了其價值。

7、社會工程(Social Engineering)

用戶往往是安全保證機制中那薄弱的一環(huán)。即使提供再強大的安全保全機制,如果用戶安全意識薄弱,同樣會出現(xiàn)問題。很簡單的例子,比如用戶將密碼設(shè)置的非常復雜,服務器端數(shù)據(jù)庫的安全保證也很周全,黑客完全無法通過技術(shù)手段竊取用戶密碼,可黑客一個偽裝客服的電話就完全有可能將用戶的密碼從用戶的口中騙取到。這就是所謂的"社會工程". 在界面,使用習慣上教育,引導用戶進行安全的操作,也是軟件設(shè)計的重中之重。

四、漏洞的基本分類

按照漏洞的形成原因,漏洞大體上可以分為程序邏輯結(jié)構(gòu)漏洞、程序設(shè)計錯誤漏洞、開放式協(xié)議造成的漏洞和人為因素造成的漏洞。

按照漏洞被人掌握的情況,漏洞又可以分為已知漏洞、未知漏洞和0day等幾種類型。

1、 程序邏輯結(jié)構(gòu)漏洞

這種類型的漏洞有可能是編程人員在編寫程序時,因為程序的邏輯設(shè)計不合理或者錯誤而造成的程序邏輯漏洞。這種類型的漏洞最典型的要數(shù)微軟的Windows 2000用戶登錄的中文輸入法漏洞。非授權(quán)人員可以通過登錄界面的輸入法的幫助文件繞過Windows的用戶名和密碼驗證而取的計算機的最高權(quán)限。

這種類型的漏洞也有可能是合法的程序用途被黑客利用去做不正當?shù)挠猛?。這種類型的漏洞最典型的就是后面案例中提到的Winrar的自解壓功能,程序設(shè)計者的本意是為了方便用戶的使用,使得沒有安裝Winrar的用戶也可以解壓經(jīng)過這種方式壓縮的文件。但是這種功能被黑客用到了不正當?shù)挠猛旧稀?/p>

這種漏洞用一個比喻可能更容易理解。打一個比方來說,你開了一扇門,在門上開了一個狗洞,專門為了狗方便出入。正常情況下,人應該用鑰匙打開鎖才能進來??墒怯袀€家伙他發(fā)現(xiàn)利用某個竅門人也可以從狗洞進出,那么這個從狗洞進出的方法就可以看著是一個安全漏洞。

2、 程序設(shè)計錯誤漏洞

還有一種類型的漏洞是編程人員在編寫程序時由于技術(shù)上的疏忽造成的漏洞。這種類型的漏洞最典型的是緩沖區(qū)溢出漏洞,它也是被黑客利用得最多的一種類型的漏洞。

3、開放式協(xié)議造成的漏洞

目前,國際互聯(lián)網(wǎng)的通信采用的是具有開放性的TCP/IP協(xié)議。因為TCP/IP協(xié)議的最初設(shè)計者在設(shè)計該通信協(xié)議時,只考慮到了協(xié)議的實用性,而沒有考慮到協(xié)議的安全性,所以在TCP/IP協(xié)議中存在著很多漏洞。比如說,利用TCP/IP協(xié)議的開放和透明性嗅探網(wǎng)絡數(shù)據(jù)包,竊取數(shù)據(jù)包里面的用戶口令和密碼信息;TCP協(xié)議三次握手的潛在缺陷所導致的DDOS拒絕服務攻擊等。

4、 人為因素造成的漏洞

一個系統(tǒng)如果本身設(shè)計得很完善,安全性也很高,但管理人員安全意識淡薄,同樣的會給系統(tǒng)留下漏洞。譬如說,系統(tǒng)本身非常完備安全,但系統(tǒng)登錄所需要的管理 員帳戶或口令,可是因為設(shè)置過于得簡單而被黑客猜解出來了,那么其他的環(huán)節(jié)再安全也沒有絲毫意義;再或者雖然管理員設(shè)置了很復雜的密碼,可是他把密碼寫在 一張紙上,并隨手扔到廢紙簍里,那么也同樣有可能造成密碼泄露而導致系統(tǒng)被黑客入侵。

5、 已知漏洞

已知漏洞是指已經(jīng)被人們發(fā)現(xiàn),并被人們廣為傳播的公開漏洞。這種類型的特點是漏洞形成的原因和利用方法已經(jīng)被眾多的安全組織、黑客和黑客組織所掌握。安全 組織或廠商按照公布的漏洞形成原因和利用方法,在他們的安全防護產(chǎn)品中或安全服務項目加入針對相應類型漏洞的防護方法。黑客和黑客組織利用公布的漏洞形成 原因,寫出專門的具有針對性的漏洞利用程序文件,并能繞過安全防護軟件。比如說針對某個IE瀏覽器版本的IE漏洞利用文件,或者他們干脆利用一些漏洞公布站點上提供的漏洞利用程序文件并不加任何修改地去攻擊互聯(lián)網(wǎng)上的計算機。

產(chǎn)生漏洞的軟件的開發(fā)商則會針對被公開的漏洞的信息,修補他們開發(fā)的程序以供他們的用戶修補已經(jīng)存在漏洞的軟件。

6、未知漏洞

未知的漏洞則是指那些已經(jīng)存在但還沒有被人發(fā)現(xiàn)的漏洞,這種類型漏洞的特征是雖然它們沒有被發(fā)現(xiàn),但它們在客觀上已經(jīng)存在了,它們帶給計算機網(wǎng)絡安全的是隱蔽的威脅。如果它們哪一天被黑客有意或無意的找出來后就會對計算機網(wǎng)絡安全構(gòu)成巨大的威脅。

所以軟件開發(fā)商、安全組織、黑客和黑客組織都在努力的發(fā)現(xiàn)漏洞,可以說誰先發(fā)現(xiàn)了漏洞,誰就可以掌握主動權(quán)。如果是軟件開發(fā)商和安全組織先發(fā)現(xiàn)了漏洞,他們就可以在安全防護上取得主動權(quán);如果是黑客或黑客組織先發(fā)現(xiàn)了漏洞,他們就可以在攻擊上取得主動權(quán)。

7、 0day漏洞

所謂0day漏 洞是指已經(jīng)被發(fā)掘出來,但還沒有大范圍傳播開的漏洞,也就是說,這種類型的漏洞有可能掌握在極少數(shù)人的手里。黑客有可能在這種類型的漏洞的信息還沒有大范 圍的傳播開的時候,利用這段時間差攻擊他們想要攻擊的目標機器,因為絕大多數(shù)用戶還沒有獲取到相關(guān)的漏洞信息,也無從防御,黑客要想得手還是很容易的

五、漏洞挖掘分析技術(shù)

由于種種原因,漏洞的存在不可避免,一旦某些較嚴重的漏洞被攻擊者發(fā)現(xiàn),就有可能被其利用,在未授權(quán)的情況下訪問或破壞計算機系統(tǒng)。先于攻擊者發(fā)現(xiàn)并及時修補漏洞可有效減少來自網(wǎng)絡的威脅。因此主動發(fā)掘并分析系統(tǒng)安全漏洞,對網(wǎng)絡攻防戰(zhàn)具有重要的意義。漏洞的研究主要分為漏洞挖掘與漏洞分析兩部分。漏洞挖掘技術(shù)是指對未知漏洞的探索,綜合應用各種技術(shù)和工具,盡可能地找出軟件中的潛在漏洞;漏洞分析技術(shù)是指對已發(fā)現(xiàn)漏洞的細節(jié)進行深入分析,為漏洞利用、補救等處理措施作鋪墊。

1、 現(xiàn)有漏洞挖掘技術(shù)分類

根據(jù)分析對象的不同,漏洞挖掘技術(shù)可以分為基于源碼的漏洞挖掘技術(shù)和基于目標代碼的漏洞挖掘技術(shù)兩大類?;谠创a的漏洞挖掘的前提是必須能獲取源代碼,對于一些開源項目,通過分析其公布的源代碼,就可能找到存在的漏洞。

例如對Linux系統(tǒng)的漏洞挖掘就可采用這種方法。但大多數(shù)的商業(yè)軟件其源碼很難獲得,不能從源碼的角度進行漏洞挖掘,只能采用基于目標代碼的漏洞挖掘技術(shù)。對目標碼進行分析涉及編譯器、指令系統(tǒng)、可執(zhí)行文件格式等多方面的知識,難度較大。

基于目標代碼的漏洞挖掘首先將要分析的二進制目標代碼反匯編,得到匯編代碼;然后對匯編代碼進行切片,即對某些上下文關(guān)聯(lián)密切、有意義的代碼進行匯聚,降低其復雜性;最后通過分析功能模塊,來判斷是否存在漏洞。漏洞挖掘技術(shù)從逆向分析的軟件測試角度,又可分為白箱分析、黑箱分析和灰箱分析三類

2、常見的漏洞挖掘分析技術(shù)

漏洞挖掘是一個多種漏洞挖掘分析技術(shù)相互結(jié)合、共同使用和優(yōu)勢互補的過程。目前漏洞挖掘分析技術(shù)有多種,主要包括手工測試技術(shù)(manual testing)、Fuzzing技術(shù)、比對和二進制比對技術(shù)(Diff and BinDiff)、靜態(tài)分析技術(shù)(static analysis)、動態(tài)分析技術(shù)(runtime analysis)等。

2.1.人工分析

人工分析是一種灰盒分析技術(shù)。針對被分析目標程序,手工構(gòu)造特殊輸入條件,觀察輸出、目標狀態(tài)變化等,獲得漏洞的分析技術(shù)。輸入包括有效的和無效的輸入,輸出包括正常輸出和非正常輸出。非正常輸出是漏洞出現(xiàn)的前提,或者就是目標程序的漏洞。非正常目標狀態(tài)的變化也是發(fā)現(xiàn)漏洞的預兆,是深入挖掘的方向。人工分析高度依賴于分析人員的經(jīng)驗和技巧。人工分析多用于有人機交互界面的目標程序,Web漏洞挖掘中多使用人工分析的方法。

2.2.Fuzzing技術(shù)

Fuzzing技術(shù)是一種基于缺陷注入的自動軟件測試技術(shù),它利用黑盒分析技術(shù)方法,使用大量半有效的數(shù)據(jù)作為應用程序的輸入,以程序是否出現(xiàn)異常為標志,來發(fā)現(xiàn)應用程序中可能存在的安全漏洞。半有效數(shù)據(jù)是指被測目標程序的必要標識部分和大部分數(shù)據(jù)是有效的,有意構(gòu)造的數(shù)據(jù)部分是無效的,應用程序在處理該數(shù)據(jù)時就有可能發(fā)生錯誤,可能導致應用程序的崩潰或者觸發(fā)相應的安全漏洞。根據(jù)分析目標的特點,F(xiàn)uzzing可以分為三類:

1).動態(tài)Web頁面Fuzzing,針對ASP、PHP、Java、Perl等編寫的網(wǎng)頁程序,也包括使用這類技術(shù)構(gòu)建的B/S架構(gòu)應用程序,典型應用軟件為HTTP Fuzz;

2).文件格式Fuzzing,針對各種文檔格式,典型應用軟件為PDF Fuzz;

3).協(xié)議Fuzzing,針對網(wǎng)絡協(xié)議,典型應用軟件為針對微軟RPC(遠程過程調(diào)用)的Fuzz。Fuzzer軟件輸入的構(gòu)造方法與黑盒測試軟件的構(gòu)造相似,邊界值、字符串、文件頭、文件尾的附加字符串等均可以作為基本的構(gòu)造條件。

Fuzzer軟件可以用于檢測多種安全漏洞,包括緩沖區(qū)溢出漏洞、整型溢出漏洞、格式化字符串和特殊字符漏洞、競爭條件和死鎖漏洞、SQL注入、跨站腳本、RPC漏洞攻擊、文件系統(tǒng)攻擊、信息泄露等。與其它技術(shù)相比,F(xiàn)uzzing技術(shù)具有思想簡單,容易理解、從發(fā)現(xiàn)漏洞到漏洞重現(xiàn)容易、不存在誤報的優(yōu)點。

同時它也存在黑盒分析的全部缺點,而且具有不通用、構(gòu)造測試周期長等問題。常用的Fuzzer軟件包括SPIKE Proxy、Peach Fuzzer Framework、Acunetix Web Vulnerability Scanner的HTTP Fuzzer、OWASP JBroFuzz、WebScarab等。

2.3.補丁比對技術(shù)

補丁比對技術(shù)主要用于黑客或競爭對手找出軟件發(fā)布者已修正但未尚公開的漏洞,是黑客利用漏洞前經(jīng)常使用的技術(shù)手段。

安全公告或補丁發(fā)布說明書中一般不指明漏洞的準確位置和原因,黑客很難僅根據(jù)該聲明利用漏洞。黑客可以通過比較打補丁前后的二進制文件,確定漏洞的位置,再結(jié)合其他漏洞挖掘技術(shù),即可了解漏洞的細節(jié),最后可以得到漏洞利用的攻擊代碼。簡單的比較方法有二進制字節(jié)和字符串比較、對目標程序逆向工程后的比較兩種。

第一種方法適用于補丁前后有少量變化的比較,常用的于字符串變化、邊界值變化等導致漏洞的分析。

第二種方法適用于程序可被反編譯,且可根據(jù)反編譯找到函數(shù)參數(shù)變化導致漏洞的分析。這兩種方法都不適合文件修改較多的情況。復雜的比較方法有Tobb Sabin提出的基于指令相似性的圖形化比較和Halvar Flake提出的結(jié)構(gòu)化二進制比較,可以發(fā)現(xiàn)文件中一些非結(jié)構(gòu)化的變化,如緩沖區(qū)大小的改變,且以圖形化的方式進行顯示。

常用的補丁比對工具有Beyond Compare、IDACompare、Binary Diffing Suite(EBDS)、BinDiff、NIPC Binary Differ(NBD)。此外大量的高級文字編輯工具也有相似的功能,如Ultra Edit、HexEdit等。這些補丁比對工具軟件基于字符串比較或二進制比較技術(shù)。

2.4.靜態(tài)分析技術(shù)

靜態(tài)分析技術(shù)是對被分析目標的源程序進行分析檢測,發(fā)現(xiàn)程序中存在的安全漏洞或隱患,是一種典型的白盒分析技術(shù)。它的方法主要包括靜態(tài)字符串搜索、上下文搜索。

靜態(tài)分析過程主要是找到不正確的函數(shù)調(diào)用及返回狀態(tài),特別是可能未進行邊界檢查或邊界檢查不正確的函數(shù)調(diào)用,可能造成緩沖區(qū)溢出的函數(shù)、外部調(diào)用函數(shù)、共享內(nèi)存函數(shù)以及函數(shù)指針等。對開放源代碼的程序,通過檢測程序中不符合安全規(guī)則的文件結(jié)構(gòu)、命名規(guī)則、函數(shù)、堆棧指針可以發(fā)現(xiàn)程序中存在的安全缺陷。

被分析目標沒有附帶源程序時,就需要對程序進行逆向工程,獲取類似于源代碼的逆向工程代碼,然后再進行搜索。使用與源代碼相似的方法,也可以發(fā)現(xiàn)程序中的漏洞,這類靜態(tài)分析方法叫做反匯編掃描。

由于采用了底層的匯編語言進行漏洞分析,在理論上可以發(fā)現(xiàn)所有計算機可運行的漏洞,對于不公開源代碼的程序來說往往是最有效的發(fā)現(xiàn)安全漏洞的辦法。但這種方法也存在很大的局限性,不斷擴充的特征庫或詞典將造成檢測的結(jié)果集大、誤報率高;同時此方法重點是分析代碼的"特征",而不關(guān)心程序的功能,不會有針對功能及程序結(jié)構(gòu)的分析檢查。

2.5.動態(tài)分析技術(shù)

動態(tài)分析技術(shù)起源于軟件調(diào)試技術(shù),是用調(diào)試器作為動態(tài)分析工具,但不同于軟件調(diào)試技術(shù)的是它往往處理的是沒有源代碼的被分析程序,或是被逆向工程過的被分析程序。動態(tài)分析需要在調(diào)試器中運行目標程序,通過觀察執(zhí)行過程中程序的運行狀態(tài)、內(nèi)存使用狀況以及寄存器的值等以發(fā)現(xiàn)漏洞。

一般分析過程分為代碼流分析和數(shù)據(jù)流分析。代碼流分析主要是通過設(shè)置斷點動態(tài)跟蹤目標程序代碼流,以檢測有缺陷的函數(shù)調(diào)用及其參數(shù)。數(shù)據(jù)流分析是通過構(gòu)造特殊數(shù)據(jù)觸發(fā)潛在錯誤。比較特殊的,在動態(tài)分析過程中可以采用動態(tài)代碼替換技術(shù),破壞程序運行流程、替換函數(shù)入口、函數(shù)參數(shù),相當于構(gòu)造半有效數(shù)據(jù),從而找到隱藏在系統(tǒng)中的缺陷。常見的動態(tài)分析工具有SoftIce、OllyDbg、WinDbg等。

六、漏洞挖掘分析實例

1、使用Acunetix Web Vulnerability Scanner軟件進行漏洞挖掘:

漏洞是如何產(chǎn)生的,漏洞是如何挖掘出來的


該軟件提供了一些預定義好的Fuzz運算參數(shù)庫,可以便于初學者上手,也可以方便分析者使用。過程如下:

1)定義HTTP請求(Request),即定義所需訪問的網(wǎng)頁URL;

2)定義運算參數(shù)(Add generator),即定義可能產(chǎn)生漏洞的字符串表達式,如:查找$password、$passwd、$token;

3)插入運算參數(shù)(Insert into request),即將定義好的多條運算參數(shù)綁定為一條搜索策略;4)定義成功觸發(fā)特征(Fuzzer Filters),將運算參數(shù)與HTTP請求綁定;

5)掃描(Start);

6)等待軟件返回匹配的項,這些項就是可能的漏洞。經(jīng)過以上步驟,一個網(wǎng)頁中可能存在的漏洞就被發(fā)現(xiàn)了。

2、使用補丁比對技術(shù)找到漏洞的例子:

微軟發(fā)布的MS08-067的補丁,該問題被列為嚴重。該安全更新解決了服務器服務中一個秘密報告的漏洞。如果用戶在受影響的系統(tǒng)上收到特制的RPC請求,則該漏洞可能允許遠程執(zhí)行代碼。漏洞挖掘過程為例說明補丁對比技術(shù)的應用。首先保留一份原始文件,然后安裝新的補丁程序,提取出相同和新加入的文件后,就可以使用軟件進行對比。

漏洞是如何產(chǎn)生的,漏洞是如何挖掘出來的


經(jīng)過對比后發(fā)現(xiàn)被修改的3個函數(shù)

對比軟件列出了三個函數(shù)名稱,分別為0.25、0.67和0.94并列出補丁前后的相似程度。通過對比結(jié)果,可以針對性構(gòu)造參數(shù),觀察補丁前后的行為,最終發(fā)現(xiàn)在給出的這三個函數(shù)中,有兩個是和漏洞直接相關(guān)的。

本文鏈接:http://www.azlx8.cn/article/780.html

超級蜘蛛工具

  • 網(wǎng)站鏈接HTTP狀態(tài)批量檢測_在線批量檢測網(wǎng)站鏈接狀態(tài)_超級蜘蛛池
  • 百度關(guān)鍵詞排名查詢_網(wǎng)站關(guān)鍵詞排名批量查詢_超級蜘蛛池
  • 百度收錄查詢_在線百度收錄批量查詢_超級蜘蛛池
  • 域名IP地址批量查詢_在線批量查詢網(wǎng)站IP地址_超級蜘蛛池
  • 超級外鏈發(fā)布工具_在線免費批量發(fā)布SEO外鏈_超級蜘蛛池
  • 網(wǎng)頁蜘蛛模擬抓取測試工具_超級蜘蛛工具_超級蜘蛛池