滲透測試的起源與定義

滲透測試的起源與定義

熟悉軍事的朋友都應該瞭解,各個國家的軍隊每年都會組織一些軍事演習來檢驗部隊的攻防戰術和作戰能力,在超級大國美國,一般會將美軍稱為藍軍,將假想敵稱為紅軍,這種軍事演戲的方式,也在上個世紀90年代引入美軍的網絡安全和信息基礎設施的的實際攻防測試過程。由一群接受過職業培訓的安全專家作為紅方,對防禦方藍方進行安全攻擊,以實戰的方式來檢驗目標系統的防禦體系和應急響應計劃的有效性,這種通過實際的攻擊方式進行安全測試和評估的方法就是安全滲透測試(Penetration testing, Pentest)。

滲透測試的起源與定義

在20實際90年代後期,逐步開始從軍隊和情報部門拓展到安全界,一些對安全需求很高的企業開始採用這種方式來對他們的網絡和系統進行測試。

簡而言之,滲透測試就是一種通過模擬使用黑客的技術和方法,挖掘目標系統的安全漏洞,取得系統的控制權,訪問系統的機密數據,並發現可能影響業務持續運作安全隱患的一種安全測試和評估方式。

滲透測試和黑客入侵最大區別在於滲透測試是經過客戶授權,採用可控制、非破壞性質的方法和手段發現目標和網絡設備中存在弱點,幫助管理者知道自己網絡所面臨的問題,同時提供安全加固建議, 幫助客戶提升系統的安全性。

滲透測試包括黑盒測試,白盒測試和 灰盒測試

黑盒測試:是指測試人員在不清楚被測單位內部技術架構的情況下,從外部對網絡設施的安全性進行測試的過程。黑盒測試藉助於真實世界的黑客方法,黑客工具,有組織有步驟的對目標系統進行逐步的滲透和入侵,揭示目標系統中一些已知的和未知的安全漏洞,並評估這些漏洞是否可以被不法分子利用,並造成業務和資產損失。

白盒測試: 測試人員可以獲取被測單位的網絡結構和各種底層技術. 在此基礎上,使用針對性的測試方法和工具,可以以較小的代價發現和驗證系統最嚴重的安全漏洞 。 兩者各有利弊,需結合進行。

灰盒測試:滲透測試人員可以根據對目標系統獲取的有限的知識和信息,選擇滲透測試的最佳路徑,滲透測試者也需要從外部逐漸的滲透進入內部網絡,同時,他們所擁有的目標網絡底層拓撲結構有助於他更好的選擇攻擊途徑和方法,從而達到更好的滲透測試效果。

滲透測試的過程

PTES(PenTest execution standards )是由安全界領軍企業共同發起起草的滲透測試執行標準。

PTES標準中定義的滲透測試過程獲得了業界的普遍認可和支持,具體包括7個階段,

滲透測試執行標準
http://www.pentest-standard.org/

1:前期交互階段

在前期交互(Pre-Engagement Interaction)階段,滲透測試團隊與客戶組織進行交互討論,最重要的是確定滲透測試的範圍、目標、限制條件以及服務合同細節。

該階段通常涉及收集客戶需求、準備測試計劃、定義測試範圍與邊界、定義業務目標、項目管理與規劃等活動。

2:情報收集階段

在目標範圍確定之後,將進入情報蒐集(Information Gathering)階段,滲透測試團隊可以利用各種信息來源與蒐集技術方法,嘗試獲取更多關於目標組織網絡拓撲、系統配置與安全防禦措施的信息。

滲透測試者可以使用的情報蒐集方法包括公開來源信息查詢、Google Hacking、社會工程學、網絡踩點、掃描探測、被動監聽、服務查點等。而對目標系統的情報探查能力是滲透測試者一項非常重要的技能,情報蒐集是否充分在很大程度上決定了滲透測試的成敗,因為如果你遺漏關鍵的情報信息,你將可能在後面的階段裡一無所獲。

3:威脅建模階段

在蒐集到充分的情報信息之後,滲透測試團隊的成員聚到一起針對獲取的信息進行威脅建模(Threat Modeling)與攻擊規劃。這是滲透測試過程中非常重要的一個關鍵點。

通過團隊共同的縝密情報分析與攻擊思路頭腦風暴,可以從大量的信息情報中理清頭緒,確定出最可行的攻擊通道。

4:漏洞分析階段

在確定出最可行的攻擊通道之後,接下來需要考慮該如何取得目標系統的訪問控制權,即漏洞分析(Vulnerability Analysis)階段。

在該階段,滲透測試者需要綜合分析前幾個階段獲取並彙總的情報信息,特別是安全漏洞掃描結果、服務查點信息等,通過搜索可獲取的滲透代碼資源,找出可以實施滲透攻擊的攻擊點,並在實驗環境中進行驗證。在該階段,高水平的滲透測試團隊還會針對攻擊通道上的一些關鍵系統與服務進行安全漏洞探測與挖掘,期望找出可被利用的未知安全漏洞,並開發出滲透代碼,從而打開攻擊通道上的關鍵路徑。

5:滲透攻擊階段

滲透攻擊(Exploitation)是滲透測試過程中最具有魅力的環節。在此環節中,滲透測試團隊需要利用他們所找出的目標系統安全漏洞,來真正入侵系統當中,獲得訪問控制權。

滲透攻擊可以利用公開渠道可獲取的滲透代碼,但一般在實際應用場景中,滲透測試者還需要充分地考慮目標系統特性來定製滲透攻擊,並需要挫敗目標網絡與系統中實施的安全防禦措施,才能成功達成滲透目的。在黑盒測試中,滲透測試者還需要考慮對目標系統檢測機制的逃避,從而避免造成目標組織安全響應團隊的警覺和發現

