天天看點

鑒源實驗室:基于規則的車載網絡入侵檢測技術

作者:上海控安

作者 | 柳澤上海控安可信軟體創新研究院研發工程師

來源 | 鑒源實驗室

在過去的幾十年中,CAN總線是最廣泛被應用的車載網絡現場總線。但随着汽車電子産品的功能逐漸豐富,以及新一代的智能輔助駕駛系統的接入,傳統CAN總線無論是傳輸效率還是網絡容量都已無法滿足需求,是以車載以太網憑借其高帶寬、低成本、低延時的優勢被引入車載通訊系統[1]。是以,車載網絡的網絡入侵檢測系統 (N-IDS,Network Intrusion Detection System,)可以根據網絡載體的差異分為CAN-IDS以及以太網IDS。

N-IDS系統部署在遠端通信終端(T-Box,Telematics Box)、網關以及車載娛樂資訊系統(IVI,In-Vehicle Infotainment)上,通過對CAN總線以及車載以太網上的流量資料的監控、資料載荷的解析和字段比對來識别網絡中出現的異常流量和潛在攻擊行為。

01CAN-IDS

CAN-IDS會對采集到的CAN流量,從封包、場景、網絡三方面,分别根據既定規則庫的規則進行比對,進而識别出攻擊/異常封包。

1.1 DBC檢測

DBC檢測是根據DBC檔案制定的規則庫對單幀封包進行檢測的檢測方法。車廠的DBC檔案會對車内封包内容,如CAN ID、DLC、周期封包的周期、信号起始位、信号長度、最大值、保留位等做了定義。常見的車載網絡注入攻擊、重播攻擊、模糊攻擊等,往往會改變這些内容,通過将采集到的封包與DBC進行對比,檢測出與定義内容不相符的封包,即為攻擊/異常封包。

整體流程如圖1所示:

鑒源實驗室:基于規則的車載網絡入侵檢測技術

圖1 CAN-Based IDS系統架構圖

基于DBC的封包檢測,首先加載内置的規則庫。檢測時,采集CAN總線資料并進行CAN封包的預處理,然後根據規則庫中的檢測規則,對標明的封包字段進行檢測。最終輸出檢測結果。

1.2 場景規則檢測

定義正常場景和攻擊場景,正常場景包括封包序列關系、信号關系等,攻擊場景包括UDS探測等。對網絡中的封包與定義的場景規則進行比對。目前針對的主要場景是UDS診斷服務。

基于專家領域知識,根據UDS診斷響應中的NRC進行安全事件告警。安全事件有:UDS拒絕服務、UDS探測、UDS非法請求、非法擷取權限、資料安全等。

1.3 網絡檢測

網絡檢測是對整個車載網絡上的負載率和資訊熵進行檢測。當實際值偏離了規則庫中定義的門檻值,則說明網絡異常或被攻擊。泛洪攻擊、模糊攻擊、重播攻擊等都會使網絡的負載率和資訊熵發生變化。

CAN總線負載率是指在CAN總線上機關時間内實際傳送的位數和可以傳送的位數之比。負載率檢測能夠監視網絡的流量情況。資訊熵用來衡量系統的不确定性,被廣泛應用于計算機網絡的異常檢測。車載CAN網絡在某一工況下,以一定的規律發送,是低随機性、相對靜态的。正常情況下,車載網絡的負載率和資訊熵較為穩定。對車載網絡進行泛洪攻擊、注入攻擊等,則會使相應名額超過正常值。

鑒源實驗室:基于規則的車載網絡入侵檢測技術

其中 ai 為第 i 類封包在時間 T 内出現的機率。

網絡檢測首先選擇合适的時間視窗,計算正常車輛的負載率和資訊熵,确定其門檻值并添加到規則庫中。然後,在實車運作過程中,計算目前負載率和資訊熵,與規則庫中的值進行比較,判斷網絡是否異常或被攻擊。

02Ethernet-IDS

Ethernet-IDS通過對要檢測的網段的所有流量包進行抓包,對抓包資料進行特征字段的提取,利用提取的網絡特征來識别其中的異常/攻擊封包[1]。Snort是一款輕量化的開源的以太網入侵檢測系統,它能夠進行實時流量分析、網絡資料包的記錄、異常流量的監測和響應。最初Snort僅支援IP、TCP、UDP等下層協定的檢測,但其預處理器機制可被用來拓展相容不同的上層應用層協定。SOME/IP、DoIP等車載以太網協定是為了應對汽車的電子電器架構由分布式逐漸走向中央集中化的演化,而設計出來的應用層協定。于彤[3]從SOME/IP和DoIP協定的資料完整性、規範程度和潛在漏洞等方面分析了兩種協定可能存在的風險,并針對此将SOME/IP、DoIP預處理器引入Snort中。ZIHAN Zhou等[4]通過改進了Snort的規則比對模式并設計了一種二進制的規則格式,使其完全适配AUTOSAR的規範,能夠被引入嵌入式的系統。

