天天看點

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

作者:開放隐私計算

隐私計算研習社

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

摘  要:随着網際網路的發展及政務、商務領域電子化的普及,基于資訊安全和隐私保護的需求,以及人們的資訊安全意識日益提高。現階段,資料的傳輸和通信大量采用加密技術,使加密流量呈爆發式增長。加密流量在保護個人資料安全的同時也讓惡意流量的傳播變得更加隐蔽,惡意加密流量檢測已經成為資訊安全領域的一個重要研究方向。基于此,提出一種基于 JA3 指紋識别技術的惡意加密流量識别方法,在傳統 JA3 技術的基礎上通過聚類法識别惡意流量,不經過解密即可對加密流量進行識别。

内容目錄

内容目錄:

1 相關研究

1.1 安全套接層/傳輸層安全協定

1.2 JA3指紋法

2 聚類法改進JA3

2.1 聚類分析法

2.2 聚類的基本模型

2.3 度量方法

2.4 實驗結果

3 結  語

進入 21 世紀以來,随着網際網路資訊量的激增和流量加密手段的不斷豐富,隐藏在海量加密流量中的惡意加密流量也正以指數級速度增長,給社會和個人财産帶來巨大威脅。近年來,層出不窮的勒索軟體将惡意代碼加密後攻擊并控制使用者用戶端,每年可造成數以億計的經濟損失。

大多數的惡意加密流量并不是從零開始編寫的新型惡意加密流量,而是通過對已有的惡意加密流量進行代碼複用和修改而生成的變體。同一惡意加密流量的不同變體在代碼和行為上都較為相似,通常将這種功能、行為類似的惡意加密流量歸為同一個惡意族簇。同一個惡意族簇的加密流量通常會調用相同或相似的函數,執行類似的行為,包括系統行為和網絡行為 。是以,可以利用惡意加密流量的這一特征對其進行特征性檢測。

惡意加密流量檢測已經成為資訊安全領域的一個重要研究方向,目前主流研究方向包括以下 3 種:

(1)深度資料包檢測方法。深度資料包檢測(Deep Packet Inspection,DPI)方法是指基于代理或防火牆來解密所有加密的流量,通過對所有資料包進行逐個解密和檢測,将解密後的資料與已有病毒庫等惡意流量代碼資源庫進行比對,是目前所有檢測方法中最準确的,也是實施難度最大的,受個人隐私和商業秘密限制。并且,随着加密手段越發複雜,大規模大流量資料包的解密對伺服器的算力也有着更高要求,算力成為該方法的發展瓶頸,使其在大型和公共網絡中的使用受限。

(2)基于行為分析的檢測方法。基于行為分析的檢測方法是指使用通信模式對流量進行分類,可以部署用于任意流量捕獲。通過測量流量特征對惡意加密流量進行識别,這些模式是根據流量特征計算出來的,可以根據這些模式的相似性對加密流量進行分類,且不需要了解底層協定。基于行為分析的檢測方法需要大量流量特征作為學習庫,正确的特征選擇是成功使用該方法的關鍵,但在面對一些僞裝成正常流量的惡意加密流量時便難以将其識别出來,是以,行為分析結果的準确度受特征選擇影響較大,導緻系統穩定性受限,并且由于很多研究機構的特征資源庫并不是開源的,導緻特征庫資源擷取也成為該方法受限的因素之一。

(3)指紋法。指紋法是指在加密連接配接的握手階段利用觀察到的未加密資訊中的特定資料包進行惡意流量識别,通過檢查來自每個流的幾個沒有被加密的分組,将捕獲到的指紋資訊與指紋庫中的惡意流量指紋進行比對,根據比對結果對惡意流量進行識别。由于在握手階段惡意流量尚未進行加密,是以該方法準确性和穩定性較高。

本文對傳統指紋法進行改進,克服了該方法隻能識别已在指紋庫中的指紋的缺點,大幅提高了對未知惡意加密流量的識别準确性。

1

相關研究

1.1 安全套接層 / 傳輸層安全協定

安全套接層 / 傳輸層安全協定(Secure Sockets Layer/Transport Layer Security,SSL/TLS), 是目前被廣泛使用的加密協定之一,用于加密網際網路上的大部分流量。其前身是從 1995 年開始發展的 SSL 協定。SSL/TLS 是傳輸控制協定 /網 際 協 議(Transmission Control Protocol/Internet Protocol,TCP/IP)模型的第 5 層協定,為超文本傳輸協定、檔案傳輸協定、簡單郵件傳輸協定等應用協定提供加密資料傳輸。

SSL/TLS 可以在虛拟專用網絡中使用,該協定提供通信方的認證、消息的保密性和完整性。目前,SSL 已逐漸被 TLS 取代,TLS 目前主要有 4 個版本,分别是 TLS1.0、TLS1.1、TLS1.2和 TLS1.3。如 今, 大 部 分 Web 服 務 器 都 支 持TLS1.2,而 TLS1.3 作為 TLS1.2 的更新版,在握手方面提高了安全性和速度,支援 TLS1.3 的伺服器也在逐漸增加。

TLS協定主要提供3個基本屬性,如下文所述。

(1)身份驗證。伺服器的身份驗證是強制性的,用戶端的身份驗證是可選的。伺服器和用戶端可以使用不對稱或對稱方法進行身份驗證。

(2)保密性。TLS 連接配接建立後,通過網絡發送的所有資料都将被加密,隻有通過終端裝置可以看到明文資料。實際的資料傳輸受握手期間建立的對稱密鑰的保護。

(3)資料完整性。資料無法以任何方式修改而不被檢測到。握手完成後,對等方交換整個握手的消息認證碼,這可以防止對握手的任何部分進行修改。消息摘要也保護所有後續發送的資料。

SSL/TLS 作為常用惡意加密程式的加密工具,可以使惡意流量隐藏在噪聲中。TLS 握手過程如圖 1 所示。

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

圖 1 TLS 握手過程

當啟動 TLS 會話時,用戶端将在 TCP 的 3次握手後發送 TLS 用戶端 Hello 資料包,資料包及其生成方式取決于建構用戶端應用程式時使用的包和方法。伺服器如果接受 TLS 連接配接,将使用基于伺服器和配置以及 ClientHello 中的詳細資訊制定的 TLS ServerHello 資料包進行響應。

1.2 JA3 指紋法

JA3 指紋法是一種建立 SSL/TLS 用戶端指紋的方法,即對傳輸層安全應用程式進行指紋識别的方法,可以用于威脅情報共享。JA3 于 2017年 6 月首次釋出在 GitHub 上,是 Salesforce 研究人 員 John Althouse、Jeff Atkinson 和 Josh Atkins的作品。所建立的 JA3 SSL/TLS 指紋可以在應用程式間重疊,但仍然是一個較好的妥協名額。指紋識别是通過建立用戶端問候資訊的 5 個十進制字段的哈希來實作的,該消息在 SSL/TLS 會話的初始階段(握手)發送。TLS 握手是通信雙方之間連接配接的初始部分。在這個階段,通信雙方交換連接配接參數并建立對稱密鑰。握手是 TLS連接配接中唯一未加密的部分,伺服器用 ServerHello消息、證書和密鑰的伺服器部分進行響應。第二輪完成密鑰建立協定,并切換到加密通信。JA3 指紋建立過程如圖 2 所示。

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

圖 2 JA3 指紋建立過程

(1)證書接入層。包含獲得新 TLS 證書以及為提取新 TLS 證書特征做準備,該層是整個JA3 指紋建立過程的準備階段,為後續證書提取、資料處理和對比結論輸出提供輸入,實作了對未知 TLS 證書與指紋庫進行驗證對比的輸入功能。

(2)證書提取層。包含提取 TLS 版本、提取可支援的密碼、擴充提取、提取可支援的橢圓曲線和提取橢圓曲線格式,該層是 JA3 指紋建立過程的提取階段,将後續資料處理和對比所需要素提取備用,包括十進制字段、橢圓曲線和密碼等,實作了對未知 TLS 的分解功能。

(3)資料處理層。包含整理提取到的要素、将要素轉換為字元串、連接配接字元串、建立用戶端問候資訊的十進制字段的哈希和建立 JA3 指紋,該層是 JA3 指紋建立過程的計算階段,将前期提取到的字元、字段、橢圓曲線和密碼等要素進行一系列資料處理,實作了生成新的 JA3指紋的功能。

2

聚類法改進JA3

傳統 JA3 指紋法的缺點是比較依賴已有指紋庫,面對全新和未造成威脅的惡意加密流量識别率較低,若該全新的惡意加密流量的指紋特征與指紋庫中已有特征完全不符,則 JA3 指紋法就不能将其有效識别。為了改善這一缺點,本文使用 CD-HIT 聚類法對傳統 JA3 指紋法進行改進,以達到高效識别全新未知惡意加密流量的目的。

2.1 聚類分析法

基于 JA3 指紋法的聚類分析法是通過将總結過的安全無害的流量特征作為基礎模闆,利用惡意加密流量潛伏在正常流量中時會導緻整體流量特征發生變化這一特點,來對非法惡意流量進行檢測,并對安全無害和含有惡意加密流量之間的差別進行分析整理,不斷擴充指紋庫來強化對全新陌生的惡意指紋進行識别的能力。

