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

基于深度學習和區塊鏈的JavaScript惡意代碼檢測系統①

2021-05-21 07:22:20洪華軍
計算機系統應用 2021年5期
關鍵詞:深度檢測模型

陳 鵬,韓 斌,洪華軍

1(江蘇科技大學 計算機學院,鎮江 212000)

2(中國船舶科學研究中心 軟件工程技術中心,無錫 214082)

1 引言

如今Web 已經深刻融入我們的生活中,為日常生活帶來了諸多便利,我們隨時可以通過手機或者電腦來訪問各種網站,但同時這也給網絡攻擊者提供了大量的攻擊機會.網絡攻擊者為了達到其目的,會將一些惡意的代碼嵌入到網頁中,造成了正常的互聯網用戶的個人信息的泄露和個人財產的損失等問題.

針對Web 安全問題,研究者們提出了不同的解決方法.惡意代碼檢測目前主要分為兩大類,一種是基于代碼文本及結構的靜態檢測方法,另一種是基于運行結果的分析的動態檢測方法[1].毛蔚等[2]在分析進程訪問行為異常度和相似度后,引入了惡意代碼檢測估計風險,并提出一種最小化估計風險實現主動學習的惡意代碼檢測方法;吳迪[3]針對Android 平臺的惡意代碼檢測只關注應用的單方面的特征,提出了基于多類特征的Android 惡意代碼檢測技術;羅世奇等[4]提出使用惡意代碼紋理指特征紋融合33 類惡意代碼活動向量空間特征,利用棧式自編碼(SAE)模型來完成惡意代碼的分類;鄧兆琨等[5]提出了一種動靜結合的網絡數據檢測方法,在傳統靜態分析的基礎上優化了檢測算法,同時引入了動態模擬運行的檢測方式;黃琨茗等[6]提出一種最長頻繁序列挖掘算法,該方法提取樣本文件的動態API 序列,并挖掘最長頻繁序列集合構造詞袋模型,將API 序列轉化為向量,使用隨機森林算法來識別惡意代碼.

深度學習技術在惡意代碼識別領域已經取得了較好的效果,但是仍然存在以下方面的問題:(1)單個機構的惡意代碼樣本是有限的,模型泛化能力需要高質量多樣性的數據集;(2)在大數據時代,有效處理海量的數據是惡意代碼檢測效率提升的必要條件;(3)如今數據已成為一項寶貴的資源,數據的隱私和安全性越來越受到人們的關注.惡意代碼樣本這類特殊性質的數據集,如果被網絡攻擊者獲取,對于網絡安全的威脅是巨大的.

區塊鏈自2008年比特幣白皮書[7]提出以來,因為其去中心化透明可信、防篡改可追溯、隱私安全保障等特點越來越受到人們的關注.如楊雪梅[8]探索了將區塊鏈技術中的去中心化的思想與深度學習相結合并嘗試運用于語音識別的可行性,提出了一種適用于處理大規模的聲學數據的融合分布式的深度學習算法模型.Gu 等[9]提出了一種Java 層的移動終端惡意軟件檢測方法,并結合了區塊鏈技術,達到了多機構的共享的目的.本文基于區塊鏈技術,結合卷積神經網絡(Convolutional Neural Network,CNN)進行了深度融合,提出了一種基于區塊鏈+深度學習的JavaScript 惡意代碼檢測系統設計方案,利用區塊鏈去中心化特點進行模型的分布式訓練和同步更新.

2 相關理論

2.1 區塊鏈

區塊鏈被定義為一種按時間順序來組織數據區塊,不同區塊之間按序形成鏈條狀連接的數據結構,借助這種數據結構來構建數字賬本[10],是一種可信的,去中心化防篡改的數據存儲技術,區塊鏈的數據結構如圖1所示.

圖1 區塊鏈數據結構示意圖

