999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于自注意力機制的無邊界應用動作識別方法

2022-05-09 05:03:34魏子令陳曙暉
計算機研究與發展 2022年5期
關鍵詞:動作

王 沖 魏子令 陳曙暉

(國防科技大學計算機學院 長沙 410003)

工業互聯網是近年來工業制造與互聯網、大數據、云計算、人工智能等技術不斷發展并走向深度融合的產物,是工業生產的重要發展趨勢.我國于2013年提出“中國制造2025”戰略,全面推動工業制造走向數字化、智能化[1].然而,工業互聯網同時也是網絡攻擊的重要目標,面臨著眾多的安全威脅.《工業互聯網平臺安全白皮書(2020)》指出[2],我國許多工業互聯網平臺遭受網絡攻擊多達平均每日90次,而用戶的安全意識卻普遍淡薄.

工業互聯網安全威脅主要分布在工業數據、工業應用層、工業云平臺服務層、工業云基礎設施層、邊緣計算層等5個層次.其中,工業數據層、應用層和云平臺服務層面臨的網絡攻擊威脅和敏感數據泄露風險,在傳統互聯網中也存在.過去幾十年的研究中,研究者們經常使用流量識別技術輔助解決這一問題,并取得了良好的效果.這種技術對工業互聯網的安全保障也發揮著重要作用.

流量識別技術最初的重要應用場景是保障互聯網的服務質量(quality of service, QoS)[3],它能夠分辨出網絡流量的來源或類型,從而為網絡運營商分析互聯網流量分布提供工具.同時,流量識別技術也能為互聯網安全保障提供支持,如輔助進行異常流量檢測[4-5]和敏感信息泄露風險評估[6]等.針對這些應用場景,研究者們對流量識別進行了長期而廣泛的研究.

早期,互聯網環境十分簡單,流量識別僅需通過檢查數據報文的端口號進行應用分類.但很快,隨著動態端口、端口偽裝等技術的出現,通過端口識別應用不再可行[7].于是深度包檢測(deep packet inspec-tion, DPI)技術應時而生,為流量識別提供了新的方案[8].此后,DPI技術經歷了長時間的發展,取得了許多成果[9-10].然而,21世紀以來,互聯網中加密流量的比例不斷攀升,這使得依賴于分析數據報文有效載荷的DPI技術不再有效.于是研究者們將目光轉向同樣在21世紀興起的機器學習技術,并發現僅使用流量數據的統計特征建立模型,即可從密文中取得一定程度的信息[11-13].

經過十幾年的研究,使用機器學習方法對加密流量進行分析的技術不斷發展,也取得了許多成果[14-16].而近期,對流量識別的研究又逐漸發展到一些細粒度分析當中,研究者們嘗試從加密流量中發現更詳細、更有價值的信息.其中,一個有意義的方向為網絡應用的動作識別,即通過分析設備產生的加密流量,還原出用戶在應用使用期間執行的具體操作.

這類細粒度分析能夠很好地輔助網絡管理者檢測工業互聯網中的網絡攻擊行為.例如,通過分析流量中的某些特定行為,可以發現是否有攻擊者對工業設備等執行惡意或有安全風險的動作.因此,動作識別技術可以為異常行為檢測提供支持.另外,流量的細粒度分析對研究應用在網絡傳輸中的隱私泄露風險也十分重要.研究者們從加密流量中獲取到的情報越多,意味著網絡數據發生泄露的風險越大,而工業互聯網敏感數據的泄露會導致嚴重的商業損失.例如,若惡意攻擊者通過識別網絡流量得知工業應用用戶執行的動作,就可以據此進一步分析出企業的生產計劃等敏感信息.因此,動作識別的研究能夠揭示出加密流量中存在的一種敏感信息泄露風險.

此前已有多項工作對動作識別進行了研究.2014年Coull等人[17]對蘋果手機上的一款即時通信軟件iMessage進行了深入研究,他們以用戶與蘋果服務器之間通信報文的長度為特征,對該軟件中的5種操作“開始輸入”“發送信息”“發送信息”“發送附件”“閱讀”進行識別.這是最早對用戶應用中的行為進行識別的研究,但更偏向操作識別,而非動作識別.Park等人[18]則選擇了韓國的一款即時通信軟件KakaoTalk作為研究對象,探索了行為識別的方案.他們選定包括加入聊天室、發送消息、添加好友在內的11種行為,將報文長度作為識別特征,取得了良好效果.這項研究的實質是動作識別,但作者本人并未使用這一概念.Shafiq等人[19]完成了一項對微信用戶行為進行識別的工作,但他們只進行了單一行為的識別,即發送文本或圖片消息.Conti等人[6]于2015年正式提出了動作識別的概念,他們選擇了谷歌商店最熱門的幾款應用,對用戶動作進行了定義與劃分,并利用動作產生的流量在初期字節分布上的特征,通過隨機森林分類器實現了對動作的準確識別,實驗結果中識別的精確率達到98%以上.Fu等人[20]也完成了類似的工作,他們在WeChat和WhatsApp兩款應用上運用隨機森林分類器進行動作識別.Ata等人[21]則再次驗證了從加密流量的統計量中識別出動作的可行性,他們以81%的準確率識別出來自9個應用的43種用戶行為.Hou等人[22]分析了微信的私有通信協議MMTLS,訓練和測試了多組特征和多種機器學習模型的動作識別效果,結果表明,隨機森林分類器的精度較佳.Wu等人[23]則選擇Instagram為研究對象,提出了一種相比于之前的工作能夠提取更穩定特征的方法.

從上面這些研究可以看出,盡管許多研究者都在研究大致相同的課題,但卻都沒有對此給出明確定義.在不同的文獻中,行為識別、動作識別、操作識別的提法均有出現.而本文沿用了文獻[6]中動作識別的概念,且我們認為,操作是細粒度的瞬時性的概念,行為是長期性的規律性的概念,動作則介于二者之間.可以認為,動作是操作的組合,而行為是動作的組合.同時,現有工作均為在已經得知流量動作邊界的情況下進行識別,流量通過模擬得到,且在采集過程中已經按動作劃分為不同單元.但這在真實流量采集中難以實現.因此現有的動作識別方法難以用于現實場景.

本文針對當前研究工作的主要不足,對網絡應用的無邊界動作識別進行了深入研究,主要貢獻有4個方面:

1) 對無邊界動作識別問題進行了探討和研究;

2) 提出了由基于自注意力機制的包級識別和動作聚合算法組成的識別模型,以實現無邊界動作識別機制;

3) 設計了針對無邊界動作識別的2種評價指標;

4) 通過實驗驗證了該模型的識別效果,證明其能夠為工業互聯網安全保障提供支持.

1 網絡應用動作識別的相關概念與技術

1.1 動作識別的基本概念

本節將對網絡應用動作識別領域相關的基本概念進行定義.

1) 動作.它是指網絡應用中,用戶為達成特定目的而執行的具有完整功能邏輯性的一組操作.例如發送郵件,這個動作由進入編輯界面、編輯郵件內容、指定接收郵箱、點擊發送等一系列操作組成.相比于單個操作,發送郵件這個動作更具有識別與分析的價值,因此動作識別技術中將這樣的操作組合視為研究的基本單元.

2) 動作分類.它是指將一個特定應用中所有可能的動作劃分為若干個固定類別的過程.嚴格意義上,用戶執行的每一個動作都是獨一無二的,但我們通常將所有的動作劃分為幾個固定類別,如郵箱應用中的動作就可以簡單分類為發送郵件、閱讀郵件、刪除郵件、更改信息等.并且,這樣的分類必須具有獨立性,即不同類別的動作之間相互獨立,用戶不可能在執行一個動作的同時執行另一個.

3) 動作序列.它是指由若干個按時間先后排列的動作構成的序列.用戶在使用應用時,往往不會一次只執行一個動作,而是執行一連串動作.這種情況反映在網絡通信中,就是一次性收集到的流量中包含多個動作的數據.顯然,以動作序列為研究對象更有實際意義.在這種定義下,動作序列具有抽象和具體2層內涵:抽象的動作序列只是一列字符串,這些字符表征當前動作所屬的類別名稱;具體的動作序列是一列網絡報文,這些報文由全部動作觸發的流量組合而成.

4) 動作識別.它是指從未知動作觸發的流量中推測出動作類別的算法.該算法以具體的動作序列為輸入,以抽象的動作序列為輸出,是一種序列到序列(sequence to sequence, Seq2Seq)算法.當輸入序列中只包含一個動作時,其退化為點到點算法.

1.2 動作邊界的定義

如圖1所示,一個具體的動作序列是由在時間上離散、有序分布的若干個數據包構成,按先后順序將這些數據包從1開始編號,并使用pi表示第i個數據包,則由k個數據包組成的動作序列可表示為一個序列Pk:

(1)

Fig. 1 Bounds of actions圖1 動作邊界示意圖

若動作序列Pk共包含N個互不相交的動作,同樣將這些動作按先后順序從1開始編號,并使用Ai表示第i個動作,則Pk也可等價表示為

Pk={A1,A2,…,AN}.

(2)

顯然,k個數據包可以被劃分到N個動作中,每個動作都由若干個連續的數據包組成.使用Bi表示第i個動作中第一個數據包在Pk中的編號,則Pk又可以等價表示為

(3)

此時我們把數列BN={B1,B2,…,BN-1}稱為動作序列Pk的動作邊界.顯然,動作邊界已知與未知時采用的動作識別方法有所不同,而現有研究均只涉及已知動作邊界下的識別.

實際情況中,從網絡上收集到的流量并不包含能夠確定動作邊界的信息,我們無法將不同動作直接劃分開.但在現有動作識別研究中,由于實驗流量通常通過仿真模擬獲得,研究者可以在數據生成時就人為對動作進行標注,這樣相當于引入了關于動作邊界的先驗知識.而必須有先驗知識的支撐,已知邊界的識別方法才能夠生效.

但同時也必須說明,對仿真數據進行人為劃分得到的邊界并不等同于動作邊界.盡管上文通過數學語言對動作邊界進行了嚴格定義,但現實中的網絡通信流量卻并不嚴格,2方面的原因導致數學上的動作邊界與現實存在一定差異.

1) 背景流量.網絡應用的客戶端與服務器之間往往存在大量并不由用戶主動觸發的通信行為,我們將這些通信數據稱為背景流量.這些背景流量的出現不可控,既可能存在于一個動作之內,也可能存在于不同動作之間,這使得動作流量不再純凈.

