攻防演練場景中的加密流量檢測技術
引 言
在對抗日益激烈、加密手段逐漸成為主流的今天,攻防演練場景中的加密流量也已逐漸成為主流,對加密流量檢測的技術變得愈發重要。目前針對攻防演練場景的加密流量檢測主要分為解密后檢測和不解密檢測兩大類,傳統的解密檢測擁有可以直接將加密流量轉化為明文后采用完善的傳統手段繼續檢測的優勢,但也有諸如性能耗損、隱私泄露以及可以解密的流量有限等缺點,基于上述問題,不解密檢測的方法逐漸受到業界重視,本文將從不解密的前提下討論加密流量檢測技術。
在上期文章中,我們將攻防演練場景下的加密流量分為入聯、橫向、出聯等三個大的類別,以下分別對三類流量的檢測做相應介紹。
入聯加密威脅
1、滲透階段
在滲透過程中,加密流量多來自對暴露在公網上資產的掃描探測與暴力破解。這部分涉及到的主流加密協議主要有HTTPS(TLS)、RDP、SSH等,一套可行的方法是通過計算TLS、RDP、SSH等協議中每一組IP對在一個時間區間內時間與空間分布的平均值、標準差等屬性,結合特定數學模型進行驗證,初步判斷這些流量在行為特征上是否可能存在漏洞掃描、暴力破解等攻擊行為。行為符合的流量作為可疑流量,再結合事先搜集、研究、整理得到的工具靜態特征、協議指紋進行二次判斷,確定此次是否為攻擊與攻擊使用工具的具體的家族信息。以下分別進行舉例:
· TLS掃描檢測

利用“魚骨圖”進行分析,攻擊總數為95次,頻率為8次/分鐘,多次會話中上下行載荷基本相似,最終檢測攻擊類型為掃描,威脅標簽為skipfish2.10b_kali2018_32。
· RDP暴力破解檢測

攻擊總數:1312,攻擊頻率:43次/分鐘,威脅標簽:hydra,攻擊類型:暴力破解。
2、后滲透階段
在滲透階段getshell之后,會有一系列持久化預置的動作,例如上傳Webshell、正向代理等后門,從不解密加密流量檢測的視角看,這一類問題的本質都是對Web服務等業務主機不合常規的訪問,所以涉及的加密協議也以HTTPS(TLS)為主,我們的檢測技術會圍繞行為模型來設計:針對各種Webshell、正向代理進行深入研究,通過研究其業務特點總結流量特征,對目標為Web服務的多條TLS流中存在的多次會話進行切割比對,從流量的時空特征的角度入手來對會話做區分,分出哪些是以傳輸、響應指令為主的流量,哪些是正常的訪問瀏覽,最后把認為不正常的這類流量再在現有的知識庫中做對比以識別出真正的Webshell、正向代理類流量及其相關信息。
· 冰蝎加密流量檢測

利用“魚骨圖”進行分析,握手模型評分:1,握手多處屬性異常,單流行為模型評分:1,證書模型評分:0.66。系統綜合決策評分:0.9,威脅類型:冰蝎3。
橫向加密威脅
1、滲透階段
橫向滲透階段,主要為已經進入內網后針對內網資產加密服務的掃描探測等,與入聯階段大部分相同,檢測思路類似,但是由于內網滲透使用的工具與外網滲透有所不同,并且內網中的網絡環境更為復雜,很可能有許多行為與掃描暴破類似的正常業務流量,所以要在二次判斷上更加嚴格,否則就會產生海量誤報。
· SSH暴力破解檢測

SSH暴力破解魚骨圖 威脅標簽:paramiko_2.6.0(成功),攻擊類型:暴力破解,攻擊總數:691,攻擊頻率:49次/分鐘。
出聯威脅
1、加密遠控木馬
一次完整的攻擊很大概率會以最終的遠控木馬上線進行收尾,而在加密流量的領域,傳統方法使用的字符串特征與各種匹配規則都不再奏效,而且與滲透階段使用的工具類型比較集中完全相反,遠控木馬的種類極多,可以說是千變萬化各不相同。很難做到獲得大多數家族的特征,且本身這個所謂的特征大部分時候人眼看不出來,所以我們選擇了人工智能機器學習為主結合特征、行為和指紋的綜合決策方法來解決這個問題。以TLS協議為例子,我們將一條TLS流按握手、證書、域名、流行為等維度拆成了不同部分,每個部分單獨訓練模型,在學習了海量黑流量后最終得出一套多模型方案,其可以通過對TLS等標準協議的加密流量在握手、證書、流行為等維度進行分析,判斷流量的黑白,再在此基礎上與限定域指紋技術、多流行為模型等輔助方法有機結合判斷家族,最終達到有效對各種使用了標準加密協議手段的木馬通信做出報警的目的。
· Cobalt Strike TLS加密流量檢測

TLS木馬回聯魚骨圖,威脅類型:Cobalt Strike(Beacon),綜合決策評分:1,握手模型評分:1,握手多處屬性異常,單流行為模型評分:1,證書模型評分:0.91,會話完整度:7(缺少SNI)。
2、加密隱蔽隧道
此處加密隱蔽隧道特指依托于不以加密通信為設計目的的常見標準協議之上,并自行設計加密方式通信的技術,嚴格來講這種流量會出現在各個階段,我們暫且放在出聯威脅來講。隱蔽隧道可能依托的協議分布于網絡層、傳輸層、應用層等各個層面,設計協議也很廣,常見的有TCP、UDP、HTTP、ICMP、DNS等協議。不論是對于ICMP、DNS這類在協議本身一些特性上進行設計意圖之外的構造與利用而達到隱蔽通信目的的協議,還是TCP、UDP、HTTP這類只要把數據放在載荷中傳輸即可的協議,都可以先通過信息熵、01頻次等算法確定數據是否加密來縮小范圍,篩選出待檢測流。再針對自行設計加密的隧道流量載荷中必定存在自定義結構的弱點,來設計一類一法對其做出檢測。
· Cobalt Strike DNS隱蔽隧道流量檢測

DNS隱蔽隧道檢測魚骨圖,威脅類型:Cobalt Strike,綜合決策評分:1,請求次數:43416,請求頻率:142次/分鐘,A類型請求占比43392條,TXT類型請求占比24。
綜 述
綜上所述,我們綜合利用多模型機器學習、指紋檢測、特征檢測、行為檢測、統計檢測等方法,對各種不同類型的加密流量進行有針對性的檢測,在實戰中對各類加密威脅、黑客工具等流量達成了較好的檢出效果。檢測技術簡要架構如下圖所示:

在上述檢測方法中,都涉及到對攻防演練場景下大量黑客工具、木馬等惡意軟件本身的分析與特征規律的研究整理,這本身就是加密流量檢測中除檢測思路之外最重要也是最艱巨的步驟。攻防演練場景下加密流量增加的趨勢不會改變,目前針對各類標準或非標準加密流量,我們進行了系統化對抗檢測。未來會繼續保持跟蹤研究。