6:後滲透攻擊階段

後滲透攻擊(Post Exploitation)是整個滲透測試過程中最能夠體現滲透測試團隊創造力與技術能力的環節。前面的環節可以說都是在按部就班地完成非常普遍的目標,而在這個環節中,需要滲透測試團隊根據目標組織的業務經營模式、保護資產形式與安全防禦計劃的不同特點,自主設計出攻擊目標,識別關鍵基礎設施,並尋找客戶組織最具價值和嘗試安全保護的信息和資產,最終達成能夠對客戶組織造成最重要業務影響的攻擊途徑。

在不同的滲透測試場景中,這些攻擊目標與途徑可能是千變萬化的,而設置是否準確並且可行,也取決於團隊自身的創新意識、知識範疇、實際經驗和技術能力。

7:報告階段

滲透測試過程最終向客戶組織提交,取得認可併成功獲得合同付款的就是一份滲透測試報告(Reporting)。這份報告凝聚了之前所有階段之中滲透測試團隊所獲取的關鍵情報信息、探測和發掘出的系統安全漏洞、成功滲透攻擊的過程,以及造成業務影響後果的攻擊途徑,同時還要站在防禦者的角度上,幫助他們分析安全防禦體系中的薄弱環節、存在的問題,以及修補與升級技術方案。

滲透測試都做什麼?

● 信息收集

信息收集分析是所有入侵攻擊的前提/前奏/基礎。通過對網絡信息收集分析,可以相應地、有針對性地制定模擬黑客入侵攻擊的計劃,以提高入侵的成功率、減小暴露或被發現的幾率。信息收集的方法包括主機網絡掃描、操作類型判別、應用判別、賬號掃描、配置判別等等。

● 端口掃描

通過對目標地址的TCP/UDP端口掃描,確定其所開放的服務的數量和類型,這是所有滲透測試的基礎。通過端口掃描,可以基本確定一個系統的基本信息,結合測試人員的經驗可以確定其可能存在,以及被利用的安全弱點,為進行深層次的滲透提供依據。

● 權限提升

通過收集信息和分析,存在兩種可能性,其一是目標系統存在重大弱點:測試人員可以直接控制目標系統,然後直接調查目標系統中的弱點分佈、原因,形成最終的測試報告;其二是目標系統沒有遠程重大弱點,但是可以獲得遠程普通權限,這時測試人員可以通過該普通權限進一步收集目標系統信息。接下來,盡最大努力獲取本地權限,收集本地資料信息,尋求本地權限升級的機會。這些不停的信息收集分析、權限升級的結果將構成此次項目整個滲透測試過程的輸出。

● 溢出測試

當測試人員無法直接利用帳戶口令登陸系統時,也會採用系統溢出的方法直接獲得系統控制權限,此方法有時會導致系統死機或從新啟動,但不會導致系統數據丟失,如出現死機等故障,只要將系統從新啟動並開啟原有服務即可。一般情況下,如果未授權,將不會進行此項測試。

● WEB應用測試

Web腳本及應用測試專門針對Web及數據庫服務器進行。根據最新的統計,腳本安全弱點為當前Web系統,尤其是存在動態內容的Web系統比較嚴重的安全弱點之一。利用腳本相關弱點輕則可以獲取系統其他目錄的訪問權限,重則將有可能取得系統的控制權限。因此對於含有動態頁面的Web、數據庫等系統,Web腳本及應用測試將是必不可少的一個環節。

● SQL注入攻擊

SQL注入常見於應用了SQL 數據庫後端的網站服務器,入侵者通過提交某些特殊SQL語句,最終可能獲取、篡改、控制網站服務器端數據庫中的內容。此類漏洞是入侵者最常用的入侵方式之一。

● 檢測頁面隱藏字段

網站應用系統常採用隱藏字段存儲信息。許多基於網站的電子商務應用程序用隱藏字段來存儲商品價格、用戶名、密碼等敏感內容。惡意用戶通過操作隱藏字段內容達到惡意交易和竊取信息等行為,是一種非常危險的漏洞。

● 跨站攻擊

入侵者可以藉助網站來攻擊訪問此網站的終端用戶,來獲得用戶口令或使用站點掛馬來控制客戶端。

● Cookie利用

網站應用系統常使用cookies 機制在客戶端主機上保存某些信息,例如用戶ID、口令、時戳等。入侵者可能通過篡改cookies 內容,獲取用戶的賬號,導致嚴重的後果。

● 後門程序檢查

系統開發過程中遺留的後門和調試選項可能被入侵者所利用,導致入侵者輕易地從捷徑實施攻擊。

● 第三方軟件誤配置

第三方軟件的錯誤設置可能導致入侵者利用該漏洞構造不同類型的入侵攻擊。

滲透測試前需要做什麼準備?如何規避風險?

滲透性測試的對象主要為網絡設備、主機操作系統、數據庫系統和應用系統。在測試過程中無法避免的會發生很多可預見和不可預見的風險,因此在測試之前需瞭解目標系統介紹、重點保護對象及特性,測試方必須提供規避措施以免對系統造成重大的影響。如:

1. 測試驗證時間放在業務量最小的時間進行;

2. 測試執行前確保相關數據進行備份;

3. 所有測試在執行前和維護人員進行溝通確認;

4. 在測試過程中出現異常情況時立即停止測試並及時恢復系統;

5. 對原始業務系統進行一個完全的鏡像環境,在鏡像環境上進行滲透性測試

滲透測試的起源與定義


分享到:


相關文章: