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