基於深度對抗學習的智慧模糊資料生成方法

愛喝奶茶的仙女發表於2020-11-22

目錄

第一節 介紹:

第二節:相關工作

第三節:背景

A.深度學習

B.生成對抗網

C.WGAN

第四節 模糊系統設計

A.概述

1)資料幀預處理

2)對抗訓練

3)模糊測試和再培訓

B.資料幀預處理

1).資料框聚類。

2).資料幀增強。

C.對抗訓練

1)問題摘要

2)模型設計

3)模型訓練

4)模型驗證

D.模糊測試和重新訓練

第五節:實驗

A.評估指標

1) 測試輸入接受率(TIAR)

2)漏洞檢測能力(AVD)

3)生成資料多樣性(DGD)

4)每小時生成測試用例(TCGPH)

5)訓練時間(TT)

B.Modbus-TCP和EtherCAT

 1)Modbus-TCP

2)EtherCAT

C.培訓資料和驗證資料

1)Modbus-TCP

2)EtherCAT

D. 評價設定

1)實驗環境

2)模型訓練設定

E.模型驗證結果

F.實驗結果

1)發現異常

2) TIAR

3) AVD

4) DGD

5) TT

6) TCGPH

7) COMPUTATIONAL COST

8) COMPARISON WITH THE TRADITIONAL METHODS(與傳統方法比較)

9)將該方法應用於另一種工業協議EtherCAT

第六節 結論與未來工作


摘要:

模糊測試(模糊測試)可以通過向目標程式提供大量意外輸入來有效地識別軟體中的安全漏洞。模糊測試的重要部分是模糊資料的生成。已經開發了許多用於生成模糊資料的傳統方法,例如基於模型的模糊資料生成和隨機模糊資料生成。這些技術需要指定輸入資料格式或通過手動反向工程分析輸入資料格式。在本文中,我們介紹了一種使用Wasserstein生成對抗網路(WGAN)的方法(一種深度對抗學習方法)來生成模糊資料。此方法不需要定義輸入資料格式。據我們所知,這項研究是第一個使用基於WGAN的方法生成模糊資料的研究。全球範圍內,工業安全一直是重要而緊迫的問題。網路協議模糊測試在確保工業控制系統(ICS)的安全性和可靠性方面起著重要作用。因此,該方法對ICS測試具有重要意義。在實驗中,我們使用工業控制協議(例如Modbus-TCP協議和EtherCAT協議)作為測試目標。結果表明,該方法比以前的研究中使用的方法更加智慧和強大。另外,由於其設計,可以在短時間內訓練該模型,這在計算上是輕便的和實用的。在實驗中,我們使用工業控制協議(例如Modbus-TCP協議和EtherCAT協議)作為測試目標。結果表明,該方法比以前的研究中使用的方法更加智慧和強大。另外,由於其設計,可以在短時間內訓練該模型,這在計算上是輕便的和實用的。在實驗中,我們使用工業控制協議(例如Modbus-TCP協議和EtherCAT協議)作為測試目標。結果表明,該方法比以前的研究中使用的方法更加智慧和強大。另外,由於其設計,可以在短時間內訓練該模型,這在計算上是輕便的和實用的。

第一節 介紹:

在許多國家,工業安全[1]一直是一個令人關注的問題。它涉及該國重要的基礎設施和大量製造業,影響著國家的穩定和人民的生存。例如,臭名昭著的Stuxnet病毒襲擊了伊朗的一家核電廠,造成了嚴重破壞。因此,必須保持工業安全。工業控制行業擁有各種監督控制和資料採集(SCADA)系統。為了確保工業控制系統的安全,我們必須確保SCADA系統中工業控制協議的安全。作為識別漏洞的有效方法之一,模糊[2][3]在漏洞發現中起著至關重要的作用。知名組織釋出的大多數軟體錯誤都是通過模糊測試發現的。模糊測試的主要思想是使用惡意輸入對目標程式進行壓力測試,以引起異常行為,例如崩潰或異常。模糊測試還可用於發現工業控制協議中的漏洞。傳統的模糊測試通常基於軟體的規格或需要測試的協議來構建測試用例。但是,此方法有幾個侷限性。一方面,軟體的規格和實現可能並不完全一致。因此,如果我們根據規範對其進行測試,則某些細節可能會被忽略,從而使這些細節容易受到攻擊。另一方面,當前的模糊資料生成方法過於依賴人工分析,這既繁瑣又耗時。因此,需要開發一種能夠充分考慮實際實現並降低測試成本的模糊測試方法。

為了解決模糊測試期間遇到的問題,我們使用基於WGAN的方法[4]生成模糊資料。WGAN特別是用於生成模擬圖片[5][6]。通過使用WGAN來生成序列資料(例如ICS中的資料幀),我們可以進行創新。因此,無需瞭解協議規範[7]。。基於WGAN的模型無需手動分析即可瞭解資料幀的空間結構,隨後生成與真實結構具有相同結構但在其他方面(例如變數值)具有隨機變異的測試資料。這種方法具有許多優點。一方面,它比通常需要的工作更少,這大大簡化了模糊測試過程,並且不需要測試人員成為該領域的專家。另一方面,它具有很高的適應性,可以方便地應用於測試其他類似協議。選擇WGAN作為基本架構的原因包括:(i)WGAN在模型訓練過程中更穩定;(ii)產生的資料更加多樣化,因此具有更廣泛的測試範圍;(iii)提供培訓進度的指標,可以指示模型的訓練程度。我們使用該方法來測試Modbus-TCP[8],廣泛使用的工業網路協議之一。實驗結果令人滿意。它具有很高的測試用例通過率,需要很短的培訓時間,並且可以有效地識別漏洞。另外,為了證明其通用性和協議獨立性,我們還將其用於測試另一種廣泛使用的工業控制協議EtherCAT協議[9]。這項研究的關鍵貢獻包括三個方面:

