在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于機器學習的汽車CAN總線異常檢測方法

上海控安 ? 來源:上海控安 ? 作者:上海控安 ? 2023-01-17 10:49 ? 次閱讀

作者 | 張淵策上海控安可信軟件創新研究院研發工程師

來源 | 鑒源實驗室

目前機器學習是研究車輛網絡入侵檢測技術的熱門方向,通過引入機器學習算法來識別車載總線上的網絡報文,可實現對車輛已知/未知威脅的入侵檢測。這種基于機器學習的異常檢測技術普適性較強,無需對適配車型進行定制化開發,但存在異常樣本采集數量大和訓練難度高的問題。本文將結合個人經驗對基于機器學習的汽車CAN總線異常檢測方法展開具體介紹。

01 車載異常檢測流程

基于機器學習的車載異常檢測的整體流程如圖1所示,其中關鍵環節包括輸入數據、數據預處理、訓練及測試算法、評估及優化。

v2-2236cbbf7c7d6016ab7c97aaf0fe6f4e_720w.webp

圖1 基于機器學習的車載異常檢測整體流程

02 數據源

針對特定車型進行數據的采集,形成有特點的定制化數據集,并用此數據集進行智能算法的訓練與驗證。在實際應用中,工程師可以直接采用公開數據集作為模型訓練的數據,也可以通過實際采集車輛真實數據來獲取數據集。

公開數據集:公開數據集CAR-HACKING DATASET[1]中提供了汽車黑客數據,如圖2所示,其中包括 DoS 攻擊、模糊攻擊、驅動齒輪欺騙攻擊和RPM儀表欺騙攻擊四種類別的數據。該數據集是通過在執行消息注入攻擊時利用真實車輛的OBD-II端口記錄CAN流量來構建的。其數據集特征包括Timestamp,CAN ID,DLC(數據長度碼),data(CAN數據字段),Flag(T或R,T代表注入信息,R代表正常信息)。公開數據集一般是經過公開驗證的,更具有通用性和代表性,便于進行不同算法異常檢測效果的比對。

v2-0ed0379cdf85bc976d1fc428908a8cac_720w.webp

圖2 CAR-HACKING DATASET[1]

實車數據集:數據源還可以通過實車采集的方式獲取,通過向車內注入特定的攻擊,并使用CAN采集工具對實車數據中的報文數據進行采集,采集時需要注意采集時間要盡可能平均。由此得到的實車數據集更加真實,其中可能包含一些公開數據集無法覆蓋的異常場景。此外,實車數據采集得到的數據集通常還需要進行預處理工作。

2.1 數據預處理

機器學習算法模型的質量很大程度取決于數據的質量。原始數據往往不利于模型的訓練,因此需要進行數據預處理以提高數據的質量,使其更好地適用模型。數據預處理過程一般包括特征選取、數據標準化及特征編碼,如圖3所示。在實際車載異常檢測應用中,最終選用的數據預處理方法通常會根據智能算法的不同而有所差異。

v2-41ef946ce4534f59f097a2295660ffd2_720w.webp

圖3 數據處理過程

2.2 特征選取

CAN報文的特征及描述如表1所示。記錄每一條數據的時間標識Time,每一條報文的序號為CAN ID,相同CAN ID報文出現的時間間隔為period。Payload部分通常將十六進制的信息轉換為十進制,根據CAN報文的特點,將payload劃分為8個特征位(byte0,byte1, byte2, byte3, byte4, byte5, byte6, byte7),它們全部分布在0~255之間。

一般輸入數據格式為Dataframe格式,對應的特征是Dataframe的列名稱。在進行不同算法的訓練時,選取包含指定特征值(某些列)的Dataframe進行后續數據標準化的操作。

v2-276fff7f2ff5766cda57696a0792bb2f_720w.webp

表1 CAN報文特征

2.3 數據標準化

