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