1.我們提出了一種基於WGAN的模糊測試技術,並分析了其應用潛力。在實施該方法期間,根據Occam的剃鬚刀,我們精心設計了可在實現其目標的前提下提供輕量級計算的體系結構模型。

2.鑑於工業控制協議的相似性,我們提出了一種通用的模糊測試過程,該過程可用於大多數工業控制協議。

3.我們通過實驗比較證明了所提出方法的優越性,併成功發現了錯誤。

本文的其餘部分安排如下:第二部分討論相關工作。第三節詳細介紹了WGAN的分析及其具體應用。第四部分介紹了基於WGAN的特定體系結構設計,用於測試工業控制協議。第五節顯示評估結果。第六節總結了本文。

第二節:相關工作

模糊測試已有20多年的發展,實踐證明了它的有效性。使用此技術可以識別Word和Excel程式中的漏洞。儘管多年來在該領域做出了許多貢獻,但研究仍在進行中。

1983年,Vos和Aho [10]正式研究了用隨機輸入喂程式的有效性。結果表明,這種隨機輸入策略是低成本且有效的。他們的研究被認為是模糊測試的最早研究。威斯康星大學的Barton Miller教授於1988年首次提出“模糊”一詞開發了一個模糊測試工具來測試Unix程式的健壯性[2]。這些是這項技術的原始發展。

隨後,研究人員提出了越來越多的模糊技術。利用這些策略,他們開發了許多模糊測試套件。奧盧大學的研究人員提出的PROTOS [11]測試套件使用協議規範來生成更結構化的測試資料。Aitel通過使用協議規範改進了SPIKE [12]。該規範描述了資料塊的格式。他們通過向那些塊提交隨機生成的資料來生成模糊資料。其他研究人員[13][14]還嘗試建立一個特定的模型來指導資料生成。這些方法提高了模糊測試的有效性和自動化程度。然而,這些方法在必須理解測試目標的內部操作的條件下操作。從這個角度出發,研究人員根據規範設計模型,以指導測試資料的生成。這種方法有兩個缺點。首先,在實踐中,瞭解協議需要時間和人工。其次,在規範的實施期間,可能會新增一些工程細節,從而導致實現與規範之間的不一致。因此,這些方法傾向於忽略模糊處理中的一些細節。

在最近的研究中,Rajpal等人。 Microsoft的[15]應用序列到序列神經網路[16]模型來增強AFL [17](美國模糊Lop)模糊器,其中該模型嘗試學習輸入檔案中的最佳突變位置。它有助於AFL模糊測試器提高針對獨立程式的測試效率。他們使用深度學習作為輔助技術,將深度學習技術與傳統的模糊測試工具相結合。但是,我們將其用作核心方法,並將其應用於工業網路協議模糊測試。最近,呂等人。 [18]使用機器學習來生成高價值的二進位制種子檔案。Böttinger等。 [19]使用Q學習演算法來確定要對給定輸入執行哪種變異操作。Godefroid等。 [20]研究瞭如何利用基於神經網路的學習技術來學習非二進位制PDF資料物件的語法。這些研究從不同角度增強了機器學習的模糊性。

通常,最新的模糊測試方法[21]是基於模型的模糊測試,它利用從常規輸入的語法或格式中提取的模型來指導模糊資料的生成。模型提取通常需要人類情報來分析。但是,我們的方法從另一個角度進行了模糊測試,這與方法學中的最新方法不同。幾乎不需要人工分析來提取模型。因此,它具有一些相應的優點。為了更清楚地顯示它,我們將提出的方法與基於模型的方法相比列出了優勢。詳細情況如表1所示。

表1 :建議方法的優點

1可以在目標規範未知的情況下工作。
2考慮測試目標的實際操作細節。
3生成測試用例而不需要手動分析。
4節省測試時間。
5操作簡單,對測試人員要求低。

第三節:背景

作為GAN和WGAN的基礎,提出了深度學習的背景[22]。然後介紹GAN和WGAN的其他初步知識。

A.深度學習

深度學習是機器學習的一個分支,在早期階段發展緩慢。它的快速增長始於2006年,當時Hinton和Salakhutdinov發表了一篇文章[23],為關鍵問題提供瞭解決方案。克里熱夫斯基也於2012年提出了ImageNet [24],一種用於影像分類的神經網路結構,標誌著深度學習的革命性發展。

目前,深度學習正在引起技術界的關注,在某些領域展現出廣闊的應用前景,甚至超過了人類。大多數行業在入侵檢測[25][26],自動駕駛汽車[27][28],機器人[29],語音識別[30][31],機器翻譯[32][ 33],依此類推。由於它在智慧時代起著至關重要的作用,它傾向於解放人類的大腦。它的快速發展得益於諸如圖形處理單元(GPU)等最新硬體裝置的進步[34]。這些裝置顯著提高了計算能力。資訊科技發展帶來的大量經驗資料也加速了其發展。神經網路是深度學習的基礎。如圖1所示,一種簡單的神經網路包括一個輸入層,一個或幾個隱藏層以及一個輸出層。複雜網路(例如廣為人知的Deep Residual Nets [35])達到152層深。神經網路[36]從大量資料中學習並形成服務於特定目的的模型。關於影像分類問題,訓練模型基於輸入影像輸出影像類別。資料量顯著影響有效神經網路模型的形成。資料越大,訓練後的模型進行概括的能力越強。在當前的研究中,我們使用深度神經網路作為基本模型架構。

      圖1.一個簡單的多層感知器

B.生成對抗網

       2014年,Goodfellow等人。提出的生成對抗網路[37]。這項創新被認為是深度學習中一個有爭議的主題,並已廣泛應用於眾多應用中,例如影像生成和超解析度[38]。。關於影像生成,經過訓練的GAN模型使用隨機噪聲作為輸入,然後輸出模擬圖片。但是,模擬圖片與真實圖片有所不同。因此,我們使用此功能來生成模擬序列資料幀。通過使用大量資料幀訓練模型,模型可以掌握資料幀的格式。GAN框架由生成模型和判別模型組成。生成模型生成資料,並與實際資料共享相同的特徵。判別模型區分真實資料和偽資料。經過不斷的博弈和兩個模型之間的調整,納什平衡[39]最終,在兩個模型之間達到了最大值,並且判別器無法區分真實資料和生成的資料。當我們訓練單個神經網路時,損失函式[40]表示模型的訓練程度。訓練過程不斷優化損失函式。在此過程中,我們僅確定一個損失函式的全域性最優值。但是,在訓練GAN模型時,我們需要同時動態優化兩個損失函式。以下公式將目標函式形式化,該目標函式需要針對生成器和鑑別器進行優化:

   \frac{min}{G}\frac{max}{D} V(D, G) = E_{x~p_{data}} (x) [log D(x)] + E_{z~pz} (z)[ log(1 − D(G(z)))]

 式中,D為鑑別器,G為生成器。D(x)的概率表示x是真實資料,和G(z)的概率分佈樣本資料z。整體優化的目標是玩遊戲一個極大極小值函式V (D、G),需要做出正確的概率最大化歧視以及最小化的概率生成的樣本是歧視。

儘管使用廣泛,但GAN的應用仍存在一些缺點,例如不收斂,梯度消失[41]和模式崩潰[42]。為了避免這些問題,需要對神經網路模型進行合理的架構設計。另外,必須採用各種模型訓練策略。在上述問題中,模式崩潰表示與原始資料相比,生成的資料丟失了一些類別。這個問題需要引起更多關注,因為在模糊測試中,生成資料的多樣性會影響測試覆蓋率。改善測試範圍有助於發現更多錯誤。

C.WGAN

已經進行了試圖解決上述問題的研究[43]。Arjovsky等。 [4]提出了Wasserstein GAN,它解決了這個問題。與GAN相比,Wasserstein GAN具有以下特點:

首先,Wasserstein GAN使用地球移動距離(EMD)來測量兩種分佈之間的差異。定義如下:

其中Pr和Pg表示兩種分佈,γ表示二者的聯合分佈.我們需要計算聯合分佈γ條件下兩個樣本之間最小距離的期望值。這個期望值就是瓦瑟斯坦距離。瓦瑟斯坦度量是指導培訓過程的有效指標。值越小,真實分佈與生成分佈之間的Wasserstein距離越小,說明兩個模型訓練得越好。在Wasserstein GAN中,鑑別器的損失函式為:

生成器的損失函式為:

在訓練過程中,生成器和鑑別器的損失連續最小化。這些損失最終成為最優的。

其次,採用權值裁剪來滿足Lipschitz連續性,可以加快模型的收斂速度和穩定訓練。通常,在更新每個引數後,權值剪裁將權值引數截斷為不超過一個固定常數C。

第三,優化方法[44]可以從廣泛的技術中選擇,以優化損失函式。不同的方法有不同的特點。基於動量的優化演算法,如動量SGD[45]和Adam[46],不能在所有情況下都保持訓練的穩定;因此,在選擇優化方法時沒有使用它們。

第四節 模糊系統設計

 
   在本節中,我們首先概述基於WGAN的通用模糊測試方法,然後詳細闡述主要方面。整個執行過程的整體架構在 圖1和2中示出
 

圖2.面向工業控制協議的常規模糊測試過程。

圖3.生成器(左)和鑑別器(右)的體系結構設計。

A.概述

我們的方法旨在從從給定的工業控制網路中提取的原始網路資料包中智慧地學習格式。學習之後,我們可以獲得一個具體的生成模型,該模型可以生成類似於真實資料框架的格式正確的資料框架。然後,我們將生成的資料幀傳送到目標系統,並及時監視整個系統以記錄異常行為。這種處理方法可用於測試大多數當前的工業控制協議。此方法的各個階段描述如下:

1)資料幀預處理

原始網路資料包採用十六進位制形式,無法直接輸入到神經網路中進行處理。預處理原始資料需要兩個步驟。首先,我們將原始網路資料包轉換為數字向量。其次,我們使用聚類策略以及資料增強策略來處理資料包,這可以幫助提高最終生成資料的多樣性。

2)對抗訓練

我們將此學習問題形式化為求解數學函式的過程。我們訓練基於WGAN的生成器模型的最初目標是獲得一個函式,該函式可以生成與真實資料共享相同資料格式的偽造資料。最終,我們旨在進行攻擊測試並發現目標系統的漏洞。為了實現這個目標,我們需要一個專門設計的神經網路體系結構。因此,最終的訓練模型不僅會生成更具攻擊性的測試資料,而且還會計算輕量級。

3)模糊測試和再培訓

當生成器模型按計劃實現時,我們可以通過執行模型來獲得任意數量的測試用例。然後,我們使用這些測試用例攻擊目標系統。攻擊之後,我們使用導致異常的測試用例重新訓練模型。

在以下各節中,我們將詳細介紹上述三個階段。

B.資料幀預處理