車載網絡報文的數據信號(數據payload部分)具有不同的量綱和取值范圍,通過標準化,在不改變樣本數據分布的同時,使得這些數值信號能夠進行比較。對于利用梯度下降的模型,數值型數據進行標準化可以削弱不同特征對模型的影響差異,使得梯度下降能更快地找到最優解,同時結果更可靠。對于決策樹這類不通過梯度下降而利用信息增益比的算法,則不需要進行數據標準化,整體流程如圖4所示。

標準化對樣本的payload特征分別進行計算使其滿足正態分布,Z= (x- μ)/σ。一般情況下,標準化與數據分布相關,具有更強的統計意義,在車載入侵檢測數據的處理上更加通用合適。對于需要數據標準化的算法,使用Scikit-learn中

preprocessing.StandardScaler(df)函數,df為需要標準化的數據(只含有payload部分的Dataframe),得到標準化后的數據特征編碼或直接進行訓練。

v2-8f601a767ff3795c146db9b75858dfa8_720w.webp

圖4 數據標準化流程

2.4 特征編碼

車載網絡報文中,數據場以外還存在一部分報文內容,如CAN ID。對于很多機器學習算法,分類器往往默認數據是連續的,并且是有序的,因此需要對此類特征進行編碼。對于維度較低的特征可以直接使用獨熱編碼。對于維度較高的特征,可以使用二進制編碼。

獨熱編碼是用等同于狀態數量的維度進行編碼,每種狀態下的獨熱編碼只有其中一位為1,其余均為0。編碼后的特征互斥,每次只有一個激活,有利于模型處理數據。

輸入數據集,如CAN ID經過one_hot(df)函數,將輸入數據進行one-hot編碼。一個CAN ID將變為16*3的向量,如圖5所示。該向量將作為訓練模型的輸入,進行后續的模型訓練工作。

v2-902b8037bbb0ac37c6c5e68ef449823d_720w.webp

圖5 CAN ID 特征編碼[1]

03 算法訓練及測試

3.1 數據集劃分

輸入數據集以7:1.5:1.5的比例劃分成訓練集、驗證集和測試集。訓練集數據只用來訓練模型,其數據不出現在算法測試中。驗證集主要是用來反映訓練得到模型的相關效果,也會在其上進行算法模型的優化與調試,反復驗證直到達到最佳效果。測試集主要表現模型的最終效果,測試集數據也是用來評價模型的數據,測試集數據不出現在算法訓練中。

數據集劃分流程如圖6所示,首先輸入數據采用Scikit-learn中

model_selection.train_test_split()函數,此函數可以將數據集先劃分成7:3的訓練集和測試數據,然后再將測試數據集劃分成5:5的驗證集與測試集。

v2-2b1b3bdf088e1681b07d478bf47af2c6_720w.webp

圖6 數據集劃分流程

3.2 SMOTE采樣

對于采集到的車載網絡數據,攻擊報文數量遠少于正常報文,造成了樣本類別不平衡。機器學習中往往假定訓練樣本各類別是同等數量,即各類樣本數目是均衡的。一般來說,不平衡樣本會導致訓練模型側重樣本數目較多的類別,而“輕視”樣本數目較少類別,這樣模型在測試數據上的泛化能力就會受到影響。通過SMOTE[2](合成少數類過采樣技術),在少數類別樣本之間進行插值生成新的樣本,如圖7。相比隨機過采樣,SMOTE大大降低了過擬合的可能。

v2-691be296eaf98fe668c7c556be1f2318_720w.webp

圖7 SMOTE采樣原理 [2]

在訓練模型前對各類別的訓練數據進行SMOTE過采樣的操作,SMOTE過采樣流程如圖8。使用imblearn.over_sampling中的SMOTE().fit_resample(X,Y)函數,其中X為輸入需要訓練的報文集合,Y為X中每一條報文的類別。經過SMOTE處理,各類別的報文數量會變得一樣多,可以進行下一步的操作。

v2-7682fff5984b439c0f8d3ac6bf4082cf_720w.webp

圖8 SMOTE采樣流程

3.3 模型訓練

