藍(lán)軍(Blue Team)的價值是站在攻擊者的位置從實戰(zhàn)角度協(xié)助防守方發(fā)現(xiàn)問題,避免防守方在進(jìn)行安全建設(shè)時以自我為中心紙上談兵,所謂以攻促防是也。藍(lán)軍的實戰(zhàn)經(jīng)驗很重要,本文即是騰訊藍(lán)軍團隊兩位經(jīng)常參與各類紅藍(lán)對抗賽事成員的經(jīng)驗之談,歡迎與大家探討。
近年來各種大規(guī)模的紅藍(lán)對抗賽事方興未艾,攻防實戰(zhàn)受到了更多的重視。紅隊和藍(lán)隊的打法逐漸提升并趨于成熟,已不再是單方面的攻擊與防御,而演變?yōu)楣シ啦┺暮蛶缀醪幌奘址ǖ膶寡萘?xí)。與傳統(tǒng)的滲透測試相比,這種高強度的紅藍(lán)對抗有著明顯不同,甚至較量的不僅僅是技法,而包括戰(zhàn)術(shù)打法、心態(tài)與體力的考驗。
溯源與反溯源
溯源讓演習(xí)得以攻守互換,是防守方的重要工作之一。演習(xí)攻擊方并不能毫無顧忌的肆意輸出,首先需要考慮的是隱藏自身,這也讓演習(xí)更加貼近于真實的攻擊行動。這里討論的溯源并不只是停留在分析攻擊手法和定位來源IP上,更進(jìn)一步需要關(guān)聯(lián)到真實的行為人,所以攻擊方使用匿名資源變得非常必要:
VPN、匿名代理
純凈的滲透環(huán)境、虛擬機
匿名郵箱、手機號、VPS等
純凈的移動設(shè)備、無線設(shè)備等
實名的資源變得不太可靠,這并不是夸張,防守方通過各種途徑可以反查到攻擊者的蹤跡,甚至動用“社工”等攻擊手段,包括不限于博客、實名認(rèn)證的社交賬號、手機號、服務(wù)器等等。在攻防基礎(chǔ)設(shè)施相對完善的前提下,很多溯源與反溯源的對抗會下沉到細(xì)節(jié)層面,比如攻擊隊員通過社交工具傳遞目標(biāo)可疑URL時,如果誤點擊通過系統(tǒng)默認(rèn)的瀏覽器打開,則可能會被JSONP蜜罐捕獲社交賬號或者被抓到真實出口IP。當(dāng)然這也對防守方的溯源分析能力是一個考驗,從海量攻擊數(shù)據(jù)中提取出有效的關(guān)鍵信息?,F(xiàn)在大量的蜜罐等主動防御手段起到了不錯的效果,需要注意的是蜜罐本身安全措施也需要隔離得當(dāng),避免造成安全隱患。
作為應(yīng)對,攻擊方必須使用純凈的專用滲透環(huán)境進(jìn)行攻擊,完全與日常工作環(huán)境區(qū)分開來,并做測試環(huán)境的定期還原。在識別蜜罐之后,可以通過投喂大量臟數(shù)據(jù),甚至偽造一個反向蜜罐,誘導(dǎo)防守方進(jìn)入并誤導(dǎo)溯源或者消耗防守方的精力,這也是防守方需要甄別和解決的問題,在演習(xí)行動的過程中,溯源與反溯源的故事一直在繼續(xù)。
數(shù)據(jù)儲備
圈定時間的演習(xí)對抗跟真實世界的攻擊還是有一定區(qū)別的,防守方有相對充足的時間提前修筑防御工事,比如收斂外網(wǎng)的入口、關(guān)閉不重要的業(yè)務(wù)網(wǎng)站、限制關(guān)鍵系統(tǒng)的訪問來源、降低安全設(shè)備攔截閾值等,甚至不惜降低用戶體驗以提升安全性。而攻擊方由于演習(xí)前目標(biāo)未知,在戰(zhàn)時狀態(tài)下再臨時進(jìn)行信息搜集和掃描探測效果必然會有一定折扣,并且很容易被攔截和封禁,往往很難定位到關(guān)鍵的資產(chǎn)。
此時,全網(wǎng)數(shù)據(jù)和被動信息搜集就會變得非常有價值,比如DNS歷史解析記錄、Whois歷史信息、歷史端口開放情況、網(wǎng)絡(luò)流量信息等等,這些數(shù)據(jù)可以幫助你:
找出網(wǎng)站真實IP,挖掘相鄰網(wǎng)段、繞過安全設(shè)備
判斷目標(biāo)是否為蜜罐
定位內(nèi)網(wǎng)IP和系統(tǒng)
定位關(guān)鍵的應(yīng)用系統(tǒng)
另外對于集團型目標(biāo),企業(yè)關(guān)系錯綜復(fù)雜,企業(yè)信息的數(shù)據(jù)儲備則有助于快速定位關(guān)鍵目標(biāo),如天眼查、企查查、備案信息等。對于集團來說,不同領(lǐng)域的控股子公司,以及他們的孫公司往往差異很大,與目標(biāo)系統(tǒng)不一定網(wǎng)絡(luò)可通。通過控股關(guān)系,可以優(yōu)先篩選出一批離目標(biāo)系統(tǒng)較近的資產(chǎn)列表。另外通過采購公告、版權(quán)聲明、專利、軟件著作權(quán)、知識產(chǎn)權(quán)列表,也可能可以直接定位到目標(biāo)系統(tǒng)的研發(fā)單位,特別是對一些有自己IT支撐單位的目標(biāo)集團。
0day儲備
大規(guī)模演習(xí)項目時間緊、任務(wù)重、人力有限,效率非常重要。常規(guī)突破手段無法完全滿足需求,在對目標(biāo)組織結(jié)構(gòu)沒有詳細(xì)了解的情況下,正面硬剛的路徑會很長,光是突破邊界、摸清內(nèi)網(wǎng)狀態(tài),判斷是否連通靶標(biāo)就需要花費較長時間。此時攻擊關(guān)鍵的基礎(chǔ)設(shè)施:郵件系統(tǒng)、OA系統(tǒng)、VPN系統(tǒng)、企業(yè)知識庫、域控、集中管控等系統(tǒng)的價值則非常大。一個有效的0day則可以節(jié)省數(shù)天時間,至少可以直接獲得一個外網(wǎng)的有效突破口,起到事半功倍的效果。譬如拿到OA系統(tǒng)可以摸清目標(biāo)集團的組織架構(gòu),定位靶標(biāo)系統(tǒng)位置,郵箱和VPN則更不用多說,從今年陸續(xù)曝出的0day數(shù)量也略見一斑。
對于防守方來說,從行為檢測上看,其實0day并沒有那么可怕,即使遭遇0day攻擊,主機上的對抗也會回到基本面上,比如:Webshell、惡意命令、反彈Shell、端口掃描、黑客工具、端口轉(zhuǎn)發(fā)、提權(quán)、C2通信等等,這里就要求防守方超越IoC和傳統(tǒng)黑特征的束縛,不依賴對特定漏洞利用的先驗知識,而全面基于行為數(shù)據(jù)進(jìn)行建模,從而擁有發(fā)現(xiàn)和識別通過未知漏洞突破的惡意活動檢測能力。對于完善的縱深防御體系來說,抓住端點上的蛛絲馬跡,可能在攻擊者嘗試執(zhí)行探測命令時就可以告警了,甚至可以用蜜罐捕獲0day。攻擊隊的0day利用也需要深思熟慮,識別繞過蜜罐,并盡量趨向于合法操作,比如添加賬號,而不是執(zhí)行黑命令或者直接反彈Shell。
工具儲備
工欲善其事必先利其器,對于攻擊隊來說,需要將所使用的到的工具進(jìn)行免殺處理。C2載荷常見的處理方式包括域前置、ShellcodeLoader、加殼,也包括合法的軟件簽名等等,除了對木馬進(jìn)行免殺之外,滲透過程中也盡量不直接使用公開的工具,至少重新編譯或者消除已知的文件特征,否則防守方通過最簡單的IoC匹配就能成功告警。
一個典型場景:當(dāng)挖掘到一個潛在的上傳漏洞,并且花費時間繞過了WAF,結(jié)果上傳了一個一句話木馬,很可能會直接觸發(fā)主機層面的Webshell文件告警,導(dǎo)致功虧一簣。內(nèi)網(wǎng)滲透中的端口轉(zhuǎn)發(fā)、掃描、密碼抓取等工具也是同理。當(dāng)然也看到目前滲透工具廣泛的使用了無文件的攻擊方式,如進(jìn)程注入、從內(nèi)存加載。Net程序集、向Java Servlet容器中動態(tài)注冊字節(jié)碼等等,顯著提升了惡意工具執(zhí)行的隱蔽性。另外,一些工程化的工具,比如郵件內(nèi)容批量分析、通訊錄提取等等,也會提升相當(dāng)效率,節(jié)省寶貴時間。
相對應(yīng)的從防守角度來說,無論是C2通信、橫向移動、掃描,即使繞過端點檢測系統(tǒng),流量中也難免會留下蛛絲馬跡,并且無文件的程序最終也會執(zhí)行命令,所以除了靜態(tài)文件檢測外,還可以嘗試通過RASP、流量取證分析、行為數(shù)據(jù)流等方式從多個維度發(fā)現(xiàn)潛在的攻擊行為。
弱口令與字典
橫亙在攻擊者與目標(biāo)企業(yè)內(nèi)部資源之間的非常直接的因素就是賬號,當(dāng)不必要的業(yè)務(wù)都下線關(guān)站之后,一個可以進(jìn)入在線業(yè)務(wù)系統(tǒng)的賬號變得非常珍貴,比如域賬號、WiFi賬號、郵箱賬號、員工OA賬號、管理后臺賬號等等。除了考驗攻擊隊的信息搜集能力之外,各種字典的合理性和命中率就可以在攻擊隊之間拉開一定的差距,常見的字典比如:用戶名字典、針對性的密碼字典、網(wǎng)站目錄字典、參數(shù)字典等等。一個好字典發(fā)揮的作用很可能超出預(yù)期,哪怕是邊界網(wǎng)絡(luò)設(shè)備的弱口令,也可能會打開直達(dá)內(nèi)網(wǎng)的通路。
爆破賬號時如果可以對用戶名、密碼分開爆破是最好的,在通過各種途徑獲取到一批用戶后,可以以密碼為維度進(jìn)行密碼噴射爆破。對于Web系統(tǒng)來說,可能會遇到驗證碼增加爆破成本和難度,這里可以調(diào)用打碼平臺的API,傳統(tǒng)圖片驗證碼的識別率已經(jīng)相當(dāng)高了。
對于防守方來說,需要建模檢測廣度優(yōu)先的密碼噴射爆破行為及賬號異常登錄行為。另外可以將驗證碼升級為更加智能的下一代行為驗證碼,增加人機設(shè)備識別、滑動驗證碼等措施來有效防止爆破。
分工配合
大規(guī)模紅藍(lán)對抗有逐漸類軍事化對抗的趨勢,全局上要求攻擊方具有更組織化的分工與合作,像社工釣魚、近源滲透、無線入侵等入口也需要提前安排部署。大體上人員技能可以分為:
信息搜集、數(shù)據(jù)分析
外網(wǎng)滲透
內(nèi)網(wǎng)滲透、域滲透
逆向分析
釣魚社工
近源滲透
漏洞利用、0day挖掘
報告編寫
其他的技能點還包括安全設(shè)備繞過、數(shù)據(jù)庫利用、網(wǎng)絡(luò)設(shè)備利用、木馬免殺、持久化、工具與協(xié)同平臺支持等等。對于項目來說,報告編寫往往是展現(xiàn)成果最直接的環(huán)節(jié),報告的細(xì)節(jié)、側(cè)重點需要盡可能貼近項目要求或者比賽規(guī)則,是比較繁雜而不可或缺的工作。
作為防守方,為了應(yīng)對全方位的攻擊手法,除了常規(guī)防御外,加派安保人員防范近源滲透也不失為防御體系的一環(huán)。
以上是筆者一些粗淺的觀察,僅當(dāng)拋磚引玉。攻擊和防守的博弈需要靠技術(shù)和經(jīng)驗,同時也是個體力活。言知之易,行之難,如何在有限時間內(nèi)達(dá)成目標(biāo)?合理的分工協(xié)同與工作節(jié)奏非常重要,攻防過程中需要保持良好的心態(tài)與清晰的思路,沉著冷靜避免失誤。道阻且長,行則將至,攻防雙方均需砥礪前行。