在進行模型訓練之前,首先需要獲取大量的實際資料幀。對這些資料執行初步處理的方法可能會影響最終模型發現漏洞的能力。最終,我們旨在獲得理想的模糊結果。因此,資料預處理也應有助於實現這一目標。一種常見的方法是改善測試的寬度和深度,這可以幫助獲得增強的模糊結果。增加測試深度和寬度的有用技術是增加測試用例的多樣性。我們採用以下方法預處理資料幀。這些方法不僅可以使模型學習資料格式,而且可以保持資料的多樣性。

1).資料框聚類。

為了增強模型對訊息格式的學習,我們使用幾種聚類方法(如幀長度聚類和K-means聚類)對資料進行聚類。這些技術可以將資料幀分類為相似的格式。幀長度聚類是有效的,因為具有相同長度的資料幀總是傾向於共享相同的幀型別。K-均值聚類更傾向於對具有相同功能的幀進行分組。在預處理期間採用這些聚類方法可以有助於建立可以闡明資料幀結構的模型。

2).資料幀增強。

在訓練深度學習模型時,經常使用資料擴充[47]方法來防止過度擬合。在這項研究中,我們使用這種策略來維護生成的資料多樣性。在現實生活中,收集的資料不是均勻分佈的,一些資料幀很少,甚至可以忽略。對於更多樣化的生成資料,我們故意增加了這些資料幀的比例。保持資料多樣性可以幫助增加測試深度和測試範圍。

我們在實驗期間執行了這些方法。

C.對抗訓練

在本節中,我們重點介紹對抗性學習過程。我們首先提取該資料框架學習問題的數學表示式。然後,我們詳細介紹所設計的基於WGAN的模型的特定結構。最後,我們介紹了培訓過程。

1)問題摘要

我們從ICS獲得的原始資料幀是序列的形式。我們可以自然地提取出數學表示式S_{1:n} = (e1, e2, . . . , ex , . . . , en), ex ∈ E and S_{1:n}S^{*},其中E表示十六進位制數的集合,S^{*}是序列集,包括S_{1:n}。大多數元素是英文字母和數字。我們的目標是找到一個函式f_{T},捕獲這些真實世界的資料幀的分佈,並能產生具有相同特徵的資料幀。

WGAN模型包括生成器模型和鑑別器模型。我們將生成器模型形式化為一個函式f_{G},它使用高斯噪聲作為輸入,然後輸出序列S_{g|1:n}。我們把鑑別器看作一個函式f_{D},區分實際資料S_{r}和生成資料S_{g}。EMD可以表示訓練程度,如式(2)所示。訓練過程的目的是不斷優化鑑別器的損失函式和生成器的損失函式。最後,函式f_{G}幾乎與函式f_{T}具有相同的分佈。

上述形式描述就是本研究中對抗性學習問題的建模。

2)模型設計

本小節詳細介紹了兩個模型的結構設計。我們的設計理念之一是在達到效果的前提下儘可能簡化模型。由於其減少計算資源消耗的能力,簡化的模型可以在將來方便地部署到嵌入式裝置。圖3示出了鑑別器和發生器的體系結構。

實驗中的生成器由一個輸入層,三個隱藏層和一個輸出層組成。關於鑑別器的神經網路結構,在每一層中,我們使用如圖3所示的完全連線的神經網路結構。這種結構可以使生成器模型的計算更輕鬆。關於輸入到神經網路的資料的大小,我們根據ICS中的最大幀長度進行設定。我們將不同長度的框架對齊到相同的長度。因此,神經網路可以均勻地處理資料。在中間層,我們選擇整流線性單位(ReLU)作為啟用函式[48]。選擇ReLU作為啟用功能的原因在於這些方面。首先,它可以避免模型訓練的反向傳播中消失的梯度問題。其次,它可以使某些神經元的輸出變為零,這有助於避免過度擬合。第三,它可以減少計算成本。在輸出層中,我們選擇S形函式[49]因為其輸出在0到1之間,所以它作為啟用函式。生成器的輸入是高斯分佈噪聲,這是一種常見的做法。我們根據特定的標準偏差初始化權重矩陣。我們根據WGAN的理論刪除了最後的日誌操作。我們選擇均方根根演算法來優化損失函式。該演算法可以在引數調整過程中減少抖動並加快訓練速度。

鑑別器包括一層輸入層,一層隱藏層和一層輸出層。關於鑑別器的神經網路結構,我們還使用了完全連線的神經網路。整個鑑別器僅包含三層。這種相對較淺的網路可以節省計算資源。鑑別器的輸入資料大小與生成器的輸出大小相同。鑑別器的輸出層根據WGAN的原理去除了S型函式,而WGAN的原理與大多數鑑別器模型不同。在每個訓練時期,在更新權重矩陣之後,我們將所有權重值都裁剪到固定範圍,以滿足Lipschitz連續性。

該體系結構設計的目的之一是減少模型的計算成本[50]。在這項研究中,兩個因素與計算成本密切相關。(i)一種是模型架構複雜度[51]例如網路結構和引數數量。(ii)另一個是資料集的複雜性。複雜的資料集包含更多需要學習的功能。在這裡,我們關注模型架構的複雜性。首先,由於較深的網路增加了基本乘法累加運算的數量,因此上述設計採用較淺的網路結構,這有助於降低計算成本。其次,如果將一維ICP資料幀編碼為二維矩陣,則矩陣將非常稀疏。處理卷積網路會增加計算成本。此外,卷積運算涉及大量引數,這佔用了大量記憶體。因此,無需卷積運算,我們的模型設計可以降低計算成本。

3)模型訓練