模型訓練是從標簽化訓練數據集中推斷出函數的機器學習任務。常用的模型訓練算法包括RNN(Recurrent Neural Network,循環神經網絡)、LSTM(Long Short-Term Memory,長短期記憶網絡)、GRU(Gated Recurrent Units,門控循環神經網絡)、DCNN(Dynamic Convolution Neural Network,深度卷積神經網絡)、SVM(Support Vector Machine,支持向量機)、DT(Decision Tree,決策樹)、RF(Random Forest,隨機森林)、XGBoost(Extreme Gradient Boosting,極端梯度提升)、Stacking(集成學習算法)、Clustering(聚類)等。

04 評估與優化

模型的總體優化流程如圖9所示,對模型測試的結果進行評估,根據評估的結果進一步優化模型。下面詳細闡述評估指標和優化方式。

4.1 評估指標

方案使用平均準確率、P-R曲線、F-score對模型進行評價。平均準確率是判斷入侵檢測算法優劣的最直觀的評價標準。P-R曲線和F-score能更加直觀地反映入侵檢測模型在特定數據集上的表現。本方案選擇平均準確率作為模型在驗證集上的評價指標,在超參數調優時,根據平均準確率選擇更優超參數組合。本方案選擇F-score作為模型在測試集上的評價指標,評價最終的模型效果。

v2-f097b9d3980e86d0c6c4b86d15a01f26_720w.webp

圖9 模型優化流程

a)準確率 Accuracy

準確率公式為:

Accuracy = (TP + TN) / (TP + TN + FP + FN)

其中,TP(true positive)是正例,代表被模型正確地預測為正類別的樣本。例如,模型推斷出某條報文是攻擊報文,而該報文確實是攻擊報文。TN(true negative)為假正例,代表被模型正確地預測為負類別的樣本。例如,模型推斷出某條報文不是攻擊報文,而該報文確實不是攻擊報文。FN (false negative)是假負例,代表被模型錯誤地預測為負類別的樣本。例如,模型推斷出某條報文不是攻擊報文(負類別),但該條報文其實是攻擊報文。FP(false positive)為假正例,代表被模型錯誤地預測為正類別的樣本。例如,模型推斷出某條報文是攻擊報文(正類別),但該條報文其實不是攻擊報文。

準確率是指分類正確的樣本占總樣本個數的比例。在不同類別的樣本比例非常不均衡時,占比大的類別將成為影響準確率的主要因素。導致模型整體準確率很高,但是不代表對小占比類別的分類效果很好。因此,使用平均準確率,即每個類別下的樣本準確率的算術平均作為模型評估的指標。

在超參數選擇階段,算法會根據各個超參數的準確率Accuracy,進行選擇。選擇準確率最高的超參數作為模型使用的超參數。

b)P-R曲線和F-score

精確率P = TP / (TP+FP),指分類正確的正樣本個數占分類器判定為正樣本的樣本個數的比例。召回率R = TP / (TP+FN),指分類正確的正樣本個數占真正的正樣本個數的比例。通過F-score進行定量分析,同時考慮了精確率和召回率。

F-score =(1+β^2 )*P*R/(β^2*P+R)

智能分析使用F1-score作為指標,評價最終模型在測試集上的表現效果。

4.2 模型優化

入侵檢測使用到的機器學習和神經網絡模型包含大量的超參數,超參數直接影響了模型的優劣,尋找超參數的最優取值是至關重要的問題。通過超參數優化方法和K折交叉驗證,找到最優的超參數,使模型能夠準確地判斷報文類型。

a)K折交叉驗證

K折交叉驗證用于模型調優,測試模型預測未用于估計的新數據的能力,找到使得模型泛化性能最優的超參值。具體原理如圖10,將訓練數據分成K份,用其中的(K-1)份訓練模型,剩余的1份數據用于評估模型。循環迭代K次,并對得到的K個評估結果取平均值,得到最終的結果。

v2-e730db8a8c6604e73571b20ae5532818_720w.webp

圖10 K折交叉驗證原理[3]

