隨著工業物聯網 (IIoT) 的普及,安全威脅也日益增加,傳統的防禦方法難以應付複雜多變的攻擊手段。深度學習技術在網路攻擊偵測領域展現出巨大的潛力,但訓練深度神經網路模型需要大量的計算資源和時間。本文提出的 Snapshot Ensemble 深度神經網路模型,旨在提高偵測準確率的同時,降低運算成本。透過在訓練過程中儲存區域性最小值的模型引數,並將這些模型整合起來進行預測,SEDNN 模型有效地提升了模型的泛化能力和魯棒性,使其在面對不同型別的攻擊時,都能保持良好的偵測效果。
工業物聯網中的攻擊偵測:根據Snapshot Ensemble深度神經網路模型的方法
1. 簡介
在過去幾年中,由於電子領域的發展和無線系統的改進,「物聯網」(Internet of Things, IoT)這一術語應運而生。物聯網使裝置能夠相互連線並分享資訊和資料,同時執行各自的任務,而不受地點和實體裝置的限制[1]。
工業物聯網(Industrial Internet of Things, IIoT)是物聯網在工業領域的新應用。IIoT使企業能夠高效地執行作業,同時保持品質和驗證[2]。IIoT使得監控和維護任務更加便捷,這將在智慧製造系統的範疇內進行討論[3]。透過整合資訊物理系統(Cyber-Physical Systems, CPS),可以建立一個智慧製造執行系統,以便記錄從生產中獲得的所有資料,並根據對資料的預測進行決策,以實作更好的未來步驟[4]。物聯網已逐漸在不同行業領域得到應用,並創造了一場新的革命,即IIoT或工業4.0 [5, 6],從而提高了行業的效率、安全性和生產力 [7–10]。
根據環境和應用目的,IIoT可以具有不同的架構,但通常可以描述為四層架構,如圖1所示。
圖1:IIoT的四層架構
圖表翻譯: 此圖示展示了IIoT的四層架構,包括物理層、網路層、中介層和應用層。每一層都有其特定的功能和責任,共同構成了IIoT的整體架構。
物理層由所有物理元素組成,如執行器、感測器、機器等。網路層由通訊網路和協定組成。中介層使第二層和第一層之間的通訊成為可能,它由應用程式介面(API)、資料函式庫、雲端伺服器等組成。第四層,即應用層,描述了IIoT的應用。一些應使用案例項包括自主車輛、智慧家居、醫療保健等 [11–15]。
雖然IIoT是促進工業流程的絕佳解決方案,但它也帶來了新的挑戰。隨著裝置開始同時執行,它們會產生有價值的資料,用於線上監控和控制系統,這些資料也可能被攻擊者用來操縱系統效能 [18, 19]。在IIoT中可以執行多種攻擊,其中之一是網路攻擊,這種型別的攻擊本身還有其他變體,如拒絕服務(DoS)、資料型別探測(DP)、掃描等。
Snapshot Ensemble深度神經網路模型
為瞭解決IIoT中的安全問題,本研究提出了一種根據Snapshot Ensemble的深度神經網路模型,用於檢測工業物聯網中的攻擊。
模型架構
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
def create_model():
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(input_dim,)))
model.add(Dropout(0.2))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
model = create_model()
內容解密:
此程式碼段定義了一個簡單的深度神經網路模型,用於二元分類別任務。模型包含兩個隱藏層,分別具有64和32個神經元,並使用ReLU作為啟用函式。此外,還使用了Dropout技術來防止過擬合。輸出層使用sigmoid啟用函式進行二元分類別。模型使用二元交叉熵作為損失函式,Adam作為最佳化器,並監控準確率作為評估指標。
根據快照整合深度神經網路的攻擊偵測模型在工業物聯網中的應用
隨著工業物聯網(IIoT)的快速發展,系統變得更加複雜,資料量也變得龐大,使得傳統方法難以應對潛在的安全威脅。機器學習(ML)因其在處理大量資料和檢測安全威脅方面的優越性,成為了當前研究的熱點。
工業物聯網安全中的機器學習應用
過去的研究表明,機器學習演算法能夠有效地檢測和分類別工業物聯網中的安全威脅。例如,Rouzbahani等人提出了一種整合深度卷積神經網路(EDCNN)模型,用於智慧電網中的電力竊取檢測,取得了0.981的準確率。Farahnakian和Heikkonen提出了一種根據深度自動編碼器(DAE)的入侵檢測系統,在KDD-CUP'99資料集上取得了94.71%的準確率。
研究方法
本研究採用了一個來自Kaggle的開放資料集,該資料集包含了不同物聯網節點、感測器和應用程式之間的通訊資料。在這個資料集中,多種攻擊被執行在IIoT應用程式上,從而導致了357,952個資料樣本中的部分異常。本研究旨在檢測這些攻擊,但攻擊的分類別將在另一篇論文中討論。
資料預處理
首先,對資料集進行了預處理,以確保模型的輸入資料是乾淨和一致的。
提出的模型
本研究提出了一種快照整合深度神經網路(SEDNN)模型,用於檢測工業物聯網中的攻擊。該模型具有高準確率,能夠有效地檢測出安全威脅。
實驗結果
實驗結果表明,所提出的SEDNN模型在檢測工業物聯網中的攻擊方面表現出色。與其他模型相比,該模型具有更高的準確率和更好的效能。
程式碼範例
import pandas as pd
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# 載入資料集
df = pd.read_csv('dataset.csv')
# 資料預處理
X = df.drop('target', axis=1)
y = df['target']
# 分割訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 建立SEDNN模型
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(X.shape[1],)))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 編譯模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 訓練模型
model.fit(X_train, y_train, epochs=10, batch_size=128)
# 評估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f'測試集準確率:{accuracy:.3f}')
內容解密:
- 首先,我們載入了必要的函式庫,包括
pandas用於資料處理,sklearn用於資料分割,以及tensorflow.keras用於建立神經網路模型。 - 載入資料集並進行預處理,將特徵和目標變數分開。
- 使用
train_test_split函式將資料分割為訓練集和測試集。 - 建立了一個簡單的SEDNN模型,包含兩個隱藏層和一個輸出層。
- 編譯模型時,使用二元交叉熵作為損失函式,Adam作為最佳化器,並監控準確率。
- 訓練模型並在測試集上進行評估,輸出測試集的準確率。
本研究證明瞭SEDNN模型在工業物聯網安全威脅檢測中的有效性,為未來相關研究提供了參考。
資料預處理
為了從機器學習(ML)模型中獲得可接受的結果,一個全面的資料集是主要需求。在資料探勘中,大部分時間都花費在資料處理上,而資料處理中最關鍵的問題是缺失值。缺失值可能由各種原因引起,例如斷電、感測器損壞或網路攻擊。
在這個資料集中,存在缺失值。直接刪除這些缺失值可能會導致丟失其他欄位中的有價值資料。因此,需要替換這些缺失值。圖2顯示了攻擊檢測演算法的流程圖。替換缺失值的處理過程如下:
3.2.1 特徵選擇
首先,我們需要選擇要根據哪些特徵來建立模型。表1顯示了所選的特徵,並展示了對這些特徵進行編碼的方法。
3.2.2 替換缺失/NaN值
反向差分編碼(Backward Difference Encoding)
這是一種分類別編碼系統。當對具有K個類別的變數集進行迴歸分析時,這些變數將以K-1個虛擬變數的形式進入迴歸模型。這些K-1個變數的迴歸係數對應於單元格均值的線性假設。在這種編碼系統中,將某個類別變數層級的依賴變數均值與前一個相鄰層級的依賴變數均值進行比較。
標籤編碼(Label Encoding)
在這種編碼方式中,每個變數都會被賦予一個數字。模型需要能夠理解“空白”、“False”和“None”變數之間的差異,因此不能將它們全部指定為0。表2展示了賦予每個變數的值。
3.3 快照整合深度神經網路(SEDNN)
本文提出了一種快照整合深度神經網路(SEDNN)來檢測資料集中的網路攻擊。普通的整合深度神經網路(EDNN)的一個缺點是計算成本高,因此在普通硬體上,訓練和測試的時間會很長。為了克服這個問題,本文採用了SEDNN模型。SEDNN與普通EDNN的不同之處在於,每當SEDNN達到一個區域性最小值時,它都會儲存模型的權重和偏差,直到模型找到最佳最小值,從而得到一組錯誤率低的神經網路。在這個過程之後,模型將整合這組模型中的所有模型,從而得到完美的模型。該演算法使用梯度下降法來在每一步中找到最小值。
深度神經網路架構
對於DNN層,考慮了兩種型別的啟用函式。前三層使用了“Relu”啟用函式,最後一層使用了“Sigmoid”函式,以進行二元分類別。作為輸出,測試集中的每個資料都將被標記為0(正常)或1(攻擊)。圖3展示了所提出演算法的視覺化,DNN的架構如圖4所示。
3.4 評估引數
為了評估ML模型,可以使用一些引數。在本文中,將簡要解釋這些引數。在計算評估引數時使用的一些術語需要定義。
- 真陽性(True Positive):模型正確預測正類別的結果。
- 真陰性(True Negative):模型正確預測負類別的結果。
- 假陽性(False Positive):模型錯誤預測正類別的結果。
- 假陰性(False Negative):模型錯誤預測負類別的結果。
精確度(Accuracy)
精確度是評估ML模型最常用的指標,它被定義為正確預測的結果與總預測結果的比率。然而,精確度並不總是能反映模型的真實效能。只有當資料集對稱,假陽性和假陰性幾乎相同時,精確度才是一個可靠的指標。精確度的計算公式如公式1所示。
Accuracy = (TP + TN) / (TP + TN + FP + FN)
精準度(Precision)
精準度是真陽性與所有樂觀預測的比率。精準度的計算公式如公式2所示。高精準度意味著低假陽性率。
# 計算精確度和精準度的範例程式碼
def calculate_metrics(tp, tn, fp, fn):
accuracy = (tp + tn) / (tp + tn + fp + fn)
precision = tp / (tp + fp) if tp + fp != 0 else 0
return accuracy, precision
# 範例用法
tp = 100 # 真陽性
tn = 50 # 真陰性
fp = 20 # 假陽性
fn = 30 # 假陰性
accuracy, precision = calculate_metrics(tp, tn, fp, fn)
print(f"Accuracy: {accuracy:.4f}")
print(f"Precision: {precision:.4f}")
程式碼解密:
上述程式碼定義了一個函式calculate_metrics,用於計算精確度和精準度。該函式接受真陽性(tp)、真陰性(tn)、假陽性(fp)和假陰性(fn)作為輸入,並傳回計算出的精確度和精準度。在範例用法中,我們給出了具體的tp、tn、fp和fn值,並呼叫函式計算和列印精確度和精準度。
此圖示為評估指標計算流程: 圖表翻譯: 此圖示呈現了評估機器學習模型效能指標的計算流程。首先收集真陽性、真陰性、假陽性和假陰性的資料,接著計算精確度和精準度,最後輸出結果。這個過程對於理解模型的表現至關重要。
根據Snapshot Ensemble的深度神經網路模型在工業物聯網中的攻擊偵測
摘要
本文提出了一種根據Snapshot Ensemble的深度神經網路(SEDNN)模型,用於工業物聯網(IIoT)中的網路攻擊偵測。該模型透過在搜尋全域最小值的過程中儲存區域性最小值的權重和偏差,形成多個DNN模型,並最終結合這些模型進行預測。在DS2OS資料集上的實驗結果表明,該模型達到了90.58%的準確率和90.48%的F1-Score,展現了優異的效能。
1. 簡介
隨著物聯網(IoT)技術的快速發展,工業物聯網(IIoT)逐漸成為現代工業控制系統的重要組成部分。然而,IIoT的安全問題也日益突出,網路攻擊的威脅不斷增加。因此,開發有效的網路攻擊偵測技術對於保護IIoT系統的安全至關重要。
2. 相關研究
許多研究已經探討了在IoT和IIoT中使用機器學習和深度學習技術進行網路攻擊偵測的方法。例如,使用卷積神經網路(CNN)、遞迴神經網路(RNN)等模型來檢測異常流量和識別攻擊行為。然而,這些方法大多需要大量的標記資料,並且在面對未知的攻擊型別時可能表現不佳。
3. 方法論
本文提出的SEDNN模型結合了Snapshot Ensemble技術和深度神經網路(DNN)的優勢。Snapshot Ensemble是一種透過在訓練過程中儲存多個區域性最優模型,並將它們組合成最終模型的技術。這種方法可以提高模型的泛化能力和魯棒性。
3.1 評估指標
為了評估模型的效能,我們使用了多個評估指標,包括準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1-Score。
精確率是指在所有被預測為正類別的樣本中,真正為正類別的比例。其計算公式如下: Precision = TP / (TP + FP) #### 內容解密:
- TP(True Positive)代表真正為正類別且被正確預測的樣本數。
- FP(False Positive)代表實際為負類別但被錯誤預測為正類別的樣本數。
- 精確率反映了模型預測正類別的準確程度。
召回率是指在所有實際為正類別的樣本中,被正確預測為正類別的比例。其計算公式如下: Recall = TP / (TP + FN) #### 內容解密:
- TP(True Positive)代表真正為正類別且被正確預測的樣本數。
- FN(False Negative)代表實際為正類別但被錯誤預測為負類別的樣本數。
- 召回率反映了模型對正類別樣本的檢測能力。
F1-Score是精確率和召回率的調和平均值,用於綜合評估模型的效能。其計算公式如下: F1-Score = 2 * (Precision * Recall) / (Precision + Recall) #### 內容解密:
- F1-Score綜合考慮了精確率和召回率,能夠平衡模型的準確性和檢測能力。
4. 實驗與結果
4.1 軟體與硬體組態
實驗是在Python 3.7.4環境下進行的,使用了Intel Core i7-97580H CPU和16.0 GB RAM。模型的實作根據TensorFlow框架。
4.2 結果分析
實驗結果顯示,SEDNN模型在DS2OS資料集上達到了90.58%的準確率和90.48%的F1-Score。混淆矩陣的結果如表4所示,進一步驗證了模型的優異效能。
| Actual\Detected | Normal | Attacker |
|
---
-
---
-
---
-
---
--|
---
-
---
-|
---
-
---
---
|
| Normal | 49,478 | 7,123 |
| Attacker | 3,285 | 50,613 |
圖表翻譯:
此圖示展示了SEDNN模型的混淆矩陣,矩陣中的數字代表了不同類別的樣本數量。從矩陣中可以看出,模型對於正常和攻擊樣本都有較高的檢測準確率。
圖5和圖6分別展示了模型的準確率和損失率變化曲線。從圖中可以觀察到,由於使用了多個DNN模型的Snapshot Ensemble技術,模型的準確率和損失率曲線呈現出一定的波動,但整體上仍然保持了較高的準確率和較低的損失率。
@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle
title 工業物聯網攻擊偵測根據Snapshot Ensemble深度學習
package "Snapshot Ensemble 深度學習" {
package "IIoT 安全挑戰" {
component [網路攻擊威脅] as threat
component [複雜攻擊手段] as complex
component [DS2OS 資料集] as dataset
}
package "SEDNN 模型架構" {
component [深度神經網路] as dnn
component [區域性最小值儲存] as snapshot
component [模型整合預測] as ensemble
}
package "效能優勢" {
component [泛化能力提升] as general
component [魯棒性增強] as robust
component [監控維護] as monitor
}
}
collect --> clean : 原始資料
clean --> feature : 乾淨資料
feature --> select : 特徵向量
select --> tune : 基礎模型
tune --> cv : 最佳參數
cv --> eval : 訓練模型
eval --> deploy : 驗證模型
deploy --> monitor : 生產模型
note right of feature
特徵工程包含:
- 特徵選擇
- 特徵轉換
- 降維處理
end note
note right of eval
評估指標:
- 準確率/召回率
- F1 Score
- AUC-ROC
end note
@enduml
圖表翻譯: 此圖示展示了SEDNN模型的流程圖,從資料預處理到訓練模型再到評估效能,最終輸出結果。流程圖清晰地展示了模型的運作過程。