999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析漏洞挖掘技術(shù)

2009-01-01 00:00:00華旭峰
商場現(xiàn)代化 2009年4期

[摘 要] 軟件測試過程就是一個尋找bug的過程。基于安全性的bug即是漏洞。本文簡單分析了一下漏洞的概念,并著重講述了漏洞挖掘技術(shù)的兩種方法——Fuzz測試和對源代碼的靜態(tài)分析。

[關(guān)鍵詞] 漏洞挖掘 Fuzz測試 靜態(tài)分析

隨著現(xiàn)代軟件工業(yè)的發(fā)展,軟件規(guī)模不斷擴大,軟件內(nèi)部的邏輯也變得異常復(fù)雜。為了保證軟件的質(zhì)量,測試成了極為重要的一環(huán)。人們花費了大量的資源對軟件進行測試。即便如此,不論從理論上還是工程上都沒有任何人敢聲稱能夠徹底消滅軟件中所有的邏輯缺陷——bug。

在形形色色的軟件邏輯缺陷中,有一部分能夠引起非常嚴(yán)重的后果。人們把那種能夠引起軟件做一些“超出設(shè)計范圍的事情”的bug稱為漏洞(vulnerability)。

常見的漏洞包括軟件中的緩沖區(qū)溢出漏洞、網(wǎng)站中的跨站腳本漏洞(XSS)、SQL注入漏洞等。

一、利用漏洞進行攻擊的方法

利用漏洞進行攻擊可以大致分為漏洞挖掘、漏洞分析、漏洞利用三個步驟。這三部分所用的技術(shù)有相同之處,比如都需要精通系統(tǒng)底層知識、逆向工程等;同時也有一定的差異。

1.漏洞挖掘。安全性漏洞往往不會對軟件本身功能造成很大影響,因此很難被QA工程師的功能性測試發(fā)現(xiàn),對于進行“正常操作”的普通用戶來說,更難體會到軟件中的這類邏輯瑕疵了。

2.漏洞分析。一般情況下,我們需要調(diào)試二進制級別的程序,以便進行漏洞分析。在分析漏洞時,可以使用調(diào)試器或者補丁比較器,以及一些反匯編工具(如IDA Pro)來進行。

漏洞分析需要扎實的逆向基礎(chǔ)和調(diào)試技術(shù),除此以外還要精通各種場景下的漏洞利用方法。這種技術(shù)更多依靠的是經(jīng)驗,很難總結(jié)出通用的條款。

3.漏洞利用。漏洞利用技術(shù)已經(jīng)應(yīng)用于多種主流的操作系統(tǒng)和編譯環(huán)境下,主要利用內(nèi)存漏洞(堆棧溢出)和Web應(yīng)用漏洞(腳本注入)等來進行。

二、漏洞挖掘技術(shù)解析

作為攻擊者,除了精通各種漏洞利用技術(shù)之外,要想實施有效的攻擊,還必須掌握一些未公布的0day漏洞;作為安全專家,他們的本職工作就是搶在攻擊者之前盡可能多地挖掘出軟件中的漏洞。

由于安全性漏洞往往有極高的利用價值,例如,導(dǎo)致計算機被非法遠程控制,數(shù)據(jù)庫數(shù)據(jù)泄漏等,所以會引起很多攻擊者的注意,并愿意花費精力去搜尋漏洞。

尋找漏洞的人并非全是攻擊者。大型的軟件企業(yè)也會雇用一些安全專家來測試自已產(chǎn)品中的漏洞。

從技術(shù)角度講,漏洞挖掘?qū)嶋H上是一種高級的測試(QA)。學(xué)術(shù)界一直熱衷于使用靜態(tài)分析的方法尋找源代碼中的漏洞;而在工程界,不管是安全專家還是攻擊者,普遍采用的漏洞挖掘方法是fuzz,這是一種黑盒測試。另外,還有一種靜態(tài)分析方法也比較常用。

三、Fuzz測試

Fuzz測試與基于功能性的測試有所不同,F(xiàn)uzz的主要目的是“crash”、“break”、“destroy”。

Fuzz的測試用例往往是帶有攻擊性的畸形數(shù)據(jù),用以觸發(fā)各種類型的漏洞。Fuzz往往可以觸發(fā)一個緩沖區(qū)溢出漏洞,但卻不能實現(xiàn)有效的exploit,測試人員需要實時地捕捉目標(biāo)程序拋出的異常、發(fā)生的崩潰和寄存器等信息,綜合判斷這些錯誤是不是真正的可利用漏洞。

Fuzz測試最早是由Barton Miller、Lars Fredriksen和Bryan So在一次偶然的情況下想到的。富有經(jīng)驗的測試人員能夠用這種方法crash大多數(shù)程序。

Fuzz的優(yōu)點是迅速、準(zhǔn)確,基本上不會出現(xiàn)錯報;缺點是Fuzz不保證能夠找出系統(tǒng)里所有的漏洞。

File Fuzz就是這種利用“畸形文件”測試軟件魯棒性的方法。您可以在Internet 上找到許多用于File Fuzz的工具,拋開界面、運行平臺等因素不管,一個File Fuzz工具大體的工作流程包括以下幾步。