K值越小,模型越偏差越低、方差越高,容易出現過擬合。K值越大,則偏差提高,方差降低,且計算開銷增大。在訓練中我們一般選擇k=5。使用下面函數進行K折交叉驗證劃分,sklearn.model_selection.KFold(n_splits=5,shuffle=True,random_state=999).split(df),其中n_splits為交叉驗證的折數,shuffle表示是否打亂數據,random_state為隨機種子,df為訓練數據。

b)超參數優化

超參數優化方法主要有:網格搜索和貝葉斯優化。

網格搜索:以窮舉的方式遍歷所有可能的參數組合,網格搜索在1維、2維、3維的搜索空間表現相對來說不錯,很容易覆蓋到空間的大部分,而且耗時不大。使用sklearn.model_selection中的GridSearchCV ()進行超參數選擇和交叉驗證。

貝葉斯優化:網格搜索和隨機搜索沒有利用已搜索點的信息,使用這些信息指導搜索過程可以提高結果的質量以及搜索的速度。貝葉斯優化利用之前已搜索點的信息確定下一個搜索點,用于求解維數不高的黑盒優化問題。它的本質其實是一種回歸模型,即利用回歸模型預測的函數值來選擇下一個搜索點。使用hyperopt中的fmin()函數進行貝葉斯優化,給出最優模型參數。

以訓練集的交叉驗證結果作為性能度量。根據模型的超參數數量、取值范圍、性能影響等因素,選擇不同的超參數優化方法,對模型進行參數優化。

05 小結

面向智能網聯汽車無線通信系統、車載娛樂系統、駕駛輔助系統以及典型智能網聯場景,機器學習作為車載網絡入侵檢測中至關重要的一項技術,可實現對已知/未知攻擊行為的特征識別檢測,最終助力車端和云端安全聯動,保障車載網絡的信息安全。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN總線
    +關注

    關注

    145

    文章

    1955

    瀏覽量

    131095
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2769

    瀏覽量

    464385
  • 異常檢測
    +關注

    關注

    1

    文章

    42

    瀏覽量

    9754
  • 機器學習
    +關注

    關注

    66

    文章

    8438

    瀏覽量

    133086
