梁登高,周安民,鄭榮鋒,劉 亮,丁建偉
(1.四川大學網(wǎng)絡(luò)空間安全學院,成都 610065;2.四川大學電子信息學院,成都 610065;3.中國電子科技集團公司第三十研究所保密通信重點實驗室,成都 610041)
(*通信作者電子郵箱qswhs@foxmail.com)
微信2018 年月活躍用戶量高達10.8 億,且年齡覆蓋率高,其中55歲以上的用戶占6 300萬[1]。微信中收發(fā)紅包功能是互聯(lián)網(wǎng)時代下中國傳統(tǒng)紅包的新表現(xiàn)形式,在2014 年一經(jīng)推出,便深受民眾喜愛,使用人數(shù)急劇增長。2019 年春節(jié)前五天,在線收發(fā)紅包人次達到8.23 億[2]。微信中轉(zhuǎn)賬功能為日常生活帶來了極大的便利,是用戶常用的功能。由于微信具有龐大的用戶量,且涉及資金業(yè)務(wù),微信紅包與轉(zhuǎn)賬功能往往成為不法分子的攻擊目標,如針對性的釣魚鏈接、虛假的紅包圖案?!捌词謿饧t包”的出現(xiàn),無疑增添了微信中群成員的活躍度,然而不法者卻利用該功能聚集人員在線賭博,借助私人轉(zhuǎn)賬與紅包功能進行賭博結(jié)算。除此之外,微信中紅包與轉(zhuǎn)賬功能也有被作為非法交易的在線資金轉(zhuǎn)賬的可能性。
基于以上所述,對微信中紅包與轉(zhuǎn)賬行為的準確識別具有極大的現(xiàn)實意義:1)準確識別出正常的紅包與轉(zhuǎn)賬行為,可避免點擊虛假紅包鏈接;2)實時檢測一段時間范圍內(nèi)紅包與轉(zhuǎn)賬行為發(fā)生的次數(shù),可用于發(fā)現(xiàn)賭博行為;3)線上檢測紅包與轉(zhuǎn)賬行為可作為相關(guān)部門的一種取證手段。當前,針對微信中用戶行為識別的研究極少,文獻[3]中對微信中通信協(xié)議進行了詳細研究,該研究將微信中用戶行為分為七種類別,其中將紅包、轉(zhuǎn)賬、支付歸為支付功能一類,并沒有對紅包與轉(zhuǎn)賬功能進行細化識別。文獻[4]中基于機器學習對微信中文本與圖片信息進行分類,但該方法僅針對文本與圖片信息。文獻[5]中將微信中傳輸文本、圖片、紅包和轉(zhuǎn)賬功能細化為16 種用戶行為,其中紅包與轉(zhuǎn)賬功能共被細化為14 種操作,故識別一次發(fā)送或接收紅包行為需要結(jié)合多種操作的識別結(jié)果,這使得最終的識別準確率較低。文獻[6]中針對移動手機App 的加密流量,提出了一種對服務(wù)類別進行分類的方法與系統(tǒng),選取了微信與WhatsApp[7]作為測試對象,該方法在數(shù)據(jù)預(yù)處理上結(jié)合了層次聚類、隱馬爾可夫模型(Hidden Markov Model,HMM)和閾值啟發(fā)式等方法,時間開銷相對大,且最終的準確率相對較低。
文獻[8]中“斯諾登事件”表明現(xiàn)已有在線攔截和竊聽用戶的行為,這涉及了對用戶行為識別的大量研究。賈軍等[9]提出一種基于深度包檢測(Deep Packet Inspection,DPI)自關(guān)聯(lián)的分類方法來對應(yīng)用類別進行識別,準確率低。文獻[10]提出了UIPicker,一種識別用戶敏感信息輸入的智能框架,即通過自動檢測用戶輸入,從而識別是否為敏感信息。文獻[11]通過提取數(shù)據(jù)包IP、TCP 報頭信息,從而建模識別用戶的具體應(yīng)用行為,該方法不采集應(yīng)用負載信息,故針對特征集中于負載的應(yīng)用識別率不高。與文獻[11]相似,文獻[12]也只采集IP、TCP 報頭信息,開發(fā)了AppScanner 框架,通過提取54種網(wǎng)絡(luò)流雙向特征,從而對應(yīng)用進行建模與識別,但該框架不對應(yīng)用內(nèi)具體行為進行識別。文獻[13]中通過分析基于超文本傳輸安全(HyperText Transfer Protocol over Secure Socket Layer,HTTPS)協(xié)議加密的手機應(yīng)用流量,從而識別用戶行為,研究中以Gmail、Facebook 和Twitter 三種應(yīng)用作為實驗對象。文獻[14]中提出一種基于層次聚類的有監(jiān)督機器學習方法,用于識別移動用戶的在線行為分類,研究中以Kakao Talk[15]為實驗對象。文獻[16]中選取谷歌應(yīng)用商店中110 種APP 作為實驗對象,提出了一種程序指紋生成的方法。文獻[17]的研究提出了一種智能手機應(yīng)用識別的系統(tǒng),但僅選取了13 種應(yīng)用作為實驗對象。以上的方法,多數(shù)實驗選取的樣例較少,一些方法得到的準確率也相對較低。
與現(xiàn)有研究不同,本文提出的是一種新的用戶行為識別方法。將用戶的一個單任務(wù),如微信中“發(fā)送紅包”,映射為一個大的流量塊,而組成“發(fā)送紅包”的一系列單操作,如“點擊紅包按鈕”“輸入金額”“輸入密碼”分別映射為小的流量塊。如此劃分使得小流量塊可表征每個特定單操作的特征,而這些小流量塊的順序則表征著整個大流量塊的特征,即從多個維度刻畫用戶單任務(wù)的特征,最終得到綜合特征。本文研究工作的貢獻在于提出了一種新的用戶行為識別方法,并能準確識別出微信中紅包與轉(zhuǎn)賬行為以及這些行為發(fā)生的次數(shù)。
微信中多數(shù)通信行為采用了專有協(xié)議MMTLS,其開發(fā)者稱該協(xié)議是在傳輸層安全協(xié)議版本1.3(Transport Layer Security(TLS)Protocol Version 1.3,TLS1.3)的基礎(chǔ)上做的更改[18]。紅包與轉(zhuǎn)賬行為只采用了基于MMTLS 的超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP),即在傳輸過程中通過MMTLS 對應(yīng)用層數(shù)據(jù)進行封裝,然后通過普通的HTTP 協(xié)議將其傳輸?shù)侥繕说刂?。結(jié)合文獻[3]中的研究工作,將微信中基于MMTLS 的HTTP 協(xié)議進行通信的服務(wù)類別匯總?cè)绫?(“√”代表相應(yīng)服務(wù)使用了相應(yīng)協(xié)議,否則代表無)。
表1 基于MMTLS的HTTP協(xié)議進行通信的服務(wù)匯總Tab.1 Service summary of communication for MMTLS-based HTTP
通過Wireshark[19]抓包與分析發(fā)現(xiàn),基于MMTLS 的HTTP有兩個顯著的特征:其一是在發(fā)送過程中,開頭都會冠以“POST/mmtls/”字樣[3];其二是服務(wù)端的端口都是80。這兩點將有助于收集數(shù)據(jù)時,準確打標簽。
移動應(yīng)用中的單個功能多由數(shù)次用戶操作來完成,如“發(fā)送文件”需先找尋文件路徑,接著點擊發(fā)送。顯然,微信中收發(fā)紅包與轉(zhuǎn)賬也如此。本文實驗的研究目的是識別用戶在某一時間內(nèi)發(fā)送或接收了紅包與轉(zhuǎn)賬的次數(shù),故發(fā)送與接收被示為相互獨立的行為。研究中要識別四種行為,即“發(fā)送紅包”“接收紅包”“發(fā)起轉(zhuǎn)賬”“接收轉(zhuǎn)賬”。這四種行為分別由多個單操作組成,見表2。要特別說明,表2 對四種行為的細化僅為表述目標行為的細節(jié)特征,從而為后續(xù)提出的大、小流量分塊機制提供物理依據(jù)。
表2 微信中收發(fā)紅包與轉(zhuǎn)賬功能操作細化說明Tab.2 Operations of sending and receiving red packets and fund transfer in WeChat
為了保證數(shù)據(jù)集標簽的準確性,不同測試機以及不同行為的數(shù)據(jù)將被單獨收集。以“發(fā)送紅包”為例,僅將測試機連入無線網(wǎng)卡,通過Wireshark 抓取該無線網(wǎng)卡的數(shù)據(jù)。四種目標行為皆是由基于MMTLS 協(xié)議的HTTP 來傳輸數(shù)據(jù),利用Wireshark中的過濾功能可將測試機中相應(yīng)操作的數(shù)據(jù)準確抓取。微信中其他功能(見表1)也采用了基于MMTLS協(xié)議的HTTP 來傳輸數(shù)據(jù),但在進行紅包以及轉(zhuǎn)賬操作時,不可能會同步產(chǎn)生該類功能的數(shù)據(jù),這保證了數(shù)據(jù)標簽的準確性。為避免手機操作系統(tǒng)與賬號對實驗結(jié)果造成影響,在實驗設(shè)備上采用了IOS(Iphone5s、Iphone5)和Android(小米5s、小米5x、谷歌手機LG E960 Nexus 4)手機,同時采用了多個賬號來進行實驗。微信中其他功能產(chǎn)生的數(shù)據(jù)(特別是使用基于MMTLS 協(xié)議的HTTP 進行通信)以及在收集數(shù)據(jù)過程中其他APP 產(chǎn)生的數(shù)據(jù)都將被歸為一個類,在實驗中標為“普通數(shù)據(jù)”。另外,目標行為使用TCP,收集過程將過濾掉非TCP 的數(shù)據(jù)。
2.2.1 大突發(fā)與小突發(fā)
在移動終端,當用戶與遠端進行交互操作,如單擊一個功能按鈕,都會產(chǎn)生一系列的數(shù)據(jù)包。這些數(shù)據(jù)包的各項屬性由相應(yīng)通信協(xié)議嚴格控制,不僅有多種相同屬性,如源IP、目的IP、協(xié)議、目的端口等,且嚴格按協(xié)議定義的次序發(fā)送,即時間間隔與協(xié)議、網(wǎng)絡(luò)狀態(tài)相關(guān)??蓪⑦@些數(shù)據(jù)包歸為一個流量突發(fā)塊,由時間閾值來劃分。本實驗中將單操作產(chǎn)生的流量塊稱作小突發(fā)塊,用來劃分的閾值稱為小突發(fā)閾值。
單個功能任務(wù)通常由多個操作組成,因這些連續(xù)操作由人來實施,故單個操作之間存在明顯的時間間隔。在正常情況下,這一時間間隔是在一定范圍內(nèi)的(除非網(wǎng)絡(luò)故障、設(shè)備故障等)。這一時間間隔由用戶的操作速度、網(wǎng)絡(luò)狀態(tài)與應(yīng)用的反應(yīng)時間決定。人類的操作速度與計算機的操作速度不在一個級別,且加上應(yīng)用反應(yīng)時間與網(wǎng)絡(luò)傳輸時間,故單個操作之間的時間間隔必定大于小突發(fā)閾值,這一特性是對單個功能的流量劃分大、小突發(fā)塊的物理基礎(chǔ)。而同一功能任務(wù)的單操作之間按嚴格的次序發(fā)生,相鄰單操作之間的時間間隔有上限(正常情況下),設(shè)置特定的閾值可將不同單任務(wù)之間的數(shù)據(jù)包分隔開。本實驗中將該時間閾值稱為大突發(fā)閾值,即時間間隔在大突發(fā)閾值之內(nèi)的相鄰數(shù)據(jù)包屬于同一個大突發(fā)塊,顯然一個大突發(fā)塊將會包含多個小突發(fā)塊。
不同的服務(wù)類別發(fā)送的服務(wù)端地址不同,在突發(fā)流量的劃分中加入IP 地址的限定,可最大限度把同一時間不同服務(wù)的數(shù)據(jù)界定開。本實驗中,大、小突發(fā)流量塊的劃分都是基于兩個IP 地址之間的通信數(shù)據(jù)。在文獻[5]和文獻[16]的研究工作中皆提到了對“突發(fā)流量塊”的定義,即接收時間間隔在突發(fā)閾值之內(nèi)的所有網(wǎng)絡(luò)數(shù)據(jù)包(對源或目的地地址不做要求)屬于同一個突發(fā)塊。在本文的研究中對突發(fā)塊的定義不同,定義如下:
定義1在兩個通信IP 地址之間,時間間隔在小突發(fā)閾值TS之內(nèi)的相鄰數(shù)據(jù)包,屬于同一個小突發(fā)塊。
定義2在兩個通信IP 地址之間,時間間隔在大突發(fā)閾值TL之內(nèi)的相鄰小突發(fā)塊,屬于同一個大突發(fā)塊。具體的劃分如圖1所示。
2.2.2 突發(fā)閾值
將流量數(shù)據(jù)劃分為大、小突發(fā)塊,對應(yīng)了手機應(yīng)用中單個任務(wù)由多個用戶操作組成的特性,即小突發(fā)映射單個小操作,而大突發(fā)映射單個任務(wù)。兩個層次的劃分由對應(yīng)的兩個突發(fā)閾值來決定。文獻[20]中的研究表明,智能手機中95%的數(shù)據(jù)包在前一個數(shù)據(jù)包的4.5 s 內(nèi)被接收或傳輸。文獻[16]中的研究將1 s 作為突發(fā)閾值,文獻[5]中采用的是1.25 s。這些研究中的突發(fā)閾值對應(yīng)的是本研究中的小突發(fā)閾值,它們沒有大突發(fā)的概念。
大突發(fā)閾值的確定極其重要,它劃分單任務(wù)間的界限,是最終識別用戶“發(fā)送紅包”“接收紅包”“發(fā)起轉(zhuǎn)賬”與“接收轉(zhuǎn)賬”次數(shù)的最大依據(jù)。大突發(fā)閾值與用戶的操作習慣有一定關(guān)系,但除了特殊情況,如用戶中斷任務(wù)、網(wǎng)絡(luò)卡頓、設(shè)備損壞等,不同用戶之間的操作速度出入不大。在收集數(shù)據(jù)時,通過多人使用習慣性的速度來操作手機。
大突發(fā)閾值將單任務(wù)產(chǎn)生的流量框定之后,利用單操作流量的突發(fā)性再次將大流量塊細分,可對單任務(wù)的特征做進一步剖析。小突發(fā)閾值用于準確劃分單操作產(chǎn)生的數(shù)據(jù)包,它只與對應(yīng)的通信協(xié)議以及網(wǎng)絡(luò)傳輸有關(guān)。本研究中詳細的大小閾值驗證實驗見3.2節(jié)。
圖1 突發(fā)流量數(shù)據(jù)分塊示意圖Fig.1 Blocking diagram of burst traffic
2.3.1 相關(guān)定義
在詳細講解特征提取之前,先對本實驗中用到的概念作定義和說明。
定義3一定時間內(nèi)具有相同五元組{源IP,源端口,目的IP,目的端口,協(xié)議}的數(shù)據(jù)包屬于一個單向流,即上行流或下行流。其中發(fā)起連接的一方發(fā)出的數(shù)據(jù)包為上行流。同一個通信會話的上行流與下行流的組合稱為流(flow),定義如下。
上行流:
下行流:
流(TCP):
特別說明:
1)在實驗中,對流進行組合時,限于同一個小突發(fā)塊,即不跨越小突發(fā)塊組流。
2)完整流。在小突發(fā)塊里,一個TCP流,若其不包含建立連接的三次握手以及釋放連接的四次握手,則將其標記為不完整流。
2.3.2 多層次特征
接下來將分別從流、小突發(fā)塊、大突發(fā)塊三個層次詳細講解本實驗提取特征的過程,最終用于訓練的是大突發(fā)塊的綜合特征。
流特征 本實驗將對小突發(fā)塊中的單個流提取12 個統(tǒng)計特征,分別是數(shù)據(jù)包總量、帶負載的數(shù)據(jù)包總數(shù)、上行流的帶負載數(shù)據(jù)包總數(shù)量、下行流的帶負載數(shù)據(jù)包總數(shù)、流持續(xù)時間、流數(shù)據(jù)包之間的平均時間間隔、上行流數(shù)據(jù)包之間平均時間間隔、下行流數(shù)據(jù)包之間平均時間間隔、上行流的源端口、上行流數(shù)據(jù)包的平均負載長度、下行流數(shù)據(jù)包的平均負載長度、是否為完整流。
小突發(fā)層 小突發(fā)塊映射一個用戶單次操作,不同的操作產(chǎn)生的流量有很大差異,如流數(shù)量、數(shù)據(jù)包平均長度等。對小突發(fā)塊中的每個流提取以上提到的12 個特征之后,通過綜合計算得到小突發(fā)層的特征。其中除了“上行流的源端口”與“是否為完整流”兩個特征的處理方法不同之外,其余10 個特征皆是取平均值?!吧闲辛鞯脑炊丝凇睂⒈挥脕碛嬎阆噜彛ò磿r間順序)流的上行源端口間的差值的絕對值,并取多流間該值的平均值?!笆欠駷橥暾鳌北挥脕斫y(tǒng)計小突發(fā)中不完整的流的總數(shù)。除了以上特征,小突發(fā)塊將會新加一個特征,該特征是流的總數(shù),故對單個小突發(fā)塊將提取13個特征。
大突發(fā)層 本實驗將一個任務(wù)映射為一個大突發(fā)塊,不同的任務(wù)由不同的用戶單操作組成。故大突發(fā)塊內(nèi)的小突發(fā)塊數(shù)量是一個極其重要的特征。通過分析發(fā)現(xiàn),微信中紅包與轉(zhuǎn)賬功能的小突發(fā)數(shù)量差異性不大,但它們小突發(fā)中的流的數(shù)量有一些細微差別,故為了實現(xiàn)對紅包與轉(zhuǎn)賬功能的準確區(qū)分,每個大突發(fā)塊中的前三個小突發(fā)塊的流的數(shù)量將作為三個重要特征。大突發(fā)塊中所有小突發(fā)的流的數(shù)量總和能很好地刻畫大突發(fā)的總體特征。除了以上新增的5 個特征,余下的特征將從大突發(fā)塊中各個小突發(fā)塊的特征中獲取。其中小突發(fā)中“流的總數(shù)”與“不完整流的總數(shù)”將通過求和的方式產(chǎn)生大突發(fā)塊的流總數(shù)與不完整的流總數(shù),而其余11 個特征將通過求平均值的方法產(chǎn)生大突發(fā)塊的11 個特征,故總的綜合特征為18個特征,見表3。
表3 實驗特征Tab.3 Experimental features
通過XGBoost(eXtreme Gradient Boosting)算法訓練得出這些特征的重要性如圖2,結(jié)果顯示,除了“不完整流總數(shù)”重要性極低之外,其余特征對分類準確率貢獻度都很高。
圖2 特征重要性(具體特征含義見表3)Fig.2 Feature importance(specific feature meanings are shown in Tab.3)
特征提取完成之后,得到了帶標簽的數(shù)據(jù)集。將數(shù)據(jù)劃分為測試集與訓練集,對數(shù)據(jù)進行建模。
按照2.1 節(jié)描述的方法收集實驗數(shù)據(jù),不同設(shè)備和賬號的樣本量保持平衡,并準確對其進行打標簽,收集的數(shù)據(jù)匯總?cè)绫?。
表4 實驗數(shù)據(jù)Tab.4 Experimental data
突發(fā)閾值與網(wǎng)絡(luò)環(huán)境以及應(yīng)用程序內(nèi)部開發(fā)邏輯相關(guān)(詳見2.2.1 節(jié)),故需要對具體網(wǎng)絡(luò)環(huán)境的大量樣本進行驗證實驗,才能得出具體環(huán)境的最優(yōu)值。本實驗收集的實驗數(shù)據(jù)如表4所示。
在閾值驗證實驗中,初步將小突發(fā)閾值定為1 s(結(jié)合已有研究與經(jīng)驗),大突發(fā)閾值的取值范圍定為5~14 s(實際操作時估測的范圍),同時記錄不同取值下單任務(wù)流量的劃分準確率(根據(jù)數(shù)據(jù)標簽,假設(shè)某一“發(fā)送紅包”樣本包含10 個數(shù)據(jù)包,根據(jù)對應(yīng)閾值對該樣本的劃分情況計算被正確劃分的數(shù)據(jù)包所占比例)與分類器(使用XGBoost)準確率。結(jié)合兩個準確率的結(jié)果,得出表現(xiàn)最佳的大突發(fā)閾值為11.8 s,如圖3所示。
大突發(fā)閾值確定之后,將大突發(fā)閾值設(shè)為11.8 s,小突發(fā)閾值取值范圍定為1.0~1.6 s,同時分別訓練分類器,最終實驗結(jié)果見圖4。從圖4中的結(jié)果可知,小突發(fā)閾值為1.26 s時,得到的分類器準確率最高。需要特別說明的是,閾值驗證實驗與3.3 節(jié)中的對照實驗獨立進行,得到的最高準確率存在些許偏差。
圖3 大突發(fā)閾值取不同值時準確率的變化Fig.3 Accuracy varying with different large burst thresholds
圖4 小突發(fā)閾值取不同值時準確率的變化Fig.4 Accuracy varying with different small burst thresholds
為了驗證所提方法的有效性,將從兩方面入手。首先是選用5 種經(jīng)典的機器學習算法來驗證所提方法的算法普適性,算法分別是隨機森林(Random Forest,RF)、支持向量機(Support Vector Machine,SVM)、K最近鄰(K-Nearest Neighbor,KNN)、C4.5 決策樹和XGBoost,所有算法采用默認參數(shù)(每種算法都可對參數(shù)進一步調(diào)優(yōu),從而得到更好的識別率。實驗中皆采用默認參數(shù),旨在驗證所提方法可應(yīng)用于多個已有算法,而不僅僅只針對具體的算法。實驗中采用的默認參數(shù)為weka[21]的推薦參數(shù),已進行過初步優(yōu)化,感興趣的讀者可對具體方法進行深度的優(yōu)化),訓練集均采用十折交叉驗證,每個實驗重復10 次,結(jié)果取平均值。第二個方面是為了驗證所提方法的識別率,將與現(xiàn)有研究工作進行對照實驗。選擇了文獻[5]與文獻[3]中的研究方法,文獻[5]中通過劃分突發(fā)流量塊來識別表2中的每個單操作,進而識別紅包與轉(zhuǎn)賬的行為與次數(shù),其研究目標與本實驗相同。文獻[3]對微信中通信協(xié)議進行研究,基于流的層面來提取特征和識別行為,當前多數(shù)研究工作都是基于流的層面來識別行為。最終的實驗結(jié)果如表5。
表5 三種方法準確率對比 單位:%Tab.5 Accuracy comparison of three methods Unit:%
從表5可看出,所提出的方法在五種算法下,除了SVM 為84.3%,其余準確率皆高于95%,其中RF與XGBoost的準確率高達97.5%和97.6%,這表明所提出方法具有強普適性。三種方法的實驗對比結(jié)果顯示,所提出的方法在五種算法下準確率皆為最高,且在SVM 的表現(xiàn)遠高于另兩種方法。需要特別提出的是:表中文獻[3]方法的準確率是對每個流樣本的識別準確率,即該方法只能識別一條流是否為目標行為的數(shù)據(jù),而一次目標行為包含很多流,這意味著,該方法無法識別出目標行為的次數(shù);表中文獻[5]方法的準確率是單個操作的平均準確率,而目標行為包含多個單操作(見表2)。
表6 是三種方法對相同的目標行為進行提取特征所需的平均時間與所產(chǎn)生的平均樣本量。從表中可看出,基于單個流提取特征(文獻[3]方法)的時間與平均產(chǎn)生的樣本量都高于其余兩種基于流量塊的方法,這是可預(yù)見的結(jié)果。單任務(wù)由多種用戶單操作組成,故而會產(chǎn)生多個流。這也進一步表明,僅基于流來識別由多次單操作組成的用戶行為,將會需要更大的時間和空間上的開銷。所提出的方法在時間和產(chǎn)生的平均樣本上皆低于文獻[5]中的方法,這也是可預(yù)見的結(jié)果。所提方法將每次單任務(wù)所產(chǎn)生的流量看作一個整體,得出的識別率是針對單任務(wù)。文獻[5]中將單任務(wù)切割為多個不相關(guān)的單操作(僅有順序之分),分別計算特征與識別,這也意味著多個單操作的識別誤差將對最終的單任務(wù)識別誤差產(chǎn)生乘法擴散。
綜合以上結(jié)果,所提方法在時間、空間以及識別率上皆具有突出的表現(xiàn),在多種算法下保持高準確率。其中在XGBoost下表現(xiàn)最好,對其將進行進一步的實驗評估。
表6 三種方法單次任務(wù)提取特征的效率對比Tab.6 Efficiency comparison of three methods for single task feature extraction
3.4.1 評估指標
本實驗中用到的評估指標分別是準確率(Accuracy)、召回率(Recall)和受試者工作特征曲線(Receiver Operating Characteristic,ROC)曲線。在給出這些指標的詳細定義前,先對一些相關(guān)變量進行定義。
1)TP(True Positive):正樣本被正確分類的數(shù)量,即真陽性。
2)FP(False Positive):負樣本被錯誤分類的數(shù)量,即假陽性。
3)TN(True Negatives):負樣本被正確分類的數(shù)量,即真陰性。
4)FN(False Negatives):正樣本被錯誤分類的數(shù)量,即假陰性。
準確率是指被正確分類的樣本占總樣本的比例,體現(xiàn)的是分類器的預(yù)測性能,其越大代表分類效果越佳,計算如下:
其中i代表多分類中的具體類別。
召回率是指被正確分類的正樣本數(shù)占正樣本總數(shù)的比例,體現(xiàn)的是分類器對正樣本的預(yù)測性能,即查全率。計算如下:
ROC 曲線是一條橫坐標為假正率(False Positive Rate,F(xiàn)PR),縱坐標為真正率(True Positive Rate,TPR)的曲線。假正率與真正率的相關(guān)定義見式(6)、(7)。ROC 曲線可直觀地觀察分類器的準確性,其形狀越向左上方擴展則表征分類性能越好,曲線與橫坐標的圍成面積(Area Under the Curve,AUC)可用來表征分類準確性。
假正率計算公式:
真正率計算公式:
3.4.2 評估結(jié)果
用于評估的算法為XGBoost,測評得出的混淆矩陣如圖5?;煜仃嚨慕Y(jié)果表明,“發(fā)送紅包”與“發(fā)起轉(zhuǎn)賬”的測試漏報率為零,而“接收轉(zhuǎn)賬”與“普通數(shù)據(jù)”漏報率也只是2%,只有“接收紅包”的漏報率為7%,表明所提出的方法的分類效果極佳。
圖5 混淆矩陣Fig.5 Confusion matrix
由混淆矩陣的結(jié)果分別計算準確率與召回率,并繪制ROC 曲線進一步地評估所提的方法的性能。從表7 可看出,平均準確率為97.58%,平均召回率為97.72%,“發(fā)送紅包”與“發(fā)起轉(zhuǎn)賬”的召回率高達100%。
圖6為預(yù)測結(jié)果的ROC曲線,其中“發(fā)送紅包”與“發(fā)起轉(zhuǎn)賬”的AUC值達到了1,而“普通數(shù)據(jù)”與“接收轉(zhuǎn)賬”也為0.98及以上,相對較低的“接收紅包”也高達0.96,總平均值為0.98。
表7 評估結(jié)果 單位:%Tab.7 Results of evaluation unit:%
圖6 預(yù)測結(jié)果ROC曲線Fig.6 ROC curve of prediction result
3.4.3 場景測評
本文研究工作要實現(xiàn)的目標不僅是從加密的流量中識別“發(fā)送紅包”“接收紅包”“發(fā)起轉(zhuǎn)賬”與“接收轉(zhuǎn)賬”四種行為,并且要在用戶連續(xù)操作產(chǎn)生的流量中,識別出這四種行為發(fā)生的次數(shù)。故要將真實環(huán)境中新收集的流量(不加任何處理與過濾手段,不打標簽)來對訓練好的模型進行真實場景測評,測評數(shù)據(jù)與結(jié)果見表8。表中c1~c4分別代表“發(fā)送紅包”“接收紅包”“發(fā)起轉(zhuǎn)賬”與“接收轉(zhuǎn)賬”。
表8 真實場景測試數(shù)據(jù)以及測評結(jié)果Tab.8 Testing data and evaluation results in real senses
從兩個方面分析表8中的結(jié)果。首先,Normal 的結(jié)果顯示“普通數(shù)據(jù)”的漏報率為2.88%(Normal中總樣本數(shù)為417,不包含四種目標行為,有1+1+5+5=12 個樣本漏報,即被預(yù)判為其他四種行為,漏報率約為12/417=2.88%),這表明所提方法可將97.12%的非四種目標行為的數(shù)據(jù)排除開來。另一方面從時間上來看,Data1 與Data2 是短時間內(nèi)連續(xù)操作多次目標行為,結(jié)果顯示識別率為100%。Data3與Data4是長時間內(nèi)分別對收發(fā)紅包與轉(zhuǎn)賬功能進行測試,結(jié)果顯示誤報率極低。Data5中包含了所有行為的數(shù)據(jù),從檢測結(jié)果上來看,除了“發(fā)起轉(zhuǎn)賬”的誤報率稍微高一點之外(Data5中含有25 次“發(fā)起轉(zhuǎn)賬”行為,卻預(yù)測到32次,誤報數(shù)為|32-25|=7,其余三種分別為1,2,1),其他目標行為的檢測率都符合預(yù)期。
準確識別微信中收發(fā)紅包與轉(zhuǎn)賬行為有助于輔助相關(guān)部門對相關(guān)違法活動(如紅包賭博、非正常資金來往等)取證,以及排除虛假紅包與轉(zhuǎn)賬鏈接。針對現(xiàn)有研究在識別微信支付行為上效率以及準確率低的情況,本文提出了一種識別微信中收發(fā)紅包與轉(zhuǎn)賬行為的方法,將一次用戶單任務(wù)(如發(fā)送紅包)行為映射為一定時間范圍內(nèi)(大突發(fā)閾值)的數(shù)據(jù)塊,提取特征時將數(shù)據(jù)塊再細化為多個小數(shù)據(jù)塊,這些小數(shù)據(jù)塊映射的是組成單任務(wù)行為的多個用戶操作(如“點擊紅包按鈕”“輸入金額”“輸入密碼或指紋”),從而提煉出單任務(wù)行為的多維度特征。在實驗環(huán)境下,經(jīng)多種經(jīng)典機器學習與對照實驗的驗證,結(jié)果顯示所提出的方法在時間效率、空間占用率、識別準確率、算法普適性等方面皆具有優(yōu)越的性能,最高的準確率可達97.58%。在真實場景的測試下,所提方法性能優(yōu)越,基本實現(xiàn)了在連續(xù)的四種目標行為數(shù)據(jù)中識別出對應(yīng)行為的次數(shù)的研究目標。
顯然,劃分大、小突發(fā)流量塊的機制針對的是由多種單操作組成的應(yīng)用行為的識別,而現(xiàn)今移動應(yīng)用行為幾乎皆屬此類,故接下來可將此方法的應(yīng)用場景擴大化。