JA3 指紋在經過聚類分析後,便可以通過捕獲流量中叢集分布特征對惡意加密流量進行識别,且得出規律性的結論。如果整體流量特征與已知安全流量特征相符,則該流量可被認為是安全流量;如果整體流量特征與已知安全流量特征均有較大偏差,則該流量有較大可能被認為是惡意加密流量,進而可以對該流量進行隔離分析。

安全流量的聚類和包含惡意加密流量的聚類如圖 3、圖 4 所示。

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

圖 3 安全流量的聚類

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

圖 4 包含惡意加密流量的聚類

收集網絡流量中安全流量和包含惡意加密流量的資料。藍色圓圈代表 JA3 指紋的簇,屬于安全流量的通信,可以用來分析捕獲到的未知流量,捕獲到的未知流量可能既包含安全流量又包含惡意加密流量,或者全為安全流量,或者全為惡意加密流量。圖中的綠色圓圈代表安全流量的簇。紅色圓圈代表惡意加密流量的叢集。如果捕獲的流量也是安全的,那麼該流量應該與已知的安全流量相似,在圖形上顯示為所有安全流量的特征均在 JA3 指紋簇中,沒有明顯凸出。但是,如果捕獲到的流量中存在惡意加密流量,那麼該流量可能會明顯偏離已知的安全流量,在圖形上顯示為不符合安全流量特征的部分與 JA3 指紋簇有較大偏差,會在圖上出現明顯突出,即使有些惡意加密流量會攜帶部分安全流量的特征,這部分特征在圖上顯示為該惡意加密流量的一部分在 JA3 指紋簇内,但另一部分會有明顯不同。如圖 4 所示,該檢測将 JA3 指紋簇集的結構與已知流量進行比較,能夠檢測出全新未知的惡意加密流量 。

基于聚類法改進 JA3 指紋識别過程如圖 5所示。

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

圖 5 基于聚類法改進 JA3 指紋識别過程

利用聚類法對傳統 JA3 指紋識别法進行優化,通過接入抓取到的疑似惡意加密流量資訊,經過 CD-HIT 生成聚類群,經離散度量後生成量化的聚類模型,最終将該模型補充至 JA3 的指紋庫中。

2.2 聚類的基本模型

聚類是将實驗資料分成相似組的方法。以分類聚集的方式對實驗資料進行劃分,使聚集在一起的資料有着更多的相似特征。聚類可以分為硬聚類和軟聚類 ,其中,硬聚類是指每個資料被确定地分到某一個适合該資料特征的組;軟聚類是指某個資料可以屬于多個組,但屬于某個組有一定機率。例如,實驗資料 m,在硬聚類分類法中,屬于 C 組;而在軟聚類分類法中,屬于 A 組的機率為 20%,屬于 B 組的機率為 30%,屬于 C 組的機率為 50%。

對于不同的聚類算法。其主要差別在于點與點之間相似度的定義。是以,每種方法對不同類型的輸入資料表現不同。常用模型有以下幾種。

(1)分布模型。分布模型是根據聚類中的資料在某一特征下的機率來決定該資料的分組情況。典型應用為期望值最大化算法。

(2)質心模型。質心模型是利用一個點到一個聚類的配置設定取決于它到聚類中心的距離這一特點對資料進行分組。疊代計算聚類中心,直到找到局部最優。典型應用為 K- 均值(K-Median)算法。

(3)密度模型。密度模型是利用不同特征的資料擁有不同且特定的密度這一特性來進行搜尋的方法。典型應用為基于密度掃描(Density-Based SCAN,D-B 掃描)和光學算法。

(4)連通性模型。連通性模型是将所有鄰近的資料逐級分類并加以觀察的方法,分為正向分類和反向分類兩種方法。其中,正向分類法是從整個叢集開始,根據細分特征将所有資料的完整叢集逐漸分解成更小的叢集;反向分類法是從每個資料自身出發,最開始都在自己的簇中,随着不同的特征分類,簇逐漸合并。連通性模型也稱為分級聚類方法,其缺點是對大型資料集不是很有效。典型應用為 CD-HIT 法,本次設計就采用了此方法。

在生物資訊學中,CD-HIT 法常被用于 DNA分類,其最大的優點是簡單和快速。如果兩個資料的共享部分存在相符的特征,則它們可以被分類在同一聚類中。這個最小共享部分被稱為相似性門檻值的百分比 。是以,比較兩個資料的長度通常足以确定兩個序列是否在同一簇中。這避免了許多不必要的耗時比較,在實踐中,這種算法是非常高效的。整個算法分兩步工作,在第一步中,輸入資料集按大小排序,在第二步中,資料按降序處理。已處理的資料依次與已經形成的聚類中最長的樣本進行比較。如果它超過相似性門檻值,則被配置設定到最佳比對的聚類;反之,将建立一個新的叢集。所有樣本都以這種方式處理。

以上所列各種模型均有相應的優缺點,可根據實際使用需求進行應用,選擇最适合的模型來使其優勢最大化。

