作者介紹:
豬皮蘇,某新能源車企車聯網安全負責人,以打工豬態度勤懇深耕車聯網場景安全解決方案;
吐司2,某新能源車企資深滲透工程師,在應急響應、入侵對抗、研發安全方面擁有豐富檢驗;
yong.H,某新能源車企基礎安全負責人,多家互聯網大廠經驗,專注于紅藍對抗、,以攻促防建設企業安全,重點工作是研究和防御復雜的網絡威脅,提升企業的安全防護能力;
Zzb:某新能源車企安全負責人,專注于企業安全建設和安全體系建設,擁有豐富的安全專業知識和經驗,致力于保護企業的資產和信息免受威脅;
腹黑、LDrakura、安安小飛飛、HOPE、Winghr對本文亦有貢獻。
作為車聯網領域的信息安全工作者,筆者在近兩年的實際工作中,能夠明顯感受到汽車智能化和互聯化程度不斷提高,這使得智能網聯車輛面臨著日益增多的網絡安全威脅。同時,全球多個國家和地區均已制定了各自的監管法規和標準,這也對我國汽車品牌在海外市場的發展提出了一些硬性安全條件。在基于安全威脅和法規遵從要求的基礎上,筆者希望通過本文,循序漸進地探討一下汽車端側入侵對抗防護的新思路及可行性。
一、車端NIDS應用概覽
目前,我們看到市面上大多數車端IDPS產品,多數基于主機安全模式下的HIDS與NIDS進行移植實施。但由于車端本身的算力性能限制,直接進行全量由主機端向車端的策略平移,落地性不僅非常差,而且實際防護效果也非常不理想,主要體現在車端特有場景難以匹配,容易造成實際硬件性能與算力浪費。因此,識別車端與原有主機的差異化攻擊場景及部署方式是量化車端IDPS策略使其真正有效可用的前提。
車端?NIDS作為IDPS系統的重要組成部分,它的主要職責只有一個:實時監測車載網絡流量,及時發現并應對潛在的安全威脅。NIDS探針在車端可通過利用多種檢測策略對流量包進行深度分析和協議識別檢測網絡威脅。目前,車端NIDS探針主要集中于對識別已知攻擊模式的識別與防御,相信隨著技術發展,后續亦可通過行為分析等手段持續提升能力,主動發現未知威脅,從而提供更為全面的網絡安全防護。
1、?部署架構
NIDS主要包含CAN網絡(控制器局域網)的檢測分析,如CAN DLC 檢測、周期檢測、上下文檢測、UDS 協議檢測等;以太網絡的檢測分析,如?DDoS 攻擊、SOME/IP 檢測、DoIP 檢測、掃描檢測、深度包檢測等。這些特點和傳統的IDS系統非常相似。
在當前跨域融合的電子電器架構中,一般情況下從上到下分為鏈接傳輸層(TBOX)、跨域融合層(IVI、ADAS、GW)、區域控制層(VIU)、傳感執行層,其中NIDS往往需要部署在TBOX、IVI、ADAS這幾個主要控制器上,從而更好地抓取網絡流量(均可以定義為網絡邊界),在一些ECU、VID層面反而不適合部署NIDS。在此,我們想強調的核心差異點在于:
1、車載NIDS的部署網絡邊界差異
傳統的NIDS部署模式通常在網絡邊界POP點或網絡核心進行流量鏡像,以此實現對網絡流量的監控和分析。然而,車載網絡具有其特殊性,車載NIDS的部署模式需充分考慮近端組網的場景,且涉及多個零部件的協同工作。在這種場景下,以零部件為單網絡部署節點成為了一種現有的較為普遍的方案。這種部署模式將NIDS直接部署在車載網絡的各個節點上,實現對每個節點的實時監控和分析。
2、部署節點的判定標準差異
車載NIDS的部署點也并非可以以網關、ADAS、IVI、TBOX一概而論。首先,我們需要考慮車端電子電器架構的組網特點。車載網絡通常由多個零部件組成,這些零部件在網絡上的對外暴露面各不相同。因此,我們需要根據零部件的暴露面進行標準評估,以確定哪些節點需要部署NIDS,可參照如下判斷標準:
2、常見網絡威脅檢測的方法
NIDS探針基于網絡流量的特征,一般可以基于以下幾種方式來進行威脅檢測:
每種類型的檢測策略都有其獨特的實施方式和特點,每種檢測策略亦都有其優勢和局限性,因此在實際應用中,NIDS通常會采用多種策略相結合的方式,以提高檢測的準確性和全面性。
二、?車載以太網絡威脅檢測分析
網絡威脅檢測需要包括以下內容:
1. 源地址與目標地址:通過分析流量包的源地址和目標地址,可以判斷流量是否來自可信的設備或網絡。
2. 端口號:端口號用于標識不同的服務或應用。通過檢查端口號,可以判斷流量是否與目標服務或應用相關。
3. 協議類型:不同的協議類型具有不同的結構和特點。通過識別協議類型,可以進一步分析流量包的具體內容。
4. 數據包內容:數據包的內容是判斷是否存在惡意攻擊的關鍵。通過分析數據包的內容,可以檢測是否存在異常行為或攻擊模式。通過分析流量包的源地址和目標地址,可以判斷流量是否來自可信的設備或網絡。
在實際應用中,網絡威脅檢測的實現包括四層檢測和七層檢測兩種方式。四層檢測主要關注網絡層和傳輸層的協議信息,一般會提取出5元組(協議,源IP, 源端口, 目的ip, 目的端口)。nids會檢查通過車載網絡的每個數據包,確保只有符合安全策略的連接能夠通過。例如,對于白名單的流量,nids會允許其通過;而對于黑名單或者異常連接發出警告。在實施過程中,nids通過維護一份白名單或黑名單,來定義哪些連接是合法的,哪些是需要告警的。同時,nids利用流量模式分析技術,對流量包的頻率、大小、持續時間等特征進行分析,以識別可能的異常行為。
而七層檢測則更深入地關注應用層協議的內容,能夠對傳輸的數據包進行更細致的分析。通過深度包檢測(DPI)技術,nids能夠解析數據包中的應用層協議,如DNS、MQTT、SSH、SOME/IP、DoIP、TLS等,并檢查其內容是否包含惡意代碼、廣告、非法網站等威脅。
我們認為,在車載網絡系統中,采用七層網絡威脅檢測方式尤為重要,因為許多車載應用和服務都依賴于應用層協議進行通信。通過七層檢測,nids能夠實現對這些應用的實時監控和威脅識別,從而保護車輛免受網絡攻擊。其中:
1、鏈路層
在鏈路層,我們主要監測的是mac地址。MAC地址用于標識網絡中的設備,通過分析MAC地址,可以判斷流量是否來自可信的設備。后續用于識別mac地址是否被偽造,因為在車端場景下車內零部件mac地址大概率不會頻繁變更,因此,如果發現某個MAC地址頻繁變或與其他設備的MAC地址沖突,那么可能意味著該MAC地址被偽造了。另外,如果某個MAC地址突然出現在不應該出現的網絡位置,或者其流量模式與正常行為不符,那么這可能意味著存在潛在的安全風險。
2、網絡層
在網絡層,我們主要關注的是Ip地址,包含源ip、目的ip、端口,以及此處可以檢測到是當前數據包是基于tcp還是udp協議。IP地址就像是每個設備的“身份證”,源IP還是目的IP,是所有數據包傳輸的起點和終點。通過解析IP地址,我們可以跟蹤數據的來去。而端口則像是設備上的“門牌號”,因為不同的應用程序或服務會使用不同的端口進行通信。
3、傳輸層
在傳輸層中,我們主要解析出端口數據包含源端口和目的端口,源端口指的是數據發送方所使用的端口號,而目的端口則是數據接收方所監聽的端口號。通過對端口進行惡意掃描是常見的攻擊手段,攻擊者通過掃描目標主機的端口,嘗試發現其開放的服務并進而實施攻擊,往往端口的探測與掃描也是攻擊的開端。因此監控控制源端口和目的端口的使用情況尤為必要。
4、應用層
我們認為依據歐盟R155法規與《汽車整車信息安全技術要求》,車載nids所需關注的攻擊場景主要聚焦于車端側攻擊,基于車端實際可能實施的攻擊場景,車載nids目前有效的檢測策略其實需要在原有傳統主機安全上做大量的減法,而且完全可以被量化出一個基礎的策略集。在此,我們總結了以下車載常用協議及我們認為實際在車端需要關注的攻擊類型與原因:
協議類型 | 報文結構 | 攻擊類型 | 車載場景解析 |
HTTP | 通用web漏洞:獲取域內傳輸配置信息已知組件漏洞探測及利用邏輯漏洞:越權訪問 | 我們認為以黑客視角,近端實現和車端控制器組網后,有可能為拿到例如用戶名密碼的配置文件會嘗試對http的進行sql注入,此部分nids檢測策略優先級較高。其次,對報文體中的已知漏洞探測與攻擊也存在一定可能性,但由于車載http報文所使用場景更為簡單固定,引入漏洞的可能性相對較小。另外,在主機安全中常見的跨站攻擊因其需要一一對應的交互回應,目前其實并不適用于車端場景。 | |
SOME/IP | 1、異常請求ID篡改:這里常見的包含Message ID中的服務ID,方法ID,這些ID應都有對應配置列表,nids可通過比較id是否位于配置列表中的白名單檢測方式實現,如果NIDS監測到出現了不在這個ID里面訪問,證明可能存在未知請求或fuzz?;螆笪模簆ayload中存在不合適的字符串(payload過大/存在異常函數) | 無論是Someip、Doip還是其他車載私有協議,其本質都有共通之處且依賴于車企本身對此協議應用于實際服務的場景。目前為止,車內的訪問節點非常單一,往往tbox對應的應該只有一個特定于IVI的IP訪問它,每個控制器都有對應固定幾個訪問它的ip列表名單,如果出現了在此配置之外的IP訪問,則可以考慮未知非法請求;另外,對于每個的tcp請求頻次也是基于服務有固定參數的,如果有超量的請求數,亦需要進行風險識別Example:OTA時,ivi向tbox做升級包獲取的請求,nids需首先此服務場景下的判斷ip(來源IP目的IP)是否正確,再識別ftp請求數是否合理 | |
DoIP | 其中DOIP報文消息內容中所包含的UDS請求的數據和車輛或設備的標識信息(如VIN碼)是我們重點關注的對象,這既是DOIP作為應用層報文的主要異同所在也是我們威脅場景分析以及識別參與通信的車輛或設備依據。 |
1、非法請求:通過白名單識別 源目IP地址、端口號、協議類型、數據包大小、協議頭部信息、消息內容、車輛或設備的標識信息、時間戳等。 |
三、部分車端入侵威脅的典型檢測場景
我們在此總結了一些常見車端nids的檢測實例供參考,這些場景均參照了R155標準的相關解讀。
場景1、非法端口探測掃描
在掃描行為中,數據包被用來探測目標系統的開放端口、服務狀態等敏感信息,從而為后續的攻擊行為提供情報。在感知非法的端口探測掃描時,車載NIDS探針主要關注以下幾個特征值:
常見掃描類型及其數據包特征
掃描方式 | 描述 | 特征 |
SYN掃描 | 1、發送只包含SYN標志位的TCP數據包用于探測目標主機的端口狀態。2、大量向目標系統的不同端口發送SYN或ACK數據包,以探測開放的端口和運行的服務。 | 正常特征:1、只包含SYN標志位的TCP數據包: 用于探測目標主機的端口狀態,SYN=1,ACK=0。2、SYN=1,ACK=1: 代表連接開始并且已經得到響應,該端口處于開放狀態。3、RST: 代表連接重置,該端口處于關閉狀態。惡意特征:1、大量向目標系統的不同端口發送SYN或ACK數據包: 用于探測開放的端口和運行的服務。2、異常特征: 惡意掃描行為可能表現為頻繁發送大量的SYN或ACK數據包到目標系統的不同端口,以探測目標系統的開放端口和服務情況。 |
ACK掃描\FIN掃描\NULL掃\XMAS掃描 | 1、分析TCP包的ACK/FIN/NULL/XMAS標志位。2、ACK掃描不依賴于建立完整的TCP連接,因此nids需要更加謹慎地分析數據包的上下文信息,以避免誤報。如果發現大量的ACK包針對未建立連接的端口發送,這可能是ACK掃描的跡象。3、如果一個IP地址在短時間內向大量不同的端口發送SYN或ACK數據包 | ACK掃描:正常特征: ACK標志位被設置,用于確認數據包接收。惡意特征: 大量的ACK包針對未建立連接的端口發送,用于探測目標主機的端口狀態。FIN掃描:正常特征: FIN標志位被設置,表示發送端已經完成發送數據,并要求關閉連接。惡意特征: SYN標志位為0,同時FIN標志位被設置,用于探測目標主機的端口狀態。NULL掃描:正常特征: SYN、FIN、ACK標志位均為0。惡意特征: SYN、FIN、ACK標志位均為0,用于探測目標主機的端口狀態。XMAS掃描:正常特征: SYN=1,FIN=1,PSH=1。惡意特征: SYN=0,同時FIN、PSH等標志位被設置,用于探測目標主機的端口狀態。 |
場景2、?TCP-DDoS攻擊
DDOS攻擊的策略庫已經非常成熟了,覆蓋了從傳輸層到應用層各種場景。我們認為,車載NIDS在檢測TCP DDoS攻擊時,主要關注以下字段和特征:
監測項 | 監測原因 |
源IP地址 | 通過分析源IP地址的分布和變化,可以識別出是否存在大量來自相同或相似IP地址的流量。這是判斷是否存在僵尸網絡節點的一個關鍵指標。 |
目標IP地址 | 觀察目標IP地址的流量情況,可以判斷攻擊是否針對特定的系統或服務。如果目標IP地址的流量異常增長,則可能是DDoS攻擊的跡象。 |
數據包大小 | DDoS攻擊中,攻擊者可能會發送大量小數據包或少數大數據包,以消耗目標系統的處理能力。因此,數據包大小也是檢測DDoS攻擊的一個重要特征。 |
數據包速率 | DDoS攻擊通常伴隨著高速率的流量發送。因此,通過監測數據包速率的變化,可以及時發現DDoS攻擊的跡象。 |
場景3、惡意軟件檢測-車端木馬后門
攻擊者通常會利用網絡流量來發起攻擊,因此分析網絡流量中的特征可以幫助我們發現攻擊行為。常見的攻擊特征包括:
以Metasploit生成的木馬TLS證書特征分析為例,Metasploit是一款常用的滲透測試工具,可以生成各種類型的木馬。這些木馬通常會使用TLS(Transport Layer Security)協議進行加密,以隱藏網絡流量。我們可以通過分析木馬的TLS證書來識別其惡意行為。
Metasploit生成的木馬TLS證書通常具有以下特征:
結語
除以太網外,CAN網絡在車載通信中扮演著至關重要的角色,然而卻存在著多種安全問題。目前,CAN總線缺乏足夠的安全保護措施,導致信息的保密性、完整性、可用性、真實性和不可抵賴性受到威脅。消息在總線上可以被任意節點讀取,且缺乏消息認證碼或數字簽名保護,增加了信息泄露和篡改的風險。此外,對ECU進行固件修改時使用口令等弱認證技術,容易受到攻擊。CAN協議的濫用也存在,攻擊者可以利用總線仲裁機制進行拒絕服務攻擊,或發送惡意錯誤幀消息使ECU失效。常見的攻擊方式包括丟棄、修改、讀取、欺騙、洪泛和重放攻擊,以上都對車載CAN總線網絡構成潛在威脅,后續我們也希望在車端HIDS上繼續研究更新,并于期待下次與大家再次探討。
來源:安全牛