區塊鏈中的基本數據單元是塊.在每個塊中存儲了所有交易相關的數據信息,主要包括了區塊頭和區塊體兩部分信息.區塊頭中主要由父區塊的哈希值(previous hash)、當前的時間戳(time stamp)以及默克爾樹根(Merkle tree root)等構成.在區塊體中一般包括若干個交易列表.每個塊與上一個塊都是通過哈希值來進行連接的.對于區塊鏈網絡中的節點,在收到其余節點發送的數據以后,并不是立即保存,而是需要通過“共識機制”對當前的數據進行驗證,如果驗證通過則保存到區塊鏈中[11].為了加速區塊的驗證,區塊體中的所有的交易信息都按照默克爾樹的形式保存下來,并用默克爾樹的根連接區塊頭和區塊體[12].區塊鏈中的每個節點都有自己一對公私鑰,利用非對稱加密技術來保證信息的加密傳輸,從而保護了交易者的隱私.

2.2 卷積神經網絡

卷積神經網絡是一種專門用來處理具有類似網格結構的數據的神經網絡,是深度學習的代表算法之一[13,14].經典卷積神經網絡包括卷積層、池化層和全連接層.卷積神經網絡的卷積核參數共享機制使得能夠以較低的運算來提取特征,給定一張特征矩陣圖,通過不同的組合,經過全連接達到分類的目的.

(1)卷積層

卷積層的作用在于提取輸入數據的特征.通過卷積核與對應位置的數據相乘來獲取圖的特征,接著使用非線性激活函數完成特征的映射.定義輸入圖片Pi,j(0≤i≤W,0≤j<H),大小為W×H,則卷積運算的公式為:

式中,ωm,n(0≤m,n≤K)表示大小為K×K的卷積過濾器的卷積運算的權值.

更一般地,在卷積運算的過程中,通常會有多個通道,這些通道上的過濾器同時進行特征提取.定義輸入的圖片為Pi,j,c(0≤i≤W,0≤j≤H,0≤c≤C),表示大小為W×H,通道數為C的圖片,卷積運算公式為:

式中,bi,j,l表示卷積運算的偏置,ωm,n,c,l表示卷積神經網絡的權值.

(2)池化層

在卷積運算之后通常需要添加一層池化層,來對卷積運算得到的特征減少映射的表示,即降維操作.池化操作具體指的是對局部特征范圍內,提取最大值或者平均值.通常使用最大值池化和平均池化.最大池化和平均池化的計算公式為:

(3)全連接層

全連接層通常放置在最后幾層用作分類器,根據卷積操作提取得到的特征進行分類.在全連接層之后,對應分類上的概率分布通過softmax或者logsoftmax來計算.定義原始的神經網絡輸出為y1,y2,···,yn,則計算公式為:

2.3 分布式深度學習

在深度學習訓練過程中,為了提高模型的訓練速度,可以通過一些參數設置來加速GPU的計算,由于單個的GPU的加速的效率沒有辦法滿足某些重量型深度學習模型算力要求,由此出現了深度學習模型的并行方式.分布式深度學習系統由多個共享模型和一個中央控制代理組成,如圖2所示.其中貢獻者可以貢獻自己的模型、數據和算力,訓練完成后發送給中央服務器,中央處理器負責融合和共享深度學習模型.整個模型的訓練都由一個中央服務器集中代理完成,所以,融合模型的過程中可能會遭受單點失效的影響[15,16].

圖2 分布式深度學習示意圖

2.4 協作分布式深度學習

與分布式深度學習不同,系統中劃分為了3 個角色應用程序發起者、若干個算力貢獻者和驗證貢獻者.其系統架構如圖3所示.

圖3 協作分布式深度學習示意圖

在這個設計框架中,每個單元都能夠獨立進行決策,程序發起者負責定義訓練模型的任務.算力貢獻者負責調用自己的算力資源進行構建訓練任務并訓練深度學習模型,算力貢獻者擁有充分的自主權,可以根據程序發起者的不同任務選擇本機的模型或者數據,在訓練完成后將其發送給驗證者.驗證者在收到算力貢獻者提交的參數后,負責驗證并評估模型的性能指標,把結果發送給程序發起者.發起者可以選擇保留或者丟棄部分數據[17,18].

3 JavaScript 惡意代碼檢測系統設計

3.1 特征提取

