應對攻擊的分階段滲透測試完全手冊
譯文【51CTO.com快譯】您是否聽說過魚叉式捕魚(spearfishing)?它是一種針對特定公司或人群的,以竊取敏感信息或控制網絡為目的的,電子郵件類欺騙攻擊。根據一項最新的研究表面,每年發生在全球各處的,針對各類企業的黑客攻擊事件中,有95%都與魚叉式捕魚有關。
上圖展示了2020年第一季度,全球范圍內受到網絡釣魚攻擊次數最多的國家排名信息。其中,委內瑞拉因有20.53%的網絡用戶受到了網絡釣魚攻擊,名列這張表單榜首。該表中的數據來自根據美國國家統計局(https://www.statista.com/statistics/266362/phishing-attacks-country/)。
當然,近年來,隨著魚叉式網絡釣魚等各類攻擊的日益增多,企業開始更加關注手頭上應用程序和軟件產品的安全態勢。他們在開發安全可靠的軟件應用的同時,希望能夠避免由于某些無形和有形的錯誤,而導致最終產品出現重大的安全缺陷。因此,為了及時發現應用程序中存在的漏洞,以及縮小易受攻擊面,我們需要通過模擬黑客、及其行為,來開展頻繁且徹底的滲透測試,發現目標IT環境中的潛在安全漏洞,進而予以整改。
滲透測試的目標
總體而言,滲透測試(或稱Pen testing)是為了發現風險和漏洞,通過深入檢測與挖掘目標在任何合法攻擊形式下,可能受到的危害程度。通常,滲透測試會涉及到針對服務器、網絡、防火墻、主機等硬件,以及各種軟件,識別與發現知名漏洞,并評估其實際威脅的程度。
除了確定目標之外,滲透測試方法還可以被用于評估系統中存在的可疑后門機制,提高應對不同類型的意外、或惡意攻擊的能力。因此,企業可以從如下方面受益于滲透測試:
- 通過檢測各類漏洞可能產生的影響,將其匯總產生報表。
- 檢查最新控制措施的配置與執行情況,確保其實施的有效性。
- 調動人員、軟硬件資源,通過開發管控措施,來加固應用程序、基礎設施、以及流程中的弱點。
- 在用戶輸入端執行全面的模糊測試,以衡量應用程序輸入驗證控件的有效性,并確保只接受經過“消毒”過濾的輸入值。
- 可以發現不同團隊在入侵響應上的不足,進而通過改進內部事件響應流程,提高安全事件的響應效率。
滲透測試的頻率
滲透測試的頻率取決于許多因素,包括:行業類型、網絡技術、以及法規合規等方面。通常情況下,如果發生以下任一情況,我們都應立即安排執行滲透測試:
- 網絡或基礎設施發生重大變化
- 剛打上了安全修補程序
- 增添了新的應用程序或基礎設施
- 更改了辦公室的位置,以及對應的網絡
- 新頒布了行業法律與法規
- 新的威脅或漏洞被媒體披露
如何執行滲透測試?
我們可以通過如下三種方法,開展系統性的滲透測試:
- 自動滲透測試
- 手動滲透測試
- 自動+手動滲透測試
滲透測試的不同階段
就像網絡攻擊有著既定的先后步驟那樣,滲透測試也可以被分為不同的階段。其中,每個階段都有一個特定的目標,并為下一個階段的攻擊做好準備:
1.關鍵信息的收集
在這個研究階段,軟件測試(QA)人員可以從外部了解目標公司及其員工信息。如果是黑客的話,則會利用在線工具,或是其他類似的網絡資源,來掃描并測試目標網站。
2.枚舉和識別
在這個階段,軟件測試人員會深入研究目標網絡,盡可能地搜索可能受到影響的服務、開放的端口、以及應用程序。根據已征得同意的滲透測試類型與程度,測試人員會收集并識別出目標企業的關鍵信息,進而發現環境中的切入點和漏洞。
3.漏洞掃描
通過前期的研究與準備,性能測試團隊將在這個階段采取手動與自動相結合的方式,掃描目標網絡上的風險和漏洞。測試人員可以主要針對如下常見方面與部分,開展計劃與測試:
- 業務關鍵資產
- 技術數據
- 客戶數據
- 員工數據
- 對內部威脅和脆弱性的特定分類
- 外部威脅–網絡協議、端口、網絡流量、Web應用程序等
- 內部威脅 - 供應商、員工、管理層等
QA工程師通常會使用漏洞掃描器,來檢測漏洞,并對其所構成的安全威脅進行記錄。之后,QA測試人員將驗證發現到的漏洞是否確實可能會被利用。全部的漏洞列表將在滲透測試結束的報告階段被提交。
4.確定最佳攻擊方法
所有前期準備工作都已準備就緒,QA專家將在這一階段決定攻擊面分析的最佳方式,通過評估風險和漏洞被利用的可能性,最終協同整個滲透測試團隊制定出一整套攻擊的完整方案。
5.滲透和利用
前一個階段制定好的行動計劃,會在這個階段被實施到已發現的漏洞上,以開展獲取敏感信息,發動DoS攻擊,破壞目標系統的網絡資源等攻擊操作。具體而言,我們在這個測試階段可以采取如下受控制的常見攻擊策略:
- 物理攻擊
- 網絡攻擊
- Web應用攻擊
- Wi-Fi攻擊
- 社會工程學
- 零日利用
- 基于內存的攻擊
道德黑客還將記錄和重新評估那些已被利用威脅或漏洞,在此基礎上深入研究哪些攻擊可能成為重要業務單元的最大隱患和風險點。最后,在利用階段,這些道德黑客應也該清楚地分析出一旦此類重要單元被利用后,會產生何種后果。
6.風險分析和建議
上面五個階段的主要目標是獲悉和記錄可能受到攻擊的系統組件。為了保護它們所對應的有形、無形的,物理與信息的資產價值,QA測試人員要進行深入的風險分析。在此基礎上,他們試著擬定包含了減少和修復目標環境安全漏洞和威脅的可行性建議。
值得注意的是,一旦測試完成,QA專家應及時、主動地清理被測環境,重新恢復和配置他們在測試期間所獲取的準入權限,并通過必要的手段,阻止將來未授權訪問的發生。
7.報告準備與目標
報告的編制應首先從總體性能測試流程開始,然后才是風險與漏洞對分析。報告中,我們需要對重要的風險與漏洞設定優先級,以便整改團隊能夠按照由高到低的順序,依次進行跟蹤和解決。當然,如下方面也需要被體現在報告中:
- 清晰地羅列出報告的要點,分門別類地展示測試中的發現
- 每個階段都應列舉出在滲透測試期間所收集的數據
- 對所有已識別的風險和漏洞提供完整的描述
- 完整地闡述管理意圖和修復建議
- 聲明該報告針對的是目標系統的當前態勢,并提議持續進行安全性測試
滲透測試的不足
雖然優點居多,但是滲透測試也存在著如下客觀上的缺點和潛在影響:
- 滲透測試可能會使系統陷入故障狀態,甚至會導致系統的崩潰
- 測試的時間有限,且測試費用比較高
- 被測數據容易出現錯誤、損壞、甚至被“污染”
- 時間緊、任務急,有可能導致測試的范圍受限,進而忽略了某些重要的部分和區域
滲透測試開源(免費)工具:
- Wireshark - http://www.wireshark.org/
- Nessus - http://www.wireshark.org/
- OpenSSL - http://www.openssl.org/
- Nmap - http://nmap.org/
- Metasploit - http://www.metasploit.com/
小結
目前,云服務技術的發展為黑客和攻擊者提供了各種各樣的工具和資源,使得他們能夠毫不費力地侵入各個系統和網絡,給企業的商業信譽、資產和服務造成巨大的損失。滲透測試不僅僅是一個基本的測試過程,它也可以被視為一種預防性的方法,用來發現和檢測各種安全缺陷和不同癥狀,進而將系統的潛在安全風險消減在未然。
原文標題:A Complete Guide to the Stages of Penetration Testing,作者: Niranjan Limbachiya
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】