◆靳羽豐 夏必勝
Web安全滲透測試流程研究
◆靳羽豐 夏必勝通訊作者
(延安大學(xué) 數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院 陜西 716000)
在互聯(lián)網(wǎng)產(chǎn)業(yè)高速發(fā)展的今天,整個傳統(tǒng)行業(yè)都在向“互聯(lián)網(wǎng)+”靠近,企業(yè)信息化的過程中大多數(shù)應(yīng)用都架設(shè)在Web平臺上,隨著SolarWinds供應(yīng)鏈攻擊、圓通百萬用戶個人信息泄露、委內(nèi)瑞拉全國性斷電等多起大型Web攻擊事件的爆發(fā),Web應(yīng)用系統(tǒng)的安全風(fēng)險達(dá)到了前所未有的高度。Web安全滲透測試已成為評估Web系統(tǒng)是否安全的重要手段。所謂Web安全滲透測試就是通過模擬從內(nèi)部或外部對系統(tǒng)發(fā)起攻擊,從而獲取系統(tǒng)中的敏感信息的過程。以往對于Web安全滲透測試的研究偏重于對滲透測試某一階段的研究,缺乏對整體滲透測試流程的探索,使得測試效率低下。本文首先闡述了Web安全滲透測試的概念,在綜合實(shí)際需求的情況下,在傳統(tǒng)滲透測試流程中新增威脅建模和漏洞分析階段,總結(jié)出一套完整的滲透測試流程。
在互聯(lián)網(wǎng)時代,任何一家有數(shù)據(jù)價值的企業(yè),或多或少都會利用Web站點(diǎn)提供服務(wù)。電子商務(wù)、電子政務(wù)、在線支付等信息化的產(chǎn)物給各行業(yè)帶來升級的同時,一些不法分子正通過攻擊尚未成熟的Web應(yīng)用獲取非法利益。
對于已有的頻發(fā)Web漏洞,安全廠商開發(fā)出一系列Web安全評估產(chǎn)品和設(shè)備,如天融信的防火墻、啟明星辰的入侵防御、綠盟的漏掃等,但是這些設(shè)備只是對已有的頻發(fā)Web漏洞的被動防御[1],很容易被水平較高的黑客繞過,且很少能發(fā)現(xiàn)0day漏洞[2]。
為確保Web系統(tǒng)的安全性,我們通常模擬黑客攻擊方法,利用滲透測試來評估Web系統(tǒng)的安全性[3]。滲透測試人員通過信息收集、漏洞探測等手段對目標(biāo)網(wǎng)絡(luò)進(jìn)行滲透,最終輸出滲透測試報告,管理員根據(jù)滲透測試報告,可以明確知曉系統(tǒng)中存在的安全隱患和問題。
在網(wǎng)絡(luò)安全形勢日益嚴(yán)峻的情況下,安全領(lǐng)域不乏對Web安全的研究,如蒲石主要對SQL注入和XSS漏洞的形成原因和驗(yàn)證方法進(jìn)行了研究[4],鄭雷雷等人從攻擊者的角度,分析了Web軟件常見的安全漏洞和測試方法[5],田偉提出了模型驅(qū)動的SQL注入滲透測試方法,以提高對Web應(yīng)用SQL注入安全漏洞滲透測試的準(zhǔn)確度[6]。Wang Xiaoyu等人提出了一種基于IP端口服務(wù)技術(shù)的網(wǎng)絡(luò)信息安全滲透測試方法和滲透思路[7],Zhang Bo等人探索了二進(jìn)制程序漏洞特征提取和漏洞發(fā)現(xiàn)指導(dǎo)策略生成方法[8],郎智哲等人研究了滲透測試中信息收集階段的任務(wù)[9]……通過閱讀大量與Web安全滲透測試相關(guān)的文獻(xiàn),發(fā)現(xiàn)以往的研究集中于發(fā)現(xiàn)并防范已公布的高危漏洞,或是對滲透測試中的某一階段進(jìn)行深入研究。對于滲透測試整體流程,往往介紹得很籠統(tǒng),忽略了對威脅建模[10]和漏洞分析[11]階段的研究,使得整體測試效率較低。
本文在傳統(tǒng)滲透測試流程中增加了威脅建模和漏洞分析階段,整理出了一套較為完整的Web安全滲透測試流程,闡述了每個階段的具體任務(wù)。
滲透測試[12]是測試人員模擬黑客入侵系統(tǒng)的手法,在合法授權(quán)范圍內(nèi),通過情報搜集、漏洞挖掘、權(quán)限提升等一系列行為,對目標(biāo)系統(tǒng)進(jìn)行深入探測,找出系統(tǒng)漏洞和風(fēng)險所在,并提出修補(bǔ)意見和方案。滲透測試的優(yōu)點(diǎn)就是輸出的報告能夠讓管理員直觀了解當(dāng)前系統(tǒng)的安全狀態(tài),有針對性的修補(bǔ)安全漏洞。
Web安全主要圍繞Web技術(shù)展開,包括客戶端、服務(wù)端、數(shù)據(jù)庫、通信協(xié)議等問題。Web安全滲透測試主要測試Web應(yīng)用程序和設(shè)備配置情況,通過采用合法且可控的手段,找出目標(biāo)服務(wù)器、應(yīng)用程序、通信協(xié)議以及網(wǎng)絡(luò)配置中的安全隱患。
Web安全滲透測試不是毫無目的的攻擊,而是有規(guī)劃有目的的,有規(guī)劃的攻擊往往能事半功倍。滲透測試過程中的威脅建模和漏洞分析階段的主要任務(wù)就是規(guī)劃出最適合的攻擊通道和攻擊點(diǎn),但這兩個步驟往往容易被忽略,導(dǎo)致滲透測試人員對于攻擊的關(guān)鍵點(diǎn)把握不明確、耗時太多。通過分析,本文在傳統(tǒng)的滲透測試流程中加入了威脅建模階段和漏洞分析階段,以提高滲透測試成功率,具體的滲透測試流程如下:
(1)前期交互階段
前期交互(Pre-EngagementInteraction)階段是滲透測試的先決條件,該階段測試團(tuán)隊(duì)需要與客戶進(jìn)行溝通和討論,通過收集客戶需求,確定測試目標(biāo)、定義測試范圍、確定測試團(tuán)隊(duì)、制訂測試計劃。還要保證過程溝通機(jī)制,做好風(fēng)險規(guī)避及應(yīng)急準(zhǔn)備,最終簽訂雙向責(zé)任書。
(2)情報搜集階段
在目標(biāo)范圍確定之后,需進(jìn)行情報搜集(InformationGathering)階段,滲透測試團(tuán)隊(duì)利用各種信息來源與情報搜集方法,對滲透目標(biāo)進(jìn)行細(xì)致的偵察,至少獲取但不限于網(wǎng)絡(luò)拓?fù)?、機(jī)房位置、業(yè)務(wù)情況、系統(tǒng)配置、系統(tǒng)版本、補(bǔ)丁級別、系統(tǒng)漏洞、防御措施等信息,形成對目標(biāo)網(wǎng)絡(luò)的輪廓認(rèn)識,為繞過防御、實(shí)施攻擊做好準(zhǔn)備。對于關(guān)鍵員工,需要收集其履歷背景、網(wǎng)絡(luò)足跡、博客、留言信息、物理位置、工資銀行賬戶等個人信息。
搜集這些情報通??梢越柚詣踊瘨呙韫ぞ吆褪止な占确椒?,如使用站長之家、Nmap端口掃描器、WhatWeb指紋識別工具、社會工程學(xué)等進(jìn)行信息收集。這一階段是滲透測試成敗的關(guān)鍵,如果遺漏某些關(guān)鍵信息,后面的階段可能無法進(jìn)行。
(3)威脅建模階段
威脅建模(ThreatModeling)階段是滲透測試過程中很重要卻容易被忽視的一個關(guān)鍵環(huán)節(jié)。它是一種結(jié)構(gòu)化方法,用于分析和解決問題,通常用來識別、量化并應(yīng)對風(fēng)險。在搜集到足夠的情報之后,滲透測試團(tuán)隊(duì)會理清攻擊思路,充分考慮滲透測試在每一個可攻擊通道的破壞效果和攻擊風(fēng)險,通過進(jìn)行威脅建模分析,找出客戶系統(tǒng)上可能存在的安全漏洞,確定出最可行的攻擊信道。
威脅建模階段一般會對被測單位的業(yè)務(wù)資產(chǎn)、業(yè)務(wù)流程、威脅對象和威脅能力進(jìn)行分析。業(yè)務(wù)資產(chǎn)和業(yè)務(wù)流程分析是對單位自身情況的梳理,威脅對象和威脅能力分析則是對攻擊者的畫像,對于業(yè)務(wù)流程的分析包括基礎(chǔ)設(shè)施分析、每個業(yè)務(wù)線上相關(guān)人員的分析,以及對所使用的第三方平臺的分析;而威脅能力分析則是通過列舉攻擊者可能使用的滲透測試工具、公開的滲透代碼、公司透明的通訊機(jī)制等信息分析攻擊者對被測單位的威脅力度。通過分析被測單位的自身情況和面臨的風(fēng)險,模擬攻擊者在被測單位業(yè)務(wù)流程中的任意環(huán)節(jié)進(jìn)行攻擊,找出最易攻擊的信道。
圖1 威脅建模分析框架
威脅建模的目標(biāo)是識別和消除設(shè)計中的問題,開發(fā)團(tuán)隊(duì)在軟件架構(gòu)過程中應(yīng)盡早執(zhí)行威脅建模,但如果無法實(shí)現(xiàn),無論是系統(tǒng)已經(jīng)部署了或者上線了,威脅建模仍然是有效的安全實(shí)踐活動。
(4)漏洞分析階段
在確定出最可行的攻擊通道之后,接下來需要考慮如何獲得目標(biāo)系統(tǒng)的訪問控制權(quán),即漏洞分析(VulnerabilityAnalysis)階段,這一階段其實(shí)是威脅建模的延伸。
在這個階段,測試人員需要綜合情報搜集階段中獲取的漏洞和端口掃描信息,對發(fā)現(xiàn)的漏洞充分分析其原理、產(chǎn)生根源和風(fēng)險等級等,判斷其對客戶業(yè)務(wù)的危害程度,通過分析,找出具體可以實(shí)施攻擊的點(diǎn)。漏洞分析主要分為漏洞測試、漏洞驗(yàn)證和漏洞分析三個步驟,測試一般分為主動和被動兩種,均可以采用手工或工具自動化掃描方式進(jìn)行;驗(yàn)證主要是對測試的結(jié)果進(jìn)行確認(rèn),驗(yàn)證的方式有很多種,如可以根據(jù)掃描器的掃描結(jié)果進(jìn)行關(guān)聯(lián)驗(yàn)證、手工驗(yàn)證、隔離實(shí)驗(yàn)室驗(yàn)證等;最后對驗(yàn)證的結(jié)果進(jìn)行進(jìn)一步研究,一般會對一些代碼托管平臺、通用缺省口令、廠商漏洞公告等公開資源進(jìn)行研究,再對私有的安全配置和潛在攻擊路徑進(jìn)行研究。在這個階段,如果能充分挖掘到目標(biāo)系統(tǒng)存在的安全問題,找出關(guān)鍵通路上能被利用的未知安全漏洞,就可以快速打開攻擊通道上的關(guān)鍵路徑。
圖2 漏洞分析框架
(5)滲透攻擊階段
滲透攻擊(Exploitation)是滲透測試過程中最重要的環(huán)節(jié)。在此環(huán)節(jié)中,滲透測試團(tuán)隊(duì)根據(jù)前期的信息收集和漏掃結(jié)果基本可以確定漏洞類型,此時就可以采取適當(dāng)?shù)姆绞讲渴鸸舴桨?。如攻擊的最佳時間、攻擊切入口、攻擊方法和攻擊工具等。常見的Web攻擊方式有SQL注入、XSS跨站腳本攻擊、口令爆破、拒絕服務(wù)等。利用找出的目標(biāo)系統(tǒng)安全漏洞,可以真正入侵到系統(tǒng)當(dāng)中,提取管理員權(quán)限,即控制訪問權(quán)。
(6)后滲透攻擊階段
后滲透攻擊(PostExploitation)階段開始于某些客戶系統(tǒng)已被破壞或已經(jīng)獲得管理權(quán)限之后。在這個步驟中,滲透測試團(tuán)隊(duì)根據(jù)客戶的業(yè)務(wù)模型和安全防御計劃的特點(diǎn),確定關(guān)鍵的基礎(chǔ)設(shè)施,并查找客戶組織中比較敏感的信息,如攝像頭、視頻監(jiān)控器、LED大屏幕、WiKi、高價值文檔、數(shù)據(jù)庫信息。通過安裝遠(yuǎn)程控制后門并采用免殺技術(shù)進(jìn)行權(quán)限維持,以獲取源源不斷的數(shù)據(jù),最后進(jìn)行痕跡擦除,避免管理員發(fā)現(xiàn)后失去訪問控制權(quán)限。
(7)撰寫報告階段
滲透測試報告(Reporting)至少分為摘要、過程展示和技術(shù)發(fā)現(xiàn)這幾個部分,摘要包含之前所有階段之中獲取到的關(guān)鍵情報信息、探測和發(fā)掘出的系統(tǒng)安全漏洞,能讓客戶清晰知道系統(tǒng)存在的問題;過程展示則是成功滲透攻擊的過程,能讓客戶知道自己的系統(tǒng)不是牢不可破的,加強(qiáng)客戶的危機(jī)意識和安全保護(hù)意識;技術(shù)發(fā)現(xiàn)部分展示能造成業(yè)務(wù)影響后果的攻擊途徑,這部分將會被客戶組織用來修補(bǔ)安全漏洞,這也是滲透測試中真正價值的體現(xiàn)。
在編寫報告時,需要站在客戶組織的角度上,幫助他們分析系統(tǒng)中的薄弱環(huán)節(jié),給出修補(bǔ)建議,并告知他們利用發(fā)現(xiàn)的安全問題來提升安全意識,提高整體的安全水平。
Web安全滲透測試作為一種主動式安全防御方法,得到了廣大用戶和網(wǎng)絡(luò)安全機(jī)構(gòu)的重視,本文為提高滲透測試的效率,在傳統(tǒng)滲透測試流程中增加了威脅建模和漏洞分析階段,在滲透測試實(shí)施前對面臨的風(fēng)險和漏洞進(jìn)行分析,提出了包括滲透測試前期交互、情報搜集、威脅建模、漏洞分析、滲透攻擊、后滲透攻擊和撰寫報告等7個階段的Web安全滲透測試流程和各階段工作內(nèi)容,對于學(xué)習(xí)和從事Web安全滲透的人員具有一定參考作用。
[1]唐曉東,唐偉,王賢菊.入侵檢測系統(tǒng)與漏洞掃描聯(lián)動的應(yīng)用研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2014(08):121+123.
[2]李沁蕾,樊旭東,閆海林,等.銀行系統(tǒng)0day漏洞挖掘與分析方法研究[J].中國金融電腦,2020(10):67-72.
[3]徐光.基于Kali Linux的Web滲透測試研究[J].信息安全與技術(shù),2015,6(03):56-58.
[4]蒲石. Web安全滲透測試研究[D].西安電子科技大學(xué),2010.
[5]鄭雷雷,宋麗華,郭銳,等.B/S架構(gòu)軟件的安全性測試研究[J].計算機(jī)技術(shù)與發(fā)展,2012,22(01):221-224.
[6]田偉. 模型驅(qū)動的web應(yīng)用SQL注入安全漏洞滲透測試研究[D].南開大學(xué),2012.
[7]Wang Xiaoyu,Li Dandan. Research on network information security penetration test based on IP port service technology[J]. Journal of Physics:Conference Series,2021,1856(1).
[8]Muhammad Noman Khalid et al. Web Vulnerability Finder(WVF):Automated Black-Box Web Vulnerability Scanner[J]. International Journal of Information Technology and Computer Science(IJITCS),2020,12(4):38-46.
[9]郎智哲,封筱宇,董齊芬.淺談Web滲透測試的信息收集[J].計算機(jī)時代,2017(08):13-16.
[10]常艷,王冠.網(wǎng)絡(luò)安全滲透測試研究[J].信息網(wǎng)絡(luò)安全,2012(11):3-4.
[11]袁子牧,肖揚(yáng),吳煒,等.知識、探索與狀態(tài)平面組織的軟件漏洞分析架構(gòu)研究[J].信息安全學(xué)報,2019,4(06):10-33.
[12]李維峰.Web應(yīng)用程序滲透測試淺析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021(03):5-6.
國家自然科學(xué)基金項(xiàng)目:多維性能相關(guān)退化系統(tǒng)可靠性建模與計算研究(71961030);延安市科技局項(xiàng)目:深度學(xué)習(xí)在語言模型及翻譯中的應(yīng)用(203010096);延安大學(xué)項(xiàng)目:深度學(xué)習(xí)在自然語言處理(205040306)