李雨泰,王洋,陳紫兒,柳瑞春,尚智婕
(國家電網(wǎng)有限公司信息通信分公司,北京,100000)
截至2017年,我國的移動網(wǎng)絡(luò)用戶規(guī)模已經(jīng)增長值8.64億,這導(dǎo)致移動網(wǎng)絡(luò)的環(huán)境逐漸變得越來越復(fù)雜。為了保證網(wǎng)絡(luò)用戶的信息和數(shù)據(jù)安全,相關(guān)的研究人員設(shè)計了一種針對移動應(yīng)用程序的識別算法。現(xiàn)有的很多文獻(xiàn)對該算法進(jìn)行了研究,文獻(xiàn)[1]通過LSTM-TNN結(jié)構(gòu),在池化層中進(jìn)行了部分特征屬性的關(guān)聯(lián),并將LSA模型引入了對程序的識別算法中,增強(qiáng)了局部與整體之間的聯(lián)系。該方法著重于提高應(yīng)用程序核心與局部之間的關(guān)聯(lián)性,在特征信息的分類準(zhǔn)確度提高中效果不明顯。文獻(xiàn)[2]在移動設(shè)備中設(shè)計了一種通過SSL協(xié)議加強(qiáng)數(shù)據(jù)純度的方法,以密度聚類與隨機(jī)森林算法為核心,建立了數(shù)據(jù)過濾模型,又將加密數(shù)據(jù)流傳輸給了捕捉裝置,提高了數(shù)據(jù)的利用效率,增強(qiáng)了識別程序的準(zhǔn)確度。該方法雖然有效地完成了數(shù)據(jù)的建模,但是在樣本的干擾和誤判中卻沒有進(jìn)行有效設(shè)計。為解決以上問題,提升程序識別精度,本文基于加密流量分析算法,設(shè)計了一種新的移動應(yīng)用程序識別方法。首先提取加密數(shù)據(jù)流量特征,再計算信息增益值與信息增益率,獲得偏移矩陣激活函數(shù),精確提取加密數(shù)據(jù)流量特征;最后設(shè)計移動應(yīng)用程序識別算法,計算聚類信息簇,從而實(shí)現(xiàn)以增強(qiáng)程序識別的精度為目標(biāo),對算法進(jìn)行優(yōu)化的目的。
在加密流量協(xié)議的初始階段,主要包括握手、共享以及加密傳輸這三個主要的步驟。此時需要通過密度聚類算法提高共享速度,提升初始化握手對流量特征分析的效果?;诖?,設(shè)樣本集中共含有n個無標(biāo)記的初始樣本,此時可以建立一個具備x維度的向量此時的鄰域參數(shù)可以通過樣本集合來計算[3]。在核心中根據(jù)密度可達(dá)定律建立一個聚類函數(shù),將所有可以達(dá)到的距離全部包含在樣本中。當(dāng)屬性節(jié)點(diǎn)中的純度盡可能達(dá)到最大時,可以將信息的增益公式設(shè)置為:
式(1)中,Dn表示所有樣本組成的樣本集;iw表示任意一個離散的屬性節(jié)點(diǎn);Dm表示被標(biāo)記的第m個樣本。將公式(1)作為數(shù)據(jù)的純度劃分公式,可以直接計算出信息增益的幅度,以此計算信息增益率,可以得到公式:
式(2)中,?v(x)表示數(shù)據(jù)信息在固有屬性中的增益值。當(dāng)該類參數(shù)的固定值越高時,屬性的增益幅度越大。此時可以得到一種反向傳播的算法結(jié)構(gòu),用于多層參數(shù)的迭代與學(xué)習(xí)。在其中一層神經(jīng)網(wǎng)絡(luò)到達(dá)偏移向量的中心節(jié)點(diǎn)時,可以將輸入的向量作為權(quán)重矩陣,將輸出的向量作為偏移矩陣,在此基礎(chǔ)上得到傳播的激活函數(shù)為:
式(3)中,hp表示第p層的神經(jīng)元反向傳播權(quán)重;?表示本次線性變換的激活函數(shù);gi表示第i層神經(jīng)元的隱含層信息輸出權(quán)重。將以上數(shù)據(jù)包的所有序列作為特征矩陣,就可以得到數(shù)據(jù)流的時間單位,并以此提取加密數(shù)據(jù)的流量特性。
至此,完成加密數(shù)據(jù)流量特征的提取,在此基礎(chǔ)上繼續(xù)設(shè)計移動應(yīng)用程序識別算法。
在上文提出的加密數(shù)據(jù)流量特征分析中,可以直接計算出密度可達(dá)原則的最小聚類對象,依據(jù)生成的密度可達(dá)原則的最小聚類對象,生成可信度較高的聚類簇,作為度量的指標(biāo)信息[4]。再將數(shù)據(jù)集中的樣本集中在集合中,分別標(biāo)記樣本類型,并計算該樣本在數(shù)據(jù)集中出現(xiàn)的概率。其中隨機(jī)變量可以將樣本的標(biāo)簽設(shè)置為且i= 1 ,2,… ,L。則此時的信息熵計算公式為:
式(4)中,En表示不同類型的樣本;uk表示在第i個樣本集合中的第u個標(biāo)簽;g(uk)表示聚類簇的純度計算值。
在移動終端的交互中,可以直接分為交互式與非交互式。在干擾樣本中,可以通過輸入隨機(jī)數(shù)據(jù),獲取分類的特征值。特征值計算公式為:
式(5)中,c為隨機(jī)樣本數(shù)據(jù)。而決策樹的節(jié)點(diǎn)集合則需要以最優(yōu)的屬性為核心,獲取捕捉數(shù)據(jù)。在網(wǎng)絡(luò)流量的程序識別中,很多企業(yè)或用戶都使用應(yīng)用程序產(chǎn)生的流量進(jìn)入瀏覽器,這種網(wǎng)絡(luò)流量的協(xié)議難以堆疊編碼裝置,會直接導(dǎo)致負(fù)載節(jié)點(diǎn)訓(xùn)練精度的下降。因此可以通過連接二分類檢測的方法建立會話的識別算法[5],識別算法如下所示。
至此,完成基于加密流量分析的移動應(yīng)用程序識別方法設(shè)計。但在此過程中有一點(diǎn)極為關(guān)鍵,會對移動應(yīng)用程序識別精度產(chǎn)生重要影響。即每一次ios系統(tǒng)在連接互聯(lián)網(wǎng)時,都需要IP位置作為最終標(biāo)簽,以無顧慮的字符作為下載加密包的節(jié)點(diǎn),集合通道輸出端口識別裝置。通過以上方法,可以直接得到精度更高的移動應(yīng)用程序識別算法,進(jìn)一步提升移動應(yīng)用程序識別精度。
上文設(shè)計了一種基于加密流量分析的移動應(yīng)用程序識別方法,為檢測設(shè)計方法判斷結(jié)果的準(zhǔn)確性,設(shè)計如下實(shí)驗,將其與現(xiàn)有的LSA模型以及密度聚類和隨機(jī)森林算法(即文獻(xiàn)[1]、文獻(xiàn)[2]算法)相對比,通過對比三種算法的精度,測試該識別方法是否實(shí)現(xiàn)了優(yōu)化。
實(shí)驗使用的計算機(jī)設(shè)備使用的處理器為Intel(R)Pentium(R) Gold G5420 CPU @ 3.80GHz 3.79 GHz,機(jī)帶內(nèi)存為16.00GB,算法的開發(fā)環(huán)境為python,并通過scikitlearn建立迭代模型。將應(yīng)用大廳中下載量前10的移動應(yīng)用程序作為實(shí)驗對象,并收集152634條數(shù)據(jù)流,保證數(shù)據(jù)流在各項算法中的適應(yīng)性。使用聚類簇純度分析的方法對以上數(shù)據(jù)流進(jìn)行聚類處理,統(tǒng)計樣本間距,設(shè)算法的εminpt參數(shù)為0.74,可以得到樣本與其最近樣本間距的分布如表1所示。
表1 樣本分布參數(shù)
0.15 4 0.21 5 0.23 6 0.22 7 0.19 8 0.18 9 0.17 10 0.22 3 0.16%0.17%0.15%0.23%0.24%0.27%0.26%0.22%
通過以上樣本分布,可以得到聚類后不同測試樣本的信息熵如圖1所示。
圖1 信息熵分布示意圖
將圖1中的信息熵作為自變量,可以計算學(xué)習(xí)迭代過程中的Accuracy、Recall和Precision,計算公式為:
式(7)、式(8)、式(9)中,Aη表示三種算法識別移動應(yīng)用程序的準(zhǔn)確率,即Accuracy;Rη表示算法識別移動應(yīng)用程序的召回率,即Recall;Pη表示算法識別移動應(yīng)用程序的精確率,即Precision;ntp表示在算法識別程序的過程中將正確的樣本識別為正確結(jié)果的樣本數(shù)量;ntn表示將正確樣本識別為錯誤樣本的樣本數(shù)量;nfn表示將錯誤樣本識別為正確樣本的樣本數(shù)量;nfp表示將錯誤樣本識別為錯誤樣本的樣本數(shù)量。綜合以上三種數(shù)據(jù),分析三種算法在移動應(yīng)用程序識別過程中的精度。
將信息熵作為自變量,當(dāng)信息熵逐步增加時,可以得到如表2-表4所示的數(shù)據(jù)結(jié)果。
如表2-表4所示,在三種不同算法的精度計算中,信息熵的變化會導(dǎo)致移動應(yīng)用程序識別精度的變化,且隨著信息熵由0.5增長到5.0,三種算法的精度都在逐漸降低,由此可見Accuracy、Recall和Precision三個精度指標(biāo)與信息熵呈現(xiàn)反比關(guān)系。在算法的對比中,可以清晰地看出,本文設(shè)計的加密流量分析算法比Unreal Engine算法、密度聚類+隨機(jī)森林算法的精度指標(biāo)更高,精度最高分別可達(dá)到99.25%、93.89%以及98.85%。由此可見,文中設(shè)計的移動應(yīng)用程序識別方法確實(shí)得到了優(yōu)化。
表2 Accuracy數(shù)據(jù)
表3 Recall數(shù)據(jù)
表4 Precision數(shù)據(jù)
3.5 88.23% 83.69% 82.17%4.0 86.28% 82.96% 81.45%4.5 84.54% 78.82% 78.72%5.0 83.86% 75.51% 77.93%
在移動互聯(lián)網(wǎng)逐漸成為人們生活中必不可少的一部分之后,對移動應(yīng)用程序的各類管理與監(jiān)控也在不斷完善,為更準(zhǔn)確地完成對程序的識別工作,進(jìn)一步完善網(wǎng)絡(luò)流量的配置與管理,上文設(shè)計了一種基于加密流量分析的移動應(yīng)用程序識別算法。首先提取加密數(shù)據(jù)流量特征,再計算信息增益值與信息增益率,獲得偏移矩陣激活函數(shù),精確提取加密數(shù)據(jù)流量特征;最后設(shè)計移動應(yīng)用程序識別算法,計算聚類信息簇,完成移動應(yīng)用程序識別。然而,在前置的學(xué)習(xí)訓(xùn)練中,本文設(shè)計的算法所需時間過長,需要進(jìn)一步地完善與優(yōu)化,在接下來的研究過程中,將對其進(jìn)行深入研究,以更好地提升移動應(yīng)用程序識別精度。