滲透測試和紅隊
滲透測試
滲透測試是對給定的目標系統進(jìn)行安全測試,找出漏洞或風(fēng)險的過(guò)程。滲透測試工程師會(huì )從不同的層面(包括應用層、網(wǎng)絡(luò )層、系統層甚至物理層)對目標系統進(jìn)行脆弱性分析,嘗試找出盡可能多的漏洞、配置錯誤或其他安全風(fēng)險,并嘗試對這些找到的漏洞進(jìn)行組合利用,最終獲取到訪(fǎng)問(wèn)關(guān)鍵隱私數據的權限(隱私數據包括用戶(hù)信息或者商業(yè)秘密等)。滲透測試過(guò)程中對漏洞的利用一方面能證明漏洞真實(shí)存在,另一方面這些漏洞的利用結果也能揭示出目標系統所面臨的風(fēng)險等級。
滲透測試專(zhuān)注于對給定的系統進(jìn)行測試,存在明確的測試目標和測試邊界。企業(yè)會(huì )指定測試起始時(shí)間和結束時(shí)間,測試時(shí)長(cháng)一般為1到2周。測試目標可能是web系統、工業(yè)控制網(wǎng)絡(luò )、內部辦公網(wǎng)絡(luò )等等。各類(lèi)眾測平臺上的測試任務(wù)本質(zhì)上就是滲透測試任務(wù),這些任務(wù)都會(huì )明確測試范圍,比如指定web系統域名、指定測試的APP等。
一般安全企業(yè)提供的滲透測試服務(wù)通??梢苑纸獬梢唤M針對不同系統的測試任務(wù),如針對web系統的測試任務(wù)、針對內部辦公網(wǎng)的測試任務(wù)、社會(huì )工程學(xué)測試任務(wù)等等。
滲透測試在評估系統或網(wǎng)絡(luò )的安全性時(shí),通常會(huì )忽略企業(yè)里其他運行環(huán)境的安全限制。例如,內網(wǎng)滲透測試將從內網(wǎng)中惡意用戶(hù)(例如惡意員工或被入侵的員工機器)的角度評估企業(yè)的網(wǎng)絡(luò )安全性。測試工程師到達現場(chǎng)后,將會(huì )直接將筆記本電腦接入內部辦公網(wǎng)絡(luò )開(kāi)始進(jìn)行測試。內網(wǎng)滲透測試會(huì )忽略黑客在內網(wǎng)中獲得初始落腳點(diǎn)這個(gè)步驟(通常是通過(guò)釣魚(yú)郵件或其他方式欺騙員工運行惡意程序),直接從已有內網(wǎng)接入權限開(kāi)始進(jìn)行測試。內網(wǎng)測試報告會(huì )包含內網(wǎng)中暴露的有漏洞的服務(wù)、未打補丁的系統、錯誤的系統配置、敏感文件共享等等安全問(wèn)題,但是不會(huì )包含黑客最初如何獲取內網(wǎng)接入權限這個(gè)步驟。
在滲透測試過(guò)程中,企業(yè)中負責防護的安全團隊一般不會(huì )直接參與,為了配合滲透測試,企業(yè)有時(shí)會(huì )關(guān)閉某些安全防護軟件或禁用安全策略,方便測試工程師找出更多的安全漏洞。
當整個(gè)滲透測試活動(dòng)結束后,工程師會(huì )出具一份滲透測試報告,里面包含所有發(fā)現的漏洞列表以及每個(gè)漏洞具體的利用步驟和過(guò)程,同時(shí)會(huì )依據漏洞危害給出相應的威脅等級評分。
紅隊
盡管紅隊測試在有些攻擊技術(shù)方面類(lèi)似滲透測試,但不同于滲透測試盡量多找漏洞的目標,紅隊測試的任務(wù)往往是拿下某個(gè)特定的業(yè)務(wù)目標(比如公司某個(gè)項目的源代碼,公司競標標書(shū)和底價(jià)等商業(yè)機密,某個(gè)高層管理人員的郵箱或個(gè)人機等) 。紅隊要模擬真實(shí)世界中的極具目的性且不希望被檢測到的惡意攻擊者(受競爭對手雇傭的惡意黑客,收集政治、經(jīng)濟和科技情報的境外國家資助的黑客團伙等),紅隊測試某種程度上可以說(shuō)是合法的高級持續性威脅(APT)。在這種完全貼近真實(shí)攻擊的測試活動(dòng)中,能夠測試企業(yè)安全防護體系的阻斷(prevention)、檢測(detection)和響應(response)能力。
滲透測試中只關(guān)注給定目標系統的漏洞,紅隊測試則完全不一樣。紅隊在測試過(guò)程中關(guān)注的是如何規劃一條攻擊路徑來(lái)達到目的。在整個(gè)紅隊測試過(guò)程中不一定要也不一定會(huì )發(fā)現目標組織的漏洞,只要能達到目的,任何形式的攻擊手段都可以使用,包括但不限于web或者操作系統漏洞、社會(huì )工程學(xué)、物理滲透、攻擊上下游合作供應商等。
在紅隊測試開(kāi)始前,除了任務(wù)目標外,不會(huì )給到紅隊關(guān)于目標企業(yè)的任何其他信息。紅隊需要通過(guò)各種渠道去搜集目標的物理位置、公開(kāi)的網(wǎng)絡(luò )系統和服務(wù)、組織架構以及雇員等信息,然后根據收集的信息制定攻擊計劃并實(shí)施。被測企業(yè)并不清楚(或僅有少數人清楚)攻擊將于何時(shí)發(fā)起,將以何種方式進(jìn)行。紅隊測試的持續時(shí)間一般比滲透測試更長(cháng),可以達到4到6周甚至更長(cháng)(想想看真實(shí)APT攻擊中長(cháng)達數月的潛伏和持續滲透)。
紅隊在實(shí)施攻擊時(shí),會(huì )盡量隱藏自己的蹤跡,另外還會(huì )詳細記錄每個(gè)攻擊行為的具體實(shí)施時(shí)間,在整個(gè)行動(dòng)結束后需要與組織中的防御檢測部門(mén)(即藍隊)的檢測響應時(shí)間表進(jìn)行核對,以此來(lái)評估防御檢測機制的有效性和響應速度,同時(shí)檢查藍隊在哪些方面存在漏報和響應不及時(shí),幫助藍隊更好的發(fā)現防御檢測層面的弱點(diǎn)。這一點(diǎn)CS做的很好,可以導出紅隊的詳細操作日志和時(shí)間。
結語(yǔ)
兩者并沒(méi)有哪個(gè)更好之說(shuō),對于企業(yè)來(lái)講,先要搞清楚具體的場(chǎng)景和安全需求,才能確定需要的是滲透測試還是紅隊測試。對于新上線(xiàn)的業(yè)務(wù)系統,需要搞清楚存在那些漏洞以及漏洞可能造成的危害時(shí),需要的是滲透測試;如果企業(yè)各個(gè)子系統都已經(jīng)進(jìn)行過(guò)滲透測試,并且存在成熟的漏洞管理、防御檢測以及應急響應機制,另外還想要對企業(yè)整體安全環(huán)境進(jìn)行評估,了解企業(yè)在面臨真正的安全攻擊事件時(shí),是否有能力防御或者檢測并及時(shí)響應,那么需要的便是紅隊評估。
最后說(shuō)一點(diǎn),在很多人的認知里面,一個(gè)企業(yè)被攻破一定是因為存在安全漏洞或者配置錯誤之類(lèi)的安全問(wèn)題,這是不正確的。如果真這么簡(jiǎn)單,那只要按時(shí)打補丁,就能防住所有沒(méi)有0day的惡意黑客甚至防住APT攻擊了。上文已經(jīng)說(shuō)過(guò),紅隊測試過(guò)程中不一定會(huì )發(fā)現安全漏洞,很多時(shí)候不需要安全漏洞就能打穿一個(gè)企業(yè)。而現今的安全市場(chǎng),很多企業(yè)還是以漏洞數量來(lái)評定安全服務(wù)團隊的能力,就導出現了很多安全服務(wù)報告硬湊漏洞數量的怪象。在這種大環(huán)境下,企業(yè)可能反而認為沒(méi)有發(fā)現安全漏洞但打穿了他們的紅隊安全能力不行,或者認為純粹是偶然僥幸才能得手。這是一個(gè)認知升級的過(guò)程,什么時(shí)候能不以漏洞數量來(lái)評定安全服務(wù)能力,才能說(shuō)真正理解了安全和攻擊。