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