作者 | 一驥絕塵
什么是防火墻?
防火墻這三個字相信大家都不陌生,也許有人會先想起電腦上殺毒軟件中的防火墻,有人會想起消防設施中的防火門,甚至會有人聯想到“翻墻”。防火墻最為廣泛的應用確實應該是在網絡信息安全上,而其原理和命名確實來源于現實中的消防措施。
設想兩個相鄰的房間之間建造了一面防火材料構成的墻,那么其中一個房間著火時,這面墻就能阻止火勢侵入另一個房間,確保另一個房間的安全。
網絡信息安全中的防火墻也是類似,其最本質的功能在于區域隔離和訪問控制。
首先整個網絡要有不同的安全區域的劃分,否則就不存在“墻”一說。區域劃分與組網方式息息相關。典型的區域劃分比如有車聯網與車載網絡的劃分,以太網與CAN-FD的劃分,算力平臺與傳感器的劃分等。
有了不同的區域劃分,那么跨區域的訪問或者通訊就需要有相應的控制約束,才能實現安全。當然在網絡中,要控制的不是熊熊烈火,而是滾滾的數據流量。
傳統CAN或者LIN等通訊機制簡單,應用防火墻技術顯得比較雞肋。只有在車載以太網上數據量大、情況復雜的網絡場景下才值得用防火墻來保護。同時,防火墻技術的底層支撐是相應的軟硬件資源,電子控制器必需具備一定的計算能力才能應用防火墻技術。
隨著汽車智能化和網聯化的發展,汽車網絡信息安全的重要性越來越明顯。車載以太網的應用日益廣泛,控制器的計算能力也日益強大。此時,源自傳統互聯網的防火墻技術,無疑是汽車網絡信息安全的一枚重要武器。
車載以太網防火墻部署
上文提到,防火墻的位置部署與區域隔離息息相關。因此,在介紹防火墻之前,我們先簡單介紹下車載以太網的區域劃分。
如下圖2是一種典型的車載網絡架構,主要由幾個關鍵功能域控制器及其下屬的傳感器和控制器組成。域控制器及其相關控制器組成一個虛擬局域網(VLAN),然后通過以太網連接到中央網關(GATEWAY)上。而中央網關作為車載以太網的重要節點,主要體現在:
1. 作為局域網之間溝通的路由器(Router),溝通各個車載本地網絡,如下圖的ADAS域與Powertrain域之間的通信。
2. 作為車內、車外網絡的分界線。例如下圖中Connectivity區域通常包含Tbox, WLAN、 藍牙等無線連接器件,也是通過中央網關與車內網絡脫開。而在OTA或者診斷過程中,外界診斷儀或者云端也會先與中央網關動態建立連接,然后再由中央網關轉發相關的信息到各個車內網絡。
這指網絡上最終接受通訊數據的節點。例如一個毫米波雷達接收了以太網上的車速數據,并用于上層應用,不再轉發,這時毫米波雷達就是終端節點。
這指網絡上只轉發MAC幀(亦即OSI模型的第二層)的網絡節點。域控制器內一般部署有局域網交換機(LAN Switch),可以根據MAC地址轉發同一個虛擬局域網(VLAN)內的數據。例如一個車速數據從底盤域控制器發送給ADAS域控制器,再由其轉發給毫米波雷達。途經的ADAS域控制器上的LAN Switch,只作二層轉發給毫米波雷達時,ADAS域控制器就是交換機的角色。當然車速信號也會通過ADAS域控制器的LAN Switch轉發給ADAS域控制器內部的處理芯片作上層應用。這個情況下,ADAS域控制器既是交換機,也是終端節點。
這指網絡上分發三層及以上報文的節點,典型例子就是中央網關。當然中央網關本身也具有相應的功能和上層應用,所以一般來說它同時也是交換機和終端節點。
這三種車載以太網內的節點都位于不同區域的交界處,那么應該在哪個節點上部署防火墻呢?這與整車網絡安全分析的攻擊者模型和攻擊者路徑有關系,也受限于各個電子控制器的軟硬件資源。當然一個力求完善的安全網絡,應該在上述的三種節點位置上都部署相應的防火墻。
防火墻技術本身是一個跨多層的安全技術。結合OSI模型,這三種節點上應該部署的防火墻需求如下表
車載以太網絡的其中一個特征是網絡配置信息基本是靜態的。OEM一般會有一個通訊矩陣或者通訊數據庫,用來定義車上各個節點之間的通訊規則。
基于這個關鍵特征,車載以太網的防火墻技術一般是基于規則作“白名單”過濾。也就是說,按照提前定義好的通訊矩陣去過濾,滿足條件的數據就轉發或者使用,否則就丟棄。
第二層防火墻
-
檢查MAC幀中的虛擬局域網標簽(VLAN TAG)是否與整車通訊數據庫定義的一致;
-
一種特殊情況是以太網時間同步(gPTP)幀。這是一種特殊的廣播數據,因此沒有VLAN TAG,但是需要檢查幀中的以太網類型字段,看它是不是屬于時間同步幀。在汽車以太網中,時間同步往往用于傳感器融合、音視頻傳輸的時間戳。
-
對于路由器或者終端節點,還應該檢查收到的MAC幀中的MAC地址。如果是單播報文,應該與自己的MAC地址一致;如果是組播報文,則本節點應該屬于組播域內的一員。
這第二層的防火墻規則,大部分可以通過LAN Switch的固件進行配置。少部分例如MAC地址的檢查則要上層路由器或者節點自身的處理器完成。
第三層防火墻
第三層防火墻規則主要針對IP數據包,例如:
第四層防火墻
第四層防火墻規則主要針對TCP、UDP鏈接,例如:
-
TCP頭中的“Next Header”類型得正確,如0x06。
-
TCP鏈接的狀態跟蹤。例如TCP報文類型應該滿足三次握手或者四次揮手的處理時序。
-
UDP頭中的“Next Header”類型得正確,如0x11。
-
UDP鏈接的狀態跟蹤。例如UDP流的有效時長應該有相應限制。
-
針對ICMP的特殊傳輸層報文規則。ICMP本來用于傳輸出錯報告控制信息,本身不具備驗證機制,因此常被作為“拒絕服務攻擊”(Denial of Service, DOS)的對象。例如攻擊者在短時間內向目標設備發送大量的ICMP虛假報文,導致目標設備忙于應付無用報文,而無法為用戶提供正常服務。因此可以對ICMP報文作端口限速、合法性檢查并丟棄不需要處理的報文等的防火墻技術。
第四層以上的防火墻
第四層以上的防火墻規則例如有:
-
按照整車通訊數據庫限制通訊的TCP或者UDP端口(Port)。
-
對DoIP等報文類型檢查其合法性,例如DoIP協議版本、來源及目的地址等。
-
SOMEIP及應用限制。在基于服務架構(SOA)的背景下,不同的應用程序需要提供或者訂閱哪些服務也許可以動態配置,此時也應該動態設置規則檢查上層應用程序是否調用了合法的SOMEIP Service,這樣才能保證基于服務架構的安全性。
防火墻的功能需求
以上討論的是基于OSI模型的不同層級的防火墻規則,但是從防火墻作為一個汽車網絡功能的角度看,它還有相應的一些需求:
1. 過濾功能。基于上面討論的規則,防火墻需要攔截非法的數據,避免其進入其他安全區域。
2. 轉發功能。如果數據滿足規則要求,屬于白名單以內,則防火墻應該放行相應的數據,確保其到達接收方。
3. 記錄功能。防火墻的相關數據,例如攔截數據流量、防火墻故障狀態和防火墻規則數量等,需要存儲在相應的安全區域。這部分數據還可以配合其他功能,例如結合診斷功能報告故障碼,又或者傳遞給入侵檢測系統(IDS)以分析入侵情況。
4. 其他軟硬件基礎功能。防火墻與通訊緊密結合,無疑需要底層以太網通訊模塊及相關中間件的支撐。硬件方面,HSM或TEE等安全隔離環境也是防火墻技術的需求。
車載防火墻技術展望
上文討論的主要是當前主流的車載以太網防火墻技術。而隨著車載網絡的豐富以及車端智能化的發展,下一代的汽車防火墻技術可能會以下面兩個方向發展:
1. 更廣義的防火墻技術。
例如結合入侵檢測技術的入侵防御防火墻(IDPS)、文件(如高精地圖)過濾、反垃圾信息過濾等。
2. 更智能的策略制定。
當前主流防火墻技術都是設計特定過濾規則和策略,都是針對已知威脅。但下一代的防火墻也許可以結合人工智能技術來檢測數據包的特征,防御未知威脅。
參考來源:
1. Automotive Gateway IP Enabling Scalable Automotive Platforms,
https://semiengineering.com/automotive-gateway-ip-enabling-scalable-automotive-platforms/
2. Network Switch vs Network Router vs Network Firewall,
https://community.fs.com/blog/network-switch-router-firewall-why-need-all-three.html#:~:text=In%20a%20local%20area%20network%20%28LAN%29%2C%20network%20switch,servers%2C%20Internet%20Protocol%20%28IP%29%20cameras%20and%20IP%20printers.
3. Stateful Firewall, https://www.fortinet.com/resources/cyberglossary/