韓 杰,馮美琪,李建欣
(1.北京航天萬源科技有限公司,北京 100176;2.中國民航信息網(wǎng)絡(luò)股份有限公司 運行中心,北京 101318)
在全球化和信息化的時代背景下,網(wǎng)絡(luò)逐漸成為意識形態(tài)較量的新戰(zhàn)場[1],其主要表現(xiàn)形式為網(wǎng)絡(luò)攻防戰(zhàn)[2]。在網(wǎng)絡(luò)攻防戰(zhàn)中,由于攻擊來源的追蹤查找是抵御網(wǎng)絡(luò)攻擊的一項主動防范技術(shù),因為攻擊者最為在意的就是如何隱藏自身真實身份[3],不被防守方溯源反制。在前期攻擊者使用的反溯源技術(shù)較為單一,手段多為刪除各種日志或者不斷更換網(wǎng)卡,效率較低,也更易被發(fā)現(xiàn)。隨著攻防技術(shù)的演進,攻擊和防守在持續(xù)的博弈中各自精進,現(xiàn)有溯源技術(shù)呈現(xiàn)多維、多技術(shù)的綜合特征,主要溯源技術(shù)有:基于OmegaLog框架[4]、基于網(wǎng)絡(luò)流量風險數(shù)據(jù)聚類[5]、基于攻擊圖譜的溯源分析技術(shù)[6]、基于大數(shù)據(jù)技術(shù)的多層溯源框架[7]等。溯源技術(shù)多維和多技術(shù)的特征讓攻擊者在各個滲透階段都有可能暴露自己的真實身份,現(xiàn)有手段已無法完美地隱藏自己,存在較高的暴露風險,此時云服務(wù)化和Serverless架構(gòu)為攻擊者提供了反溯源的新思路。
針對現(xiàn)有反溯源技術(shù)的不足,該文利用Serverless架構(gòu)中的云函數(shù)實現(xiàn)攻擊地址的隱藏進而驗證其可行性,同時深入分析訪問時的流量數(shù)據(jù),與正常訪問時的數(shù)據(jù)進行對比分析,選取存在顯著差異的特征作為主要指標,構(gòu)建威脅檢測模型,提供利用云函數(shù)進行網(wǎng)絡(luò)攻擊的檢測思路。
匿名通信技術(shù)通過隱藏通信雙方IP地址、物理位置等實體信息和通信關(guān)系的通信技術(shù),使竊聽者無法直接獲知或推導得知通信雙方的通信關(guān)系或某一方的信息,從而更好地保護網(wǎng)絡(luò)用戶的通信隱私[8]。匿名通信系統(tǒng)主要分為基于Mix算法、基于OnionRouting算法和基于泛洪算法。當前關(guān)于匿名通信技術(shù)的研究主要集中在提供匿名性能,而其在網(wǎng)絡(luò)攻擊中的應(yīng)用實例主要是Tor匿名網(wǎng)絡(luò),由于低延時、易于配置和使用、服務(wù)穩(wěn)定可靠等優(yōu)點,是目前互聯(lián)網(wǎng)中最成功的公共匿名通信服務(wù)[9]。
跳板攻擊技術(shù)是目前攻擊方的普遍攻擊形式,其主要的作用就是隱藏攻擊源。其常見的應(yīng)用實例就是跳板機。所謂跳板機就是一臺可以聯(lián)網(wǎng)的服務(wù)器,攻擊者通過自己的本機控制跳板機,通過一個跳板機或多個跳板機對目標實施攻擊行為,從而達到隱藏自身的目的。其主要分為兩種利用形式[10]:一是簡單經(jīng)過,即數(shù)據(jù)包內(nèi)容基本在經(jīng)過跳板前后不改變,一次經(jīng)過跳板機完成攻擊;二是完全控制,即數(shù)據(jù)包基本內(nèi)容經(jīng)過跳板前后無必然關(guān)聯(lián),攻擊者通過多種控制形式操作跳板機實施攻擊。由于攻防技術(shù)不斷精進,常用跳板攻擊技術(shù)多為完全控制方式。但由于現(xiàn)有很多安全產(chǎn)品均有追溯功能,理論上在三跳以內(nèi)的跳板攻擊基本可以通過代理跳板主機找到攻擊源主機。
代理也稱為網(wǎng)絡(luò)代理,是一種特殊的網(wǎng)絡(luò)服務(wù),允許一個網(wǎng)絡(luò)終端通過該服務(wù)與另一個網(wǎng)絡(luò)終端進行非直接的連接。代理服務(wù)器是一種加密的匿名代理,不僅可以更改IP地址,還可以對會話進行加密,常被攻擊者利用來隱藏攻擊源。攻擊者主要的利用方式就是匿名代理服務(wù)器但其安全性取決于代理商。
2014年Serverless首次以云服務(wù)的概念被提出[11],實現(xiàn)應(yīng)用開發(fā)與服務(wù)器分離,同時消除底層設(shè)備差異對上層應(yīng)用造成的不良影響[12]。Serverless服務(wù)主要包括函數(shù)即服務(wù)FaaS(Function as a Service)以及后端即服務(wù)(Backend as a Service)。其主要特征如下:
(1)基于函數(shù),即輕量化、細粒度和短周期的函數(shù),使其系統(tǒng)簡易、穩(wěn)定和性能高;
(2)無狀態(tài),即函數(shù)實例互相獨立,具有一定容錯能力;
(3)自動伸縮性,即函數(shù)實例可以從活躍節(jié)點直接擴容,以應(yīng)對批量事件,提升系統(tǒng)吞吐性能;
(4)事件驅(qū)動,即觸發(fā)器定義并量化事件-業(yè)務(wù)關(guān)系,提供實時事件監(jiān)聽服務(wù);
(5)高兼容性,即提供對異構(gòu)基礎(chǔ)設(shè)施、運行環(huán)境和編程方式等多層次[13]的兼容機制。
云函數(shù)實際是FaaS(函數(shù)即服務(wù),Function as a Service)的具體體現(xiàn),是指運行在云服務(wù)器的代碼,無需實體服務(wù)器進行承載,開發(fā)者使用相應(yīng)工具編寫代碼后上傳部署至云端[14]之后即可運行在云服務(wù)器端的函數(shù),其實際提供的是計算能力。從物理設(shè)計層面來講,一個云函數(shù)可以由多個文件組成,各個云函數(shù)之間完全獨立,可部署在不同地區(qū)。云函數(shù)可以被端側(cè)調(diào)用,也可以互相調(diào)用。云函數(shù)主要特點是基于事件的、無服務(wù)器零運維[15],也正因如此,云函數(shù)能跨多個物理服務(wù)器平衡工作負載,可以創(chuàng)建多個容器動態(tài)擴展應(yīng)用程序的實例[16],這也就使得用戶在請求目標時,會自動調(diào)用不同可用區(qū)域的IP地址。以事件函數(shù)為例,云函數(shù)調(diào)用示意圖如圖1所示。