1.以一個正常的文件模板為基礎(chǔ),按照一定規(guī)則產(chǎn)生一批畸形文件。

2.將畸形文件逐一送入軟件進行解忻,并監(jiān)視軟件是否會拋出異常。

3.記錄軟件產(chǎn)生的錯誤信息,如寄存器狀態(tài)、棧狀態(tài)等。

4.用日志或其他UI形式向測試人員展示異常信息,以進一步鑒定這些錯誤是否能被利用。

四、靜態(tài)分析方法

對于攻擊者來說,他們非常熱衷于使用fuzz工具,因為他們只要找到漏洞就可以了。

研究安全問題的學(xué)者則不同,他們更關(guān)心如何能夠檢測出所有的漏洞(盡管這是不可能的)。因此,學(xué)術(shù)界偏向于對源代碼進行靜態(tài)分析,直接在程序的邏輯上尋找漏洞。這方面的方法和理論有很多,比如數(shù)據(jù)流分析、類型驗證系統(tǒng)、邊界檢驗系統(tǒng)、狀態(tài)機系統(tǒng)等。

目前,已經(jīng)出現(xiàn)了一些通過審計源代碼來檢測漏洞的產(chǎn)品,如:

1.Fortify在編譯階段掃描若干種安全風(fēng)險。

2.Rough Auditing Tool for Security(R.A.T.S)用于分析C/C++語言的語法樹,尋找存在潛在安全問題的函數(shù)調(diào)用。

3.BEAM(Bugs Errors And Mistakes)IBM研究院研發(fā)出的靜態(tài)代碼分析工具使用數(shù)據(jù)流分析的方法,分析源代碼的所有可執(zhí)行路徑,以檢測代碼中潛在的bug。

4.SLAM使用先進的算法,用于檢測驅(qū)動中的bug。

5.Flaw Finder用Python語言開發(fā)的代碼分析工具。

6.Prexis可以審計多種語言的源代碼,審計的漏洞類型超過30種。

靜態(tài)分析方法實際上是一種白盒測試。

靜態(tài)代碼分析技術(shù)有一個缺點,那就是經(jīng)常會產(chǎn)生大量的誤報。使用白盒測試方法的以QA工程師居多。

參考文獻:

[1]王 清:0day安全:軟件漏洞分析技術(shù).北京:電子工業(yè)出版社,2008

[2]軟件加密技術(shù)內(nèi)幕.北京:電子工業(yè)出版社,2004

主站蜘蛛池模板: 亚洲一区二区约美女探花| 日本三级欧美三级| 亚洲精品福利网站| 好紧太爽了视频免费无码| 91探花国产综合在线精品| 精品撒尿视频一区二区三区| 中文字幕一区二区人妻电影| 色亚洲激情综合精品无码视频 | 伊人久久大香线蕉综合影视| 国产第一页屁屁影院| 青青操国产| 亚洲水蜜桃久久综合网站| 国产男人的天堂| 九九九国产| 极品国产一区二区三区| 亚洲bt欧美bt精品| 麻豆精品在线播放| 欧美亚洲欧美| 亚洲欧美激情另类| 亚洲视频免费在线看| 国产成人综合久久| 午夜精品福利影院| 亚洲av无码久久无遮挡| 人人看人人鲁狠狠高清| 欧美亚洲一区二区三区在线| 国产欧美亚洲精品第3页在线| 国产精品亚欧美一区二区三区| 97久久精品人人| 欧亚日韩Av| 91区国产福利在线观看午夜 | 久热这里只有精品6| 日本91视频| 国产精品第一区| 欧美日韩第二页| 精品黑人一区二区三区| 国产成人精品在线1区| 人妻精品久久久无码区色视| 亚洲国产午夜精华无码福利| 日韩天堂在线观看| 一级毛片高清| 国产资源站| 青青草一区| 99久久国产综合精品女同| 国产黄网永久免费| 色偷偷男人的天堂亚洲av| 精品一区二区三区水蜜桃| 啪啪啪亚洲无码| 一本一道波多野结衣一区二区 | 欧美a在线看| 五月激情婷婷综合| 国产精品青青| 亚洲人在线| 国产乱人视频免费观看| 国产午夜人做人免费视频中文 | 国产美女在线观看| 国产精品密蕾丝视频| 欧美三级视频在线播放| 国产人妖视频一区在线观看| 欧美日韩高清在线| AV网站中文| 手机精品福利在线观看| 99国产精品免费观看视频| 熟妇丰满人妻| 夜夜爽免费视频| 国产成人夜色91| 一级爆乳无码av| 亚洲区第一页| 深夜福利视频一区二区| 免费A级毛片无码无遮挡| 国产精品永久不卡免费视频| 青草视频网站在线观看| 日韩亚洲综合在线| 免费人成网站在线观看欧美| 精品国产99久久| 日韩毛片免费视频| 国产精品成人免费视频99| AV老司机AV天堂| 77777亚洲午夜久久多人| 手机在线看片不卡中文字幕| 日韩高清一区 | 色婷婷国产精品视频| 成年看免费观看视频拍拍|