什么是紅藍對抗
在軍事領域,演習是專指軍隊進行大規模的實兵演習,演習中通常分為紅軍、藍軍,演習多以紅軍守、藍軍進攻為主。類似於軍事領域的紅藍軍對抗,網絡安全中,紅藍軍對抗則是一方扮演黑客(藍軍),一方扮演防御者(紅軍)。在國外的話,進行滲透攻擊的團隊經常稱做紅隊,在國內稱為藍隊實際上應該是比較准確的叫法。
紅藍對抗的目的
安全是一個整體,正如木桶定律,最短的木板是評估木桶品質的標准,安全最薄弱環節也是決定系統好壞的關鍵。而網絡紅藍軍對抗的目的就是用來評估企業安全性,有助於找出企業安全中最脆弱的環節,提升企業安全能力的建設。
紅藍對抗關注點
其實紅藍對抗點沒有統一的標准,因為很多會涉及到業務以及內網攻擊的場景,所以個人認為紅藍團隊比較適合甲方團隊自己組建,這樣信息資源比較可控,做的也會更細致。例如曾經在中小型互聯網公司做的紅藍對抗點:
- 外網web安全
- 辦公網安全
- IDC主機安全
- DB專項
這邊web安全的關注點會不同於滲透測試的團隊,例如紅藍團隊就會關注一些敏感文件泄漏、管理后台暴露、waf有效性、waf防御效果、違規使用的框架等。再例如辦公網安全紅藍團隊還會關注安全助手的一些問題,也就是說紅藍團隊關注的不僅是應用服務的漏洞,各個安全組件的效果、漏洞都會關注到。
上面都是按照一個個大項來進行,其實還有的紅藍團隊是按項目來分,比如說xx支付業務紅藍對抗,給你域名或者ip,讓你自由發揮,不限方法拿到目標flag(例如xx支付的數據或者機器權限等),這個過程不要求測的全,以結果為導向。然后紅隊(防御方)盡可能復盤補漏,把不完善的地方都補齊。后面可以繼續進行對抗演練,繼續找出薄弱點,這邊很考驗紅隊的技術和業務的了解程度,能從藍隊的攻擊鏈路中,找出盡可能多的脆弱點,做出防御策略。所以,我覺得紅藍對抗還是得根據公司的規模、安全人員的比例、技術人員的素養做制定,都按同一套標准是不會適用所有公司的。我的建議就是中小規模公司的紅藍對抗點盡可能覆蓋全,盡可能找出全量的脆弱點讓紅隊的人員進行修復后進行新一輪對抗。而大公司就可以不用考慮面面俱到,以奪取目標結果為導向,脆弱點由紅隊自己發現,紅隊自己修復,而后周期的進行紅藍對抗。可以看出大公司的紅藍對抗更類似於APT攻擊,這也正是大公司藍隊喜歡招APT人員的關系。
紅藍對抗測試的方法
如果是中小型的互聯網企業的話,我的方法是先預先討論好並記錄下腦圖,然后
- 按專項測試
- 每個專項包含很多點,按點排期測試
- 報告撰寫,漏洞閉環
- 例行掃描
- 持續跟進,復盤測試
因為中小型企業個人認為還是以全為主,盡可能把漏洞修復完。大型公司可以大量的人力投入,業務也繁多,還是以結果導向,漏洞的薄弱點由紅隊確認,所以方法就沒有統一的標准。
紅藍對抗注意事項
- 測試前提前報備
- 有可能會影響到業務的操作時候務必提前溝通
- 漏洞的確認按照公司的規范制度制定
- 漏洞和業務溝通確認后再發工單修復
- 漏洞閉環
這邊需要注意的是測試需要提前報備,免得事后被業務捅,更要注意的是測試千萬不要影響到業務。 還有經常有點大家會忽略的是,一定要進行漏洞閉環,發現漏洞而不去解決漏洞等於無效漏洞。
紅藍對抗所需技術
紅藍對抗不同於滲透測試,紅藍對抗測試的范圍很廣泛,不僅需要滲透技術,還需要逆向、腳本編程、各種繞過黑魔法等。所以,紅藍對抗不僅需要滲透測試的人才,也需要逆向的工程師,甚至是區塊鏈安全工程師、數據安全方向的工程師等,所以說其實在大公司更容易開展紅藍對抗,因為大公司人才更加齊全。紅藍對抗也需要團隊的協作,一個人是比較難完成的,更好的方式,不同的團隊進行紅藍對抗,每個團隊攻擊的方法思路也不盡相同,更能模擬真實的場景攻擊,對於紅隊查缺補漏也更有幫助。如下,是用到的一小部分工具:
- Python
- IDA
- JEB
- Masscan
- Nmap
- Metasploit
- 搜集的各類樣本
總結:
紅藍對抗一定要區別於滲透測試,滲透測試這是每個公司的標配。紅藍對抗的價值在於挖掘滲透測試不關注的漏洞或者滲透測試無法覆蓋的點,並且持續的對抗,不斷幫助業務提升安全能力,完善自己的安全防御。根據自己做的紅藍對抗經驗來說,我們發現辦公安全助手的漏洞、waf的部署缺和繞過缺陷以及HIDS一些缺陷等。其實這些東西滲透測試很少會去涉及和考慮,而紅藍對抗的作用就顯現,這些風險的發現對於自身的安全防御是有很大的幫助的,因為你挖漏洞只是修修補補,而做這些紅藍對抗發現的問題,則是解決一類的問題。對於這種方式的對抗,老大也認可,自己也有很有滿足感,所以對於紅藍對抗,其實是很適合互聯網安全團隊去嘗試組建的。