在過去的幾十年中,CAN總線是最廣泛被應用的車載網絡現場總線。但隨著汽車電子產品的功能逐漸豐富,以及新一代的智能輔助駕駛系統的接入,傳統CAN總線無論是傳輸效率還是網絡容量都已無法滿足需求,所以車載以太網憑借其高帶寬、低成本、低延時的優勢被引入車載通訊系統[1]。因此,車載網絡的網絡入侵檢測系統 (N-IDS,Network Intrusion Detection System,)可以根據網絡載體的差異分為CAN-IDS以及以太網IDS。
N-IDS系統部署在遠程通信終端(T-Box,Telematics Box)、網關以及車載娛樂信息系統(IVI,In-Vehicle Infotainment)上,通過對CAN總線以及車載以太網上的流量數據的監控、數據載荷的解析和字段匹配來識別網絡中出現的異常流量和潛在攻擊行為。
01
CAN-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 內出現的概率。
網絡檢測首先選擇合適的時間窗口,計算正常車輛的負載率和信息熵,確定其閾值并添加到規則庫中。然后,在實車運行過程中,計算當前負載率和信息熵,與規則庫中的值進行比較,判斷網絡是否異常或被攻擊。
02
Ethernet-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
小結
規則檢測的方法以其穩定性好、檢測準確率高、可解釋性強等優點成為車載網絡入侵檢測系統的重要支柱。但汽車電子電氣架構的演變、車載網絡數據的增加以及車載通訊協議的擴充,都對基于規則的車載網絡入侵檢測系統提出了更高的要求。性能、可擴展性、兼容能力將是下一代車載網絡入侵檢測系統開發中重要的考量指標。
審核編輯:劉清
-
以太網
+關注
關注
40文章
5460瀏覽量
172724 -
CAN總線
+關注
關注
145文章
1955瀏覽量
131090 -
IDS
+關注
關注
0文章
27瀏覽量
16194 -
DBC
+關注
關注
2文章
55瀏覽量
7823 -
車載網絡系統
+關注
關注
0文章
8瀏覽量
6531
原文標題:基于規則的車載網絡入侵檢測技術
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論