Ni 等[19]提出了一個惡意代碼檢測算法MCSC,首先將代碼文件轉化為基于simhash的灰度圖,然后使用卷積神經網絡完成惡意代碼家族的分類.通過灰度圖結合深度學習的方法均需要將圖像轉化為固定大小,因此在圖像轉化的過程中會造成一部分的信息丟失.本文使用基于馬爾可夫圖算法[20]避免了上述的問題.將JavaScript 代碼轉化為8 位的無符號整數向量,整個代碼就可以看做是一個字節流,字節流表達了一個隨機的過程:

式中,N代表JsavaScript 代碼的字節長度.對于每一個變量Bytei,有256 種不同的狀態值,可以表示為:

由于惡意腳本都衍生自已知的惡意代碼,所以新的惡意腳本只有小部分的改動.例如文獻[21]將某惡意代碼家族不同樣本可視化為灰度圖,如圖4所示,可以發現相同惡意代碼家族在字節分布上也會存在相似的特征.

圖4 Fakeraean 木馬家族圖像實例[21]

基于上述惡意代碼家族字節可視化圖相似性的特點,考慮相鄰的兩項Bytei-1和Bytei,狀態空間中狀態Bytei-1到 狀態Bytei轉換過程是隨機的,具備“無記憶的”性質,且每個狀態相互轉換的概率是相同的.所以在代碼字節提取特征上,為了簡化問題,這里假設Bytei只與Bytei-1有 關聯,則隨機的變量Bytei可視為一個馬爾可夫鏈:

馬爾可夫轉移概率矩陣的構建是基于每一個狀態遷移的概率.如果用Px,y記作是x的下一個字節為y的狀態轉移概率,那么對于任意的字節序列計算公式為:

式中,f(x,y)表示x后面是y的頻率,且x,y∈{0,1,···,255}.以此類推考慮整個文件的字節的狀態轉移概率M,計算公式為:

基于式(11)生成馬爾可夫圖像,圖像中的每一個點對應于馬爾可夫轉移概率矩陣中的不同位置上的轉移概率Px,y.將JavaScript 代碼轉化為馬爾可夫圖的示意圖如圖5所示.

圖5 JavaScript 代碼轉化為馬爾可夫圖

3.2 系統架構設計

基于協作式分布深度學習[17]的角色劃分,并結合機器學習模型訓練的3 要素:數據、算法、算力.本文將系統中用戶角色劃分為3 種:任務發起人、若干個算力貢獻者和若干個模型驗證者.JavaScript 惡意代碼檢測系統的用戶對象關系示意圖如圖6所示.系統角色劃分其數量和對應關系如表1所示.

3.3 模型訓練算法

某項任務的發起人負責定義任務的內容,比如輸入數據的屬性、模型的預期輸出、測試數據集、模型的準確度要求;算力貢獻者通過下載任務數據或者自己本地數據,針對給定的任務進行模型的訓練任務;驗證貢獻者將算力貢獻者訓練好的模型進行融合,然后再加密的測試數據集合上驗證.下文詳細描述了流程,其中所使用的符號定義如表2所示.

圖6 JavaScript 惡意代碼檢測系統用戶對象關系

表1 系統角色劃分對應關系表

表2 符號對應意義

對于集合N,Ori,Cp,Ver滿足如下條件:

模型訓練算法如下:

(1)發起交易,發起人Orii發布一筆計算任務交易,內容包括深度學習模型以及融合模型、深度學習任務、模型參數、融合數據和決策接口記作Data.由于模型訓練的數據集比較龐大,會存放在IPFS (Inter Planetary File System)中[22],將對應的哈希值地址存放在交易中,其余節點通過訪問IPFS 來獲取節點數據信息,上述過程可以表達如下:

其中:

(2)參數初始化,所有節點完成參數初始化的同步,每個算力貢獻者Cpi和驗證者Veri需要對消息進行校驗,確定消息的發送身份以及數據的完整性,校驗函數記作fcheck(Pac,PKOrii),運算結果中1 代表驗證通過,0 代表丟棄該消息,過程如下所示:

(3)訓練參數,訓練中算力貢獻者表示為:CpOrii={CpOrii,1,CpOrii,2,···,CpOrii,d},d<|N|,在每一輪的訓練k中,都會分別完成自己的前向和后向運算,同時計算得到每一個參數的更新量δ (CpOrii,k);

(4)廣播參數量,向周圍的節點廣播自己得到的參數量;