2) 動作交叉.盡管動作被定義為互斥的操作集,但這并不意味著動作產生的流量也在時間上互斥.流量具有一定的延續性,一個動作產生的數據在該動作結束時可能并沒有傳輸完畢,這會導致該動作的流量溢出到下一個動作的范圍內,從而產生動作交叉.

動作的不純凈與交叉使得準確的動作邊界難以確定.因此,對仿真數據的人為劃分也僅是動作分割的一種.而動作分割的方法則有多種,除基于先驗知識的分割外,還可以是基于經驗的分割,或者基于機器學習的分割.

在面對沒有邊界信息的動作序列時,動作識別的一種思路是先對原始流量進行動作分割,然后再進行識別.但本文并未采取這種方案,而是通過一種特殊的算法,同時得出動作的邊界與分類結果,即同時完成了動作分割與動作識別.這種算法需要用到自然語言處理領域十分重要的自注意力機制,下一節將對這種機制的基本原理進行簡要介紹.

1.3 自注意力機制原理

自注意力機制(self-attention mechanism)最初由Vaswani等人[24]于2017年提出,他們在文獻[24]中詳細介紹了自注意力機制的原理和基于這種機制構建的Transformer語言翻譯模型.其中,自注意力的計算方法如圖2所示:

Fig. 2 Self-attention calculation[24]圖2 自注意力計算方法[24]

(4)

為自注意力機制的輸出,i=1,2,3,4.

(5)

其中,I為注意力機制的輸入矩陣,來自輸入向量序列的組合;O為輸出矩陣,即為輸入向量賦予注意力分數后的序列組合.

從計算方法可以看出,自注意力機制的目的在于將序列中所有輸入項的信息賦予其中每一項,即每一個輸入項都可以使用全序列的信息進行推理,從而保證深度學習模型能夠使用上下文信息對輸入序列進行分類.在處理序列信息時,循環神經網絡(recurrent neural network, RNN)通過重復模塊上的狀態傳遞來聯系上下文信息,是一個時序邏輯;自注意力機制則通過一組運算同時完成全部輸入項的信息共享,處理步驟更短,信息共享也更全面.但自注意力機制中的大量矩陣運算也提高了對算力的要求,當序列過長、向量位數過高時,時間開銷將大大增加.

上述計算過程只完成了單頭注意力的計算,但在自注意力模型的構建中,通常使用多頭注意力(multi-attention),即使用多組參數矩陣計算出多個輸出矩陣,然后再使用一個額外的參數矩陣與這多個輸出矩陣的組合相乘,得到最終的輸出矩陣.具體計算過程不再贅述,在應用中對自注意力頭數的選擇需要通過實驗決定.

建立自注意力機制后,就可以在此基礎上構造深度學習模型.注意力機制一般用于編碼器-解碼器模型當中,自注意力機制也是如此,其典型的模型結構可參考文獻[24].其中值得注意的是位置編碼(positional encoding)的操作,因為自注意力計算過程中沒有包含位置信息,所以輸入輸出序列中的所有向量的有序性沒有得到體現.即使將這些向量任意交換位置,算法的執行也不會受到影響,此時就需要用到位置編碼.簡單來說,位置編碼使用特殊方法來生成一組具有唯一性特征的向量,每個向量都只在特定位置出現.將這組位置向量與輸入向量序列按位置相加,就使得輸入向量中包含了獨特的位置信息.

2 基于自注意力機制的無邊界動作識別算法

本文提出的無邊界動作識別算法可分為包級識別與動作聚合2部分:包級識別從流量數據中得到已分類的數據包序列,動作聚合將數據包序列轉化為動作類別序列.該算法的輸入為原始動作序列,即若干個按時間排列的數據報文,輸出為識別動作序列,即對原始流量的一個分割與識別,其處理流程為:

1) 對輸入的原始動作序列進行向量化,得到輸入向量集.

2) 對輸入向量集進行包級識別.包級識別的對象為單個包向量,輸入為處于當前包向量窗口內的一組包向量,識別模型為基于注意力機制的編碼器-解碼器,輸出為該包向量的動作分類概率分布,最后取概率最大的動作類別為分類結果.包級識別完成后,得到已分類的數據包序列.

3) 對已分類的數據包序列進行動作聚合.動作聚合的對象為帶有動作標簽的數據包序列,輸入為數據包動作標簽構成的有序列表,處理過程為基于密度的聚合算法,輸出為一個有序動作標簽列表和一個動作邊界.

2.1 基于自注意力機制的包級識別

包級識別的核心是自注意力機制,即通過聯系上下文信息來對每個數據包進行動作識別.動作流量具有較為復雜的結構,而一個經過加密的數據包所攜帶的信息極少,因此我們無法只使用單個數據包本身來對其動作分類做出判斷.但考慮到動作本質上是數據包的時間序列,如果將前后數據包的信息用于輔助數據包的分類,其效果將得到大幅提升.為此,本文使用了在自然語言領域中得到廣泛應用的自注意力機制.

計算自注意力之前,首先需要進行數據包向量化.當使用自注意力機制來處理數據時,要求輸入數據具有向量的形式,因此數據包無法直接作為輸入,必須先轉化為數值向量.參考語音識別領域應用自注意力機制的實例,數據包向量化有2種基本思路:包向量與幀向量.