收藏 人收藏

    評論

    相關推薦

    基于transformer和自監督學習的路面異常檢測方法分享

    鋪設異常檢測可以幫助減少數據存儲、傳輸、標記和處理的壓力。本論文描述了一種基于Transformer和自監督學習的新方法,有助于定位異常區域
    的頭像 發表于 12-06 14:57 ?1677次閱讀
    基于transformer和自監督<b class='flag-5'>學習</b>的路面<b class='flag-5'>異常</b><b class='flag-5'>檢測</b><b class='flag-5'>方法</b>分享

    CAN總線錯誤幀及其排查方法簡單介紹#汽車CAN總線?

    CAN總線汽車電子
    北匯信息POLELINK
    發布于 :2024年03月15日 14:14:40

    汽車CAN總線技術

    圍繞“汽車CAN總線技術到底是怎么一回事?汽車總線的發展趨勢。汽車為什么選擇了
    發表于 06-24 13:56

    汽車CAN總線系統原理、設計與應用

    介紹了汽車CAN總線系統的設計方法。全書共10章,首先介紹了汽車網絡通信系統的特點,全面闡述了當今汽車
    發表于 04-09 22:27

    基于深度學習異常檢測的研究方法

    異常檢測的深度學習研究綜述原文:arXiv:1901.03407摘要異常檢測是一個重要的問題,在不同的研究領域和應用領域都得到了很好的研究。
    發表于 07-12 07:10

    基于深度學習異常檢測的研究方法

    ABSTRACT1.基于深度學習異常檢測的研究方法進行結構化和全面的概述2.回顧這些方法在各個領域這個中的應用情況,并評估他們的有效性。3
    發表于 07-12 06:36

    基于CAN總線汽車電子檢測系統

    為滿足汽車廠商對于汽車電子產品的測試需求,提出了基于CAN總線和嵌入式技術的汽車電子檢測系統的實
    發表于 01-14 17:37 ?459次下載
    基于<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的<b class='flag-5'>汽車</b>電子<b class='flag-5'>檢測</b>系統

    CAN總線應用—汽車領域

    文中分析了CAN總線的發展和汽車CAN總線技術的特征,對CAN
    發表于 12-14 14:58 ?86次下載

    汽車CAN總線系統原理設計與應用

    CAN總線是一種多主方式的串行通訊總線,基本設計規范要求有高的位速率,高抗電子干擾性,并且能夠檢測出產生的任何錯誤。CAN
    發表于 08-28 14:02 ?0次下載
    <b class='flag-5'>汽車</b><b class='flag-5'>CAN</b><b class='flag-5'>總線</b>系統原理設計與應用

    汽車can總線工作原理及測量方法詳解

    本文首先介紹了CAN總線的總體結構,其次介紹了汽車CAN總線數據傳輸系統構成及工作原理,最后介紹了汽車
    發表于 04-25 08:54 ?14.9w次閱讀
    <b class='flag-5'>汽車</b><b class='flag-5'>can</b><b class='flag-5'>總線</b>工作原理及測量<b class='flag-5'>方法</b>詳解

    淺談機器學習中的異常檢測應用

    一、簡介 異常檢測一直是機器學習中一個非常重要的子分支,在各種人工智能落地應用例如計算機視覺、數據挖掘、NLP中,異常
    的頭像 發表于 10-29 11:26 ?3933次閱讀
    淺談<b class='flag-5'>機器</b><b class='flag-5'>學習</b>中的<b class='flag-5'>異常</b><b class='flag-5'>檢測</b>應用

    CAN接口異常如何分析?

    CAN總線憑借高可靠和實時性被廣泛應用于汽車電子、軌道交通、醫療等行業,但隨著應用環境的日益復雜,CAN總線發生
    的頭像 發表于 03-30 11:04 ?2520次閱讀
    <b class='flag-5'>CAN</b>接口<b class='flag-5'>異常</b>如何分析?

    FreeWheel基于機器學習的業務異常檢測實踐

    本文介紹了 FreeWheel 基于機器學習的業務異常檢測實踐,提煉了從零開始構建業務異常檢測
    的頭像 發表于 10-28 14:35 ?963次閱讀

    對基于機器學習汽車CAN總線異常檢測方法展開具體介紹

    目前機器學習是研究車輛網絡入侵檢測技術的熱門方向,通過引入機器學習算法來識別車載總線上的網絡報文
    發表于 02-03 09:53 ?571次閱讀

    叉車can總線異常怎么解決

    ,被廣泛應用于叉車控制系統中,實現了叉車各控制單元之間的高速、可靠通信。然而,在實際使用過程中,叉車CAN總線可能會出現各種異常情況,影響叉車的正常使用。 叉車CAN
    的頭像 發表于 06-16 10:56 ?2106次閱讀
    主站蜘蛛池模板: 手机在线看片国产 | 深夜释放自己vlog糖心旧版本 | 特别毛片 | 亚洲视频一二三 | 日本特级黄录像片 | 四虎成人精品在永久在线观看 | 成人sese| 一区二区三区四区视频在线观看 | 天天艹夜夜 | 一区二区三区亚洲 | 最好看的2019中文字幕免费高清 | 色香焦 | 亚洲禁片 | 午夜日批 | 四虎影在永久地址在线观看 | 四虎综合九九色九九综合色 | 久久久久综合 | 日本美女黄色一级片 | 久久夜色精品国产噜噜 | 三级毛片在线看 | 国产精品天天影视久久综合网 | 国产h视频在线观看高清 | ts在线视频| 国产91小视频在线观看 | 四虎影视在线影院在线观看 | 夜夜爱视频| 男女交性视频免费视频 | 日本黄视频在线播放 | 国产色产综合色产在线观看视频 | h在线免费观看 | 色婷婷在线观看视频 | 老湿司午夜爽爽影院榴莲视频 | 爽死你个放荡粗暴小淫视频 | 稀缺资源呦视频在线网站 | 欧美1区| 高清成年美女xx免费网站黄 | 伊人成人在线 | 夜夜骑首页| 国产在线精品一区免费香蕉 | 国产网站免费观看 | 正在播放国产女免费 |