(5)同步更新參數量,此時節點將所有已經接收的進程進行同步(All-Reduce),對所有的參數更新量求平均,得到基于所有進程訓練數據的平均參數更新量,該過程如圖7所示.

圖7 同步更新參數示意圖

參數更新平均值計算如式(16)所示,求得的參數作為下一輪訓練的初始參數:

(6)進行下一輪的訓練計算;

(7)重復步驟(3)~(6)結束條件為訓練集全部訓練完畢.節點將參數聚合,將模型數據寫入區塊廣播給周圍節點;

(8)共識過程.驗證者將已經訓練好的模型進行篩選,將較優的模型匯總成候選集(candidate set),并將模型的候選集廣播至其他驗證節點.

① 驗證貢獻者將當前最優模型作為提案轉發至其他驗證節點;

② 驗證者將收到的方案與本地候選集和提案模型進行對比,擇優放入候選集;

③ 定義驗證貢獻節點中模型的投票率 χ,模型投票率的閾值η,最大閾值T_MAX,初始情形下投票閾值η0為50%.判斷模型是否有效方法為,如果χ ≥η,認為該模型為有效模型計入候選集,否則該模型被淘汰.在每一輪的共識過程中閾值 η不斷累加常量Δ γ,表示為ηi=ηi-1+Δγ,Δγ ∈(0,1),i∈N*,且對任意的ηi,均滿足ηi小于T_MAX,重復過程①~③,直到ηi大于等于T_MAX.

驗證貢獻者將從大于T_MAX的UNL 節點確認的模型中選擇最優模型寫入本地的區塊中.同時驗證貢獻節點將本地區塊廣播給全網,將收到區塊和自己本地區塊進行比對,當正確率超過T_MAX時,認為該區塊鏈為有效區塊.

4 仿真實驗和理論分析

4.1 JavaScript 代碼特征提取對比

本文實驗使用的數據集為Github 公開的惡意Java-Script 惡意代碼數據集[23],對于良性的樣本,從Alexa’s Top 站點進行了爬取腳本的操作.最終獲得了3526 條良性JavaScript 腳本代碼和3566 條惡意JavaScript 腳本代碼.實驗將數據集劃分為兩部分,70%留作訓練數據集,30%作為測試數據集.

使用機器學習工具包Sklearn 所提供的算法庫實現了文獻[24]提出的7 種不同的機器學習算法,按照文中描述方法進行了代碼特征的提取分類.采用十折交叉驗證的方法,將數據集分為10 等份,其中的1 份作為測試集,其余9 份用作訓練集,重復10 次,將平均值作為最終的結果.與本文方法進行對比(馬爾可夫特征提取+CNN 分類器),實驗果如表3所示.

表3 本文特征提取方法和傳統方法對比

對比實驗結果發現,馬爾可夫圖的特征提取準確率達到了98.98%,而準確率最低的為Na?ve Bayes 方法僅為78.4%,傳統提取方法表現最優的為隨機森林,達到了98.27%,但是仍然低于本文方法達到的準確率,說明本文基于馬爾可夫圖算法的特征提取能夠有效提升惡意代碼的檢測率.

4.2 不同閾值T_MAX 對共識算法性能的影響

為了分析不同閾值T_MAX對共識算法性能的影響,設計了一組仿真實驗.實驗中固定 Δγ為10%,算力貢獻者和驗證貢獻者節點數均為100 個.本實驗的區塊鏈仿真平臺采用Python3.7 結合Flask 框架搭建,本地部署區塊鏈,對不同閾值T_MAX下的共識算法進行了模擬,并記錄吞吐量、模型收斂的時間,多次試驗求平均值,實驗結果如圖8所示.

圖8 不同閾值T_MAX 對共識算法性能影響示意圖

實驗結果表明,隨著閾值T_MAX的不斷增加,共識算法的吞吐量逐漸減少.如果該閾值設置過小,盡管共識算法吞吐量較大,但是系統收斂到最優模型的速率會減慢;反之,如果閾值設置過大,共識算法的吞吐量會減少,但是算法能夠較快收斂到最優模型.

4.3 檢測系統設計理論分析