一旦設計了模型的體系結構,我們就開始訓練模型。進行對抗訓練[52],以不斷優化鑑別器的損失函式和生成器的損失函式。在此優化過程中,將連續調整權重矩陣中的值,從而得到一個可以學習實際資料幀結構的穩定模型。由於基於WGAN的架構的正確設計,兩個模型都可以同時進行訓練,而無需精心安排訓練順序。我們將訓練資料分成相等大小的批次作為輸入,直到用盡所有訓練資料。該過程將執行幾個時期,直到可以生成高度真實的資料為止。

通常,我們希望生成的資料儘可能與真實資料相似。但是,我們的最終目標是獲得有效的模糊測試結果並找出儘可能多的錯誤。為了獲得改進的模糊結果,我們需要保持生成的資料與實際資料之間的差異。因此,我們特意為每10個訓練時期儲存生成器模型,而不僅僅是最終的最佳訓練模型。使用這種策略,我們可以生成具有不同相似度的測試資料。此外,我們不僅可以影響資料以符合協議特定的資料包結構,還可以提高測試資料內容的多樣性。因此,我們可以增加模糊測試的寬度和深度[53]

4)模型驗證

在最終模型的形成中,另一個重要步驟是模型驗證。此步驟在模型訓練結束時執行。我們使用它來評估模型效能並調整超引數。模型驗證使用驗證資料集驗證模型,該驗證資料集與訓練資料集共享相同的分佈。一方面,它可以防止模型過度擬合訓練資料。另一方面,它有助於我們確定最佳超引數,例如本研究中的學習率和權重裁剪的邊界值。

經過模型訓練和驗證後,我們獲得了生成器模型,該模型可以生成與實際格式共享相同格式的資料幀。同時,變數值存在特定差異。正式的功能f_{G} 代表訓練有素的生成器幾乎表現出與目標函式相同的分佈 f_{T}

D.模糊測試和重新訓練

此時,我們可以使用訓練有素的生成器模型生成任意數量的測試資料幀。這些資料幀的型別與現實世界的資料幀相似。我們將測試資料幀傳送到測試目標並記錄任何可能的響應。在此傳送和接收過程中,程式模組之一輸出日誌檔案,記錄所有通訊過程和異常行為。該日誌檔案為實驗分析提供了基礎。除了程式監視之外,我們還手動分析整個過程,以發現潛在的異常情況。在模糊測試過程中,會找到導致系統異常的資料幀序列,然後分別記錄下來以進行模型重新訓練。

在第一輪模糊測試之後,我們使用錯誤觸發序列重新訓練模型。此操作的邏輯基礎是電腦科學中的時間區域性性和空間區域性性的原理。為了進行再訓練,我們對記錄的序列執行兩個步驟。首先,我們將突變操作應用於序列,包括單點突變和多點突變。詳細地,突變操作是指在一個或多個隨機位置上對序列資料的隨機修飾。其次,我們使用資料增強來增加這些特定序列的效果,因為小的資料比率不會對模型的再訓練產生實質性影響。完成這些步驟後,我們將使用更新的訓練資料集再次訓練模型。

第五節:實驗

在本節中,我們將通過實驗評估該方法的有效性。在先前的研究中[54],我們訓練了基於GAN的模糊資料生成模型。因此,後續分析將基於WGAN的方法與基於GAN的方法進行了比較。為了從各個維度分析實驗結果,我們在實驗中使用了不同的Modbus-TCP實現,包括MOD_RSSim v8.20,Modbus Slave v6.0.2和Diasalve v2.12。這些程式是根據Modbus協議規範設計的。最後,為了顯示上述方法的適應性,我們將其用於測試另一種工業控制協議EtherCAT協議。

A.評估指標

在本節中,我們介紹了關於訓練和模糊比較的效能度量。對深度對抗性學習的評價,尤其是對GAN的評價,並不是一件容易的事情。一些定量標準[57][59]最近才出現,用來評估GAN在影像生成中的作用。在這個領域沒有統一的驗證度量和基準。因此,根據我們的研究目的和具體情況,我們提出了流動度量(flowing metrics)。其中TIAR和DGD為訓練效能指標,其餘為模糊有效性指標。

1) 測試輸入接受率(TIAR)

TIAR指的是測試目標接受的測試用例的百分比。它反映了測試資料生成的效率。較高的TIAR表示生成的測試用例在格式方面與真實世界的資料幀有較高的相似性。相反,較低的TIAR表明生成的資料質量較低,需要調整模型架構或重新培訓模型。因此,我們選擇它作為模型訓練和驗證的效能指標之一。我們定義TIAR如下:

其中nSent是傳送的測試用例總數,nAccept是接受的測試用例總數。在實驗中,我們通過調整兩個超引數來獲得較高的測試通過率。這兩個因子分別是訓練期數和損失函式值。此外,在模型的訓練或驗證過程中,我們用它作為指標來調整其他超引數,如學習率和權值裁剪的邊界值。

2)漏洞檢測能力(AVD)

AVD[54]指的是發現漏洞的能力,這是對該方法有效性的最直接的度量。我們不僅計算了在模糊測試中發現的漏洞數量,而且還計算了用於識別這些漏洞的測試用例的數量。它是揭示一個bug所需的測試用例的平均數量。所發現的漏洞也與測試目標密切相關。如果目標有更多的漏洞,這個值可能會相應增加。為了便於比較分析,在實驗中我們只關注方法本身的有效性。具體公式如下:

其中nBugs表示發現的bug的數量,分母ncase是使用的測試用例的數量。它可以被非正式地視為每100個測試用例中發現的錯誤數量。值越大,發現漏洞的能力越大;值越低,發現漏洞的能力就越小。

此外,並不是所有的模糊測試技術都能找到目標系統中的所有漏洞。所提出的方法不能保證發現測試目標中的所有漏洞。因此,這個度量僅僅依賴於發生的漏洞。