圖1 云函數(shù)調(diào)用示意圖
目前云函數(shù)廣泛應(yīng)用于數(shù)據(jù)ETL處理、文件處理及通知、移動及Web應(yīng)用、小程序、業(yè)務(wù)流轉(zhuǎn)等,而其在網(wǎng)絡(luò)攻防中的應(yīng)用場景主要是防溯源,如C2地址隱藏、制作防溯源的Webshell等。其在網(wǎng)絡(luò)攻防中的應(yīng)用與CDN相比,二者都是與域名資源綁定,但CDN是建立并覆蓋在承載網(wǎng)之上,主要應(yīng)用在內(nèi)容加速方面,但云函數(shù)提供無服務(wù)器執(zhí)行環(huán)境,攻擊者可直接進行攻擊代碼編寫,也更加利于隱藏自己的真實IP地址。
結(jié)合攻擊者的攻擊思路,此次實驗以C2地址隱藏為例,利用CobaltStrike軟件創(chuàng)建后門程序,使用云函數(shù)轉(zhuǎn)發(fā)HTTP請求,從而達到隱藏真實IP地址的目的,避免被防守方溯源追蹤。
(1)云函數(shù)創(chuàng)建。
云函數(shù)有2種類型:一是事件函數(shù),通過事件觸發(fā)函數(shù)運行,純粹純托管FaaS;一是Web函數(shù),主要是應(yīng)對主流的Serverlessful 多線程開發(fā)模式,解決傳統(tǒng)Web框架FaaS化改造成本高的問題,用戶可以直接發(fā)送HTTP請求到URL觸發(fā)函數(shù)執(zhí)行。考慮到攻擊者在實際應(yīng)用過程中的選擇,本次實驗選擇事件函數(shù)類型,轉(zhuǎn)發(fā)HTTP請求。云函數(shù)基本信息如圖2所示。