Snort的原理架構圖如圖2所示,其中包括了配置子產品、資料擷取子產品、檢測子產品以及輸出子產品。通過修改配置子產品的配置檔案,可以定義資料擷取的配置、預處理的方式、檢測的規則以及輸出日志的格式。資料擷取子產品負責檢測、解析網卡中的流量并将其送入檢測子產品。檢測子產品根據配置資訊,對指定的異常行為進行檢測和處理,并且會将檢測結果送入輸出子產品,由其實作輸出日志的解析、處理、封裝和轉發等功能。

鑒源實驗室:基于規則的車載網絡入侵檢測技術

圖2 snort原理架構圖

2.1 配置子產品

配置子產品負責以太網N-IDS所有子產品的配置選項設定,在IDS啟動的時候即對各個子產品進行初始化配置。配置内容如表1所示:

鑒源實驗室:基于規則的車載網絡入侵檢測技術

表1 Snort 檢測功能配置

2.2 資料擷取子產品

資料擷取子產品擁有資料包記錄功能,可以直接記錄原始資料封包,以及對本地記錄的資料包進行重放。資料擷取子產品抓取網卡中流量資料包,根據配置檔案進行相應的解碼和預處理。資料擷取子產品對資料包标準化預處理,使得檢測子產品能夠直接進行特征字段的比對。

2.3 檢測子產品

檢測子產品從兩個方面對以太網中的異常流量和行為進行檢測:網絡流量檢測和網絡資料包檢測。

(1)網絡流量檢測對以太網的流量情況,包括帶寬使用率和資訊熵進行監測分析,當超出正常門檻值時發出警告。

(2)網絡資料包檢測定義了正常場景和攻擊場景,其中正常場景包括封包序列關系、信号關系等,而攻擊場景包括ICMP flood、TCP port scan等。通過對網絡資料包中的封包特征字段與定義的場景規則進行比對,來識别隐藏在封包内的異常攻擊行為。

Snort是一個完全基于規則的以太網IDS系統,它的規則編寫簡單而又靈活,可支援本地編寫規則的導入。Snort的規則是由文本構成,主要由規則頭和規則選項兩部分構成。一條Snort規則編寫如圖3所示:

鑒源實驗室:基于規則的車載網絡入侵檢測技術

圖3 Snort規則編寫示例

(1)規則頭:定義了資料包的發送端位址和端口、接收端的位址和端口、協定類型,以及規則比對成功後應執行的操作。

(2)規則選項:定義了規則比對的資料包特征,是Snort入侵檢測引擎的核心,也是将Snort易用性與強大功能和靈活性結合起來的關鍵。所有Snort規則選項都使用分号( ; )字元彼此分隔。規則選項關鍵字與參數之間用冒号( : )分隔。通過規則選項的設定, Snort可以對封包的任意字段進行正則比對。

2.4 輸出子產品

輸出子產品負責對檢測子產品的檢測結果進行進一步的處理與輸出。檢測子產品根據配置檔案定義的輸出格式将檢測結果封裝成日志的形式。輸出子產品還可以通過配置相關參數以及設定事件過濾規則來修改日志輸出的頻率。

03小結

規則檢測的方法以其穩定性好、檢測準确率高、可解釋性強等優點成為車載網絡入侵檢測系統的重要支柱。但汽車電子電氣架構的演變、車載網絡資料的增加以及車載通訊協定的擴充,都對基于規則的車載網絡入侵檢測系統提出了更高的要求。性能、可擴充性、相容能力将是下一代車載網絡入侵檢測系統開發中重要的考量名額。

參考文獻:

[1]李嘉銘. 車載以太網的高效率網絡安全技術研究[D].延邊大學,2022.DOI:10.27439/d.cnki.gybdu.2022.000462.

[2]劉春頌,楊壽保,杜濱[J].計算機應用.基于網絡的入侵檢測系統及其實作.2003,2:29-31.

[3]于彤. SOME/IP與DoIP異常檢測系統設計[D].華中科技大學,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.

繼續閱讀