3)生成資料多樣性(DGD)

DGD是指維持生成資料多樣性的能力。生成的資料幀的多樣性可能會導致異常。此指標關注生成資料中的資料型別數量。當生成的資料型別數量明顯小於訓練資料型別數量時,說明模型效能較差,需要進行調整。因此,我們選擇它作為另一個模型效能度量。此外,研究[60][61]認為基於多樣性的方法是一個有用的測試用例選擇準則。因此,這也是本研究方法有效性的一個重要指標。程式碼覆蓋率也是一個很好的測試用例選擇標準。但是,本研究中的測試目標沒有原始碼。因此,我們使用DGD來評價該方法。

4)每小時生成測試用例(TCGPH)

TCGPH直接指示模型每小時可以生成的測試用例。

其中,generatCases表示由模型生成的測試用例的數量,hoursSpent表示生成這些測試用例所花費的時間。這個等式反映了測試用例生成的速度。

                                                                        圖4.整個模糊系統的架構。

                                  圖5.modbus-TCP的報文格式

5)訓練時間(TT)

TT指建立最終模型所花費的時間。較短的訓練時間可以提高測試效率。不同的神經網路結構、不同的訓練資料量、不同的計算硬體、不同的計算演算法都會影響訓練時間。在本研究中,我們只關注不同的模型架構對訓練時間的影響。

B.Modbus-TCP和EtherCAT

 1)Modbus-TCP

Modbus是序列通訊協議,最初由Modicon於1979年釋出,用於其可程式設計邏輯控制器。該協議已經成為事實上的標準通訊協議,並且當前是連線工業電子裝置的可用手段。它的安全對工業控制行業的安全具有重要意義。Modbus協議具有許多變體,包括Modbus TCP和Modbus UDP。在本研究中,我們使用Modbus-TCP作為模糊目標。為了闡明此研究,我們簡要介紹Modbus-TCP幀結構。如圖5所示,資料具有固定格式。在通訊過程中,如果資料格式不正確,則接收器不接受資料。Modbus-TCP協議通過呼叫TCP協議來實現。具有該格式的訊息將作為TCP資料幀的資料元件進行傳輸。該元件是模型需要學習和生成的。

2)EtherCAT

EtherCAT是提供高實時效能的協議,並在工業裝置之間提供了主從通訊模式。由於其高實時性和開放性,它已成長為市場領先的技術。典型的EtherCAT網路由一個主機和多個從機組成。主機生成電報,並將其傳送到整個網路。這些電報反映在每個網段的末尾,併傳送回主站。在這裡,我們應用模糊方法來學習和生成這些電報。

C.培訓資料和驗證資料

深度學習中的訓練資料和驗證資料顯著影響模型的形成。因此,我們需要準確地收集和預處理這些資料。在實驗中,我們分別從兩個工業控制協議通訊環境中收集了資料。一種基於Modbus-TCP協議,另一種基於EtherCAT協議。在這些資料的劃分中,我們選擇80%作為訓練資料,其餘20%作為驗證資料。

1)Modbus-TCP

  為了獲得Modbus-TCP通訊資料,我們使用Modbus Poll 4.3.4,Modbus Slave 4.3.1和VPSD構建了基於Modbus-TCP的通訊環境。Modbus輪詢充當Modbus-TCP主站,而Modbus從站充當從站。當主站與從站通訊時,我們使用Wireshark [62](一種廣泛使用的網路協議分析器)來捕獲通訊資料。具體而言,我們捕獲了1000,000條資料,包括各種型別,其中80%作為訓練資料,而20%作為驗證資料。

2)EtherCAT

為了捕獲EtherCAT通訊資料,我們準備了如圖6所示的基於EtherCAT的工業系統。主站是Beckhoff [63]工業PC,從站包括EK1100 [64],EL1004 [65]和EL2004 [66]。我們使用ET2000 [67]作為主從之間的線上偵聽器。執行在計算機上的Wireshark可以從偵聽器獲取並顯示大量的通訊資料訊息。處理後,大量資料訊息將用作EtherCAT協議的訓練資料。

圖6.EtherCAT協議通訊環境。

D. 評價設定

1)實驗環境

在深度學習問題中,模型訓練通常會大量消耗計算資源。因此,我們介紹了實驗環境以闡明所提出的技術。該模型在具有8個處理器(Intel(R)CoreTM i7-6700K CPU@4.00GHz),16.0GB記憶體(RAM)Nvidia GeForce GTX 1080 Ti(11GB)和64位Microsoft Windows 10 Professional的計算機上進行了訓練作業系統,基於x64的處理器。發起攻擊時,模擬器將在另一臺裝有4個處理器的計算機上執行(Intel(R)CoreTM i5-5300U CPU@2.30GHz)8.00GB記憶體(RAM)和64位Microsoft Windows 10 Professional作業系統,x64-基於處理器。

2)模型訓練設定

對抗網路包含兩個神經網路模型,它們需要不同的資料輸入。真實世界的資料訊息和生成的資料訊息都被輸入到鑑別器模型中。高斯噪聲[0,1]輸入到生成的模型中。對於總共40個訓練時期,學習率設定為0.001。在每個引數更新之後,我們將權重值裁剪為[-0.01,0.01]。我們每10個時間段儲存一次生成器模型。這些模型可以生成更多的測試用例。使用CPU訓練模型需要20個訓練時期的10.7小時訓練時間,對硬體資源和時間資源的要求較低。使用GPU僅需要90分鐘的訓練時間即可完成20個訓練時期,這非常高效。

E.模型驗證結果