圖2 云函數(shù)基本信息
(2)后門程序創(chuàng)建。
CobaltStrike共支持5種后門程序,此處暫不詳細介紹,選擇Windows Executable類型木馬即可達到實驗?zāi)康摹?gòu)建木馬程序時,Shell反彈的主機為申請的云函數(shù)域名。
(3)功能實現(xiàn)。
功能實現(xiàn)的前提是已經(jīng)通過其他攻擊手段將木馬文件植入到目標主機并運行,此次實驗則直接將生成的木馬文件拷貝至目標主機并執(zhí)行,此時在CobaltStrike頁面中可以監(jiān)聽到目標主機點擊了木馬文件,同時雙擊可進入到Shell頁面,通過執(zhí)行系統(tǒng)命令(ls)獲取當前目錄下的所有文件以確認是否成功與目標主機建立連接,命令執(zhí)行結(jié)果表示已成功與目標主機建立連接。詳細信息如圖3所示。

圖3 獲取Shell權(quán)限并成功執(zhí)行l(wèi)s命令
通過觀察CobaltStrike監(jiān)聽器中的信息,發(fā)現(xiàn)external地址不斷變化,該現(xiàn)象也間接說明云函數(shù)具備內(nèi)置的代理功能,在不重啟木馬進程的情況下,同一客戶端會訪問同一API網(wǎng)關(guān)地址,但是經(jīng)過云函數(shù)內(nèi)置的代理轉(zhuǎn)發(fā)后,CobaltStrike監(jiān)聽到的攻擊地址為代理IP地址,即騰訊云地址,并非真實的攻擊地址。IP地址在訪問過程中的變化情況如圖4所示。在木馬程序反連過程中,所有外網(wǎng)的IP地址經(jīng)查詢均為騰訊云地址,無法進一步溯源到實際的攻擊者,到此就達到了隱藏真實IP地址的目的,避免攻擊者被溯源反制。

圖4 云函數(shù)使用中IP地址變化情況
通過模擬攻擊者的攻擊手段,利用云函數(shù)技術(shù)隱藏自己真實IP地址,創(chuàng)建釣魚郵件中的惡意木馬程序,在用戶運行木馬程序時會自動與C2地址建立連接。對運行過程中產(chǎn)生的HTTP流量數(shù)據(jù)進行分析,總結(jié)出如下特征。
4.1.1 域名首次出現(xiàn)并帶有云廠商特征
用戶在點擊木馬程序后,木馬程序自動與C2地址建立連接,HTTP請求頭信息如圖5所示。通過觀察HTTP請求頭信息,發(fā)現(xiàn)Host字段的值為云函數(shù)生成的域名xxxxxxxxxxxxxxx.apigw.tencentcs.com,且該域名對用戶來說是首次訪問,其中apigw.tencentcs.com為騰訊云函數(shù)域名的特征。

圖5 HTTP請求包頭信息
4.1.2 目標主機定時向攻擊機發(fā)送數(shù)據(jù)包
木馬在運行時需要通過網(wǎng)絡(luò)與攻擊機保持通信,以達到持續(xù)控制的目的。如表1所示,木馬程序會定時發(fā)送HTTP請求包進行心跳檢測,約1 min發(fā)送一次GET請求,保證與攻擊機正常通信。其用于心跳檢測的HTTP請求包具有相同的URI、請求方法和請求包大小。