包向量,即使用每個數據包的若干個特征數值來構成該數據包的表示向量.由于數據包經過加密,基于載荷的信息已無法提取,同時,為防止分類模型錯誤依賴具體的網絡通信信息,報文頭部的數據也應避免直接使用.于是,本文選擇了數據包載荷長度、與上一數據包的時間間隔、數據包信息熵3個特征作為包向量的構成,即:

pi=(lengthi,intervali,entropyi).

(6)

幀向量,即將若干個數據包組合為一幀,為每個幀確定一個表示向量.首先,需要確定幀長度與幀間隔的取值,然后將數據包序列處理為幀序列.例如,取幀長度為10,幀間隔為2,則數據包1~10為第1幀,數據包3~12為第2幀,以此類推.在幀向量方法中,自注意力機制的輸入數據不再是數據包,而是數據幀.此時,每個數據幀的表示向量可以取為其所包含數據包的特征,例如取數據包的長度為特征,則幀向量為該幀中所有數據包長度組成的向量.

盡管包向量與幀向量均可用于數據包向量化,但由于動作分類的結果應該精確到單個數據包,且每個數據包應該被學習的特征有多個,所以本文使用包向量來作為自注意力機制的輸入數據.

完成數據包向量化后,就可以進行包級識別,即使用基于自注意力機制的深度模型識別出單個數據包的動作類別.自注意力機制通常使用全局信息進行推斷,其直接應用于包級識別則是將整個動作序列所含的包向量納入單個包向量的處理.這對于包級識別存在2方面的問題:1)全局信息的利用意味著較高的時間開銷;2)對于動作分類而言,全局信息是不必要的,單個數據包至多只與當前動作之內的數據包相關.因此,本文只使用局部信息進行計算.由于自注意力的計算復雜度較高,縮減信息窗口長度也有助于降低開銷.

Fig. 3 Construction of package-level identification model[25]圖3 包級識別模型結構[25]

為滿足序列到序列的識別需求,包級識別模型采用較為經典的編碼器-解碼器結構Vanilla Transformer[25],其結構如圖3所示.每個數據包的包向量經過此模型處理,都會產生一個動作類別上的概率分布向量,我們按照深度學習的一般處理方法,將概率最大的一項確定為分類結果.

2.2 基于密度機制的動作聚合

動作聚合的目的是將一個有序動作標簽長列表處理為有序動作標簽短列表,這可以通過動作標簽的相互合并來實現.因此,動作聚合的基本思路是在長列表上劃分出若干個區間,區間內的所有動作標簽被合并為同一動作,該動作即為該區間的屬性.算法從確定一批小區間開始,然后讓區間不斷擴展、合并,最終在達到某些停止條件時不再變化,從而得到聚合后的短列表.

每個區間包含若干個動作標簽,這些動作標簽可能不盡相同,而每一種動作標簽的數量占該區間動作標簽總數的比例即為這種動作的密度.動作聚合算法中主要使用密度作為衡量指標來確定區間擴展、合并、停止的規則.

令輸入列表為Sinput=(S1,S2,…,Sn),則基于密度的動作聚合算法可具體描述為:

1) 生成初始區間.給定初始間距D和初始區間半徑R,從S1開始,每隔D項選取一個初始項,以每個初始項為中心、R為半徑取為擬初始區間.給定密度閾值ρK,如果擬初始區間特征密度超過ρK,則將其確定為初始區間,否則刪除該擬初始區間.

2) 區間擴展.已有的所有未停止區間要向左右2個方向進行擴展,擴展步長為1.若擴展成功則區間長度+1,擴展失敗則步長+1并再次嘗試,如果直到步長為4仍擴展失敗,則該方向的擴展終止.判斷擴展成功與否的標準為密度,取區間內所有動作標簽中密度最大的作為區間屬性.區間屬性的密度則為特征密度,而擴展應該發生在特征密度的上升方向上,即若當前擴展使得區間的特征密度變大或不變,則擴展成功,否則失敗.

3) 區間合并.對現有未停止區間進行擴展時,若被擴展項處于其他區間內,則觸發區間合并.若合并成功,則這2個區間轉化為一個區間,并以合并后密度最大的動作為屬性;若合并失敗,則當前擴展終止.判斷合并成功與否的標準為密度,合并應該發生在特征密度不低于ρK的方向上,即若合并后區間的特征密度大于或等于ρK,則合并成功,否則失敗.

4) 區間停止.當一個區間的兩端均發生擴展失敗或合并失敗時觸發區間停止,已停止的區間不再主動進行擴展,但可以被其他區間合并.

5) 強制歸并.當全部已有區間陷入停止后,若整個列表中已不存在未被任何區間包含的自由項,則聚合完成,否則對所有自由項進行強制歸并.處于任意2個區間之間的自由項首先進行自歸并,即嘗試使用這些自由項單獨構成一個區間.若該區間的特征密度超過ρK,則自歸并成功,該區間保留,否則失敗.自歸并失敗后進行左右歸并,這些自由項將被按比例分別歸入左區間與右區間,該比例由左右區間的長度和歸并后的特征密度決定.即計算出所有不同比例下,歸并后左右區間特征密度的下降值,取左(右)區間長度占左右區間長度和的比值為右(左)區間的權重,求得左右區間特征密度下降值的加權平均值,而使得該平均值最小的比例為最終的歸并比例.