(1)數據樣本去中心化存儲.區塊鏈上的節點出于某種原因無法共享數據,此時可以在訓練中除了可以擁有發起人共享的數據,還可以調用本地的數據集樣本參與模型的訓練,有效突破了數據孤島的障礙,另外數據訓練得到的參數也將被驗證者校驗,解決了數據可信任的問題.采用該平臺設計,極大擴充提升了訓練樣本的數量,提升模型的泛化能力,從而有效檢測未知的JavaScript 惡意代碼;

(2)模型訓練結果參數防篡改.模型一旦訓練完成之后,便會通過共識算法進行校驗,擇優模型然后被存入區塊鏈中.假設存在惡意節點,但是通過共識機制該模型也不會被其余節點認可,所以修改是無效的,保證了模型參數存儲的安全性;

(3)分散算力有效利用資源.該平臺設計通過協調多方的算力,將傳統的工作量證明機制的算法替換為有意義的深度學習模型訓練,從而有效合理地利用了算力資源,推進了整個區塊鏈上惡意代碼檢測準確度的提高.

5 結論與展望

深度學習作為一種新興技術代表著先進生產力,而區塊鏈則代表了新的生產關系,兩者有非常大的合作空間.本文嘗試將區塊鏈技術和深度學習分布式系統訓練相結合,解決了數據孤島和數據可信任的問題,另外在特征提取上使用馬爾可夫圖減少了人工的干預,提升了檢測流程的效率,該檢測系統的設計可以為惡意代碼檢測研究提供一定的參考.

猜你喜歡
深度檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
深度理解一元一次方程
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
深度觀察
深度觀察
深度觀察
主站蜘蛛池模板: 日韩无码黄色| 亚洲无码不卡网| 国产欧美网站| 午夜啪啪福利| 亚洲精品国偷自产在线91正片| 欧美日韩另类在线| 国产精品成人免费综合| 熟女成人国产精品视频| 一级片一区| 天堂av高清一区二区三区| 久久婷婷五月综合97色| 国产又黄又硬又粗| 欧美中文字幕在线播放| 日韩黄色在线| 99热这里只有精品2| 国产精品一区不卡| 最新国产麻豆aⅴ精品无| 拍国产真实乱人偷精品| 日本不卡在线视频| 波多野一区| 成人亚洲视频| 国产成人禁片在线观看| 无码日韩精品91超碰| 婷婷综合色| 亚洲天堂日韩在线| 日本人又色又爽的视频| 亚洲欧洲日韩综合色天使| 最新无码专区超级碰碰碰| 亚洲区视频在线观看| 夜夜操狠狠操| 亚洲精品另类| 伊在人亞洲香蕉精品區| 国产激情国语对白普通话| 91精品久久久无码中文字幕vr| 老司国产精品视频| 片在线无码观看| 老司机久久99久久精品播放 | 亚洲资源站av无码网址| 国产一级毛片高清完整视频版| 欧美色图久久| 九九九精品视频| 国产网站免费看| 一级香蕉人体视频| 国产99视频精品免费视频7| 成人午夜亚洲影视在线观看| 国产女人18水真多毛片18精品| 制服丝袜国产精品| 人人爱天天做夜夜爽| 亚洲精品午夜无码电影网| 无码中文字幕精品推荐| 成人年鲁鲁在线观看视频| 四虎国产精品永久一区| 伊人久久精品无码麻豆精品 | 在线看片免费人成视久网下载 | 伊人久久大线影院首页| 国产va在线观看免费| 国产青榴视频| a级毛片免费播放| 亚洲免费人成影院| 无码中字出轨中文人妻中文中| 国产成人精品视频一区二区电影| 亚洲一区二区约美女探花| 亚洲中文字幕久久无码精品A| 99精品免费在线| 久久综合伊人 六十路| 精品无码一区二区三区在线视频| 日韩专区欧美| 亚洲视屏在线观看| 国产无码精品在线播放| 国产欧美精品一区aⅴ影院| 精品国产自在在线在线观看| 国产成人调教在线视频| 91美女在线| 久久婷婷国产综合尤物精品| 中国毛片网| 日本黄色a视频| 久久精品亚洲中文字幕乱码| 在线播放91| 五月天综合婷婷| 日韩精品成人网页视频在线| 色偷偷av男人的天堂不卡| 欧美天堂在线|