連遠博,盛蒙蒙,袁瑩,周勝利
(浙江警察學院計算機與信息安全系,杭州 310000)
由于互聯網金融業的快速發展,涉網新型犯罪正逐漸取代傳統的犯罪模式成為當前犯罪的主要形式,嚴重危害了廣大人民的生命財產安全。當前盡管國家有關部門從互聯網空間治理的角度,采用嚴防、嚴打的方式,對涉網新型犯罪的遏制初有成效,但缺少從流量端口對詐騙網站進行動態的檢測和預防,對電信網絡詐騙犯罪的打擊與防范態勢依然嚴峻。開展基于網絡行為分析的詐騙網站識別模型研究,能夠從涉網新型犯罪的源頭出發,打擊詐騙活動,預測用戶的被害性風險,從而更好地進行預防詐騙等犯罪活動,更好地保護廣大人民群眾的生命財產安全。
國內外對電信網絡詐騙犯罪識別、防控、預測等已有較多研究。
在對用戶網絡行為的分析研究上,傳統的網絡行為分析方法主要有基于協同過濾的方法[1-2]、基于矩陣分解的方法[3-4]、基于知識圖譜[5]等方法。這些方法大多將單獨的網絡行為作為訓練的目標,較為可靠理想,但此類模型缺少考慮連續行為間內在的關聯性、結構性信息,難以反映一段時間內用戶的連續性、動態性的行為變化,存在局限。近年來隨著機器學習尤其是深度學習技術的快速發展,針對連續時間段內的網絡行為序列建模問題,較多研究人員建立了基于神經網絡的模型來求解。Cheng等[6]提出Wide&Deep模型,將線性模型和深度神經網絡(deep neural network,DNN)結合起來,兼顧了模型的泛化能力和記憶性,具有可解釋性強、泛化能力強、記憶能力優秀的特點。
Wang等[7]提出基于會話的全局上下文增強的圖神經網絡推薦模型,在全局層面更好地表征網絡行為的特征,并將圖論結合進去。此類方法大大提高了模型的準確性和可靠性,能夠提取到深層次的網絡行為特征,對后續的發展具有重要的借鑒意義。
綜上所述,針對傳統詐騙網站黑白名單檢測方法難以時間滯后性大、檢測精確度不足等問題,本文擬提取用戶網絡數據流中的顯性數據特征以及隱性用戶網絡行為特征,并在BP神經網絡模型的基礎上,通過結合遺傳算法優化參數,建立基于改進BP神經網絡的詐騙網站識別模型,最終實現對詐騙網站的動態識別分析。
本文建立基于遺傳算法改進的BP神經網絡模型,結構如圖1所示。收集用戶上網時產生的流量數據作為數據樣本,通過編程手段提取流量包中的顯性流量特征編碼以及隱性網絡行為編碼作為數據集。使用訓練數據集訓練BP神經網絡并使用遺傳算法優化神經網絡的相關參數,最終得到最優模型,并投入測試數據集評估模型整體性能。

圖1 總體結構圖
本文基本思路框架如下:
(1)以抓取的流量數據包作為樣本數據,并從中提取出顯性流量特征編碼集以及隱性網絡行為編碼集,將兩者以及網站的詐騙屬性人工標定結果匯總,作為訓練數據集和測試數據集。
(2)建立BP神經網絡模型,投入訓練數據集進行訓練的同時,結合遺傳算法迭代優化參模型參數。
(3)輸入測試數據集,測試模型。
(1)流量數據獲取。采用Wireshark軟件動態抓取用戶在訪問目標網站時產生的各種HTTP數據包,并保存為pcapng文件。
(2)用戶網絡行為分類。對采集到的pcapng流量數據,分類出數據包中用戶存在過的網絡行為。網絡行為分類主要有:登錄、注冊、借款、充值、投資等。
(3)數據初始特征挖掘。顯性流量特征編碼參數如表1所示。

表1 顯性流量特征編碼參數總表
對獲取的流量數據,采用Python的pyshark模塊進行解析,提取表1中的初始特征,作為顯性流量特征編碼集。
(4)網絡行為特征挖掘。隱性網絡行為編碼參數表如表2所示。

表2 隱性網絡行為編碼參數總表
設計網絡行為字典,通過對比字典,標注流量數據中存在的隱性網絡行為,最終形成隱性網絡行為編碼集。
(5)數據集構建。將顯性流量特征編碼集與隱性網絡行為編碼集混合,并標注相關網站的詐騙屬性,作為樣本數據集。并以總樣本數的0.7作為訓練部分數據來訓練模型、優化參數;并以總樣本數的0.3作為測試部分數據。
BP神經網絡(back propagation neural network,反向傳播神經網絡)是一種經典、高效、精度較為理想的神經網絡模型,其模型構造主要由輸入層、隱藏層、輸出層三層組合而成。圖2為該模型的拓撲結構:

圖2 BP神經網絡拓撲結構
BP神經網絡主要有存在前向傳播和誤差反向傳播等過程組成,其焦點是利用梯度搜索技術,優化網絡中各層級的權重參數,使得實際輸出值與預期輸出值之間的偏差最小化。設定義實際上的輸出層的值與預期中輸出層的值之間的誤差值為字母E,則E的公式如公式(1)所示。

其中f(x)為傳遞函數Sigmod。圖3為該函數的曲線圖。w jk、v ij為各層的權值。

圖3 傳遞函數Sigmod曲線圖
觀察誤差E的公式易知,如果想調整并盡可能的縮小誤差E,則需要調整輸入層、隱藏層、輸出層各層的權值,相關公式如公式(2)、(3)所示。

在模型一開始時設置初始權值,并將權值輸入遺傳算法當中,初始化遺傳算法。建立BP神經網絡,用訓練數據集訓練模型,并計算誤差值E,調整權值,更新當前最優解。當迭代停止之后,從中將最優權值參數輸出,獲得整體最佳模型,并投入測試數據集評估模型。
遺傳算法結構如圖4所示。

圖4 遺傳算法結構圖
本實驗使用搜集到的用戶網絡數據流作為樣本數據,并從中進行顯性流量特征編碼,分析并提取隱性網絡行為編碼,將兩個編碼集以及手動標注的網站詐騙屬性編碼集合并,作為總的數據集??傆?676條數據。訓練數據集有6073條數據,其中網站的詐騙屬性為“TRUE”的有3036條,網站的詐騙屬性為“FALSE”的有3037條;測試數據集有2603條數據,其中網站的詐騙屬性為“TRUE”的有1301條,網站的詐騙屬性為“FALSE”的有1302條。表3為本次實驗的具體數據情況。

表3 實驗數據情況總表
數據庫類型與版本:MySQL 5.7.26。
系統環境:8 GB內存,處理器8個。
操作系統版本:Kali Linux 2021.1。
編程語言環境:Python 3.7.9,g++。
3.3.1 精確率與召回率
公式(4)為精確率P(Precision)的計算公式。其中TP含義是將正類預測為正類的情況,TP含義是將負類預測為正類的情況,FN含義是將正類預測為負類的情況。

召回率R(Recall)計算公式如公式(5)所示。

3.3.2 ROC曲線
ROC曲線是指以虛報概率P1=y/N為橫坐標,以擊中概率P2=y/SN為縱坐標,繪制而成的曲線圖。若繪制得到的曲線離對角線越近,則說明該模型的識別分類能力比較差,反之,若繪制得到的曲線里對角線比較遠,則說明該模型的識別分類能力比較優。
(1)通過抓包手段獲取用戶流量數據包,作為樣本數據,并將其保存在數據庫中。數據情況如圖5所示。

圖5 流量數據包
(2)編寫Python腳本,解析數據包文件,提取顯性流量特征編碼,如圖6所示。

圖6 顯性流量特征編碼圖
(3)設計用戶網絡行為字典,分析并提取隱性網絡行為編碼,并合并得到訓練數據集和測試數據集。隱性網絡行為編碼情況如圖7所示。

圖7 隱性網絡行為編碼圖
(4)設置初始閾值,使用訓練數據集訓練BP神經網絡。
(5)初始化遺傳算法,并開始迭代更新最優參數。
(6)結束迭代,輸出最優模型,并使用測試數據集測試模型。
訓練BP神經網絡模型并采用遺傳算法對參數進行不斷優化,最終模型的整體精確度為0.954,召回率為0.963。圖8為擬合回歸的情況,圖中擬合優度R=0.97848,說明回歸直線的擬合情況整體良好,符合預期。

圖8 擬合回歸圖
正態概率圖如圖9所示。圖中藍色點為樣本數據的分布情況。

圖9 正態概率圖
誤差變化如圖10所示。從圖中可知,訓練測試過程中誤差總體可控,大部分情況下誤差變化不大。

圖10 誤差變化圖
誤差相關圖、頻數直方圖、樣本偏相關函數如圖11~圖13所示。

圖11 誤差相關圖

圖12 頻數直方圖
本文針對傳統詐騙網站識別與預防技術存在的時間滯后性嚴重、精確度不足、模型開銷過大的問題,提出基于網絡行為的詐騙網站識別模型,從流量數據中分析并挖掘顯隱性網絡行為編碼,建立了遺傳算法優化的BP神經網絡模型,實現了識別、分析網站詐騙屬性的功能和目的。模型可以從動態的流量數據中有效識別出詐騙網站。下一步的研究將聚焦于時序網絡行為的分析預測方向,實現對用戶詐騙被害性風險的動態識別,并提高模型魯棒性,從電信網絡詐騙犯罪受害端進行預防和發掘。