如何選擇一款web漏洞掃描器
對(duì)于正在評(píng)估web漏洞掃描器的人應(yīng)該讀讀這篇訪(fǎng)談文章。在這篇訪(fǎng)談中,我們談?wù)摿诉x擇web漏洞掃描器的過(guò)程以及在選擇的過(guò)程中應(yīng)該注意的因素。
最好的web漏洞掃描器應(yīng)該是什么樣的?
這個(gè)問(wèn)題總是在web應(yīng)用安全領(lǐng)域被提出,也總是沒(méi)有人能給出一個(gè)確切的答案。對(duì)一個(gè)人有用的掃描器,別人那里就不好用了。這是因?yàn)槊總€(gè)站點(diǎn)——現(xiàn)在稱(chēng)為web應(yīng)用——是不同的。一些掃描器在PHP開(kāi)發(fā)的站點(diǎn)上表現(xiàn)的比較好,另一些掃描器在.NET搭建的站點(diǎn)上表現(xiàn)的比較好,等等情況。而且,每個(gè)人的需求也不一樣。一些人只是需要掃描器做出一份PCI DSS執(zhí)行報(bào)告。一些人只是需要能提供咨詢(xún)服務(wù),在做滲透測(cè)試時(shí)能夠給予幫助,因此他們需要一個(gè)掃描器提供給他們關(guān)于測(cè)試目標(biāo)的盡可能多的信息以及利用掃描器更順利的進(jìn)行手動(dòng)滲透測(cè)試。
如何獲知哪一款web漏洞掃描器適合需要?
最好的找到一款適合你的web漏洞掃描器軟件套裝的方法是,當(dāng)你的站點(diǎn)出現(xiàn)問(wèn)題的時(shí)候它能幫助你把站點(diǎn)變的安全。很多軟件公司開(kāi)發(fā)出web漏洞掃描器,然后給你試用版的許可證。互聯(lián)網(wǎng)上有很多的安全測(cè)試站點(diǎn),你可以使用web漏洞掃描器測(cè)試這些站點(diǎn)以此來(lái)評(píng)估這些掃描器,當(dāng)然這些測(cè)試站點(diǎn)是不會(huì)危害到有價(jià)值的東西的,比如你自己的站點(diǎn)。
你也能在互聯(lián)網(wǎng)上找到很多關(guān)于web漏洞掃描器的信息和他們的性能指標(biāo)。經(jīng)常會(huì)有一些web安全研究機(jī)構(gòu)和高校會(huì)在試驗(yàn)環(huán)境中測(cè)試這些掃描器,也會(huì)把他們的研究成果寫(xiě)入白皮書(shū)發(fā)布到網(wǎng)上或web安全雜志上。這些白皮書(shū)和技術(shù)文章能夠幫助你了解業(yè)界頂尖的產(chǎn)品,只是不要把這些當(dāng)做你購(gòu)買(mǎi)的唯一決定因素。不幸的是,這些東西總是誤導(dǎo)人。我絕不是說(shuō)他們的做法是錯(cuò)誤的,也不是說(shuō)他們做的不好。這些人的工作非常有意義,他們能夠幫助軟件公司提高web漏洞掃描器的質(zhì)量水平,但是就像前面提到的,你應(yīng)該挑選出適合自己站點(diǎn)的web漏洞掃描器。你會(huì)驚奇的發(fā)現(xiàn)在不同的站點(diǎn)上每款掃描器的性能是多么的不同。
當(dāng)使用者在測(cè)試/評(píng)估web漏洞掃描器時(shí),還有哪些建議需要他們注意?
你通常要做的是首先對(duì)要測(cè)試的站點(diǎn)進(jìn)行web應(yīng)用安全測(cè)試掃描。尤其是當(dāng)你還對(duì)掃描器的功用和目標(biāo)站點(diǎn)所存在的缺陷一無(wú)所知的情況下,這非常重要。一個(gè)外部掃描可能會(huì)對(duì)你試著去掃描的web應(yīng)用注入惡意代碼擾亂它的操作執(zhí)行。
首先,你需要理解的是掃描器是如何工作的。Web漏斗掃描器抓取站點(diǎn)信息,找出所有站點(diǎn)中的相關(guān)文件和可輸入點(diǎn),并對(duì)這些發(fā)現(xiàn)的對(duì)象目標(biāo)發(fā)起大量的安全檢查。這個(gè)抓取的過(guò)程在掃描過(guò)程中是至關(guān)重要的一步,因此你要確定web漏洞掃描器能夠抓取關(guān)于站點(diǎn)的所有對(duì)象和輸入點(diǎn)。如果它不能發(fā)現(xiàn)這些,安全掃描就不會(huì)得出正確的結(jié)果,因?yàn)榧词顾馨l(fā)現(xiàn)絕大部分的漏洞,但是只要漏掉一個(gè),而那個(gè)又恰巧是輸入點(diǎn)或有用的參數(shù),黑客就會(huì)利用這個(gè)漏洞破壞你的站點(diǎn)。
其次,你應(yīng)該檢查web漏洞掃描器發(fā)現(xiàn)了多少實(shí)際存在的漏洞。一個(gè)常見(jiàn)的錯(cuò)誤行為是用戶(hù)基于web漏洞掃描器發(fā)現(xiàn)的錯(cuò)誤作出決定,而不去檢查它們是不是誤報(bào)漏洞。你一定不希望一個(gè)掃描器誤報(bào)給你一大堆錯(cuò)誤漏洞,然后讓你一個(gè)一個(gè)的去檢查。在這種情況下,你就要手動(dòng)進(jìn)行滲透測(cè)試了——web漏洞掃描器的目的在于減輕你的工作,使你更有效率——而不是浪費(fèi)你的時(shí)間。
如果一款掃描器報(bào)告大量的錯(cuò)誤信息,很有可能問(wèn)題出在配置上。Web漏洞掃描器是一種復(fù)雜的軟件系統(tǒng),而且由于它們用在各種各樣的網(wǎng)絡(luò)應(yīng)用中,它們有大量的選擇/配置項(xiàng)。一個(gè)外部測(cè)試可能不會(huì)返回一個(gè)理想的結(jié)果,也許僅僅稍微花點(diǎn)時(shí)間重新調(diào)整一下掃描器的設(shè)置,它就會(huì)返回100%正確的結(jié)果。因此,在測(cè)試階段就要仔細(xì)檢查配置信息,熟悉它們,來(lái)更好的使用它們。
最后,很重要的一點(diǎn),你也應(yīng)該了解軟件公司客服部門(mén)的工作效率。Web漏洞掃描器是功能復(fù)雜的軟件,用它去發(fā)現(xiàn)站點(diǎn)中的漏洞的過(guò)程是漫長(zhǎng)而艱辛的。一旦遇到問(wèn)題,你需要一個(gè)高效的技術(shù)服務(wù)工程師來(lái)協(xié)助。如果這個(gè)客服部門(mén)話(huà)費(fèi)太長(zhǎng)的時(shí)間去回應(yīng)你的要求,或者它只是簡(jiǎn)單的和你交流幾句,那就太晚了。攻擊者找到漏洞的速度比你想想的快多了。
這個(gè)問(wèn)題也引出了另一個(gè)問(wèn)題——我們是否應(yīng)該使用開(kāi)源軟件?很多“炫技”的人——尤其是在安全領(lǐng)域——在工作中總是使用開(kāi)源程序。也許它能解決你工作中遇到的問(wèn)題,可是當(dāng)你遇到不知如何解決的問(wèn)題的時(shí)候,你就要去它的開(kāi)源社區(qū)或者郵件列表組中尋求答案了。這經(jīng)常是沒(méi)有答復(fù),或者是你在忙著收發(fā)郵件的過(guò)程中花費(fèi)了大量的時(shí)間才得到正確的解決方案,這期間你的站點(diǎn)一直處在易被攻擊的狀態(tài)。
有沒(méi)有一款自動(dòng)化的web漏洞掃描器來(lái)完全的保護(hù)我們的站點(diǎn)或是web應(yīng)用?
我經(jīng)常強(qiáng)調(diào)的是,自動(dòng)化的漏洞掃描常常要與人工滲透測(cè)試相結(jié)合。一款優(yōu)秀的掃描器會(huì)使你的工作變輕松,并且?guī)椭嵝涯汴P(guān)鍵的對(duì)象或輸入項(xiàng)。但是一些漏洞,自動(dòng)化軟件是發(fā)現(xiàn)不了的。一些漏洞被稱(chēng)為邏輯性漏洞。例如,當(dāng)你測(cè)試一個(gè)在線(xiàn)購(gòu)物車(chē)功能時(shí),手動(dòng)設(shè)置“價(jià)格”參數(shù)為“免費(fèi)”,消費(fèi)者就會(huì)免費(fèi)得到這款商品。
一款自動(dòng)化web漏洞掃描器會(huì)很好的幫助你發(fā)現(xiàn)這個(gè)參數(shù),并理解web應(yīng)用是如何運(yùn)用參數(shù)的,但是它永遠(yuǎn)不能發(fā)現(xiàn)應(yīng)用中的缺陷。這也是我建議選擇一款商業(yè)掃描器而不是開(kāi)源產(chǎn)品的另一個(gè)原因。在開(kāi)源產(chǎn)品中,你能夠找到大量的不同工具來(lái)幫助你進(jìn)行人工滲透測(cè)試,而在商業(yè)性web漏洞掃描器則會(huì)配套給你一系列的滲透測(cè)試工具,比如fuzz工具,HTTP編輯器,sniffer等等,能夠幫助你減輕在手動(dòng)滲透測(cè)試過(guò)程中面臨的壓力。優(yōu)點(diǎn)就是在一個(gè)單獨(dú)的站點(diǎn)上制定的安全解決方案的數(shù)據(jù)可以在不同的工具之間通用。當(dāng)使用那些分散的工具的時(shí)候,工具之間的數(shù)據(jù)共享就變的很麻煩。
Web漏洞掃描器能幫助我們修補(bǔ)漏洞嗎?
當(dāng)web漏洞掃描器發(fā)現(xiàn)漏洞后,它會(huì)提供大量的技術(shù)細(xì)節(jié)幫助用戶(hù)理解和修復(fù)出現(xiàn)的問(wèn)題。這些技術(shù)信息會(huì)包含以下幾項(xiàng):
◆漏洞的詳細(xì)描述
◆HTTP請(qǐng)求和響應(yīng)消息頭
◆漏洞參數(shù)和對(duì)象名稱(chēng)
◆注入值
◆修補(bǔ)建議
很多時(shí)候,修補(bǔ)建議對(duì)一類(lèi)漏洞都有效——例如,通過(guò)過(guò)濾用戶(hù)對(duì)于漏洞對(duì)象的輸入來(lái)修補(bǔ)一個(gè)跨站腳本漏洞。我的建議是不要僅僅依賴(lài)于掃描器的安全建議信息。你應(yīng)該更多的了解這個(gè)漏洞類(lèi)別,知道它的屬性和修補(bǔ)方法。這樣也會(huì)幫助使用者和開(kāi)發(fā)者下次能夠據(jù)此問(wèn)題寫(xiě)出更安全的代碼。一些商業(yè)web漏洞掃描器也會(huì)根據(jù)安全建議提供一些關(guān)于這個(gè)漏洞的參考鏈接,幫助你發(fā)現(xiàn)你需要的信息。
這篇訪(fǎng)談最初在2010年11月22日發(fā)表于HelpNet Security。
原文鏈接:http://article.yeeyan.org/view/195179/164863