Accurate Decentralized Application Identification via Encrypted Traffic Analysis Using Graph Neural Networks
中文題目:通過使用圖神經(jīng)網(wǎng)絡的加密流量分析來準確地識別分散應用程序
發(fā)表期刊:IEEE Transactions on Information Forensics and Security
發(fā)表年份:2021-1-4
作者:Meng Shen , Jinpeng Zhang, Liehuang Zhu , Ke Xu ,Xiaojiang Du
latex引用:
@article{shen2021accurate,
title={Accurate decentralized application identification via encrypted traffic analysis using graph neural networks},
author={Shen, Meng and Zhang, Jinpeng and Zhu, Liehuang and Xu, Ke and Du, Xiaojiang},
journal={IEEE Transactions on Information Forensics and Security},
volume={16},
pages={2367--2380},
year={2021},
publisher={IEEE}
}
摘要
去中心化應用程序(DApps)越來越多地開發(fā)和部署在以太坊等區(qū)塊鏈平臺上。DApp指紋識別可以通過分析產(chǎn)生的網(wǎng)絡流量來識別用戶對特定DApp的訪問,揭示用戶的許多敏感信息,如他們的真實身份、財務狀況和宗教或政治偏好。部署在同一平臺上的dapp通常采用相同的通信接口和類似的流量加密設置,從而使產(chǎn)生的流量區(qū)別并不是那么大。現(xiàn)有的加密流量分類方法要么需要手工制作和微調(diào)功能,要么精度較低。
如何準確高效地進行DApp指紋識別仍然是一項具有挑戰(zhàn)性的任務。在本文中,我們提出了GraphDApp,一種使用圖神經(jīng)網(wǎng)絡(GNNs)的新型DApp指紋識別方法。我們提出了一種名為流量交互圖(Traffic Interaction graph, TIG)的圖結(jié)構(gòu),作為加密DApp流的信息豐富表示,它在雙向客戶端-服務器交互中隱式地保留了多維特征。利用TIG技術,將DApp指紋識別問題轉(zhuǎn)化為圖形分類問題,設計了一個功能強大的基于gnn的分類器。
我們從1300個dapp收集了超過16.9萬流量的真實流量數(shù)據(jù)集。實驗結(jié)果表明,在封閉和開放兩種真實世界場景下,GraphDApp的分類準確率都優(yōu)于其他最先進的方法。此外,GraphDApp應用于傳統(tǒng)的移動應用分類時,仍然保持了較高的準確率。
存在的問題
-
雖然區(qū)塊鏈技術可以潛在地保護DApp用戶的身份隱私。但個人用戶訪問DApps時產(chǎn)生的網(wǎng)絡流量仍然會泄露大量用戶的敏感信息。
- 被動攻擊者(例如,校園網(wǎng)管理員、住宅網(wǎng)絡服務提供商或惡意竊聽者)可以通過分析產(chǎn)生的網(wǎng)絡流量來進行DApp指紋識別,以識別用戶訪問的特定DApp。
- 敵手可以從用戶對賭博dapp的使用情況推斷出他們的財務狀況,或者從他們對社交dapp的訪問中了解他們的宗教偏好和政治觀點。
- DApp指紋識別還可以由調(diào)控器進行,用以去匿名化DApp用戶,甚至阻止對某些DApp的訪問,而不影響對同一平臺(例如以太坊)上其他DApp的訪問。
-
與常規(guī)的移動應用程序或網(wǎng)站不同,部署在以太坊上的dapp實現(xiàn)了相同的前端接口,采用類似的SSL/TLS協(xié)議設置,并共享相同的去中心化區(qū)塊鏈網(wǎng)絡來運行后端代碼和管理數(shù)據(jù)。因此,不同dapp的流量具有許多共同特征,導致現(xiàn)有使用SSL/TLS報文標志,或報文長度統(tǒng)計的指紋識別方法精度較低(章節(jié)IV-A)。
-
效率也是構(gòu)建DApp指紋方法的重要因素?,F(xiàn)有的使用機器學習分類器的研究通常采用手工制作的特征,甚至需要計算密集型的特征處理。
-
使用深度神經(jīng)網(wǎng)絡的方法一般采用數(shù)據(jù)包方向序列或數(shù)據(jù)包長度序列作為輸入,表達性不夠,無法達到較高的準確率。
總結(jié):
- 用戶訪問DApps時產(chǎn)生的網(wǎng)絡流量會泄露大量用戶的敏感信息
- 不同dapp的流量具有許多共同特征,導致現(xiàn)有使用SSL/TLS報文標志,或報文長度統(tǒng)計的指紋識別方法精度較低
- 由于需要手工提取特征,同時需要計算密集型的特征處理,現(xiàn)有的機器學習方法的效率低。
- 深度神經(jīng)網(wǎng)絡的方法一般采用數(shù)據(jù)包方向序列或數(shù)據(jù)包長度序列作為輸入,表達性不夠,無法達到較高的準確率。
論文貢獻
- 提出流量交互圖(TIG)來表示每個單獨的加密流,其中TIG中的頂點表示包,邊表示一對客戶端和服務器之間的包級交互。我們還提供了量化的措施,以證明使用TIG表示流比傳統(tǒng)的包長度序列的優(yōu)勢。
- 設計了GraphDApp模型,這是一個使用多層感知(MLPs)和全連接層的強大的基于GNN的分類器。它將不同DApp流的TIG映射到嵌入空間中的不同表示,不需要手工制作的特征,從而可以有效準確地進行分類。
- 收集了以太坊上1300個dapp的真實流量數(shù)據(jù)集,流量超過16.9萬。我們展示了GraphDApp在封閉和開放環(huán)境下的準確性和效率。與最先進的方法相比,GraphDApp的分類準確率最高,訓練時間最短。此外,它也適用于傳統(tǒng)的移動應用分類。
論文解決上述問題的方法:
- 特征表達:提出流量交互圖(TIG)作為加密DApp流的信息豐富表示
- 準確率:設計了GraphDApp模型來提高準確率
- 效率:GraphDApp模型將不同DApp流的TIG映射到嵌入空間中的不同表示,不需要手工制作的特征
論文的任務:
- 封閉情景:實現(xiàn)DApps的多分類
- 開放情景:實現(xiàn)DApps的二分類(正常、惡意)
1. 背景 / 威脅模型
- DApp的相關知識
-
以太坊上的大多數(shù)dapp都提供瀏覽器插件,以便通過瀏覽器(例如Chrome)訪問它們。DApp的前端實現(xiàn)了以太坊統(tǒng)一定義的用戶界面來呈現(xiàn)頁面。后端是連接到以太坊區(qū)塊鏈網(wǎng)絡的智能合約。這與連接到集中式數(shù)據(jù)庫的web應用程序完全不同。
-
智能合約是決定客戶端在DApp中執(zhí)行的每個操作的結(jié)果的功能。
-
客戶端與區(qū)塊鏈平臺之間的傳輸數(shù)據(jù)采用SSL/TLS協(xié)議加密。主要有兩個層:握手層和記錄層。前者用于協(xié)商SSL/TLS會話的安全參數(shù),后者負責在安全參數(shù)下傳輸加密數(shù)據(jù)。
-
與傳統(tǒng)的移動和web應用程序不同,以太坊上的dapp實現(xiàn)了相同的前端接口,在SSL/TLS實現(xiàn)中采用類似的設置,運行其后端代碼并將其數(shù)據(jù)存儲在相同的去中心化區(qū)塊鏈網(wǎng)絡中。這些共同的特征使得不同DApp的結(jié)果流量不那么具有區(qū)分度。
-
威脅模型
DApps在以太坊上工作流程:- 初始化訪問,DApp客戶端向配備相應智能合約設備的服務器發(fā)送請求
- 操作和結(jié)果的所有數(shù)據(jù)記錄都由礦工在底層區(qū)塊鏈平臺上以塊的形式打包,并存儲在分布式賬本上
- 客戶端還從智能合約服務器獲得區(qū)塊鏈服務器列表,通過該列表,客戶端可以從賬本中獲取更新的信息,以呈現(xiàn)網(wǎng)頁。
-
相關工作
2. DApp流的圖結(jié)構(gòu)
-
流量互動圖(Traffic Interaction Graph,TIG)
- 對所有流量包按照流(即相同五元組)進行分流。
- 對每個流按照下圖進行拆解:
- 橙色箭頭:客戶端 -> 服務器(上行報文數(shù)量):用 “-報文長度” 表示
- 藍色箭頭:服務器 -> 客戶端(下行報文數(shù)量):用 “報文長度” 表示
- 灰色區(qū)域:SSL/TLS協(xié)議的握手階段(建立連接)
- 白色區(qū)域:SSL/TLS協(xié)議的記錄階段(傳送加密報文)
- 構(gòu)建TIG圖
TIG圖:TIG = (V, E, L)
- V(頂點集合):一個流中的所有數(shù)據(jù)包
- E(邊集合):一個流中的所有邊集合
-
突發(fā)內(nèi)邊緣:依次連接每個突發(fā)中的連續(xù)頂點(即數(shù)據(jù)包)
例如:(-330,-140),(-140,-118) -
突發(fā)間邊緣:用于連接一個突發(fā)與其前一個突發(fā)。每個突發(fā)中的第一個頂點和最后一個頂點連接到其前一個突發(fā)中相應的第一個頂點和最后一個頂點
例如:(1142,-330),(1514,-118)
- L(頂點權(quán)值集合):非零整數(shù)集合,記錄了數(shù)據(jù)包的長度和方向。
- TIG的優(yōu)勢
- 包方向信息:方向信息由TIG中頂點的符號顯示,其中正值表示下行數(shù)據(jù)包,負值表示上行數(shù)據(jù)包
- 數(shù)據(jù)包長度信息:數(shù)據(jù)包長度信息是用于加密流分類的關鍵特性。
- 報文突發(fā)信息:TIG中同一層的頂點表示組成單個突發(fā)的數(shù)據(jù)包。不同應用程序的突發(fā)級行為可能有很大差異,因此可以作為分類器學習的鑒別特征。
- 包排序信息:TIG可以表示從SSL/TLS會話開始協(xié)商到應用程序數(shù)據(jù)傳輸結(jié)束的報文順序。此外,TIG還反映了服務器和客戶端之間的交互。
定量的方法證明TIG比其他表示法更具信息量:
度量包長度序列的歐氏距離、TIG的圖編輯距離以表示各個流之間的相似度差別- 從40個dapp中每個隨機選擇100個流,并計算流的成對距離。在計算圖編輯距離時,遵循節(jié)點替換代價設置為歐氏距離,節(jié)點插入和刪除代價設置為90,邊緣插入和刪除代價設置為15。
- 對于每個DApp,藍色標記表示同一DApp中流量之間的平均距離(即類內(nèi)距離);每個箱線圖表示與其他DApp之間的典型距離(即類間距離,最大值、第75百分位、第50百分位、第25百分位、最小值)。對比圖4(a)和圖4(b),我們可以得到以下觀察結(jié)果:
- 對于包長度序列,只有4個dapp的類內(nèi)距離小于類間距離的最小值;而TIG使21個dapp具有此屬性。
- 在包長度序列中,類內(nèi)距離大于類間距離中位數(shù)(即第50百分位)的dapp有15個;而TIG只有1個這樣的情況。
通過定量測量,我們證明了基于tig的表示對于相同DApp的流程具有很高的相似性,并且在不同DApp之間更具區(qū)分度。
3. GraphDApp
-
GNN Architecture
給定一組 T I G = { G 1 , … , G N } ? G TIG = \{G_1,…,G_N\}?G TIG={G1?,…,GN?}?G及其標簽 { y 1 , … , y N } ? Y \{y_1,…,y_N\}?Y {y1?,…,yN?}?YGNN的目標是學習一個可以預測每個 TIG 的標簽的表示向量 h G h_G hG? ,即: y N ^ = g ( h G ) \hat {y_N} = g(h_G) yN?^?=g(hG?)
GraphDApp中使用的GNN主體由mlp和全連接層組成,其中mlp用于從tig中提取特征進行訓練,而全連接層用于做出分類決策。
- MLP:學習每個 TIG 的表示向量 h G h_G hG?。每個節(jié)點 v ∈ G v∈G v∈G 的特征向量 h v h_v hv? 是通過聚集其鄰居的特征來計算的。這樣,特征向量 h v h_v hv? 就可以存儲圖中相鄰節(jié)點的特征信息
- 全連接層:用于分類,使用一個全連接層 + softmax
- 損失函數(shù):使用交叉熵損失
- 優(yōu)化器:Adam
-
MLPs的設計
- 為了將不同的圖映射到不同的表示,GNN應該有一個單射鄰居聚合方法。節(jié)點特征向量的更新方法表示為: h v ( k ) = ? ( h V ( k ? 1 ) , f ( { h u ( k ? 1 ) : u ∈ N ( v ) } ) ) h_v^{(k)} = \phi(h_V^{(k-1)},f(\{h_u^{(k-1)}: u \in N(v)\})) hv(k)?=?(hV(k?1)?,f({hu(k?1)?:u∈N(v)}))
- 應用到MLP上,公式可具體化為: h v k = M L P k ( ( 1 + ? ( k ) ) ? h v ( k ? 1 ) + ∑ u ∈ N ( v ) h u ( k ? 1 ) ) h_v^k = MLP^k((1+\epsilon^{(k)}) · h_v^{(k-1)} + \sum_{u \in N(v)}h_u^{(k-1)} ) hvk?=MLPk((1+?(k))?hv(k?1)?+u∈N(v)∑?hu(k?1)?)
- 圖的特征表示向量的生成方法如下: h G = C o n ( R e a d o u t ( { h v ( k ) ∣ v ∈ G } ) ∣ k ∈ [ 0 , K ] ) h_G = Con(Readout(\{h_v^{(k)}|v \in G\})|k \in [0,K]) hG?=Con(Readout({hv(k)?∣v∈G})∣k∈[0,K])
-
模型總結(jié)
- 輸入層:TIG圖
- n * 隱藏層:linear & BatchNorm & dropout
- 合并層:各個隱藏層中所有節(jié)點的embedding進入Readout + concat層,輸出整個圖的embedding
- 輸出層:linear & softmax
4. 實驗評估
-
基線模型
- 馬爾可夫模型:它使用馬爾可夫鏈來建模SSL/TLS會話中的消息類型序列,并將狀態(tài)轉(zhuǎn)換特征輸入機器學習分類器。最大似然原理用于識別生成加密流的應用程序[15]。
- AppScanner (APPS):用于從報文序列中捕獲統(tǒng)計特征,如入報文、出報文、雙向報文的均值、最小值、最大值、標準差等。它使用隨機森林分類器來識別來自移動應用程序[27]的加密或未加密流量。
- 特征融合(FEAF):這是我們之前的會議文章[25]中提出的方法。它通過內(nèi)核函數(shù)融合了不同的維度特征(例如,數(shù)據(jù)包長度、突發(fā)、數(shù)據(jù)包時間戳),并使用隨機森林分類器來識別來自dapp的加密流。
- DeepFingerprinting (CNN+D):利用數(shù)據(jù)包方向信息構(gòu)建卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN),對不同網(wǎng)站[26]的加密流量進行分類。
- CNN+L:使用與CNN+D相同的CNN結(jié)構(gòu),但將數(shù)據(jù)包長度序列作為輸入來構(gòu)建分類器。
- LSTM+L:以數(shù)據(jù)包長度序列為輸入,使用雙層LSTM[19]學習特征表示,使用全連接層進行分類。
-
實驗設置
- 英特爾酷睿雙核3.60GHz和16GB內(nèi)存的服務器
- 封閉和開放情景:
- 封閉情景:攻擊者的目標是識別受害者對某個被監(jiān)控dapp集合的訪問,這可以被視為一個多分類問題。
- 開放情景:考慮了一個更現(xiàn)實的場景,受害者不僅訪問受監(jiān)控的dapp,還訪問大量不受監(jiān)控的dapp。目標是從未監(jiān)控的dapp中識別受監(jiān)控的dapp,這通常被視為二分類問題。
-
數(shù)據(jù)集
- 數(shù)據(jù)收集:網(wǎng)絡流量捕獲工具部署在中國不同大學校園實驗室的路由器上。當用戶在pc上使用Chrome瀏覽器訪問某個DApp時,產(chǎn)生的網(wǎng)絡流量會被WireShark捕獲并保存在數(shù)據(jù)服務器上。所有的訪問都使用Chrome,因為它是一些dapp指定的瀏覽器。將網(wǎng)絡流導出為CSV (Comma Separated Value)文件,每行包含從報文中獲取的信息,包括時間、源/目的IP地址、端口、協(xié)議、報文長度、TCP/IP標志。每個包的加密有效載荷不用于分類。
-
為了構(gòu)建封閉世界數(shù)據(jù)集,我們選擇以太坊上擁有最多用戶的前40個dapp作為監(jiān)控dapp。這些類別包括社交應用、金融、網(wǎng)上購物等。表III總結(jié)了每個被監(jiān)測的DApp的流量數(shù)量。我們總共收集了155,500個流量。
-
為了構(gòu)建開放世界評估的后臺流量,我們隨機選擇以太坊上的1260個dapp作為不受監(jiān)控的dapp,總共收集了14000個流量。按照文獻中的策略,每個不受監(jiān)控的DApp只被訪問一次。
- 數(shù)據(jù)訓練與測試:采用10倍交叉驗證的方法來評價每種方法的性能。我們將數(shù)據(jù)集隨機分為10個相互排斥的相似大小的子集。然后,我們進行了10次訓練和測試,每次使用9個子集作為訓練集,其余1個子集作為測試集。10次測試的平均值作為最終結(jié)果。
-
GraphDApp參數(shù)調(diào)優(yōu)
- 超參數(shù)設置:
-
epoch:訓練輪數(shù)對模型訓練時間、準確率、訓練集和測試集的差距(判定是否過擬合)的影響
從表中可以看出模型只訓練了一輪,就達到了0.8305的準確率,由此可知模型收斂速度很快。當epoch=10時,準確率增加并不明顯,而訓練時間顯著增加,因此采用epoch=10作為最優(yōu)輪數(shù)。
-
數(shù)據(jù)包數(shù)量:每個流使用的數(shù)據(jù)包數(shù)量對特征提取時間(fet),分類器訓練時間(ctt)和graphdapp準確性的影響
當只使用每個流的前6個數(shù)據(jù)包時,GraphDApp的準確率可以達到0.8532。隨著截獲包數(shù)的增加,F(xiàn)ET和CTT都相應變大,但增長趨勢不同:FET增長放緩,CTT增長加快,這是因為包數(shù)越多,tig就越復雜,在分類器訓練階段學習它們的表示需要更多的時間。同時,提供更多的包來構(gòu)造tig,也提高了精度。我們將數(shù)據(jù)包數(shù)設置為25,以在適度的時間開銷下獲得更高的精度。
-
數(shù)據(jù)集規(guī)模:數(shù)據(jù)規(guī)模對特征提取時間(fet)、分類器訓練時間(ctt)和graphdapp準確性的影響
僅使用20%樣本的情況下可以達到0.8764的準確率,這表明它可以從有限的訓練數(shù)據(jù)中學習到足夠的圖表示。當提供更多的訓練樣本時,GraphDApp可以進一步提高準確率。一個有趣的觀察是,更大的數(shù)據(jù)集并不會導致CTT的顯著增加,這表明圖表示學習并沒有受到冗余tig的嚴重影響。在接下來的實驗中,除非另有說明,否則我們使用表III中的整個數(shù)據(jù)集。
- 超參數(shù)設置:
-
封閉情景的評估
-
開放情景的評估
5. 移動應用識別評價
雖然GraphDApp的設計目的是識別特定dapp的加密流量,但它仍然適用于移動應用程序的分類,這是最近研究非常感興趣的。為了評估GraphDApp在移動應用分類上的泛化性,我們使用我們之前工作中的數(shù)據(jù)集進行了實驗。該數(shù)據(jù)集包含15個流行移動應用程序的加密流量,如Facebook、Twitter和支付寶。注意,只涉及下游流。
總結(jié)
論文內(nèi)容
-
學到的方法
理論上的方法:
- 測試提出的圖構(gòu)建效果比其他的特征好的方法,可以采用量化的方法(由于本文的任務是DApp指紋識別,因此需要每個DApp產(chǎn)生的流盡可能相似,因此采用了圖編輯距離來度量構(gòu)建的圖所表示的流的相似度的方式)(原文:III-C,本文:論文貢獻-2-3)
-
論文優(yōu)缺點
優(yōu)點:
- 研究對象為現(xiàn)有研究較少的DApp的指紋識別
- 構(gòu)件圖的方法很值得借鑒:
- 包方向信息:方向信息由TIG中頂點的符號顯示,其中正值表示下行數(shù)據(jù)包,負值表示上行數(shù)據(jù)包
- 數(shù)據(jù)包長度信息:數(shù)據(jù)包長度信息是用于加密流分類的關鍵特性。
- 報文突發(fā)信息:TIG中同一層的頂點表示組成單個突發(fā)的數(shù)據(jù)包。不同應用程序的突發(fā)級行為可能有很大差異,因此可以作為分類器學習的鑒別特征。
- 包排序信息:TIG可以表示從SSL/TLS會話開始協(xié)商到應用程序數(shù)據(jù)傳輸結(jié)束的報文順序。此外,TIG還反映了服務器和客戶端之間的交互。
缺點:文章來源:http://www.zghlxwxcb.cn/news/detail-799997.html
- h v h_v hv?的初始化不太清楚是怎樣的,只包含包的大小(帶方向)這個特征嗎?
- 模型的細節(jié)描述的不太到位,比如Readout函數(shù)使用的是哪個。
- GraphDApp需要相對較長的時間來標記未知流。可以通過適當減少tig中的包數(shù)來縮短特征提取時間,減少MLP層數(shù)和隱藏單元來加快預測速度。
- 作為指紋識別方案,當應用程序的指紋發(fā)生變化時,精度會相應降低。為了解決這個問題,我們可以定期更新應用程序的tig,并微調(diào)分類器中的參數(shù)。
-
創(chuàng)新想法文章來源地址http://www.zghlxwxcb.cn/news/detail-799997.html
- 除了DApp,還可以在其他的一些新型應用上嘗試一些比較好的模型,以用于指紋識別
- 構(gòu)造TIG時,除了數(shù)據(jù)包長度信息,是否可以使用其他的特征或添加其他的特征(這些特征都是有利于加密流量分類的,可以先通過特征篩選或者其他論文中提到的比較重要的特征)
- 可以通過使用GCN模型來提取用分類的每個流的embedding,后面再跟全連接層進行分類
- 本文由于實驗對象為DApp,因此只在Chrome瀏覽器上進行了流量抓取。可以考慮不同的瀏覽器上效果是否不同。
- 設計的模型要適應于應用程序的指紋發(fā)生變化的情況。即概念漂移。
工具
- wireshark
數(shù)據(jù)集
- 私有數(shù)據(jù)集:手動收集
到了這里,關于【研究型論文】Accurate Decentralized Application Identification via Encrypted Traffic Analysis Using GNN的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!