6) 得到聚合結果.強制歸并完成后,將所有最終區間的屬性按序取出,構成一個新的動作標簽列表,此即識別動作序列.另外,再將所有區間的左端點序號取出,構成一個數列,此即當前動作序列的動作邊界.

值得一提的是,上述算法中存在2個較為特殊的處理:

① 變步長擴展.區間的擴展并不會在失敗后立刻停止,而是進行多次增加步長后的嘗試,這是為了防止出現欠擴展的情況.因為包級識別的精度并不特別高,所以動作聚合的輸入數據也較為雜亂,不同動作標簽混雜排布的情況十分常見.動作聚合的目的是找到動作標簽的集中趨勢,因此少數幾個錯誤標簽的存在不應影響聚合結果.若步長為1的擴展失敗后立刻停止,則算法會被細微的標簽錯位限制,無法捕捉到更大范圍內的動作集中趨勢,這就是欠擴展.所以,本文采取累進步長多次嘗試的策略,以此避免擴展停止過早觸發.但是,如果累進步長的嘗試次數過多,又有可能導致區間越過本應存在的邊界,造成當前區間過長而鄰近區間過短的問題,即過擴展.故而,同時考慮欠擴展與過擴展的情況,本文算法只進行4次嘗試.

② 異步擴展.區間擴展是聚合算法執行的基礎,上文雖然給出了擴展遵循的規則,但是并沒有說明擴展發生的時機.一個簡單的做法是,構造算法執行的大循環,每一次循環內,遍歷所有區間,每個區間都分別嘗試向左與向右的擴展,這可以稱作同步擴展.雖然同步擴展實現簡單,但是考慮到原始動作序列并不規則,而初始區間的選取是規則的,那么同步擴展可能會進一步加強區間的規則性,反而無法有效擬合數據.為增強擴展過程的隨機性,本算法進行異步擴展,即為每個區間分配單獨的線程,且線程每次運行只觸發左右擴展各一次.

2.3 動作識別結果的評價方法

本文構造的無邊界動作識別算法同時完成了動作的分割與識別,而這樣的結果存在無法使用經典的精確率、召回率、F值等指標進行評價的問題.例如,表1展示了一個動作序列的識別結果,這樣的結果顯然無法直接計算精確率.表1中,字母A~F為動作代號,括號內的數字表示該動作在數據包序列中的起止位置.故而我們需要設計新的指標來對識別結果進行評價,并使其能夠發揮與精確率類似的作用.

Table 1 An Example of Actions Sequence Identification Results

簡單來說,衡量識別是否準確,只需要給出正確的識別結果所占的比例.按照這樣的思路,新指標也必須能夠刻畫出動作識別結果中的正確比例.本文使用的無邊界動作識別方法,實際上相當于同時完成了動作分割與動作識別,但對于這兩者而言,判斷正確的標準并不相同.

首先,對于動作識別,盡管動作序列是大量數據包的集合,但這些數據包并不出現在識別結果中,動作識別的結果只是動作標簽的列表,而評估識別效果時也只需要考慮這些動作標簽.此時,判斷識別結果正確的比例相當于判斷識別出的序列在什么程度上與原始序列相同,或者判斷二者有多大的不同.而判斷序列差異性的一個常用指標是最小編輯距離,即一個序列變換為另一個序列所需的最少步數.

其次,對于動作分割,盡管分割得到的結果是動作邊界——一個數值向量,但如果仍使用最小編輯距離,則會使評價結果十分粗糙.因為動作邊界向量的長度很短,而每一位的數值取值范圍卻很大.考慮到動作分割本質上是將一個長序列劃分為若干個短序列的過程,故而可以使用原始劃分與當前劃分的偏差值來衡量分割的正確比例,此處的偏差即為動作邊界對應位置數值之間的差值.

找到編輯距離與偏差這2種描述動作識別與動作分割差異性的指標,就可以按照相似的方法將其轉化為識別精度,本文將其分別稱為序列識別精度與流量識別精度.

1) 序列識別精度

構建序列識別精度,首先需要明確動作序列之間最小編輯距離的計算方法.最小編輯距離原本用于計算一個字符串如何通過最少的步驟變換為另一個字符串,變換的可選操作為添加、刪除、替換.顯然,若將每個動作標簽表示為一個字符,則一個動作序列等同于一個字符串,此時即可直接運用最小編輯距離的算法.

但是,最小編輯距離是一個具體數值,并非0到1之間的百分比,無法直接作為識別精度使用.因此,我們使用相對最小編輯距離的概念.顯然,識別動作序列與原始動作序列完全相同時,識別精度應為100%,而此時最小編輯距離為0.識別動作序列與原始動作序列完全不同時,識別精度應為0,此時,若識別動作序列長度大于原始動作序列長度,則最小編輯距離為識別動作序列長度;若識別動作序列長度小于原始動作序列長度,則最小編輯距離為原始動作序列長度.

因此,令序列識別精度為Prseq,最小編輯距離為dseq,原始動作序列長度為lo,識別動作序列長度為li,則有

(7)

2) 流量識別精度

