作者 |柳澤上??匕部尚跑浖?chuàng)新研究院研發(fā)工程師
來源 |鑒源實驗室
在過去的幾十年中,CAN總線是最廣泛被應(yīng)用的車載網(wǎng)絡(luò)現(xiàn)場總線。但隨著汽車電子產(chǎn)品的功能逐漸豐富,以及新一代的智能輔助駕駛系統(tǒng)的接入,傳統(tǒng)CAN總線無論是傳輸效率還是網(wǎng)絡(luò)容量都已無法滿足需求,所以車載以太網(wǎng)憑借其高帶寬、低成本、低延時的優(yōu)勢被引入車載通訊系統(tǒng)[1]。因此,車載網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測系統(tǒng) (N-IDS,Network Intrusion Detection System,)可以根據(jù)網(wǎng)絡(luò)載體的差異分為CAN-IDS以及以太網(wǎng)IDS。
N-IDS系統(tǒng)部署在遠(yuǎn)程通信終端(T-Box,Telematics Box)、網(wǎng)關(guān)以及車載娛樂信息系統(tǒng)(IVI,In-Vehicle Infotainment)上,通過對CAN總線以及車載以太網(wǎng)上的流量數(shù)據(jù)的監(jiān)控、數(shù)據(jù)載荷的解析和字段匹配來識別網(wǎng)絡(luò)中出現(xiàn)的異常流量和潛在攻擊行為。
01CAN-IDS
CAN-IDS會對采集到的CAN流量,從報文、場景、網(wǎng)絡(luò)三方面,分別根據(jù)既定規(guī)則庫的規(guī)則進(jìn)行匹配,從而識別出攻擊/異常報文。
1.1 DBC檢測
DBC檢測是根據(jù)DBC文件制定的規(guī)則庫對單幀報文進(jìn)行檢測的檢測方法。車廠的DBC文件會對車內(nèi)報文內(nèi)容,如CAN ID、DLC、周期報文的周期、信號起始位、信號長度、最大值、保留位等做了定義。常見的車載網(wǎng)絡(luò)注入攻擊、重放攻擊、模糊攻擊等,往往會改變這些內(nèi)容,通過將采集到的報文與DBC進(jìn)行對比,檢測出與定義內(nèi)容不相符的報文,即為攻擊/異常報文。
整體流程如圖1所示:
圖1 CAN-Based IDS系統(tǒng)架構(gòu)圖
基于DBC的報文檢測,首先加載內(nèi)置的規(guī)則庫。檢測時,采集CAN總線數(shù)據(jù)并進(jìn)行CAN報文的預(yù)處理,然后根據(jù)規(guī)則庫中的檢測規(guī)則,對選定的報文字段進(jìn)行檢測。最終輸出檢測結(jié)果。
1.2 場景規(guī)則檢測
定義正常場景和攻擊場景,正常場景包括報文序列關(guān)系、信號關(guān)系等,攻擊場景包括UDS探測等。對網(wǎng)絡(luò)中的報文與定義的場景規(guī)則進(jìn)行匹配。目前針對的主要場景是UDS診斷服務(wù)。
基于專家領(lǐng)域知識,根據(jù)UDS診斷響應(yīng)中的NRC進(jìn)行安全事件告警。安全事件有:UDS拒絕服務(wù)、UDS探測、UDS非法請求、非法獲取權(quán)限、數(shù)據(jù)安全等。
1.3 網(wǎng)絡(luò)檢測
網(wǎng)絡(luò)檢測是對整個車載網(wǎng)絡(luò)上的負(fù)載率和信息熵進(jìn)行檢測。當(dāng)實際值偏離了規(guī)則庫中定義的閾值,則說明網(wǎng)絡(luò)異?;虮还?。泛洪攻擊、模糊攻擊、重放攻擊等都會使網(wǎng)絡(luò)的負(fù)載率和信息熵發(fā)生變化。
CAN總線負(fù)載率是指在CAN總線上單位時間內(nèi)實際傳送的位數(shù)和可以傳送的位數(shù)之比。負(fù)載率檢測能夠監(jiān)視網(wǎng)絡(luò)的流量情況。信息熵用來衡量系統(tǒng)的不確定性,被廣泛應(yīng)用于計算機(jī)網(wǎng)絡(luò)的異常檢測。車載CAN網(wǎng)絡(luò)在某一工況下,以一定的規(guī)律發(fā)送,是低隨機(jī)性、相對靜態(tài)的。正常情況下,車載網(wǎng)絡(luò)的負(fù)載率和信息熵較為穩(wěn)定。對車載網(wǎng)絡(luò)進(jìn)行泛洪攻擊、注入攻擊等,則會使相應(yīng)指標(biāo)超過正常值。
其中 ai 為第 i 類報文在時間 T 內(nèi)出現(xiàn)的概率。
網(wǎng)絡(luò)檢測首先選擇合適的時間窗口,計算正常車輛的負(fù)載率和信息熵,確定其閾值并添加到規(guī)則庫中。然后,在實車運行過程中,計算當(dāng)前負(fù)載率和信息熵,與規(guī)則庫中的值進(jìn)行比較,判斷網(wǎng)絡(luò)是否異?;虮还?。
02Ethernet-IDS
Ethernet-IDS通過對要檢測的網(wǎng)段的所有流量包進(jìn)行抓包,對抓包數(shù)據(jù)進(jìn)行特征字段的提取,利用提取的網(wǎng)絡(luò)特征來識別其中的異常/攻擊報文[1]。Snort是一款輕量化的開源的以太網(wǎng)入侵檢測系統(tǒng),它能夠進(jìn)行實時流量分析、網(wǎng)絡(luò)數(shù)據(jù)包的記錄、異常流量的監(jiān)測和響應(yīng)。最初Snort僅支持IP、TCP、UDP等下層協(xié)議的檢測,但其預(yù)處理器機(jī)制可被用來拓展兼容不同的上層應(yīng)用層協(xié)議。SOME/IP、DoIP等車載以太網(wǎng)協(xié)議是為了應(yīng)對汽車的電子電器架構(gòu)由分布式逐漸走向中央集中化的演化,而設(shè)計出來的應(yīng)用層協(xié)議。于彤[3]從SOME/IP和DoIP協(xié)議的數(shù)據(jù)完整性、規(guī)范程度和潛在漏洞等方面分析了兩種協(xié)議可能存在的風(fēng)險,并針對此將SOME/IP、DoIP預(yù)處理器引入Snort中。ZIHAN Zhou等[4]通過改進(jìn)了Snort的規(guī)則匹配模式并設(shè)計了一種二進(jìn)制的規(guī)則格式,使其完全適配AUTOSAR的規(guī)范,能夠被引入嵌入式的系統(tǒng)。
Snort的原理架構(gòu)圖如圖2所示,其中包括了配置模塊、數(shù)據(jù)獲取模塊、檢測模塊以及輸出模塊。通過修改配置模塊的配置文件,可以定義數(shù)據(jù)獲取的配置、預(yù)處理的方式、檢測的規(guī)則以及輸出日志的格式。數(shù)據(jù)獲取模塊負(fù)責(zé)檢測、解析網(wǎng)卡中的流量并將其送入檢測模塊。檢測模塊根據(jù)配置信息,對指定的異常行為進(jìn)行檢測和處理,并且會將檢測結(jié)果送入輸出模塊,由其實現(xiàn)輸出日志的解析、處理、封裝和轉(zhuǎn)發(fā)等功能。
圖2 snort原理架構(gòu)圖
2.1 配置模塊
配置模塊負(fù)責(zé)以太網(wǎng)N-IDS所有模塊的配置選項設(shè)置,在IDS啟動的時候即對各個模塊進(jìn)行初始化配置。配置內(nèi)容如表1所示:
表1 Snort 檢測功能配置
2.2 數(shù)據(jù)獲取模塊
數(shù)據(jù)獲取模塊擁有數(shù)據(jù)包記錄功能,可以直接記錄原始數(shù)據(jù)報文,以及對本地記錄的數(shù)據(jù)包進(jìn)行重放。數(shù)據(jù)獲取模塊抓取網(wǎng)卡中流量數(shù)據(jù)包,根據(jù)配置文件進(jìn)行相應(yīng)的解碼和預(yù)處理。數(shù)據(jù)獲取模塊對數(shù)據(jù)包標(biāo)準(zhǔn)化預(yù)處理,使得檢測模塊能夠直接進(jìn)行特征字段的匹配。
2.3 檢測模塊
檢測模塊從兩個方面對以太網(wǎng)中的異常流量和行為進(jìn)行檢測:網(wǎng)絡(luò)流量檢測和網(wǎng)絡(luò)數(shù)據(jù)包檢測。
(1)網(wǎng)絡(luò)流量檢測對以太網(wǎng)的流量情況,包括帶寬利用率和信息熵進(jìn)行監(jiān)測分析,當(dāng)超出正常閾值時發(fā)出警告。
(2)網(wǎng)絡(luò)數(shù)據(jù)包檢測定義了正常場景和攻擊場景,其中正常場景包括報文序列關(guān)系、信號關(guān)系等,而攻擊場景包括ICMP flood、TCP port scan等。通過對網(wǎng)絡(luò)數(shù)據(jù)包中的報文特征字段與定義的場景規(guī)則進(jìn)行匹配,來識別隱藏在報文內(nèi)的異常攻擊行為。
Snort是一個完全基于規(guī)則的以太網(wǎng)IDS系統(tǒng),它的規(guī)則編寫簡單而又靈活,可支持本地編寫規(guī)則的導(dǎo)入。Snort的規(guī)則是由文本構(gòu)成,主要由規(guī)則頭和規(guī)則選項兩部分構(gòu)成。一條Snort規(guī)則編寫如圖3所示:
圖3 Snort規(guī)則編寫示例
(1)規(guī)則頭:定義了數(shù)據(jù)包的發(fā)送端地址和端口、接收端的地址和端口、協(xié)議類型,以及規(guī)則匹配成功后應(yīng)執(zhí)行的操作。
(2)規(guī)則選項:定義了規(guī)則匹配的數(shù)據(jù)包特征,是Snort入侵檢測引擎的核心,也是將Snort易用性與強(qiáng)大功能和靈活性結(jié)合起來的關(guān)鍵。所有Snort規(guī)則選項都使用分號( ; )字符彼此分隔。規(guī)則選項關(guān)鍵字與參數(shù)之間用冒號( : )分隔。通過規(guī)則選項的設(shè)置, Snort可以對報文的任意字段進(jìn)行正則匹配。
2.4 輸出模塊
輸出模塊負(fù)責(zé)對檢測模塊的檢測結(jié)果進(jìn)行進(jìn)一步的處理與輸出。檢測模塊根據(jù)配置文件定義的輸出格式將檢測結(jié)果封裝成日志的形式。輸出模塊還可以通過配置相關(guān)參數(shù)以及設(shè)置事件過濾規(guī)則來修改日志輸出的頻率。
03小結(jié)
規(guī)則檢測的方法以其穩(wěn)定性好、檢測準(zhǔn)確率高、可解釋性強(qiáng)等優(yōu)點成為車載網(wǎng)絡(luò)入侵檢測系統(tǒng)的重要支柱。但汽車電子電氣架構(gòu)的演變、車載網(wǎng)絡(luò)數(shù)據(jù)的增加以及車載通訊協(xié)議的擴(kuò)充,都對基于規(guī)則的車載網(wǎng)絡(luò)入侵檢測系統(tǒng)提出了更高的要求。性能、可擴(kuò)展性、兼容能力將是下一代車載網(wǎng)絡(luò)入侵檢測系統(tǒng)開發(fā)中重要的考量指標(biāo)。
參考文獻(xiàn):
[1]李嘉銘. 車載以太網(wǎng)的高效率網(wǎng)絡(luò)安全技術(shù)研究[D].延邊大學(xué),2022.DOI:10.27439/d.cnki.gybdu.2022.000462.
[2]劉春頌,楊壽保,杜濱[J].計算機(jī)應(yīng)用.基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)及其實現(xiàn).2003,2:29-31.
[3]于彤. SOME/IP與DoIP異常檢測系統(tǒng)設(shè)計[D].華中科技大學(xué),2021.DOI:10.27157/d.cnki.ghzku.2021.005242.
[4]Zihan, Z., Lirong, C., Haitao, Z. and Fan, Z., 2021, December. Research on Intrusion Detection Technology Based on Embedded Ethernet. In 2021 18th International Computer Conference on Wavelet Active Media Technology and Information Processing (ICCWAMTIP) (pp. 587-600). IEEE.
審核編輯黃宇
-
車載網(wǎng)絡(luò)
+關(guān)注
關(guān)注
6文章
160瀏覽量
31800 -
檢測
+關(guān)注
關(guān)注
5文章
4496瀏覽量
91535
發(fā)布評論請先 登錄
相關(guān)推薦
評論