2.3 度量方法

聚類算法各種模型的計算都依賴度量,隻有通過度量,才能對擷取到的多個實驗資料之間的距離進行測量和量化,進而對其進行分類。

常用的度量方法主要分為真實度量和離散度量。本次設計使用的聚類 JA3 指紋識别中的度量方法屬于離散度量,是專為 CD-HIT 開發的一種離散度量方法。

假設

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

為進行聚類的兩組離散值,

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

的相似性為 y,将

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

進行對比,

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

中較大的集合,則相似性 y 的算法為:

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

CD-HIT 法通過對所有實驗資料進行分别度量,生成一套完整的度量結果,再将該結果用于連通性模型,進行 CD-HIT 反向分類,得到所有資料的詳細聚類。以此聚類結果作為資料庫,當需要對新的陌生資料進行識别判斷時,就可通過與具備足夠資料特征聚類的資料庫進行對比,進而得出結論。在完成所有資料的度量和聚類後,即可得出最大相似度、相似度和某個資料的最近族簇等聚類屬性。

當該 CD-HIT 法用于 JA3 指紋識别的聚類時,對于 JA3 指紋資料中可能出現的同一數值可代表多重含義的情況,CD-HIT 法用于 JA3 指紋資料的每個部分。

以 CD-HIT 法對 JA3 指紋資料進行聚類後,就可生成 JA3 指紋專用聚類庫,在對聚類庫進行分析和分類後就可通過對比聚類屬性将其用于加密流量識别。JA3 指紋的聚類屬性主要有 3個,分别是組内聚類的平均距離、集合中兩個聚類的最大距離和最大相異度。在對比聚類時必須綜合考慮這 3 個聚類屬性,否則将會導緻比對結果出現某一個方向的傾向性。例如,将從某站點抓取的全新流量與該站點的安全流量進行比對,通過比較聚類之間的平均距離即可判斷新的流量是否具有隐藏惡意加密流量的可能性,如果含有惡意加密流量,則平均距離這一屬性将會有顯著差別。當然,在比較平均距離的同時也需綜合比較聚類的最大距離和最大相異度,最終根據綜合比對情況得出相應結論。對不同類型的流量資料來說,其對應的 3 個聚類屬性具有不同的權重分布,需要針對流量資料類型進行具體分析,在實際操作過程中,系統已根據常見流量資料類型進行預分類,可實作快速配置設定聚類屬性的權重。

經過以上步驟,在面對未知加密流量時就可以結合指紋庫和聚類庫對其進行識别,克服了傳統 JA3 指紋法對新型惡意加密流量識别率低的缺點。

2.4 實驗結果

在實驗室資料庫中選取一定數量的安全流量和惡意加密流量作為實驗樣本,分别以傳統JA3 指紋法和基于聚類法改進的 JA3 指紋法對惡意流量進行識别,實驗結果如表 1 所示。

表 1 惡意流量識别實驗結果

基于聚類法改進 JA3 指紋識别的惡意加密流量識别

通過實驗可以得出,基于聚類法改進的 JA3指紋識别方法對在庫惡意流量的識别率與傳統JA3 指紋法識别率相當,但對未入庫的全新惡意流量的識别率提升較大。

3

結語

随着加密手段的不斷豐富和加密使用者群體的快速擴張,可以預見,未來加密流量通信将會基本取代明文通信,在保護個人資訊安全的同時也為惡意加密流量提供了更适宜的隐蔽空間,這些惡意加密流量對個人财産和社會安全有着極大的安全隐患,是以目前迫切需要增強網絡空間的加密流量感覺與識别的網絡監管能力,建構基于“可感覺、可識别、可防護、可處置”的一體化網絡監管體系,進而提升網絡空間資訊安全防護能力。

本文提出的基于 JA3 指紋識别的惡意加密流量識别方法,通過使用 CD-HIT法對未知流量進行聚類,克服傳統 JA3 無法識别全新惡意流量特征的缺點,使其在初次面對全新惡意流量時仍可通過聚類分析的方法進行快速且有效的識别。但是目前仍存在一些問題及不足,首先是 JA3 指紋庫的擷取,目前公開的主流 JA3 指紋庫主要可以從 github 和 ja3er 上擷取,其中有效指紋約有上百條,規模不足以應對大流量的加密流量篩選識别,但若想從使用者的加密流量中擷取指紋,就需要對其進行解密,這就涉及使用者隐私及授權問題。通過招募足夠數量的測試使用者作為志願者,可以有效解決指紋庫的隐私和授權問題。其次是以何種形式、何種規模組織實驗,如何通過實驗模拟出更貼近真實網絡環境中的複雜加密流量資料。以上問題将是我們未來需要對惡意加密流量識别技術繼續研究和推進的關鍵技術點。

繼續閱讀