首頁 > 科技

您想知道的滲透測試都在這裡

2021-07-02 03:10:39

近年來,無論是在業務上、運營中、還是在流程上,數字化轉型已經讓許多組織和公司能夠在可擴展性、生產效率、以及靈活性方面得到了大幅提升。不過,凡事都有利弊。新的數字化技術也會帶來各種資料洩露、以及網路攻擊事件的頻發。因此,如果一個組織不定期進行漏洞評估與滲透測試的話,攻擊者會在神不知鬼不覺的情況下,偷偷潛入目標系統,或是破壞IT基礎設施,或者竊取商業祕密。可見,為了防範於未然,任何組織都需要通過適當的程式或系統,儘早地檢測與響應攻擊,並能夠及時地從攻擊中恢復。

什麼是滲透測試?

滲透測試是通過各種手動和自動的技術,來模擬對組織內、外部資訊系統的攻擊。一些道德黑客、或滲透測試者,通常會通過採用各種測試技術,試圖在真實攻擊者、或惡意行為者之前,「闖入」組織的資訊系統,識別並利用已知的漏洞或未知的缺陷。也就是說,安全測試人員的主要目標是,對待測系統進行主動分析,以識別可能因為系統配置不當、基礎設施缺陷、以及不良的操作習慣,所導致的任何潛在威脅或漏洞。

組織為什麼要進行滲透測試?

  • 識別整體基礎設施(包括各種硬體和軟體)中的潛在威脅和弱點,以便開發和構建一個安全可控的系統。

  • 發現組織當前的安全態勢與既定目標之間的差距,進而制定出行之有效的解決方案。

  • 確保現有的安全系統或控制措施,能夠有效地降低潛在攻擊所帶來的風險。

  • 能夠對攻擊向量進行分級,並識別和加固易受利用的攻擊途徑。

  • 及時發現當前受控系統中存在的錯誤,並著手修復它們。

  • 檢測並確定弱點被利用後的嚴重程度,並提高自身應對攻擊的響應能力。

滲透測試的不同階段

滲透測試往往會涉及到模擬破壞任意數量的應用程式或系統,其中包括:應用程式的協議介面、前端或後端伺服器、安全基礎設施、以及利用漏洞植入程式碼或竊取敏感資料等。那麼,滲透測試的整體過程通常包括如下五個階段:

1. 計劃和偵察

此階段主要包括:定義待測試的範圍、優先順序和目標。同時,此階段還會說明關鍵系統的主要特徵,以及即將執行的測試類型。

而偵察階段則與情報的收集有關。例如:以被動和主動的方式,獲取與目標系統相關的網路、域名、以及郵件伺服器等資訊,以便更好地瞭解待測目標的工作原理,及其潛在的切入口。

2. 掃描

該階段主要涉及到了解目標系統將如何響應各種自動化的入侵嘗試、以及攻擊行為。滲透測試人員通常會使用如下方法:

  • 靜態分析:在服務系統運行之前,檢查應用程式的原始碼,通過將其與既有的編碼規則進行比較,進而對其進行程式碼級的分析與偵錯。

  • 動態分析:通過實時執行真實資料,對系統的安全性進行測試和評估。此類分析的目標是,通過採用自動化的安全掃描工具,對應用程式或系統執行掃描,進而實時發現各種錯誤與漏洞。

當然,在靜態或動態分析之後,我們需要通過手動驗證已發現的漏洞和錯誤,以消除各種誤報。

3. 獲得訪問或利用的許可權

那些在前面階段已被識別出的各種漏洞,將會在此時被想方設法地利用到目標系統上,以獲取訪問許可權,進而攫取各種有價值的資訊。具體的利用方式可謂五花八門,其中包括:提升許可權、攔截流量、以及注入惡意程式碼等。它們在攻擊方式上各有側重點,所造成的損害程度也不盡相同。

4. 保持訪問

此階段的主要目標是:確保攻擊在獲得對應用程式、或底層系統的訪問許可權後,仍然可以保持持續的訪問狀態。畢竟,只要攻擊者能夠維持對系統長期有效的訪問許可權,他們就能夠更深、更遠地接觸到其他相關應用。可以說,滲透測試人員需要在本階段通過模仿和檢測,發現那些長期駐留在系統中、且尚未被檢測到的高階持續威脅(advanced persistent threats,APT)。

5. 分析和報告

至此,我們需要將測試結果編譯成詳細的報告。而報告的主體應當主要能夠反應出可以被利用的漏洞、易於被破壞和訪問的敏感資料、以及安全測試人員在被「發現」之前,可以在系統中駐留的時長。

滲透測試方法

總的說來,滲透測試方法的採用,主要取決於組織對於目標系統的安全檢測程度與水平。而安全專家或第三方網路安全公司,應當協助本組織從實際需求出發,根據已掌握的資訊類型,選擇並確定相匹配的測試方法。

黑盒

