如何采取衡量的方法來進行自動化滲透測試?
自動化滲透測試在改進滲透測試過程和減少所需資源方面發揮著舉足輕重的作用,但如果沒有適當的方法,則可能完全是浪費時間。本文中專家Kevin Beaver探討了這個話題。
快要被滲透測試壓垮?很多人都是這樣。面對PCI DSS、業務合作伙伴和客戶需求或者類似責任,對滲透測試的需求的浪潮永無止境。鑒于系統和應用的數量以及網絡環境的復雜程度,滲透測試可以是非常艱巨的任務,這導致很多信息安全專業人員都只是“走走過場”來滿足合規要求或者想辦法完全跳過這些測試。但是這樣做的代價是什么?正如生活中的所有事物一樣,半心半意的方法來執行滲透測試只會得到半心半意的結果,合規麻煩、信息風險和不可避免的數據泄露事故都會隨之而來。
但是,這些肩負這種基本業務工作的人員可以采取很多其他信息安全管理任務的方法以及自動化來完成這些工作。例如,這些年以來,信息安全專業人員已經能夠自動化諸如日志管理、補丁修復和源代碼分析等工作。并且,通過添加一些自動化到滲透測試,我們可以最大限度地降低所需資源,同時保持滲透測試過程的完整性。另外,重要的是,采取衡量的方法。
采取衡量的方法來實現自動化
首先,通過確定你想要完成的目標來定義什么是“滲透測試”。有些人認為滲透測試是運行簡單的漏洞掃描來安撫審計員。其他人則是證明他們可以找到一個漏洞來利用。筆者更喜歡更廣泛的漏洞評估定義,任何有IP地址或者URL的事物都可能受到攻擊。
從最關鍵的系統開始,最后專業人員需要考慮網絡,因為外部黑客和惡意員工都知道網絡沒有界限。隨后,測試你系統的各個方面來確定易受攻擊的部分,無論你怎么命名這些部分。否則,這個安全計劃注定會失敗。
在“自動化”滲透測試中,這種方法尤其重要。為什么呢?因為你不能使用現有工具自動化每個系統和應用的每個測試。例如,尋找網絡主機中低強度密碼的大多數函數都可以自動化,但登錄提示來瀏覽網絡、操作文件等相關程序無法自動化。這些類型的測試通常被稱為身份驗證漏洞掃描,這些測試可以通過編寫腳本來進行,但并不是真正的自動化。
發現和利用Web應用登錄機制、用戶會話管理和SQL注入中的漏洞同樣是如此。同樣地,單個函數(例如發現SQL注入和從數據庫提取數據)也可以實現自動化,但整個過程不能被自動化。這個過程需要人類互動和專業知識來知道在哪里定位漏洞利用以及如何獲得最好的結果。
工具只是輔助
人們對自動化的渴望讓流行的漏洞掃描儀中添加了很多新功能,例如Acunetix Web漏洞掃描儀(該工具善于破解Web應用中的密碼)以及Metasploit Pro(可用于獲取命令提示符以及建立后門程序)。
但即使這些工具也不能完全自動化這個過程。例如,通過Metasploit Pro,IT必須首先運行漏洞掃描儀(例如Nexpose或Nessus)來發現漏洞。Metasploit Pro和商業漏洞掃描工具的用戶界面和很簡單,但并不是每個滲透測試工具都簡單,對于缺乏技術知識的人來說,這是一個問題。
現在的滲透測試的最大好處是,市面上有豐富的安全測試工具可以讓滲透測試人員在幾分鐘內破解未加密筆記本或無線網絡的密碼,或者簡單地發起調子郵件釣魚活動。網絡共享和訪問不安全PII可以非常迅速實現。但這些并不能完全自動化。就像放射科人員和房屋檢查人員,滲透測試人員可以采用先進的工具,但發現、枚舉和報告結果不能完全自動化,并且,筆者認為未來可能仍然會這樣。
深度安全審查需要的不僅僅是輸入IP地址或者URL再單擊確定。當然,程序和工作流程可以變得更有效,但創造力和過往實戰經驗將決定最終的勝負。最后,無論滲透測試發現了多少“漏洞利用”,IT專業人員仍然需要確定哪些是真正的安全風險以及哪些不是。