程永新,張德治,廖竣鍇,胡華鵬
(中國電子科技集團公司第三十研究所,四川 成都 610041)
隨著信息社會的不斷發展,網絡應用不斷增多,網絡安全問題越來越得到重視。越來越多的網絡應用開始采用加密手段保證自己的數據安全傳輸,同時越來越多的惡意網絡攻擊也在采用加密手段[1-2]減少被發現的幾率,對網絡監管構成了極大威脅。當前,處理加密流量的常見方法是解密流量,使用如新一代防火墻等設備查看流量。這種方法不僅耗時較長,降低了網絡傳輸效率,還給用戶信息泄露帶來了一定的風險。
加密流量行為分析技術是網絡監管的重要組成之一。與非加密流量識別相比,它存在諸多挑戰。一是網絡流量加密后其流量特征發生較大變化,DPI 等一些非加密流量識別方法難以適用;二是加密流量有特定的網絡封裝格式,需要有針對性的識別方式;三是加密流量常采用協議混淆進行偽裝,對流量的識別帶來了一定的困難。
本文設計了一種加密流量行為分析系統,通過對網絡環境中的加密流量進行分類分析和學習優化,采用機器學習方法構造加密流量行為模型,不僅可以分析出加密通道承載的業務和服務類型,還可以驗證加密流量的合規性,識別出非法加密流量。
針對網絡流量的加密是保護敏感信息不被泄露和篡改的重要手段,能有效保護數據傳輸的安全性。根據Gartner 的研究,未來超過80%的企業數據傳輸將被加密。加密技術在保護數據的同時也給數據監管帶來了一定困難,如果通過直接解密的方式監控加密流量,將對正常的用戶數據傳輸帶來挑戰[3]。采用機器學習方式,在不解密加密流量的前提下對流量行為進行識別,可有效解決上述問題,原理如圖1 所示。

圖1 加密流量行為分析原理
流量采集主要通過網絡抓包技術收集相關流量數據。針對加密的網絡流量而言,一般需要收集的加密協議流量包括L2TP 等鏈路層加密協議、IPSEC等網絡層加密協議、SSL/TLS 傳輸層加密協議以及SSH等應用層加密協議。采集過程中通常采用pcap 等數據采集工具,在某些需要高性能數據采集情況下,可基于零拷貝技術減少數據包在系統內部的拷貝次數,降低系統內部處理開銷,提高整個數據采集的效率。
特征提取階段,從采集到的流量中分析和提取與加密流量信息相關的特征。針對密文流量的特征,可以將其分為時空特征和協議特征。時空特征是與具體協議無關的特征,如時間間隔、數據包大小、字節分布以及地址分布等;協議特征指的是加密協議的特征,如SSL 應用種類(HTTPS、FTPS、SSH 等)擴 展 種 類、SSL 版 本(SSLv2、SSLv3、TLSv1.1、TLSv1.2 等)、證書種類等。
行為識別模型階段,采用機器學習算法[4-5]進行行為識別模型構建。根據機器學習方法的不同,主要分為有監督學習、半監督學習及無監督學習。基于有監督學習的加密流量識別,基于已標識的網絡流量數據訓練分類算法,通過訓練好的算法對待測網絡數據流量進行分類結果輸出。基于有監督學習的識別方法,主要利用已知的流量類別進行訓練,無法對未知加密流量進行預測和發現。半監督算法主要采用少量已標記樣本和大量未標記樣本進行分類器的建立。與監督學習不同,它可以降低人工標記的難度,同時可以發現未知類型的應用流量。與無監督學習相比,它可以提高分類器的精確度。基于無監督學習的加密流量識別主要對未標識的網絡流量進行聚類分析,根據流量數據內部的相似程度進行流量的分類,可以對未知流量進行辨識。識別算法總結如表1 所示。

表1 識別算法總結表
在監督算法和半監督算法中,需要對分類模型進行不斷優化。優化方法包括對選定的模型進行進一步的參數調優、驗證和測試,通過實際網絡流量數據進行測試與迭代訓練。根據實際測試結果,針對各類型的加密流量,選用效果最佳的算法及參數,保證準確率。
結果輸出方面,輸出流量識別出的分類或聚類結果主要包括以下幾種類型:非加密與加密流量的識別;加密協議的識別,包括SSL、IPSEC、SSH等的識別;加密應用的識別,可識別加密流量由哪種應用程序產生,如SKYPE、微信等;加密服務識別,如其服務為網頁瀏覽、流媒體加密、即時通信加密等。
加密流量行為分析系統設計如圖2 所示,包括數據采集、流量特征提取、流量行為分析模型、配置管理和數據存儲等。采用層次化、模塊化設計,降低各個軟件模塊的專用性及模塊之間的耦合性,提高軟件模塊的獨立性和繼承性。