表1 目標主機發(fā)送數(shù)據(jù)包的詳細信息
4.2.1 特征提取
通過對流量數(shù)據(jù)的分析,提取相關(guān)特征作為模型中的檢測特征。主要分為兩個方面:一個是關(guān)鍵字匹配。目前常見云廠商的云函數(shù)都具有較明顯的特征,可通過此特征確定是否使用了云函數(shù)。另一個方面是特征檢測。使用云函數(shù)不代表其為攻擊行為,可能為正常業(yè)務(wù)操作,因此還要結(jié)合訪問特征進行進一步判斷。特征提取階段共提取出1個關(guān)鍵字特征和5個訪問特征,訪問特征分別是:新域名、時間間隔離散程度、請求包大小離散程度、URI頻次和請求方法。
(1)特征值檢測。根據(jù)HTTP數(shù)據(jù)包中的特征,訪問時數(shù)據(jù)包中會包含云函數(shù)生成的域名,不同的云廠商具有不同的特征。目前中國主要的云計算公司有:阿里云、騰訊云、百度智能云等,基本都提供云函數(shù)服務(wù),其云函數(shù)生成的域名也有不同的特征。詳細如表2所示。

表2 部分云廠商云函數(shù)訪問域名的特征
(2)訪問特征檢測。通過模擬攻擊者的攻擊手法,使用云函數(shù)生成的域名構(gòu)建木馬程序進行遠程木馬攻擊,分析攻擊流量,總結(jié)出攻擊者具有如下訪問特征。
①通過分析某一IP地址訪問的域名是否為近6個月首次出現(xiàn)來確定是否為攻擊者構(gòu)造的域名。其計算公式為:
newHost=IF(該IP地址近6個月首次出現(xiàn))
(1)
②通過分析某一IP地址10分鐘內(nèi)HTTP請求的URI頻次來確定該URI是否為訪問最頻繁的URI,后續(xù)指標計算將以此URI為前提進行統(tǒng)計。其計算公式為:
freqUri=uri(IF(該IP地址10分鐘內(nèi)HTTP請求次數(shù)>10))
(2)
③通過分析某一IP訪問最頻繁URI在10分鐘內(nèi)請求間隔時間的離散程度輔助確定是否為攻擊行為。其計算公式為:
(3)

④通過分析某一IP訪問最頻繁URI在10分鐘內(nèi)請求包大小的離散程度輔助確定是否為攻擊行為。其計算公式為:
(4)

⑤通過分析某一IP訪問最頻繁URI的請求方法是否為GET來輔助確定是否為攻擊行為。其計算公式為:
reqMethod=IF(該IP頻繁URI的HTTP請求方法為GET)
(5)
4.2.2 檢測流程
檢測特征無法直接應(yīng)用于攻擊檢測,需要結(jié)合攻擊檢測流程模型進行應(yīng)用。根據(jù)4.2.1節(jié)提到的6個特征,制定相關(guān)的檢測流程,如圖6所示。

圖6 檢測流程
首先通過關(guān)鍵字匹配確定是否使用了已知廠商的云函數(shù)服務(wù),若無法確認進一步通過域名出現(xiàn)的時間進行輔助判斷,若使用了云函數(shù)或者首次訪問該域名,則通過統(tǒng)計特征進一步判斷是否為攻擊行為。在判斷是否為攻擊行為前,需要根據(jù)訪問特征尋找訪問最頻繁的URI,若存在,則需要進一步判斷是否為攻擊行為,若不存在,則判定為非攻擊行為。在進一步判斷是否為攻擊行為時,對3個統(tǒng)計指標進行投票,若命中指標數(shù)大于1時,則判定其疑似為攻擊行為,轉(zhuǎn)為人工研判及處置,否則判定為非攻擊行為,暫不處置。
根據(jù)4.2.2節(jié)的檢測流程,通過計算6個特征,輔以檢測模型,判斷是否為攻擊行為。以實際的一個攻擊行為和2個正常業(yè)務(wù)行為為例進行實驗。
攻擊行為:內(nèi)部演練期間,攻擊隊利用社工釣魚的攻擊手段,成功控制一臺辦公終端,并利用該辦公終端作為跳板機,進行內(nèi)網(wǎng)橫向滲透。在進行溯源分析時發(fā)現(xiàn),攻擊者一般都會利用國內(nèi)常見云廠商的云函數(shù),在HTTP請求包中的Host字段都會包含云函數(shù)的特征,但僅靠該特征無法與正常業(yè)務(wù)行為區(qū)分,因此相關(guān)統(tǒng)計特征仍是較為明顯的特征。該行為相關(guān)字段的詳細信息見表3。