在模型訓練結束時,我們使用驗證集來驗證模型效能。因此,我們可以確定模型是否在訓練集上過度擬合以及選擇模型超引數。根據我們的研究目的和實際情況,我們選擇TIAR和DGD作為驗證指標。

                                       圖7.不同學習速率下的模型驗證

                                               圖8.不同權值下的模型驗證。

詳細地說,我們在驗證集上執行模型,並計算不同學習率(如0.02和0.001)下的TIAR指標。圖7結果表明,當學習率為0.001時,TIAR指數可以穩步提高。因此,將學習率設定為0.001比較合適。

我們還在不同的權重剪裁值下對驗證集執行模型。詳細地說,我們將權重剪裁值設定為[-0.01,0.01]和[-0.02,0.02]來進行驗證。圖8為DGD指標的統計結果。可以看出,當數值設定為[-0.01,0.01]時,模型較好地保持了DGD。

F.實驗結果

在本節中,我們將從兩個方面詳細說明實驗結果,以證明該方法的有效性。我們首先介紹實驗中的例外情況。然後,我們揭示一些統計結果及其分析。在這兩個方面,與我們以前的研究進行了比較。我們最終將我們提出的方法與傳統方法進行比較。此外,我們還展示了另一種工業協議EtherCAT協議的測試結果。

1)發現異常

在這項研究中,我們有兩種模型:基於GAN的模型和基於WGAN的模型。為了進行比較,我們將生成的資料幀傳送到相同的三種型別的Modbus從站。通過使用兩個模型,我們成功觸發了異常。如表2所示,基於WGAN的模型展現出增強的發現錯誤的能力和速度。我們傳送了由這兩個模型生成的30,000個測試案例。與基於GAN的模型相比,基於WGAN的模型導致更多錯誤。下面詳細描述其中一些錯誤。

表2.Modbus-TCP中的觸發異常和觸發頻率。基於GAN的模型與基於WGAN的模型的比較。固定變數是傳送的測試用例數量和相同的測試目標,指標是觸發的異常數量。

攻擊Modbus_Rssim會導致它崩潰。我們傳送了大約700個資料幀,然後彈出視窗提示框,表明程式已經崩潰。為了確定原因,我們打包了700個資料幀,然後將它們傳送給Modbus從伺服器。然而,沒有出現異常。這一比較表明Modbus_Rssim在其實現中存在缺陷。

在進一步的攻擊中,我們發現Modbus_Rssim提示顯示異常資訊。站ID XX離線,沒有響應傳送。這種異常現象在短時間內會發生好幾次。

在模糊測試的Modbus從機,我們發現另一個例外,在傳送大約1000資料幀,目標程式自動關閉視窗本身。我們認為記憶體溢位是原因,這表明程式設計師在實現模擬器時可能不會考慮極端情況。

其他的異常,如沒有找到檔案和偵錯程式記憶體溢位被發現時,攻擊的Diaslave。這些異常只發生過一兩次,因此沒有詳細討論。需要注意的是,不同的異常行為可能是由同一原因引起的。在研究中,由於測試目標沒有原始碼,我們沒有進一步區分每個異常背後的本質原因。

通常,與基於GAN的模型相比,基於WGAN的模型有更多的觸發異常和觸發頻率。

2) TIAR

通過計算整個過程的TIAR,我們可以看到TIAR隨著訓練週期的增加而增加,如圖7所示。此行為表明越來越多的生成資料具有正確的訊息格式。這些資料將被模糊目標接受。我們選擇Modbus Slave作為目標。如果它正常接受資料,則資料格式可能是正確的。與基於GAN的模型相比,基於WGAN的模型在最後階段可以達到更高的TIAR,說明自定義的基於WGAN的模型比基於GAN的模型具有更高的格式精度。TIAR的最高點增加到85%左右。實驗中有部分資料格式不正確。最初,TIAR顯著增加;隨著進一步的訓練,它趨於緩慢增加,最終趨於平緩,如圖9所示。

                                    圖9.基於WGAN的方法vs基於GAN的方法。

\

   圖10.基於WGAN的方法vs基於GAN的方法。

3) AVD

AVD隨著訓練時間的增加而增加,說明發現的錯誤越來越多。最終達到穩定的平穩階段。在實踐中,所達到的水平不僅與實驗方法有關,而且與測試目標有關。如果要測試的目標包含許多bug,圖中線的峰值將會更高。在實驗中,選擇Modbus從站作為測試目標。從圖10可以看出,在處理相同的協議時,定製的基於WGAN的bug查詢模型比基於GAN的模型更有能力。這一推論驗證了我們的方法的有效性和潛力。


 

4) DGD

   為了與基於GAN的模型進行比較,在原始訓練資料中總共準備了13種資料幀。從圖11可以看出,基於WGAN的模型保持了原始資料的多樣性。經過訓練,基於WGAN的模型仍然生成12種型別的訊息。然而,基於GAN的模型並不像原始資料那樣保持多樣性。因此,基於WGAN的模型在維護資料多樣性方面比基於GAN的模型具有優勢。通常,資料型別越豐富,檢測異常的能力就越強。因此,基於WGAN的模型可以檢測更多的bug,如表2所示。

 ​

                           圖11。基於WGAN的方法與基於GAN的方法在DGD上的比較。

5) TT

我們使用相同數量的訓練資料和相同的GPU來訓練兩種不同的模型。最後,我們比較了培訓所花費的時間長度。結果如圖12所示。與基於WGAN的模型相比,基於GAN的模型需要更長的訓練時間。這主要是由於與基於GAN的模型相比,所提出的模型設計得更好。此外,通過對比證明,我們針對性的設計,在降低計算代價方面,已經取得了相應的效果。

 ​

                        圖12.基於WGAN的方法與基於GAN的方法在TT上的比較。

6) TCGPH