黑盒評估是在向滲透測試員提供較少資訊的情況下開展的。也就是說,無論是安全顧問、還是測試人員,由於他們對安全受控系統、或基礎設施知之甚少,因此需要採用偵察的方法,來獲取目標的詳細資訊。

白盒

在白盒評估中,測試人員或安全顧問已經獲得了有關基礎設施、應用程式、裝置、以及安全受控系統的相關資訊和詳細文件(例如:系統架構文件、原始碼等)。因此,白盒測試是一種識別和檢測內、外部漏洞的綜合評估方法。

灰盒

在此類評估方法中,測試人員僅獲得了評估安全受控系統所需的使用者級知識和資訊。同時,測試人員還應當被授予對於Web應用程式、以及內部網路基礎設施的部分背景知識和有限訪問許可權。

物理滲透測試

我們也應當警惕黑客採用物理手段,作為獨立攻擊、或針對現有技術的補充性攻擊方式,來獲得物理設施的訪問許可權。以下是物理滲透測試的兩種常見方式:

  • 定位薄弱的安全區域範圍:在這種方法中,黑客會確定或搜尋易受攻擊、且易遭破壞的區域或系統。通常,多數資料中心或樓宇都會包含有吸菸區、維修裝置的擺放區、以及某些無人看守的綠色快捷通道。這些設施範圍可能本身就未被安全加固,亦或處於能見度較低、過於隱蔽的區域。

  • 捎帶(Piggybacking):捎帶、尾隨(tailgating)或竊聽(eavesdropping),都是黑客通過密切跟蹤有許可權出入設施區域的員工、或維護工人的一些慣用方法。

社會工程學測試

此類測試通過搭建和檢驗組織內部的人際網路(Human Network),有助於識別針對組織內部人員,及其信任憑據、或訪問特權的攻擊。常用的攻擊類型有:

  • 網路釣魚:一種欺騙性方法,它通過郵件或訊息傳送惡意或受感染程式碼,來獲取個人敏感資訊。

  • 偽裝(Pretexting):偽裝是身份盜竊的一種形式,黑客會將自己偽裝成目標組織中的內部人員,以獲得對安全基礎設施、或敏感資料的訪問許可權。

不同類型的滲透測試

網路滲透測試

作為最常見、也是最熱門的滲透測試方法,網路滲透測試能夠協助安全測試人員檢測和發掘網路系統、以及各種基礎設施中的潛在漏洞。網路滲透測試通常被分為外部、內部和無線三種類型。其中:

外部網路滲透測試:外部網路滲透測試可以幫助我們探索網路系統對於外部威脅的響應能力。此類測試的常見手段是,通過基於網際網路的滲透測試,以識別出那些暴露在外部網路中,卻屬於系統內部的漏洞和弱點。

此類測試通常會針對防火牆的配置、防火牆的繞過、IPS的欺騙、以及DNS級別的毒化攻擊等網路攻擊。而為了實現自動化漏洞掃描的測試過程,安全人員往往會使用市面上常見的知名工具(下文將提到),去掃描和檢測目標系統中的已知漏洞。當然,他們也會將手動利用技術與自動化工具相結合,針對檢測到的漏洞弱點,發起模擬攻擊,並旨在完全接管那些面向網際網路的系統。

內部網路滲透測試:此類測試旨在通過漏洞掃描,檢測並識別內部系統,發現基礎設施中的網路安全弱點,進而採用各種利用技術,來檢視內部系統的響應行為。內部網路滲透測試會從根本上去評估內部系統、以及組織員工遭受未授權、或惡意攻擊的可能性。其中包括:潛在的未經授權的訪問,個人資訊與信任憑據的洩漏等方面。

無線滲透測試:黑客或攻擊者通過無線的方式,滲透進目標系統,在威脅內網安全的同時,利用獲取到的特權,去訪問各類敏感資訊,進而對系統的正常運行造成不利的影響。

Web應用滲透測試

作為組織的一個重要組成部分與功能,Web應用程式一旦受到攻擊就可能導致使用者資料、以及商業敏感資訊的洩露。因此,針對Web應用程式的滲透測試,會去檢查現有網路中的應用程式,是否存在著由錯誤或不安全的開發、薄弱的設計、以及不當的程式設計,所引起的任何漏洞或安全隱患。

移動應用滲透測試

移動應用程式的滲透測試主要是通過模擬黑客嘗試著採用提權等行為,針對那些在Android、Windows、以及iOS等裝置上運行的原生移動應用、或是由組織自行開發的應用程式開展測試。除了發現和利用移動應用中的漏洞,此類測試也會關注移動應用與後端系統在通訊和傳輸資料時的安全態勢。

滲透測試工具

目前,市面上有著全棧式的自動化工具,它們能夠讓您高效地開展各種滲透測試。下面,讓我們來討論一些被各個組織經常用到的知名工具:

Kali Linux