表3 攻擊行為相關(guān)字段信息
正常業(yè)務(wù)行為1:研發(fā)人員利用騰訊云函數(shù)轉(zhuǎn)發(fā)HTTP/HTTPS請求,實現(xiàn)代碼輕量級部署。
正常業(yè)務(wù)行為2:研發(fā)人員利用騰訊云函數(shù)轉(zhuǎn)發(fā)HTTP/HTTPS請求,并綁定已有域名,即云函數(shù)/云對象URL化,實現(xiàn)代碼輕量級部署。
以上3個測試行為經(jīng)過4.2.2節(jié)的檢測流程進行檢測后,得到如表4的指標值和檢測結(jié)果。

表4 實驗結(jié)果
對比已有的檢測方法,單純依靠特征值檢測,業(yè)務(wù)行為經(jīng)常被判定為攻擊行為,增加了人工研判的工作量并對正常業(yè)務(wù)造成一定影響,而利用文中檢測方法,可以進一步對攻擊行為進行判斷,在一定程度上可以降低對正常業(yè)務(wù)的影響,提高安全事件的處置效率。通過試驗分析,也進一步證明了文中分析方法的正確性。
為了進一步體現(xiàn)文中檢測方法的可行性,參考《網(wǎng)絡(luò)安全產(chǎn)業(yè)高質(zhì)量發(fā)展三年行動計劃(2021-2023年)(征求意見稿)》中提到的“提升安全編排與自動化響應(yīng)技術(shù)應(yīng)用水平”的要求,從發(fā)現(xiàn)、響應(yīng)和分析3個環(huán)節(jié)分析文中檢測方法的時間性能。現(xiàn)有方法和文中方法的時間性能對比如表5所示。

表5 時間性能對比結(jié)果
通過表5的對比分析結(jié)果發(fā)現(xiàn),在安全運營流程中,文中檢測方法雖然在發(fā)現(xiàn)過程中由于需要時間計算指標而導致時間效率高于現(xiàn)有方法,但其在后續(xù)響應(yīng)及分析過程中能夠大大縮減時間,使得整個安全運營流程的時間縮短,并實現(xiàn)自動化響應(yīng)及分析。此時再結(jié)合人工研判,在大大縮短時間的同時,也降低了誤報率,提高了響應(yīng)及處置效率。
Serverless解決了系統(tǒng)層面運維問題,但由于其事件驅(qū)動、自動伸縮以及應(yīng)用開發(fā)與服務(wù)器分離的特性,在簡化運維工作的同時,也容易被攻擊者惡意利用,增加網(wǎng)絡(luò)安全風險。該技術(shù)應(yīng)用在網(wǎng)絡(luò)安全領(lǐng)域中可實現(xiàn)隱藏自身真實身份的目的,對于防守方來說可以保護服務(wù)器不被互聯(lián)網(wǎng)上的IP掃描軟件發(fā)現(xiàn),但對于攻擊者來說也能避免其真實身份被溯源,增加防守方溯源反制難度。因此可以利用Serverless簡化運維工作以及保護服務(wù)器IP,但也要同時關(guān)注利用Serverless的網(wǎng)絡(luò)攻擊的日常檢測。文中通過試驗驗證了該技術(shù)實現(xiàn)隱藏身份的可行性,同時通過分析網(wǎng)絡(luò)流量,總結(jié)特征,從特征值檢測和訪問行為特征檢測兩個方面給出了檢測模型,并通過試驗對檢測模型的正確性進行了驗證。由于云函數(shù)技術(shù)仍處于起步階段,其主要應(yīng)用領(lǐng)域集中在代碼開發(fā)領(lǐng)域,在網(wǎng)絡(luò)安全方面暫時沒有廣泛應(yīng)用和深入研究,可能應(yīng)用場景和檢測模型都有一定的局限性和誤報,還需要結(jié)合人工進行研判分析,后續(xù)將持續(xù)探索云函數(shù)技術(shù)在網(wǎng)絡(luò)安全中的應(yīng)用以及HTTPs情況下的檢測方法研究。