構建流量識別精度,首先需要定義動作偏差的計算方法.動作偏差,即一個識別動作序列中的動作,與它對應的原始動作序列中的動作之間的偏差.要計算動作偏差,首先需要確定識別動作序列與原始動作序列之間的對應關系,本文使用就近原則.圖4展示了動作序列之間對應關系與偏差的存在.

Fig. 4 Calculation of deviation圖4 偏差值計算方法示意圖

首先,將一個動作中排列在中心位置的數據包的時間戳定為該動作的中心點.然后,對比2個序列的動作的中心點位置,將原始動作序列中的動作對應到識別動作序列中動作標簽相同且中心點距離最近的動作上.若不存在相同的動作標簽,則對應為空.

完成動作對應后,即可在對應的動作之間計算動作偏差.偏差主要體現為原始動作超出識別動作所占時間區間的數據包個數,但直接將數據包個數作為偏差值,會使一個動作中的所有數據包處于同等重要的地位,而實際上并非如此.1.2節中提到,動作邊界具有一定模糊性,盡管本文的識別方法使用了監督學習,但這也并不意味著原始數據中的動作邊界就是精確值.現實中我們僅僅了解原始數據中動作的大致位置,而不能確定動作的確切邊界,原始數據的動作邊界只能看作特殊條件下的一個動作分割.這意味著只有靠近動作中心點的數據包是有明確動作標簽的,而靠近邊界的數據包屬于左右哪個動作則是模糊的.因此,計算動作偏差時,一個動作內的不同數據包地位不同,這可以通過設置權重來體現.越靠近中心點的數據包權重越高,越靠近邊界權重越低,這樣可以構成一個權重函數.顯然,權重函數不是線性函數,因為越靠近中心點或邊界,鄰近數據包之間的重要性差異越小,重要性的差異主要體現在中心與邊界之間的區域.考慮到這樣的特性,我們選擇正態分布作為權重函數使用.

本文借助在數據包序列上建立的標準正態分布取權重,此時數據包之間的間隔視為相等.而由于數據包在時間上存在一定分布特性,所以將權重函數表示在時間軸上則會變形為不對稱的單峰函數.

計算動作偏差時,需要考察2個動作所占的時間區間之間的偏移量.這樣的偏移量通常會同時出現2個,即原始動作區間超出識別動作區間的部分,和識別動作區間超出原始動作區間的部分.但這兩者是同一個偏移的2種視角,不應該被計算2次.因此,對于某一個識別的第h個動作,只考慮原始動作區間超出識別動作區間的部分,并將其表示為數據包序列{pih,pih+1,…,pjh},則該動作的動作偏差為

(8)

其中wk為第k個數據包的權重.

按照這樣的計算方法可以得到2個序列之間每一對動作的偏差,若一個原始動作沒有對應的識別動作,則該動作的偏差即為所有數據包全部偏離時的偏差.將這些動作的偏差進行加總,即得到動作序列的累積偏差,其可看作動作序列之間的偏差.

同樣,具有具體數值的累積偏差無法直接作為精度使用,因此我們引入最大累積偏差的概念.其為當原始動作序列中所有動作均對應為空時的累積偏差,并將精度表示為

(9)

其中,N為序列中的動作個數,mN為這N個動作的所有數據包個數,等號右邊第2項的分子為累積偏差,而分母為最大累積偏差,第2項即為動作序列之間的相對累積偏差.

3 實驗結果與分析

為驗證本文所提出的無邊界動作識別算法的效果,我們需要選定網絡應用,從應用中采集數據并建立用于監督學習的標簽數據集.盡管可選的應用眾多,但動作識別的方法并不與應用的具體選擇相關.因此本文以中國最受歡迎的應用之一——微信為實例,來說明算法的可行性.

使用監督學習的方法訓練動作識別模型,需要具有明確的動作流量—動作類別對應關系的標注數據.而實際場景中我們無法在采集流量的同時為其打上動作標簽,且公開資源中也沒有可靠的此類數據集.所以現有的動作識別研究通常使用仿真模擬來解決這一問題,本文也采用相同的方法.

首先,我們選定了設備、系統、軟件版本、實驗賬戶,并構建了一個實驗網絡環境.然后,我們對應用中可能出現的動作類別進行了選擇與定義,并使用模擬操作腳本對這些動作進行仿真,使其盡可能接近真實情況.最后,我們部署了流量捕獲程序,該程序既能夠捕獲流量,又能夠根據時間關系將動作與流量關聯起來.數據采集時,每次仿真會模擬用戶執行一個動作序列,這些動作序列會在自動化處理后形成數據包序列—動作類別序列的對應數據.這樣的一對數據稱為一條記錄,是實驗數據集的基本單元.

然而,在微信的實際使用中,可能存在的動作序列是無窮的,我們不可能將其全部模擬出來.另外,完全隨機的動作序列也沒有實際意義,因為現實中的用戶動作必然具有一定的邏輯關聯性.因此,我們采用了一種折中的動作模擬方法:先預設若干種實際可能存在的動作序列模式,再按照不同模式分別進行模擬.

