如何執行一個網絡滲透測試
一個良好的滲透測試是什么組成的?
雖然執行一個滲透測試有許多明顯的優點——執行滲透測試的價值在于它的結果。這些結果必須是有價值的,而且對于客戶來說必須是很容易理解的。有一個常見的誤解是認為滲透測試只是使用一些時髦的自動化安全工具,并處理所生成的報告。但是,成功執行一個浸透測試并不僅僅是需要安全工具。雖然這些自動化安全測試工具在實踐中扮演了重要的角色,但是它們也是有缺點的。事實上,這些工具一直無法真正模擬一個高深攻擊者的行為。不管安全工具完成的報告有多么全面,其中總是有一些需要解釋的問題。
讓我們看看構成一個良好滲透測試的一些關鍵因素:
•建立參數:定義工作范圍是執行一個成功滲透測試的第一步,也是最重要的一步。這包括定義邊界、目標和過程驗證(成功條件)。
•專業人員:配備技術熟練和經驗豐富的咨詢人員執行測試——他們了解自己要做什么。換句話說,專業人員與一般人員是不同的。要保證他們是:
o 能勝任的
o經驗豐富的
o遵守保密協議
•選擇足夠的測試集:手工的和自動的都會影響成功/效益之間的最佳平衡。
•遵循正確的方法:這并不是猜謎游戲。所有方面都需要規劃、文檔化和符合要求。
•結果值:結果應該詳細地寫入文檔,并且要盡力使它們能被客戶所理解。不管是技術報告還是執行總結,都需要一些注釋。應用安排一些安全咨詢人員/測試人員來回復問題或解釋結果。
•測試結果與建議:這是滲透測試的一個非常重要的部分。最終的報告必須清晰地說明成果,必須將成果與潛在的風險對應。這應該會附帶產生一個基于最佳安全實踐方法的修正路線圖。
在我們討論浸透測試中所使用的測試策略和技術之前,讓我們先看一些可能很有用的場景:
•建立新的辦公室
不管是建立新的公司或增加新的辦公點,浸透測試都有助于確定網絡基礎架構中的潛在漏洞。例如,在增加新辦公點時執行內部測試是非常重要的,因為它會檢查網絡資源的可用性,并檢查這些辦公點之間傳輸的流量類型。
•部署新的網絡基礎架構
每一個新的網絡基礎架構都應該能模擬黑客行為進行全面的測試。當執行外部測試(預先不太了解基礎架構)來保證邊界安全性時,我們也應該執行內部測試來保證網絡資源,如:服務器、存儲、路由和訪問設備,在邊界受到攻擊時仍然是足夠安全的,而且基礎架構是能夠抗拒任何攻擊的。
•修改/升級現有的基礎架構
修改是不可避免的——可能是軟件、硬件或網絡設計,由于需要功能改進;修復重大缺陷和/或應用新的需求,都可能引起修改/升級。不管現有的基礎架構在什么時候發生變化,它都應該再次測試,以保證不會出現新的漏洞。必要測試的數量取決于基礎架構修改的特征和程度。細小的變化,如配置變更為特定規則,將只需要進行端口掃描來保證預期的防火墻行為,而重大的變化,如關鍵設備/OS版本升級,可能就需要徹底重新測試。
•部署新應用
當基礎架構進行徹底測試之后,新的應用(不管是連接Internet的或是在Intranet中)在部署到生產環境之前也都必須進行安全性測試。這個測試需要在“實際的”平臺上進行,以保證這個應用只使用預定義的端口,而且代碼本身也是安全的。
•修改/升級一個現有應用
隨著基本架構發生變化,本質上應用也會發生變化。細小的變化,如用戶帳號修改,都不需要測試。但是,重大的變化,包括應用功能變化,都應該徹底重新測試。
•定期重復測試
管理安全性并非易事,而公司不應該認為滲透測試就是所有安全問題的最終解決辦法。如果這樣認為,那么他們只是相信了假的安全性。對敏感系統定期執行測試來保證不會出現不按計劃的變化,一直都是一個非常好的實踐方法。
原文轉自:http://www.anti-gravitydesign.com