中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

 首頁 > 新聞 > 專家觀點(diǎn) >

攻防:黑客技術(shù)與Fuzz測(cè)試

2015-01-27 14:28:45   作者:   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  對(duì)于信息安全領(lǐng)域,2014年無疑是動(dòng)蕩不安的一年,Heartbeat、Shellshock、貴賓犬、沙蟲等漏洞接二連三的發(fā)生。對(duì)于普通大眾和相當(dāng)一部分技術(shù)人員來說黑客技術(shù)總是帶著一些神秘的色彩,但是任何人在仔細(xì)研究之后都會(huì)發(fā)現(xiàn),黑客技術(shù)并沒有那么神秘,它和我們寫的每一行代碼、設(shè)計(jì)的每一個(gè)測(cè)試用例一樣,都遵循最基本的原理。

  一、 黑客技術(shù)

  黑客技術(shù)是很多技術(shù)的集合,涵蓋計(jì)算機(jī)技術(shù)的多個(gè)方面從硬件、系統(tǒng)、應(yīng)用到WEB等,由于涉及的知識(shí)較多,很少有研究者能夠在各個(gè)方面都做到精通,因此把握其本質(zhì)和主線就顯得尤為重要。

  1. 漏洞與黑客技術(shù)

  在了解黑客技術(shù)之前我們有必要先了解一些黑客技術(shù)的對(duì)立面—信息安全方面的一些知識(shí)。如圖 1所示,信息安全的核心在于權(quán)限管理,保密性、完整性、可用性、不可抵賴性等要素都是圍繞著權(quán)限展開的;認(rèn)證、防火墻、入侵檢測(cè)等技術(shù)本質(zhì)上都是為了確保信息被擁有權(quán)限的主體使用。

  而黑客技術(shù)和信息安全正好相反,黑客技術(shù)則是為了獲得非法權(quán)限(如圖 2所示)。現(xiàn)實(shí)中任何系統(tǒng)在設(shè)計(jì)的時(shí)候都會(huì)做一些權(quán)限的限制,但由于種種原因,這些限制并非牢不可破,其中往往存在各種各樣的漏洞,或者是操作人員的失誤、或者軟件設(shè)計(jì)的漏洞,正是因?yàn)檫@些漏洞的存在,黑客技術(shù)才得以成為現(xiàn)實(shí)。因此黑客技術(shù)的核心在于獲取非法權(quán)限,其實(shí)現(xiàn)方式是挖掘和利用漏洞。

  由前面的分析可知漏洞是理解黑客技術(shù)的主線與核心,所以漏洞挖掘技術(shù)和利用技術(shù)是黑客的兩大核心技能。對(duì)于任何一個(gè)軟件系統(tǒng)或IT系統(tǒng),其安全性或攻擊難度取決于漏洞的多少和漏洞的利用難度。傳統(tǒng)的安防產(chǎn)品的思路是提高漏洞的利用難度,而減少漏洞的數(shù)量則是軟件或設(shè)備提供商考慮的事情,但也有一些新興的安全公司例如Codenomicon提供專業(yè)漏洞挖掘的產(chǎn)品。

  圖 1 信息安全3要素

  圖 2 黑客技術(shù)的核心

  2. 安全漏洞的分類

  由于信息技術(shù)的高速發(fā)展,現(xiàn)在的軟件系統(tǒng)異常復(fù)雜。最初的軟件產(chǎn)品只分為硬件和軟件兩個(gè)組成部分,相對(duì)而言,漏洞的種類比較有限;現(xiàn)在的軟件產(chǎn)品軟件層面多,可分為驅(qū)動(dòng)、操作系統(tǒng)、應(yīng)用程序、腳本、WEB等層面,而且軟件產(chǎn)品的種類也非常多,因此為漏洞的分類提出了巨大的挑戰(zhàn)。

  目前對(duì)于漏洞分類最權(quán)威的是由美國網(wǎng)絡(luò)安全與通信辦公室、美國國土安共同推出的CWE(Common Weakness Enumeration,通用漏洞枚舉),CWE收錄了上千種漏洞類型,當(dāng)然包括熟悉的緩沖區(qū)溢出、DDoS、SQL注入、跨站腳本等,這些資料對(duì)于研究安全漏洞是非常重要的,不過對(duì)于了解黑客技術(shù)來講顯得過于細(xì)節(jié)化了。為了便于了解我們可以簡單得將漏洞分為如下幾個(gè)層面:

  表1 漏洞的簡單分類

  在現(xiàn)實(shí)的滲透測(cè)試中,部署應(yīng)用和運(yùn)作管理漏洞是最常見的,Rapid 7 首席信息安全官表示:“使用默認(rèn)密碼可以訪問幾乎一半的互聯(lián)網(wǎng)。”很多人對(duì)于黑客技術(shù)的誤解就在于此,任何單個(gè)的技術(shù)看起來都是簡單的,但各種技術(shù)組合起來,效果可能會(huì)相當(dāng)驚人。但對(duì)于網(wǎng)絡(luò)設(shè)備廠商,軟件編碼漏洞和軟件設(shè)計(jì)漏洞才是最值得關(guān)注的。

  二、 Fuzz測(cè)試

  1. 什么是Fuzz測(cè)試?

  漏洞挖掘有三種方法:白盒代碼審計(jì)、灰盒逆向工程、黑盒測(cè)試。其中黑盒的Fuzz測(cè)試是效率最高的一種,能夠快速驗(yàn)證大量潛在的安全威脅。

  Fuzz測(cè)試,也叫做“模糊測(cè)試”,是一種挖掘軟件安全漏洞、檢測(cè)軟件健壯性的黑盒測(cè)試,它通過向軟件輸入非法的字段,觀測(cè)被測(cè)試軟件是否異常而實(shí)現(xiàn)。Fuzz測(cè)試的概念非常容易理解,如果我們構(gòu)造非法的報(bào)文并且通過測(cè)試工具打入被測(cè)設(shè)備,那么這就是一個(gè)Fuzz測(cè)試的測(cè)試?yán)龍?zhí)行,大多數(shù)測(cè)試工程師肯定都嘗試過這種測(cè)試手段。

  對(duì)于網(wǎng)絡(luò)協(xié)議漏洞挖掘來說,F(xiàn)uzz測(cè)試也就意味著打入各種異常報(bào)文,然后觀察設(shè)備是否有異常。

  2. 針對(duì)FTP sever的Fuzz測(cè)試

  在本節(jié)我們將設(shè)計(jì)一個(gè)簡單的針對(duì)FTP server的Fuzz測(cè)試腳本。從原理上設(shè)計(jì)Fuzz測(cè)試用例是比較簡單的,無非是閱讀RFC,根據(jù)報(bào)文設(shè)計(jì)異常字段,但在實(shí)際實(shí)施過程中將會(huì)遇到以下幾個(gè)問題。

  m 網(wǎng)絡(luò)協(xié)議是有狀態(tài)的,最常見的一種情況就是,我們需要在協(xié)議狀態(tài)機(jī)進(jìn)行到某種狀態(tài)的時(shí)候發(fā)送某種報(bào)文,比如FTP協(xié)議,如果我們想對(duì)put命令的參數(shù)進(jìn)行變異、發(fā)送異常報(bào)文,則我們需要先通過FTP認(rèn)證;因此要想實(shí)現(xiàn)協(xié)議的fuzz測(cè)試,則只能手工編寫腳本,現(xiàn)有的工具和測(cè)試儀都無法實(shí)現(xiàn)這些復(fù)雜邏輯。

  m 另外如何構(gòu)造異常,這是一個(gè)和經(jīng)驗(yàn)相關(guān)性比較大的問題,需要長期積累,以及對(duì)安全漏洞有較深入的研究。

  m 如何檢測(cè)被測(cè)設(shè)備是否異常,這也是一個(gè)非常棘手的問題,比如內(nèi)存泄露,可能只是泄露幾個(gè)字節(jié)的內(nèi)存,這時(shí)候被測(cè)設(shè)備外部表現(xiàn)正常。

  在本節(jié)中介紹的FTP server的Fuzz測(cè)試中,僅構(gòu)造比較簡單的異常—--超長的報(bào)文;設(shè)備異常通過檢查FTP連接的狀態(tài)來判斷。被測(cè)設(shè)備選擇MSR36設(shè)備和日常工作中常用的3CDaemon FTP server2.0。具體測(cè)試步驟分為如下。

  • 輸入超長的FTP用戶名,被測(cè)設(shè)備應(yīng)該表現(xiàn)正常;
  • 正常登陸FTP后,對(duì)于FTP命令“mdelete、cd、mkdir、cwd、mdir、mput、rename”輸入超長參數(shù), 被測(cè)設(shè)備應(yīng)該表現(xiàn)正常。

  根據(jù)測(cè)試用例設(shè)計(jì)相應(yīng)的測(cè)試腳本,測(cè)試腳本使用python語言編寫。腳本主要由三個(gè)函數(shù)組成。

  m get_fuzz_str()函數(shù),用于生成Fuzz str,即異常報(bào)文的關(guān)鍵部分;在本例中用于生成超長的字符串“aaaaaa…”(如圖3所示)。

  圖3 get_fuzz_str代碼

  m fuzz_FTP_usr()函數(shù),用于發(fā)送超長的用戶名,關(guān)鍵代碼如圖4所示,將超長的字符串4串拼接在一起,作為user的參數(shù)發(fā)送給服務(wù)器。

  圖4 fuzz_FTP_user()函數(shù)關(guān)鍵代碼

  m fuzz_FTP_cmd()函數(shù),用于發(fā)送超長的命令,關(guān)鍵代碼如圖5所示,對(duì)每一個(gè)命令構(gòu)造異常的參數(shù),然后發(fā)送給服務(wù)器。

  圖5 fuzz_FTP_cmd()函數(shù)關(guān)鍵代碼

  之后,執(zhí)行測(cè)試用例,設(shè)定被測(cè)設(shè)備為MSR36設(shè)備,MSR36設(shè)備表現(xiàn)正常,未發(fā)現(xiàn)任何問題(如圖6所示)。

  圖6 MSR36測(cè)試結(jié)果

  將被測(cè)設(shè)備設(shè)定為3CDaemon FTP server,測(cè)試結(jié)果如圖7所示,看起來腳本找到了一個(gè)安全漏洞;為了驗(yàn)證我們用windbg調(diào)試FTP server看一看,如圖8所示可以看到3CDaemon FTP server已經(jīng)被溢出了,EIP寄存器被我們的字符串“aaaa”覆蓋,從而導(dǎo)致程序崩潰,而且從調(diào)試器看到這是一個(gè)棧溢出漏洞,這些信息會(huì)為進(jìn)一步的漏洞利用提供線索。

  圖7 3CDaemon FTP server測(cè)試結(jié)果

  圖8 3CDaemon FTP server調(diào)試結(jié)果

  通過這個(gè)簡單的Fuzz測(cè)試腳本成功找到了一個(gè)緩沖區(qū)溢出漏洞。

  三、 結(jié)束語

  如果將漏洞作為理解黑客技術(shù)的核心,黑客技術(shù)本身已經(jīng)不再神秘,在日常測(cè)試中,經(jīng)過簡單設(shè)計(jì)的測(cè)試用例即可完成漏洞挖掘的工作。但是應(yīng)該看到的是隨著安全技術(shù)的發(fā)展,挖掘漏洞和利用漏洞必定更為復(fù)雜。實(shí)際上針對(duì)協(xié)議設(shè)計(jì)Fuzz測(cè)試腳本并不是一件簡單的事情,其復(fù)雜程度往往超過實(shí)現(xiàn)協(xié)議本身,在實(shí)際的測(cè)試中往往需要借助專業(yè)的測(cè)試框架、測(cè)試套件,或者根據(jù)實(shí)際情況設(shè)計(jì)比較有針對(duì)性的測(cè)試用例進(jìn)行測(cè)試。

分享到: 收藏

專題