本實驗中,我們選定了微信中的7種動作,并使用大寫字母來表示它們: A—發送消息,B—轉賬,C—瀏覽公眾號文章,D—查看新聞,E—瀏覽朋友圈,F—瀏覽看點,G—進入小程序.此時,一個動作序列即可用一個字符串來表示.同時,出于對真實場景及模型復雜度的考慮,我們將所有動作序列的動作數量控制在10以內,表2展示了15種模式下采集到的數據情況.

Table 2 Capture of Actions Sequence Traffic

實驗數據集最終包含15個模式下共計781條動作序列的流量,每條流量以一個動作類別序列為標簽.但這些數據并不按模式歸類,而是隨機亂序排列.

3.1 實驗設計

本實驗的目標為:1)驗證包級識別模型的效果;2)驗證無邊界動作識別模型的效果.實驗除需要對包級識別的深度模型參數進行調優外,并沒有其他參數需要測定.盡管動作聚合算法中存在一些變量,但它們僅影響算法效率,對識別結果沒有顯著貢獻.并且,由于目前尚不存在其他的無邊界動作識別算法,本文沒有設計對比實驗,但是3.2—3.4節的實驗數據與分析可以充分說明本文算法的有效性.

我們使用數據集的前70%對包級識別模型進行訓練,使用后30%進行測試,這樣得到的包級識別結果可以直接使用經典指標進行評價.此處驗證包級識別效果,是為了評價深度學習模型的性能.

在包級識別的輸出上執行動作聚合算法,即可得到動作識別的結果.我們使用序列識別精度和流量識別精度2個指標分別對識別結果進行分析,以說明模型的有效性.

3.2 包級識別結果分析

因為包級識別對每個數據包都進行一次識別,所以實驗產生的絕對數值較大,此處僅對相對數值進行展示.表3展示了包級識別模型測試結果的精確率、召回率與F值.表中,一行的數據表示一種模式下的識別結果,其中精確率為該模式所含各類動作識別精確率的平均值,召回率與F值同理.

Table 3 Experiments Results of Packet-level Identification Model

從表3可以看出,包級識別的精度并不是很高,F值平均為64.9%,這可能是因為部分動作產生的數據包序列之間存在一定的相似性.

值得注意的是,包級識別的結果僅用于說明算法中使用的深度模型的性能,也僅是動作識別的一個中間結果,后續的動作聚合會在一定程度上對這一中間結果進行修正,從而獲得更高精度.通過下文序列識別精度和流量識別精度的結果也可以看出,動作識別的最終結果相比包級識別結果有了顯著的提升.

3.3 序列識別精度分析

在3.2節的實驗結果基礎上進行動作聚合即得到動作識別序列,圖5展示了對識別序列計算序列識別精度的結果.通過圖5可以看出,無邊界動作識別的序列識別精度最高可達90%以上(模式4),其平均值則接近80%.

Fig. 5 Sequential precision of action identification without bounds圖5 無邊界動作識別的序列識別精度

不同模式下序列識別精度的波動很容易解釋.因為序列識別精度是基于最小編輯距離得到的,它與動作序列字符串的具體形式關聯緊密,所以序列識別精度的數值也對模式非常敏感.而部分模式下序列識別精度不夠高的主要原因是序列識別中的動作丟失.因此改進包級識別算法可以進一步提升動作識別的序列識別精度.

3.4 流量識別精度分析

如果對3.3節中的動作識別結果計算流量識別精度,則可得到如圖6所示的分布情況.

Fig. 6 Traffic precision of action identification without bounds圖6 無邊界動作識別的流量識別精度

由圖5和圖6可以看出,流量識別精度與序列識別精度表現出一定的正相關性,而這種特點是易于理解的.在流量識別精度的計算中,若識別動作找不到可對應的原始動作,則會直接計入該動作偏差的最大值.因此序列之間的編輯距離越小,越可能避免較大偏差值的引入.同時,我們也注意到,流量識別精度普遍低于序列識別精度,除計算方式引起的差異外,這也能說明動作邊界存在一定的不準確性.

盡管流量識別精度作為一個更細致的評價指標,能夠更好地體現出模型的識別精度,但從實用角度考慮,序列識別精度更有價值.動作識別關注的重點是用戶行為,而流量數據是否被準確分割并不對此造成顯著影響.換言之,只要對動作序列的識別是較為可靠的,動作邊界的偏差在一定程度上可以忽略.因此我們主要使用序列識別精度來衡量識別結果的優劣.

綜合算法的序列識別精度與流量識別精度來看,本文作為無邊界動作識別的開創性工作,仍具有許多提升空間.但文本工作也已經在一定程度上可以支撐起實際場景中動作識別的應用,這可以大幅推動應用動作識別走向實用,以進一步保障工業互聯網的安全.

3.5 算法開銷

本文算法的開銷主要來源于包級識別和動作聚合2個部分.其中包級識別使用Transformer模型,根據文獻[24]中的分析,若數據包序列長度為n,包向量維度為d,則模型的單層復雜度為O(n2d).而在本文方法中,n為注意力窗口長度,d=3.另外,動作聚合部分,根據算法流程,若數據包序列總長度為N,則算法復雜度為O(N).因此,本文算法的訓練開銷主要由包級識別模型決定.