圖2 加密流量行為分析系統架構
數據采集模塊針對網絡流量提供實時流量或離線流量數據的采集、存儲和預先處理功能,能夠根據數據來源和協議大類進行初步的流量分類和數據統計。
流量特征提取模塊提取流量的協議無關特征與協議相關特征,并對特征進行統計和歸類,供流量行為分析模型進行分析。其中,協議無關特征是指流量數據傳輸過程中表現的通用特征,如數據包的大小、時間間隔、地址分布等;協議相關特征是指流量數據在傳輸協議層面表現的專有特征,如加密流量的SSL 擴展種類、加密套件種類。
流量分析模塊對采集到的流量數據進行流量分類和智能分析,判斷網絡流量的類型(明文流量、典型加密流量、非法加密流量),并根據流量的時空特征、握手特征、背景特征等構建流量智能模型,從而發現加密流量中的非法流量、惡意流量和異常流量。
配置管理模塊實現對系統本身的配置管理和對外的接口功能,包括軟件本身運行狀態的監控和信息收集、對軟件本身的策略配置管理以及異常事件報警等。
數據存儲模塊對系統提供數據存儲和讀取功能,包括軟件配置管理數據、通過流量行為分析發現的惡意行為和異常行為、流量行為模型數據、人工智能算法和流量特征記錄。
系統的典型流程如圖3 所示。
系統首先啟動算法訓練,采用已標注流量數據等訓練分類算法模型,為后續流量識別提供支撐。當有流量識別任務到來時,啟動流量識別流程進行網絡流量采集,抓取網卡上的流量獲得原始數據包,然后進行流量的整理和分析,處理原始網絡包,統計相應的流量特征數據,然后送入分類算法中進行流量辨識,得出流量分類結果,最后在結果展示界面中進行展示。在上述幾個流量處理過程中,將處理的輸入輸出的結果存儲至數據庫中,以備后續對比分析使用。
虛擬專網(Virtual Private Network,VPN)是網絡傳輸加密的服務之一,通過構建加密網絡隧道將網絡數據包進行加密保護,以防止數據在網絡傳輸中被竊取和篡改。本文基于虛擬專網技術搭建了如下的測試場景:在兩個計算機終端上分別安裝OPENVPN 軟件,提供相應的VPN 加密隧道連接,同時在計算機終端上安裝SKYPE和Filezilla客戶端,以便使用SKYPE 的加密語言和Filezilla 文件傳輸業務。試驗拓撲如圖4 所示。

圖3 系統典型應用流程

圖4 系統測試試驗拓撲
在以上試驗環境中分別采集SKYPE 的語音流量和Filezilla 的文件下載流量數據,將采集好的數據發送至加密流量分析原型系統進行處理。在算法訓練過程中,將數據集隨機分為兩類:80%數據作為訓練集,20%作為測試集。
在算法性能數據方面,采用精確率和召回率進行性能評估。表2 給出了系統在采用K 均值監督算法進行測試試驗時的相關結果。

表2 測試實驗結果
從結果可以看出,本文設計的系統可以以平均84.7%的精確度分析辨識出相應的加密流量,其系統的可用性和適用性有效。
當前,基于加密技術的攻擊行為、攻擊手法將層出不窮,而現有大多數網絡安全設備對包含在加密流量中的網絡攻擊、惡意軟件無能為力,加密流量的檢測與防御已經成為網絡空間安全對抗的核心焦點。本文設計了一種加密流量行為分析系統,采用機器學習的方式,對明文流量、正常加密流量、惡意加密流量、非法加密流量等進行特征提取和行為分析,可以發現隱藏在加密流量中的攻擊行為、惡意行為和非法加密行為,對于安全人員掌握網絡安全態勢、發現網絡異常具有重要意義。當然,加密流量行為分析系統的智能算法調整、流量模型建立還需要進一步深化研究和實際測試。