我們使用相同的計算硬體來生成測試用例。最後對不同模型的TCGPH進行了比較。結果如圖13所示。該模型顯示了生成測試用例的效率的提高。快速生成意味著我們可以在短時間內獲得許多測試用例,允許快速測試目標。該功能可以提高測試效率。

 uploading.4e448015.gif轉存失敗重新上傳取消 uploading.4e448015.gif轉存失敗重新上傳取消 uploading.4e448015.gif轉存失敗重新上傳取消 轉存失敗重新上傳取消

                               圖13.TCGPH中基於WGAN的方法與基於GAN的方法比較。

7) COMPUTATIONAL COST

為了量化計算成本,我們對兩種模型在相同的計算硬體和相同的計算目標下的時間消耗進行了比較。該模型的計算時間較短,可以降低計算成本。在比較中,我們顯示了花在訓練模型30個訓練時期的時間。在計算硬體方面,我們分別使用CPU和GPU。具體時間消耗如表3所示。結果表明,在相同的計算目標下,我們的神經網路結構使用較少的計算時間。因此,我們設計的模型可以降低計算量。

表3.在相同的計算硬體下的計算成本。

 uploading.4e448015.gif轉存失敗重新上傳取消 uploading.4e448015.gif轉存失敗重新上傳取消 uploading.4e448015.gif轉存失敗重新上傳取消 轉存失敗重新上傳取消

8) COMPARISON WITH THE TRADITIONAL METHODS(與傳統方法比較)

傳統方法依賴專業人員根據已知的訊息格式設計測試用例。整個過程可能需要幾天時間,而我們提出的方法只需要幾個小時。因此,該方法比人工方法具有更高的自動化程度和更快的速度。與傳統方法相比,該方法主要是將該方法生成的測試資料的格式和內容與手工方法進行比較。從圖14可以看出,生成的測試資料幀與人工設計的資料幀相似。序列資料中的藍色標記顯示了原始資料的一些變化。儘管並非所有生成的資料都像手工設計生成的資料那樣精確,但它們可以在數量上彌補這一缺陷。因此,我們提出的方法顯示出巨大的潛力,以取代傳統方法。

           圖14.基於WGAN的方法與傳統的Modbus-TCP資料幀生成方法的比較。

9)將該方法應用於另一種工業協議EtherCAT

為了證明該方法的通用性,我們用大量的EtherCAT資料幀對模型進行了20個epoch的重新訓練。通過新的訓練模型,我們可以生成大量的測試用例來攻擊EtherCAT協議。以下將介紹相關細節。

a.在EtherCAT通訊系統中,主從之間的通訊

主站傳送包含多個子訊息的訊息S_{i}。從站通過讀取或修改相應子報文的資料來完成通訊。然後,更新後的訊息^{_{}}S_{i}將作為訊息R_{i}返回到主伺服器。每一次通訊都對應於一個訊息對<S_{i},R_{i}>。如圖15所示,一個框架包括若干子訊息。

                                                        圖15.EtherCAT框架結構,一個框架包括幾個子訊息。

b:記錄測試用例傳送和接收過程

為了記錄傳送和接收的資料,我們開發了一個基於SOEM (Simple Open EtherCAT master)[68]的測試EtherCAT主站,SOEM是一個開源的EtherCAT庫。它可以記錄通訊過程以供進一步分析。

c.檢測到潛在的漏洞

我們發現並計算了這些潛在漏洞,包括資料包注入攻擊,中間人(MITM)攻擊,工作計數器(WKC)攻擊。資料包注入意味著生成的資料訊息已更改了子訊息的,但幀頭中的長度欄位保持不變。MITM表示第三方惡意站點更改了傳輸中的資料,但主伺服器和從屬伺服器沒有注意到更改。在實驗中,如果生成的訊息僅更改資料欄位而不更改地址欄位,並且從屬裝置仍正常接受它,則我們將這種情況視為MITM攻擊。WKC攻擊表示如果WKC值未更改為資料領域的變化。在實驗中,我們傳送生成的資料包文S_{i}到從站並記錄相應的接收報文R_{i}。我們收到大量訊息對。根據上述規則,我們分析並比較了指定的欄位值,並獲得了以下統計結果。通過EtherCAT協議進行的實驗證明,我們的方法可以便利得應用於其他工業控制協議,而無需瞭解協議規範或訊息格式。因此,對於其他工業協議系統的安全性測試是有效的。、

第六節 結論與未來工作

在這項研究中,我們提出了一種基於WGAN的有效模糊方法,以生成有關工業控制協議的模糊資料。該方法可以瞭解實際資料幀的結構和分佈,並在不瞭解詳細協議規範的情況下生成相似的資料幀。允許神經網路學習訊息格式可以節省精力並減少時間。這樣,在測試其他網路協議時,我們不需要了解它們的規格,這很方便。我們精心的架構設計使模型訓練更加有效。我們最終通過與以前的方法進行比較來評估此方法。獲得的結果表明了該方法的應用潛力。此外,我們通過模糊EtherCAT協議證明了其多功能性。

在未來的研究中,必須進行大量研究以建立更智慧,更自動化的模糊系統。考慮到目前的情況,我們打算從以下幾個方面進行研究。首先,我們將使用我們的方法來測試一系列工業控制協議,例如Profibus,Powerlink和未來的TSN(時間敏感網路)[69]。這些協議構成了當前大多數工業控制系統的重要組成部分。其次,我們打算整合每個處理模組以形成一個完整的軟體系統,該系統可以處理大多數網路協議。最後,我們打算用FPGA(現場可程式設計門陣列)[70]實現該模型,以便在有新資料可用時更快地進行更新。原文連結

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章