王世軼 吳 江 張 輝
(上海市網(wǎng)絡(luò)技術(shù)綜合應(yīng)用研究所 上海 200233)
網(wǎng)絡(luò)安全等級保護(hù)制度是落實國家網(wǎng)絡(luò)安全法要求的重要措施之一。伴隨著信息技術(shù)的飛速發(fā)展,新的安全漏洞層出不窮,導(dǎo)致信息系統(tǒng)存在的安全隱患越來越多。因此,在等級保護(hù)測評過程中如何及時、準(zhǔn)確地發(fā)現(xiàn)系統(tǒng)存在的安全風(fēng)險,成為非常迫切的需求。滲透測試模擬攻擊者的思維,采用手動或技術(shù)成熟的工具對被測系統(tǒng)的安全性進(jìn)行全面評估,從而最大程度地發(fā)現(xiàn)系統(tǒng)存在的安全隱患,成為等級保護(hù)測評中一個必不可少的重要環(huán)節(jié)。
2017年6月1日,《中華人民共和國網(wǎng)絡(luò)安全法》正式實施,明確要求國內(nèi)運(yùn)營的信息系統(tǒng)須實施等級保護(hù)制度,使等級保護(hù)制度成為國家基本制度并上升到法律層面。在等級保護(hù)的基本要求中,雖沒有相應(yīng)的技術(shù)標(biāo)準(zhǔn)對信息系統(tǒng)“抗?jié)B透”能力做明確規(guī)定,但針對定級為第三級及以上的信息系統(tǒng),在基本要求的安全技術(shù)層面,對系統(tǒng)抵御大規(guī)模惡意攻擊能力、非法入侵檢測與防御能力、抗惡意代碼攻擊能力、安全事件應(yīng)急響應(yīng)及監(jiān)控等能力做了詳細(xì)要求。同時在安全管理層面,要求信息系統(tǒng)須經(jīng)過公正的第三方安全測試才能上線運(yùn)行。
鑒于上述條件約束,被測信息系統(tǒng)若未進(jìn)行滲透測試,則無法滿足等級保護(hù)相關(guān)要求。滲透測試在等保測評中的實施,一方面檢查并驗證被測信息系統(tǒng)存在的安全漏洞,提供切實可行的修復(fù)建議;另一方面,有助于等級保護(hù)測評質(zhì)量的提升。
滲透測試主要依據(jù)業(yè)界公布的或測試人員掌握的安全漏洞信息,采用攻擊者的思維方式,通過工具或手工方式對目標(biāo)的應(yīng)用、主機(jī)、網(wǎng)絡(luò)、數(shù)據(jù)庫等安全性進(jìn)行深入探測,發(fā)現(xiàn)系統(tǒng)最脆弱的環(huán)節(jié)的過程。滲透測試一個重要的原則,即所有的測試行為必須在用戶的書面明確授權(quán)和監(jiān)督下進(jìn)行,經(jīng)授權(quán)的滲透測試,目的是真實、全面地發(fā)現(xiàn)信息系統(tǒng)存在的脆弱性并驗證其可用,不再進(jìn)行后續(xù)滲透操作(如植入后門等),因此,一般不會對信息系統(tǒng)造成危害和損失。
通常,滲透測試一般包括測試準(zhǔn)備、信息探測、測試實施、報告編制四個階段,具體流程如圖1所示。
圖1 滲透測試流程圖
各個環(huán)節(jié)相關(guān)工作內(nèi)容概述如下:
(1) 測試準(zhǔn)備階段 在獲取到單位的書面授權(quán)許可后,開始滲透測試的實施。將實施范圍、方法、工具、時間、人員等具體方案與單位進(jìn)行交流,溝通可能存在的測試風(fēng)險,并得到單位的認(rèn)可。整個測試過程都在單位的監(jiān)督和控制下進(jìn)行。
(2) 信息探測階段 滲透測試過程中,根據(jù)規(guī)定的測試范圍收集信息系統(tǒng)相關(guān)信息,可采用一些商業(yè)或開源的安全評估工具進(jìn)行收集,如Webinspect、Appscan、Nessus、Nmap等,并對探測到的端口、服務(wù)、IP、DNS、OS等信息進(jìn)行整理,為下一步測試實施階段提供支撐。
(3) 測試實施階段 滲透測試人員對探測到的信息進(jìn)行分析,通過制定滲透策略、準(zhǔn)備攻擊代碼、研究繞過機(jī)制等步驟進(jìn)行測試。實施路徑主要包括內(nèi)網(wǎng)和外網(wǎng)兩種:
① 內(nèi)網(wǎng)測試 從內(nèi)網(wǎng)發(fā)起對信息系統(tǒng)的測試工作,目的是避開防火墻等設(shè)備的安全防護(hù)措施。此階段如能成功,可能獲得普通用戶權(quán)限,然后通過提權(quán)等操作,獲取系統(tǒng)的最高權(quán)限。以被控制的服務(wù)器作為跳板,從而對其他目標(biāo)進(jìn)一步滲透測試。
② 外網(wǎng)測試 直接通過互聯(lián)網(wǎng),對信息系統(tǒng)進(jìn)行滲透測試,操作流程與內(nèi)網(wǎng)測試類似。
(4) 報告編制階段 實施人員分析測試結(jié)果,編寫系統(tǒng)滲透測試報告,主要包括具體測試結(jié)果、漏洞結(jié)果評估及整改建議等內(nèi)容。
滲透測試是動態(tài)變化的,測試過程仍可能對應(yīng)用、主機(jī)、網(wǎng)絡(luò)等正常運(yùn)行帶來一定的影響。為了最大程度上避免測試過程對業(yè)務(wù)運(yùn)行造成影響,需要實施風(fēng)險規(guī)避的策略,具體如下:
(1) 方案評審 雙方簽署滲透測試委托書,制定并評審滲透測試方案,得到雙方的認(rèn)可。
(2) 時間策略 選擇合適的測試時間,如選擇夜間或業(yè)務(wù)量不高的時間段進(jìn)行測試,最大程度上避免測試過程對業(yè)務(wù)造成影響,同時預(yù)留風(fēng)險排除時間。
(3) 攻擊策略選擇 對于實時性要求高的核心業(yè)務(wù)系統(tǒng),不建議做深入測試,如DDOS類測試,測試人員可對結(jié)果做分析推測,而不驗證危險的操作。
(4) 系統(tǒng)備份和恢復(fù) 在測試實施前,需對被測系統(tǒng)做完整備份,當(dāng)出現(xiàn)問題時可及時恢復(fù),針對核心業(yè)務(wù)系統(tǒng)建議對備份系統(tǒng)進(jìn)行滲透測試。
(5) 應(yīng)急策略 當(dāng)被測系統(tǒng)出現(xiàn)中斷、響應(yīng)緩慢等問題時,需及時停止測試工作,配合被測單位進(jìn)行故障處置,在故障處理完畢后,經(jīng)單位授權(quán)才能繼續(xù)進(jìn)行剩余的測試。
(6) 溝通策略 雙方建立干系人聯(lián)絡(luò)表,確定接口人,對測試過程中出現(xiàn)的問題及時溝通,并確保溝通有效。
在滲透測試過程中,測試人員使用操作系統(tǒng)自帶網(wǎng)絡(luò)應(yīng)用、診斷工具或開源及商業(yè)軟件,以及自行開發(fā)的安全掃描工具。這些工具在技術(shù)上已經(jīng)非常成熟,具有高度安全和可控性,并能根據(jù)測試者的實際要求進(jìn)行有針對性的測試。但安全工具本身也是一把雙刃劍,需針對系統(tǒng)可能出現(xiàn)的問題提出相應(yīng)對策,以確保在滲透測試的過程中保持在可控狀態(tài)。
(1) 系統(tǒng)自有工具 表1列出了常用的系統(tǒng)自帶網(wǎng)絡(luò)應(yīng)用、管理和診斷工具,測試人員將用到但不限于以下命令進(jìn)行測試。
表1 系統(tǒng)自有工具表
(2) 其他測試工具 表2列出了滲透測試中常用到的網(wǎng)絡(luò)掃描工具、網(wǎng)絡(luò)管理軟件等,測試人員將可能用到但不限于以下工具。
表2 其他測試工具表
續(xù)表2
本文通過一個實例來說明滲透測試是如何在等保測評中實施的。在某單位等保三級系統(tǒng)測評中,需對用戶的WEB系統(tǒng)進(jìn)行滲透測試,以驗證信息系統(tǒng)的整體安全防護(hù)水平。
滲透測試小組根據(jù)信息系統(tǒng)的規(guī)模和實際業(yè)務(wù)情況制定詳細(xì)的滲透測試方案,包括制定合理的滲透測試計劃、選擇適當(dāng)?shù)臏y試方法、充分準(zhǔn)備測試工具,分析測試過程中可能帶來的風(fēng)險和相應(yīng)的風(fēng)險規(guī)避方法等。
滲透測試人員使用多種系統(tǒng)或工具進(jìn)行信息收集工作,包括系統(tǒng)掃描工具Nmap、Openvas、Burpsuit等,經(jīng)掃描發(fā)現(xiàn)系統(tǒng)開放了80、139、445、3389、47001等端口。針對這些服務(wù)從系統(tǒng)層面和WEB層面進(jìn)行分析,發(fā)現(xiàn)系統(tǒng)存在文件共享、遠(yuǎn)程接入、SQL注入、XML注入等漏洞,為下一步的漏洞利用提供基礎(chǔ)。
另外,針對信息收集階段的測試方法、測試內(nèi)容及可能存在的風(fēng)險,做了應(yīng)急處置策略,具體如表3所示。
表3 信息收集風(fēng)險控制表
根據(jù)獲取的漏洞信息,結(jié)合信息系統(tǒng)的特點(diǎn)、異構(gòu)性等方面對漏洞進(jìn)行確認(rèn),并制定滲透測試策略。獲取的信息發(fā)現(xiàn)高危漏洞,嘗試直接利用高危漏洞,驗證是否可用。下面以“文件共享”漏洞為例,介紹測試過程。
第一步制定滲透測試策略:1) 目標(biāo):獲取被測系統(tǒng)服務(wù)器的控制權(quán)限;2) 實施途徑:系統(tǒng)漏洞掃描-->服務(wù)漏洞-->漏洞利用-->獲取遠(yuǎn)程Shell-->建立用戶-->遠(yuǎn)程桌面;3) 說明:如果獲取的遠(yuǎn)程Shell權(quán)限較低,則需提權(quán)后再建立用戶。
第二步采用不同的漏掃工具對已掃描的漏洞進(jìn)行確認(rèn),結(jié)果確認(rèn)系統(tǒng)服務(wù)器存在熟知漏洞(掃描工具為nmap和Nessus),編號為MS08-067。該漏洞是針對文件共享服務(wù)的,若服務(wù)器收到特制的 RPC請求,則該漏洞可能允許遠(yuǎn)程執(zhí)行代碼。
第三步漏洞確認(rèn)之后,采用漏洞利用工具實施溢出,順利獲取Shell控制界面,執(zhí)行“whoami”命令,查看“用戶及用戶組”,顯示為“Administrator”用戶組,表明獲取的是系統(tǒng)管理員的權(quán)限,即獲取系統(tǒng)最高控制權(quán)。
第四步通過該Shell建立后門帳號,后續(xù)使用后門帳號即可遠(yuǎn)程登錄系統(tǒng),至此整個過程完成(該步驟獲得用戶許可)。
另外,在測試實施階段,測試人員通過前期收集到的信息,對單位被測信息系統(tǒng)進(jìn)行工具或手工測試。針對測試對象和測試方法以及可能出現(xiàn)的風(fēng)險做了應(yīng)急處置策略,具體如表4所示。
表4 測試實施風(fēng)險控制表
續(xù)表4
滲透測試完成后,測試人員整理工作內(nèi)容和成果。根據(jù)發(fā)現(xiàn)的安全漏洞和安全風(fēng)險提出系統(tǒng)存在的問題,并有針對性的提出問題整改建議,形成《滲透測試報告》。
本次對該單位WEB系統(tǒng)進(jìn)行的滲透測試,模擬黑客成功獲取服務(wù)器的最高控制權(quán)限,并獲取后臺數(shù)據(jù)庫數(shù)據(jù)信息。系統(tǒng)層面的漏洞主要是由于軟件開發(fā)過程中的缺陷,一般需要嚴(yán)密跟蹤軟件廠商的安全預(yù)警,及時更新系統(tǒng)補(bǔ)丁。因此,建議用戶構(gòu)建漏洞預(yù)警與更新機(jī)制,在日常的安全維護(hù)中,對重要系統(tǒng)定期進(jìn)行漏洞掃描,并在確認(rèn)安全的基礎(chǔ)上更新補(bǔ)丁。在等級保護(hù)項目中實施滲透測試,能及時發(fā)現(xiàn)信息系統(tǒng)存在的安全風(fēng)險,做好預(yù)防措施,也能更好地滿足等級保護(hù)相關(guān)要求,保障被測信息系統(tǒng)安全、穩(wěn)定運(yùn)行。