顯然,Kali Linux是基於Linux作業系統、且包含了大量工具。它可以被用於從資訊收集到產生報告的,整個端到端的滲透測試過程。作為一種被廣泛使用的滲透測試平臺,Kali Linux主要關注的是優化進攻,而非防守。它不但是一個開源的項目,而且提供了各種工具列表、版本破解器、以及資料元包(meta-packages)。

目前,Kali擁有600多種道德黑客工具,幷包含了用於暴力破解密碼的特殊工具。其工具中還包括了:漏洞分析、Web應用程式、資訊收集、無線攻擊、逆向工程、密碼破解、欺騙、嗅探和其他高階可利用工具。

Metasploit

作為最常用的自動化開發框架,Metasploit有助於鎖定系統,檢測漏洞,進而利用漏洞。由於Metasploit屬於開源軟體,因此其GUI不但易用,而且能夠方便測試者管理安全評估,檢測威脅與缺陷,以便構建出強大的安全受控系統。

此外,Metasploit專業版的元模組(Metamodule)部分還可以被用於測試網路分段,進而讓測試者知曉哪些網路分段位置可達,哪些不可達。

Wireshark

作為一種網路分析器工具,Wireshark通過提供離線分析和網路實時捕獲選項,來抓取並解析目標網路的流量。在被用於瞭解資料包流和TCP/IP問題時,它提供了實時的資料包和網路活動的詳細資訊。

ZED Attack Proxy

該工具能夠在功能上與最流行的代理與掃描工具BURP套件想媲美,而且它是完全免費的。ZAP通過將自己放置於使用者瀏覽器與被測試的網站之間,以創建代理的方式,方便測試人員攔截、修改、甚至替換流量。因此,它非常適合於那些剛開始接觸滲透測試的開發人員和測試人員。

Aircrack

作為一款開源的軟體,Aircrack主要被用於檢查Wi-Fi的連線場景。而Aircrack NG則是一組工具和軟體套件,可以幫助測試者去「攻擊」或防禦無線網路。其工具包通常包括:檢測器、資料包嗅探器、WEP/WPA破解器等元件。Aircrack主要通過攔截、捕獲、以及讀取資料包的模式,來破解無線系統。

John the Ripper(簡稱JTR)

眾所周知,密碼是資訊系統中最脆弱的、也是最容易受到攻擊的部分。JTR便是一種可被用於破解密碼的工具。它包括了一個可定製的破解程式,可識別不同的密碼雜湊值。同時,它可以利用強大的硬體,通過高效的運行方式,來提高密碼破解的效率。

滲透測試的成本和預算

通常,滲透測試的成本和預算會受到如下五方面因素的影響,而並非恆定不變的:

  • 目標:大家都知道,我們用於測試小型組織的物理安防,與檢查公用輸電站的安全態勢的費用,肯定是不一樣的。我們的目標規模直接決定了在滲透測試方面的投入。例如,當我們從需要測試單個應用程式,升級為測試包括了內、外部網路的整體系統時,隨著目標數量的增多和複雜化,我們的測試成本,包括測試人員的成本,以及需要提供和收集的資訊,也會不斷攀升。

  • 範圍:範圍的圈定,有助於組織在確定目標的基礎上,讓測試人員或顧問對完成項目所需的時間,進行更加合理的預估。畢竟測試的持續時間和成本是成正比的。例如,面對大型門戶和Web應用時,我們將會比測試簡單使用者網站所花費的時間會更多,所涉及到的複雜度與範圍,也會導致預算費用的上揚。

  • 方法論:組織所採用的測試方法也會對費用產生影響。一些組織可能會使用自動化的漏洞掃描方式,去開展基本性的測試,並解決基本性的安全問題。而另一些公司則可能會選擇全棧式的滲透測試方案,以全面檢測威脅、漏洞、及其被利用後所造成的影響。這樣的綜合方法,在成本方面是可想而知的。

  • 技能:與其他行業類似,強大的技術儲備往往能夠在各種網路安全事件的預防與處置中,發揮著至關重要的作用。顯然,與那些基本知識或可用資源有限的測試團隊相比,打造一支具有雄厚知識背景、以及熟練實戰經驗的顧問與專家隊伍,雖然更有利於開展和完成全面的滲透測試,並能夠保持系統的安全態勢,但是團隊的運營費用也是不菲的。

小結

在當前的跨區域性協作式全球經濟環境中,我們幾乎每天都能夠看到網路攻擊事件登上新聞頭條,許多組織往往在事後才後悔自己未能及時、全面地進行滲透測試。因此,面對不斷變化的網路環境,以及層出不窮的漏洞與缺陷,組織應當將滲透測試常態化。畢竟,攻擊者在盯上某個系統時,是不會公開告知其攻擊意圖的。

我們常說滲透測試並非「一錘子買賣」。在完成了一輪測試之後,組織需要根據測試所產生的報告,按需進行整改,並在完成之後,重新發起新的一輪測試,以保持目標系統與服務的安全態勢,從而給利益相關者提供在健康運營上的信心。


IT145.com E-mail:sddin#qq.com