為定量描述本文算法的訓練開銷,我們選定了幾個不同的注意力窗口長度,并對算法進行了測試,測試結果如表4所示.由于單個動作觸發的流量通常只包含1 000~3 000個數據包,所以將窗口長度也選定在這個范圍內.通過數據可以發現,窗口長度增加時訓練開銷顯著增加,但包級識別的效果并未有顯著提升,因此在本文方法中將窗口長度取為1 000.

Table 4 Average F-score and Training Cost of Package-level Identification

另外,Transformer模型相對于RNN模型的重要優勢之一是空間換取時間,即通過增加內存開銷來降低時間復雜度.因此,除計算開銷外,算法的內存占用也值得注意.但與NLP領域處理的問題不同,數據包識別中向量維度低,序列長度短,故而內存資源的消耗并不明顯.

4 結束語

本文針對現有動作識別模型在無邊界條件下無法生效的問題,提出了先使用基于自注意力機制的深度學習模型進行包級識別,再使用基于密度的動作聚合算法得到結果的無邊界動作識別算法.我們通過仿真模擬的方式得到數據,對該算法進行了實驗測試,結果表明其具有一定的可行性與實用性.如果將這一算法用于現實中對工業互聯網流量數據進行分析,則可以更好地發現可能存在的惡意行為和敏感信息泄露風險,從而提升工業互聯網安全保障質量.

因為實際網絡中流量并不帶有動作邊界信息,所以現有的動作識別方法只具備理論可行性,難以用于實踐.而本文的成果使得動作識別的實用價值更進一步提升.但即便如此,動作識別仍然存在一些問題需要后續進行深入研究.例如:1)需要探索擺脫仿真模擬,使用現實網絡數據驗證動作識別模型的方法;2)需要探索背景流量對動作識別結果產生的影響;3)需要繼續研究識別方法,對參數、模型、算法進行調整,嘗試取得更高的識別精度.

除上述對動作識別方法本身的改進外,對動作識別實際應用的探索也是未來的研究重點.一方面,我們需要實現一種機制,能夠在工業互聯網流量中自動地分析與識別動作,并根據動作模式檢測出當前用戶是否正在執行惡意操作.另一方面,針對當前流量識別暴露出的隱私泄露問題,我們需要找到一種有效、通用,且不會明顯增加網絡傳輸成本的防御方法.

作者貢獻聲明:王沖負責本文研究方案和實驗的主要構思以及論文主體的寫作;魏子令參與方案設計、實驗設計執行和論文的修改;陳曙暉參與實驗設計、數據分析和論文修改.

猜你喜歡
動作
動作不可少(下)
巧借動作寫友愛
下一個動作
動作描寫要具體
畫動作
讓動作“活”起來
動作描寫不可少
非同一般的吃飯動作
動作喜劇電影周
電影故事(2015年30期)2015-02-27 09:03:12
神奇的手
主站蜘蛛池模板: 黄色福利在线| 456亚洲人成高清在线| 国产美女在线免费观看| 欧美在线三级| 91成人在线观看| 亚洲国产午夜精华无码福利| 国产办公室秘书无码精品| 亚洲无卡视频| 色男人的天堂久久综合| 国产特一级毛片| 日韩黄色在线| 看看一级毛片| 久无码久无码av无码| 国产一级裸网站| A级毛片无码久久精品免费| 亚洲区欧美区| 亚洲一级色| 国产美女精品一区二区| 亚洲综合亚洲国产尤物| 国产成人精品视频一区二区电影| 欧美69视频在线| 日本91视频| 久热这里只有精品6| 国内精品手机在线观看视频| 亚洲最新地址| 少妇人妻无码首页| 午夜无码一区二区三区在线app| 亚洲成a人片| 欧美三级视频在线播放| 欧美伦理一区| 色一情一乱一伦一区二区三区小说 | 国产精品yjizz视频网一二区| a亚洲天堂| 一区二区午夜| 日韩国产欧美精品在线| 国产18在线| 国产第一页亚洲| 日韩午夜伦| 在线五月婷婷| 国产成人亚洲综合A∨在线播放 | 伊人成人在线| 老司机aⅴ在线精品导航| 亚欧成人无码AV在线播放| 91福利免费视频| 毛片在线播放网址| 91精品情国产情侣高潮对白蜜| 中文字幕中文字字幕码一二区| 国产熟睡乱子伦视频网站| 国产第一页屁屁影院| 97久久免费视频| 九九精品在线观看| 91精品国产自产91精品资源| 国模私拍一区二区三区| 亚洲 欧美 中文 AⅤ在线视频| 欧美 国产 人人视频| 亚洲AV无码不卡无码 | 欧美成人第一页| 国产精品欧美激情| 在线观看国产精品一区| 在线观看免费AV网| 91麻豆久久久| 国产成人亚洲综合A∨在线播放| 亚洲成人免费在线| 国产成人亚洲综合A∨在线播放| 欧美a在线| 亚洲欧美日韩精品专区| 精品国产欧美精品v| 亚洲欧美日韩精品专区| 国产欧美日韩va| 国产美女在线观看| 久久久久青草线综合超碰| 日韩av无码DVD| 亚洲美女AV免费一区| 免费国产高清精品一区在线| 国产毛片高清一级国语| 97人人模人人爽人人喊小说| 麻豆AV网站免费进入| 欧美天堂在线| 丁香婷婷在线视频| 亚洲天堂啪啪| 国产女人水多毛片18| 久久人体视频|