采用基于模型的方法實現車輛SOA威脅分析自動化

摘要

盡管采用面向服務架構(SOA)有助于實現自動駕駛、空中下載更新等功能,但同時也增加了車輛遭受攻擊的風險,可能對道路使用者造成傷害。為解決這一問題,相關標準(ISO 21434 / 聯合國歐洲經濟委員會(UNECE)標準)要求制造商通過開展適當的威脅分析,提供安全論證及證據。由于威脅分析的關鍵步驟(如損害 / 威脅場景分析、攻擊路徑枚舉)往往依賴人工完成,且缺乏嚴謹性,導致安全論證缺乏精確保障(例如,在系統更新情況下,與安全目標的可追溯性不足)。本文提出一種基于模型工程方法的自動化威脅分析技術,該技術能針對安全目標提供精確保障。為實現這一目標,本文構建了一個汽車 SOA 入侵者模型,將該模型與系統架構、安全分析確定的損失場景共同作為輸入,用于計算資產、影響等級、損害 / 威脅場景及攻擊路徑。為驗證所提方法的有效性,本文基于廣泛使用的開源自動駕駛框架 —— 阿波羅(Apollo)框架,構建了其自動駕駛功能的忠實模型。研究表明,所提方法能夠自動枚舉阿波羅框架中的多條攻擊路徑,其中包括文獻中尚未報道過的攻擊路徑。

1、引言

為應對自動駕駛、空中下載更新等功能實現過程中的挑戰,汽車行業正經歷重大變革。如今的車輛不再采用基于特定領域硬件的分布式架構,而是采用軟件密集型的面向服務架構(SOA),并配備功能強大的中央計算單元。開源的阿波羅(Apollo)框架便是這一變革的典型代表,該框架提供的自動駕駛功能已應用于自動駕駛出租車、自動駕駛公交車等實際自動駕駛應用的開發中。

這一變革也引發了人們對攻擊者如何影響道路使用者安全的擔憂。盡管十多年前人們就已意識到安全面臨的威脅(但 ISO 21434 標準(ISO/SAE 21434,2020)和聯合國歐洲經濟委員會(UN,2021)標準仍推動行業改變其開發流程,以打造具備安全設計與防護設計特性的車輛。例如,ISO 21434 標準高度重視開發流程及威脅分析(如損害 / 威脅場景 / 攻擊路徑枚舉),要求在車輛上路前完成這些工作并解決相關問題。最終,原始設備制造商(OEM)需提供充分的論證和證據(即安全檔案),證明其車輛在安全方面同樣具備可靠性。

如果原始設備制造商(OEM)在開發自動駕駛功能時,未事先開展分析、論證并提供支持車輛安全防護的證據,可能會付出高昂代價。若缺乏這些資料,一旦相關標準得到更嚴格的執行,這些車輛將難以獲得認證機構的認可,也無法在多個國家投入使用。更棘手的是,已有多起攻擊事件被報道,這些攻擊可能對道路使用者造成嚴重危害,例如導致車輛碰撞。正如本文所指出的,若在系統架構設計階段采用 “功能安全與網絡安全設計” 方法,并借助自動化工具開展適當的威脅分析,許多此類攻擊本可被提前識別。

開發具備 “功能安全與網絡安全設計” 特性的車輛,關鍵挑戰在于應對其中涉及的巨大復雜性。例如,若缺乏適當的防護措施,SOA 允許任何軟件組件發布任何數據,包括可能被安全關鍵功能調用的數據。這一特性已成為權限濫用攻擊(Hong 等人,2020)的根源之一:當安全關鍵功能錯誤地調用惡意組件(甚至是失效組件)發布的數據時,就可能引發危害情況。再如,惡意組件可能利用 SOA 通信漏洞實施中間人攻擊。此外,攝像頭、GPS 接收器等傳感器也可能成為攻擊者利用的攻擊面,從而引發危害。

1.1 功能安全與網絡安全設計方法及貢獻

本文提出的功能安全與網絡安全方法及三大核心貢獻如圖1所示。該方法基于汽車功能安全與網絡安全協同工程領域文獻中的以下核心理念構建:

圖1:所提出的 “設計即安全可靠” 方法論、工具鏈及核心貢獻(C1、C2、C3)示意圖

軟件密集型系統的分析技術:系統理論過程分析(STPA)(Leveson 和 Thomas,2018)已被 ISO 21448(預期功能安全,SOTIF)(SOTIF,2021)等標準推薦用于自動駕駛功能的安全分析,以確保自動駕駛等功能的安全性。這是因為 STPA 不假設線性因果關系,而是更側重于故障 / 惡意組件之間的交互。

從功能安全到網絡安全:博世(Bosch)工程師提出的方法將安全目標、危害等安全要素作為防護分析的輸入。采用這一做法主要基于兩點原因:1)安全分析通常先于防護分析進行;2)將安全分析結果作為防護分析的輸入,通過建立適當的可追溯性,能夠確保防護分析結果與安全分析結果的完整性。例如,可通過檢查所有危害成因(在 STPA 術語中稱為損失場景)是否都能追溯到相應的防護分析來實現這一目標。

基于模型的工具鏈:基于模型的工程方法以待設計系統的形式化抽象為基礎,與傳統的基于文檔的方法相比,借助自動化分析、設計和驗證工具,有助于降低當今軟硬件架構的復雜性,同時提高開發速度和質量。

盡管上述方法已被提出,但本文首次將它們整合到一個針對 SOA 車輛架構的、全面的基于模型的方法中。如圖 1 所示,該方法從(SOA)車輛模型入手,明確關鍵功能、邏輯組件和平臺(又稱物理)架構。這些模型元素是確保該方法合理性的基礎,后續的功能安全與網絡安全分析均需追溯到該模型。通過危害分析與風險評估(HARA)和 STPA 分析,確定關鍵安全功能、通道和物理元素,這些元素從防護角度被視為需要保護的資產。將 STPA 分析得到的損失場景(即可能導致危害的情況)轉化為損害場景和威脅場景,明確攻擊者如何引發安全危害。在此基礎上,開展防護分析,例如利用邏輯架構和平臺架構識別可能導致威脅場景的攻擊路徑。最后,探討應對這些威脅的潛在防護措施。

該方法的核心優勢體現在三個方面:第一,實現了安全分析、防護分析與車輛模型之間的全面可追溯性。這意味著分析結果能夠反映到將在車輛上部署的實際實現中。第二,該方法能夠確保防護分析涵蓋所有危害的所有損失場景,例如所有損失場景都能追溯到損害 / 威脅場景。這意味著所有已識別的安全問題都需從防護角度加以考慮。第三,基于模型的方法支持采用自動化技術,例如基于入侵者模型自動枚舉攻擊路徑。

本文的主要貢獻如下:

基于阿波羅的車輛模型(C1):通過研究阿波羅代碼庫中與自動駕駛功能相關的代碼,設計了一個忠實反映阿波羅系統的車輛模型。該模型體現了 SOA 的發布 - 訂閱模式,以及阿波羅各組件之間的信息(即主題)交互。據我們所知,這是首個基于阿波羅 v7.0.0 代碼庫構建的模型。

車輛 SOA 入侵者模型(C2):通過研究車輛 SOA 防護領域的相關文獻,構建了車輛 SOA 的形式化入侵者模型。該入侵者能夠實施中間人(MITM)攻擊,并通過公共接口滲透到系統內部實施欺騙攻擊,例如對激光雷達(LiDAR)、攝像頭等感知傳感器進行攻擊。

攻擊路徑自動化(C3):開發了一個用于自動枚舉車輛系統架構中攻擊路徑的工具(LAUFEN)。LAUFEN 將車輛模型、資產、損害 / 威脅場景以及入侵者模型的實現作為輸入,輸出所有可能的攻擊路徑。

本文在構建的阿波羅車輛模型上對所提方法和自動化工具進行了演示和驗證。研究重點關注安全資產,因為安全是自動駕駛的核心關注點。所開發的工具共識別出 246 條攻擊路徑,其中包括文獻中已報道的攻擊路徑。由于該工具能夠追溯到安全分析過程,因此還識別出了更多需要通過防護措施加以緩解(或需提供相關防護依據)的攻擊路徑。事實上,基于生成的攻擊路徑,本文發現了一些尚未被文獻報道的潛在攻擊。

2、阿波羅模型構建

阿波羅(Apollo,2021)是一個開源自動駕駛框架,能夠支持高度自動化的車輛功能(更準確地說,達到了美國汽車工程師學會(SAE)定義的 L4 級別),例如高速公路自動駕駛和交通擁堵輔助駕駛,在這些場景下車輛可在有限人工監控下行駛。阿波羅 v7.0.0 版本(Apollo,2021)包含超過 50 萬行 C++ 代碼。

阿波羅框架實現的核心部分是 Cyber RT 中間件。Cyber RT 提供發布 - 訂閱模式,支持運行于其上的軟件組件之間的通信。組件可通過帶標簽的通道(即主題)進行通信。組件可通過向指定主題寫入消息來發布數據,也可通過指定主題名稱來訂閱感興趣的任何主題。當發布者向某個主題寫入數據時,所有訂閱該主題的訂閱者都會接收到這些數據。Cyber RT 允許多個組件向同一主題發布數據,也允許多個組件訂閱同一主題。新主題的發布以及組件對主題的訂閱通過一種名為服務發現的機制實現。

本節將介紹為演示本文方法而設計的阿波羅模型。該模型重點關注代碼庫中與自動駕駛功能相關的部分,即傳感器(攝像頭、激光雷達)、定位、感知、預測、規劃、控制和人機交互界面(HMI)。

本文采用基于模型的系統工程工具 AutoFOCUS3對阿波羅系統架構進行建模。該模型包含 9 個功能、61 個邏輯組件、341 個端口,傳輸 73 種數據結構(含 361 個成員)、16 個執行單元、12 個傳輸單元和 6 個傳感器。為描述發布 - 訂閱通信,本文在 AutoFOCUS3 中擴展了一個實驗性元模型,通過專用的主題端口數據類型來實現發布 - 訂閱通信的描述。由于篇幅限制,本節僅介紹邏輯架構和平臺架構的部分關鍵內容,因為本文呈現的防護分析結果主要聚焦于這兩種架構。

2.1 邏輯架構

所設計的邏輯架構較為復雜,包含四個層級,且每個層級都有多個組件。圖 2 展示了阿波羅模型中第二高層級的架構,該層級包含主要的自動駕駛組件。

圖2:邏輯架構:主要自動駕駛組件

定位組件接收全球導航衛星系統(GNSS)的傳感器數據,并計算車輛位置。車輛位置信息會被以下組件接收:感知組件接收來自攝像頭、雷達和激光雷達的傳感器數據以及車輛位置信息,進而識別障礙物(如道路上的其他車輛)和交通信號燈狀態;預測組件接收來自感知組件的障礙物列表和車輛位置信息,嘗試預測障礙物(可能是其他車輛或行人)的運動意圖,例如車輛是否打算變道;相對地圖組件整合障礙物列表,并將其與包含道路信息(如車道、交通信號燈位置)的地圖數據相結合;規劃組件接收來自定位、感知、預測和相對地圖組件的所有數據,據此規劃車輛安全且舒適的行駛軌跡;控制組件接收規劃好的行駛軌跡,并生成控制指令(如轉向、加速等),使車輛能夠沿規劃軌跡行駛。

確保模型與阿波羅代碼的一致性是一項關鍵挑戰。為實現這一目標,本文通過人工檢查阿波羅代碼提取模型元素。例如,為找出阿波羅中所有基于 Cyber RT 實現的組件,需檢查代碼中所有cyber::Component類的實現。下一步是確定主題以及哪些組件向這些主題發布數據、哪些組件訂閱這些主題。阿波羅通過以下三種機制定義主題通信:有向無環圖(DAG)配置文件、實現主題讀取器和主題生成器的 C++ 代碼,以及庫代碼。本文對這三種機制均進行了檢查,以確定組件訂閱和發布的主題。例如,圖 3 展示了規劃組件的 DAG 配置文件,該文件表明規劃組件訂閱了/apollo/prediction、/apollo/canbus/chassis和/apollo/localization/pose這三個主題。

圖3:從DAG配置文件中建模規劃的用戶端口

2.2 平臺架構

圖 4 展示了本文設計的平臺架構,該架構遵循現代智能汽車架構的發展趨勢,即采用數量較少但性能強大的電子控制單元(ECU),并通過網絡接口(如交換機)實現 ECU 之間的連接。

圖4:基于現代智能汽車架構的平臺架構(黃色陰影表示系統邊界)

平臺架構中的主要ECU包括:

1. MDC(移動數據中心):該硬件負責處理與自動駕駛功能相關的組件,例如從攝像頭輸入中識別目標、預測環境中目標的運動軌跡、規劃行駛路徑等。MDC 進一步細分為多個子系統,每個子系統配備不同類型的處理單元,且這些處理單元具有不同的安全防護等級,例如符合汽車安全完整性等級 D(ASIL-D)的微控制器(MCU)。

2. CDC(智能座艙):該硬件負責所有與座艙相關的功能,例如駕駛員監控系統、娛樂功能等。

3. VDC(車輛控制器):該硬件負責基本的車輛控制功能,例如電動助力轉向、電池管理、防抱死制動等功能。

4. VIU 1-4(車輛集成單元):這些硬件是功能強大的網關,通過網絡接口連接 MDC、CDC 和 VDC,并通過 CAN 總線連接特定領域的硬件。

模型中的黃色區域代表系統邊界(又稱項目邊界)。本文將邏輯架構中實現的所有組件均視為系統的一部分。例如,傳感器(如激光雷達、GPS 接收器)本身并非系統的一部分,它們是連接到系統的第三方設備,用于從環境中獲取輸入信息。本文將這些傳感器視為系統外部的公共接口,外部用戶可能會訪問這些接口。

3、基于功能安全的網絡安全分析

本文的核心目標是識別與安全相關的資產、損害場景和威脅場景,因為安全是自動駕駛的首要關注點。本節將闡述防護分析師如何利用關鍵安全要素來識別重要的防護要素,從而建立防護關注點與安全關注點之間的可追溯性。通過這種追溯關系,可以證明防護分析相對于安全分析的(相對)完整性,即確保識別出所有可能導致安全損失場景的威脅。盡管已有文獻主張在功能安全與網絡安全之間建立類似的可追溯性,但這些文獻未采用 ISO 21434 標準中提及的損失場景和相關要素,因此本文僅以阿波羅系統架構為例,對該方法進行說明。

3.1 功能安全分析

本文對阿波羅系統架構開展了功能安全分析。根據 ISO 26262-3 標準(ISO26262,2018),采用危害分析與風險評估(HARA)方法識別危害。此外,運用系統理論過程分析(STPA)確定這些危害可能發生的方式。

本文重點關注 HARA 分析得出的危害和 STPA 分析得出的損失場景。危害是指由項目(即阿波羅系統架構)的失效行為可能導致損失(如人員傷亡)的潛在根源。損失場景則描述了可能導致危害發生的因果因素。

本文共識別出 4 種危害和 21 個損失場景。為演示 1.1 節所述的基于模型的威脅分析方法,本節將以表 1 中描述的危害(HZ1)和損失場景(LS1)為例進行說明。HZ1 是與自動駕駛功能相關的高風險等級(ASIL D)危害。LS1 是可能導致 HZ1 發生的原因之一,且可追溯到模型中的兩個組件(規劃組件和控制組件)以及規劃組件生成的軌跡所對應的主題。LS1 指出,如果計算出的軌跡存在錯誤(例如,本應推薦小加速度,卻錯誤地推薦大加速度),則可能引發 HZ1,即車輛可能與障礙物發生碰撞。

表 1:功能安全分析結果示例

3.2 基于安全分析的資產與損害 / 威脅場景

根據 ISO 21434 標準(ISO/SAE 21434,2020),資產是指其網絡安全屬性若被破壞,可能導致項目受損的對象(如軟件組件、硬件單元)。損害場景是指由于資產網絡安全屬性被破壞而產生的不利后果。威脅場景是指可能對資產實施的、可能導致損害場景發生的潛在行為(或簡稱為攻擊)。安全分析得出的危害和損失場景可直接用于識別此類與安全損害相關的防護要素。

損害場景可追溯到危害。與 HZ1 對應的損害場景明確指出,從防護角度出發,也應避免車輛與其他物體之間出現非預期的距離。從損失場景中可追溯到三類主要資產:

· 安全功能:與安全相關的功能(通常以軟件片段的形式實現)需要受到保護。對于 LS1 而言,規劃和控制功能就是此類資產。

· 主題 / 消息:損失場景中提及的與安全相關的信號 / 消息需要受到保護。對于 LS1 而言,傳輸軌跡信息的主題屬于此類資產。

· 硬件 / 物理設備:部署安全功能的硬件需要受到保護。與 LS1 相關的功能部署在 MDC 內部的 MCU 硬件單元上。

此外,損失場景的故障模式指明了這些資產應具備的網絡安全屬性(CIA 三元組屬性,即機密性、完整性、可用性)。其中,“錯誤” 和 “丟失” 這兩種失效模式分別表明需要確保相應資產的完整性和可用性。需要注意的是,無法從安全分析中提取機密性屬性,因為機密性缺失不會導致與安全相關的損害。

基于損失場景及其衍生的資產,可借助 STRIDE 方法等工具構建威脅場景。例如,安全功能和物理資產的完整性可能會遭受篡改攻擊,而主題 / 消息的完整性則可能會遭受欺騙攻擊和權限提升攻擊。

這些要素被用于枚舉需要關注的攻擊路徑,即那些可能導致威脅場景發生的路徑。攻擊路徑的枚舉取決于所采用的技術。例如,若軟件可通過空中下載(OTA)機制進行更新,那么在枚舉攻擊路徑時,就需考慮攻擊者如何利用這些機制通過惡意更新篡改軟件。對于本文所研究的阿波羅系統架構,需重點考慮 SOA 機制的使用(如服務發現協議、發布 - 訂閱通信模式、傳感器)以及藍牙、WiFi 等其他公共接口。這些內容將在下文詳細闡述。

4、車輛SOA入侵者模型

本文通過圖5中的規則構建了 SOA 入侵者模型的形式化定義。該入侵者模型基于第 6 節中描述的針對集中式架構車輛 SOA 的主要攻擊方式。從直觀角度來看,若未部署適當的防護措施,SOA 存在兩個主要的攻擊面可能被攻擊者利用。

圖5:SOA的入侵者模型

· 外部攻擊者:可利用傳感器、通信接口等公共接口滲透到系統內部,攻擊車輛資產(如安全功能)。例如,攻擊者可通過欺騙 GPS 坐標,破壞定位組件發布的位置信息的完整性。

· 內部攻擊者:可利用底層 SOA 協議中的漏洞實施中間人(MITM)攻擊,從而破壞主題的完整性。例如,攻擊者可在定位組件與感知組件之間實施中間人攻擊,破壞位置信息的完整性。

圖 5 展示了反映這類攻擊的入侵者模型規則。這些推理規則推導出下文所述的三種判定結果。其中,Γ 包含從車輛模型中提取的系統規范,這些規范通過表 2 中描述的謂詞符號形式化為原子公式。Γ ` wrt(X,Y) and Γ ` rd(X,Y)分別表示模型元素的端口 X 可向 Y 寫入數據和從 Y 讀取數據。

規則 write1 規定:若組件的輸出端口 co 分配給 ECU 的輸出端口 eo(由謂詞(c, co),alloc(co, eo)指定),且存在從 eo 到網絡元素輸入端口 ni 的通道(由謂詞ch(eo,ni)指定),則 ECU 的輸出端口 eo 可向網絡元素的輸入端口 ni 寫入數據。規則 write4 與 write1 類似,但適用于公共元素。規則 write2 規定:ECU 的輸入端口可向其自身的輸出端口寫入數據 —— 本文假設 ECU 內部存在傳輸通道ch(ei, eo),例如 ECU 內部組件之間的消息交互。規則 write3 與 write2 類似,但適用于網絡接口。規則 read2 規定了 ECU 從網絡接口讀取數據的條件(與 write1 類似)。規則 read1 規定:訂閱端口可從發布端口讀取數據。

Γ ` i reach(X) 表示入侵者可訪問模型元素的端口 X。規則 basic out 規定:架構中公共元素的任何端口都可被(外部)入侵者訪問。規則 reach wrt 規定:若端口 p1 可向端口 p2 寫入數據,且(外部)入侵者可訪問端口 p1,則其也可訪問端口 p2。相應地,規則 reach rd 規定:若端口 p2 可從端口 p1 讀取數據,且(外部)入侵者可訪問端口 p1,則其也可訪問端口 p2。規則 basic ins 規定:架構中的任何發布端口都可被(內部)入侵者訪問。規則 reach ins rd 規定:若訂閱端口 ci 可從已被訪問的發布端口 co 讀取數據,則(內部)入侵者可訪問訂閱端口 ci。

Γ ` i attack(X)表示主題 X 可能遭受攻擊。規則 at out 規定:若某主題通過已被訪問的 ECU 輸入端口的信息流(if(ecu,p,tp))發布,則該主題可能遭受攻擊。規則 at ins 規定:若發布端口與訂閱端口之間的主題未受保護,且(內部)入侵者可訪問這些端口,則該主題可能遭受攻擊。

4.1 外部入侵者(示例)

以圖 6 所示的平臺架構為例。與硬件單元相連的黑色圓形和白色圓形分別代表輸出端口和輸入端口。本文假設傳感器是一個公共接口,根據規則 basic out,外部入侵者可訪問傳感器的輸出端口 o1。輸出端口 o1 向網絡接口 Network1 的輸入端口 i1 寫入數據,根據規則 reach wrt,入侵者可訪問端口 i1 和 o2。假設組件 CP1 的訂閱端口(淺藍色方形)分配給 ECU1 的輸入端口 i2,且 i2 可從 o2 讀取數據,根據規則 reach rd,入侵者可訪問端口 i2 和 o3。而端口 i3 和 o4 則無法被入侵者訪問。由于 o3 可向 i4 寫入數據,入侵者可訪問 i4,但無法訪問 i5 和 o5。最終,入侵者可通過傳感器實施欺騙攻擊,破壞 CP1 或 CP2 發布的主題的完整性,因為存在來自 i2 的信息流(依據規則 at out)。

圖6:外來入侵者的示意圖

4.2 內部入侵者(示例)

以圖 7 所示的邏輯架構為例。與組件相連的深藍色方形和淺藍色方形分別代表發布端口和訂閱端口。根據規則 basic ins,內部入侵者可訪問所有發布端口 o1...o6。根據規則 reach ins rd,由于訂閱端口 i1...i7 可從發布端口讀取數據(例如,i7 通過端口 o5 從定位組件讀取數據),因此入侵者可訪問這些訂閱端口。而訂閱端口 i8 無法被訪問,因為信息娛樂系統并非發布者。假設端口 o4 和 o5 發布的主題受到保護,且入侵者的攻擊目標是規劃組件通過端口 o2 發布的主題。在此情況下,入侵者可通過以下方式實施中間人攻擊:在路由組件與規劃組件之間,甚至在感知組件與預測組件之間實施攻擊(因為感知組件發布的主題可能會影響規劃組件發布的主題)。由于定位組件與規劃組件之間、感知組件與預測組件之間以及預測組件與規劃組件之間的主題均受到保護(依據規則 at ins),入侵者無法在這些組件之間實施攻擊,也無法從信息娛樂系統發起攻擊。

圖7:內部入侵者示意圖

5、攻擊路徑分析自動化

LAUFEN(面向服務架構的車輛威脅分析自動化工具,vehicLe threAt analysis aUtomation For sErvice-orieNted architectures)是一款 SOA 工具,能夠實現威脅評估與緩解分析(TARA)中多項活動的自動化計算。基于本文提出的 “功能安全與網絡安全設計” 方法,LAUFEN 可計算資產、損害場景、影響等級、威脅場景和攻擊路徑。本節重點關注可能導致車輛 SOA 遭受威脅場景的攻擊路徑的自動化計算,即破壞資產網絡安全屬性的路徑(第 3 節)。為此,LAUFEN 在邏輯編程工具 DLV中實現了上述入侵者模型。邏輯編程方法不僅具有聲明性和足夠的表達能力,可用于實現車輛 SOA 入侵者模型,而且在路徑可達性等路徑推理問題上具有成熟的應用。LAUFEN 采用表 2 中描述的謂詞將系統規范編碼為事實,并結合第 4 節中描述的入侵者模型,隨后利用 DLV 求解器枚舉攻擊路徑。本文在構建的阿波羅系統架構模型上對 LAUFEN 進行了驗證。

表2:用于定義入侵者能力的謂詞描述

由于阿波羅模型復雜度較高,若基于可達性進行樸素的攻擊路徑計算(尤其針對外部入侵者),其可擴展性較差。為解決這一問題,本文將計算過程分為兩個步驟:第一步為 “入侵者可達性計算”,根據讀寫規則和可達性規則,計算入侵者可訪問的所有模型元素。由于此步驟不計算具體路徑,DLV 引擎可在毫秒級時間內計算出可訪問元素。第二步為 “路徑計算”,將第一步得到的可訪問元素作為輸入,利用攻擊規則進行計算。本文采用目標導向的搜索方式,僅枚舉針對資產的攻擊路徑(即 “以資產為中心” 的方法),而非枚舉所有路徑,這意味著 DLV 無需計算全部路徑。

實驗在配置為 1.90GHz Intel Core i7-8665U 處理器、16GB 內存、運行 Ubuntu 18.04 LTS 操作系統(內核版本 5.4.0-113-generic)和 DLV 2.1.1 工具的設備上進行。表 3 展示了 LAUFEN 識別出的攻擊路徑數量及執行時間。枚舉攻擊路徑的執行時間較短,外部入侵者和內部入侵者的攻擊路徑枚舉時間分別為 1.11 秒和 0.06 秒。由于系統復雜度較高(如架構中存在大量公共元素和信息流),識別出的攻擊路徑數量較多。為確保全面覆蓋入侵者可能利用的攻擊步驟,本文未排除任何攻擊路徑。第 5.1 節將詳細闡述可緩解部分已識別攻擊路徑的潛在防護措施。

表 3:識別出的攻擊路徑數量,以及 LAUFEN 計算這些攻擊路徑所花費的執行時間

本文針對可能攻擊安全關鍵主題的攻擊路徑展開分析,并將部分攻擊路徑按外部攻擊者和內部攻擊者實施的攻擊類型整理于表 4 中。

表 4:從選定攻擊路徑推導得出的潛在攻擊。“來源(From)” 和 “目標(To)” 分別表示攻擊起始和結束的模型元素。“受影響主題(Affected Topic)” 表示攻擊者的實際攻擊目標。表格上半部分和下半部分分別描述外部入侵者和內部入侵者實施的選定攻擊(包括文獻中提及的攻擊)。“攻擊路徑數量(#Attack Pat

計算得到的攻擊路徑包括:外部攻擊者利用藍牙、激光雷達、攝像頭、GPS 和雷達攻擊安全關鍵主題,引發損失場景并對道路使用者造成傷害;內部攻擊者利用 SOA 通信漏洞攻擊相關主題。

通過模型及其與阿波羅代碼的關聯,本文對部分攻擊展開了深入分析,以明確這些攻擊如何引發安全問題。

5.1 V2X 交通信號燈篡改攻擊

LAUFEN 識別出了外部和內部攻擊者針對車對車(V2V)代理的攻擊路徑。圖 9 展示了外部攻擊的過程:V2V 代理組件發布從道路基礎設施獲取的交通信號燈狀態數據,交通燈組件訂閱該數據,同時也訂閱攝像頭獲取的數據以識別并發布交通信號燈狀態。由于阿波羅模型與源代碼之間存在可追溯性,可輕松找到與漏洞相關的類。研究發現,TrafficLightsPerceptionComponent函數會優先采用 V2V 代理接收的數據,而非攝像頭接收的數據。圖 8 展示了TrafficLightsPerceptionComponent函數的代碼片段。因此,攻擊者可通過外部(欺騙攻擊)或內部(中間人攻擊)方式操縱交通信號燈狀態。如圖 9 所示,攻擊者通過遠程信息處理終端(T-Box)實施欺騙攻擊,操縱交通信號燈狀態,可能導致車輛闖紅燈,對乘客和行人造成嚴重傷害。

圖8:Apollo的代碼片段:用V2X數據覆蓋交通燈狀態

圖9:T-Box操縱v2v代理接收到的交通燈狀態的欺騙攻擊示意圖

表5:攻擊路徑分析(外部入侵者)

5.2 路線 / 地圖注入攻擊

從安全角度來看,部分已識別攻擊路徑的危害性可能并不顯著。例如,LAUFEN 識別出了一條針對路由響應主題、涉及 “路由 - 規劃” 組件的攻擊路徑:內部攻擊者可在路由組件與規劃組件之間實施中間人攻擊,為目標車輛提供惡意路線。從安全角度而言,路由組件向規劃組件輸出錯誤信息這一損失場景的可控性較強,因此可能僅導致低風險等級的危害(如 ASIL A 或 ASIL B)。然而,從防護角度來看,這種攻擊可能引發諸多嚴重后果,包括劫持乘客。此外,規劃組件還可能受到相對地圖組件發布的道路地圖的影響,因為規劃組件在計算車輛行駛軌跡時會參考該地圖數據。

5.3 潛在防護措施

本文通過攻擊路徑分析,確定了實施防護措施的潛在位置。分析重點針對外部入侵者的攻擊路徑,因為研究發現許多此類攻擊路徑具有相同的前綴,這為防護措施的部署提供了線索。

表 5 展示了攻擊路徑分析的主要結果,包括外部入侵者可訪問的公共元素、LAUFEN 計算出的來自該公共元素的攻擊路徑數量,以及所有來自同一公共元素的攻擊路徑的共同前綴。

“前綴” 列中最后一個架構元素可能是部署防護措施的合適位置,從而可應對相應的攻擊路徑。從 “前綴” 列還可發現,網關 VIU 3 是來自右前攝像頭和 GPS 的攻擊路徑的共同節點,而 CAN 總線與 MDC 之間的連接則是來自前雷達和后雷達的攻擊路徑的共同節點。這表明可在 VIU 3 前方以及 CAN 總線與 MDC 之間部署防護措施,以應對這些攻擊路徑(共 62 條)。

例如,有文獻建議采用防火墻保護車輛架構免受此類攻擊。可在 “前綴” 列最后一個架構元素的前方部署防火墻,過濾網絡流量,防止惡意入侵。對于網絡接口(如 T-Box 和藍牙),還可實現雙向認證機制(如 mTLS),確保僅接收經過認證的消息。

此外,還可部署安全架構模式(如異構雙工模式)作為第二層防護。以外部攻擊者實施的 V2X 交通信號燈篡改攻擊為例,該攻擊通過 T-Box 破壞交通燈主題的完整性。一種可行的防護措施是在交通燈組件中添加一個校驗器,同時接收來自 V2V 代理和攝像頭的輸入(即異構輸入)—— 若兩種輸入不一致,交通燈組件可向駕駛員發出警報,或使系統切換至安全狀態。

內部攻擊者實施的中間人攻擊(如路線注入攻擊)會利用 SOA 通信漏洞破壞主題的完整性。數字簽名是確保服務器(如發布者)與客戶端(如訂閱者)之間真實性和完整性的常用防護措施。為應對中間人攻擊,可在阿波羅系統中實現數字簽名機制:每個發布者對其發布的消息進行簽名,每個訂閱者在接收消息時驗證簽名。Fast-DDS 提供了一個加密插件,可用于消息認證碼的計算和驗證。在阿波羅系統中采用數字證書應對中間人攻擊的思路,源于相關文獻中提出的防護措施 —— 該文獻建議采用數字簽名緩解阿波羅系統中發布 - 訂閱權限濫用問題。

理論上,實施數字簽名可應對所有 94 條內部入侵者攻擊路徑。然而,使用數字簽名會導致軟件組件在執行時產生性能損耗,需從防護、安全和成本等多個角度分析這種性能損耗。但由于所有已識別的攻擊路徑均涉及安全關鍵問題,因此必須實施防護措施以確保車輛安全。

6、相關工作

6.1 功能安全與網絡安全設計

功能安全與網絡安全協同設計領域已有豐富的研究成果,本文的方法正是基于這些成果構建的。本節將詳細介紹與本文方法聯系最為緊密的關鍵方法,并進行對比分析。

系統理論過程分析的防護擴展(STPA-SEC)是對 STPA 方法的擴展,可同時計算安全要素和防護要素(即漏洞)。“STPA 與六步模型” 方法(Sabaliauskaite 等人)將安全要素與防護要素整合到自動駕駛車輛的分析中,該方法結合 STPA 和六步模型確定功能安全與網絡安全要素,尤其通過危害分析與風險評估(HARA)識別可能導致危害事件的故障,并據此推導威脅。“安全感知危害分析與風險評估(SAHARA)”方法對 ISO 26262 標準中的 HARA 分析進行了擴展,將可能影響安全的防護威脅納入分析范圍。SAHARA 方法借助 STRIDE 方法推導防護威脅。

STRIDE 方法是微軟提出的一種知名威脅建模方法,代表六種威脅類型,即欺騙(Spoofing)、篡改(Tampering)、否認(Repudiation)、信息泄露(Information disclosure)、拒絕服務(Denial of service)和權限提升(Elevation of privilege)。這些威脅類型可從系統應滿足的安全屬性推導得出,例如,篡改威脅可從完整性屬性推導得出。

博世工程師提出的方法建議從 HARA 分析得到的安全要素中推導威脅評估與緩解分析(TARA)的防護要素,具體包括:(1)從安全目標推導資產;(2)從安全目標的破壞推導威脅;(3)從危害推導損害場景;(4)從 ASIL 等級的嚴重程度 / 可控性推導影響等級。

本文圖 1 所示的 “功能安全與網絡安全設計” 方法受到上述方法的啟發。與博世方法一致,本文方法要求先開展安全分析,再基于安全分析結果推導防護要素。同時,本文方法認同博世方法中 “從危害推導損害場景” 和 “從 ASIL 等級的嚴重程度 / 可控性推導影響等級” 的思路。本文將功能、主題和硬件單元均視為需從防護角度保護的資產,但認為無法按照博世方法的建議從安全目標中推導出這些資產。因此,與 STPA-SEC 和 “STPA 與六步模型” 方法類似,本文的 “功能安全與網絡安全設計” 方法除了利用 HARA 分析結果外,還結合了 STPA 分析結果,即從 STPA 分析得到的損失場景中推導資產。與 SAHARA 方法一致,且符合 ISO 21434 標準的建議,本文基于 STRIDE 方法構建威脅模型:(a)從損失場景的故障模式中推導系統(如某一功能)應滿足的安全屬性;(b)從期望的安全屬性中推導威脅類型。本文重點關注可能破壞安全關鍵主題完整性的欺騙和篡改威脅。

6.2 針對車輛 SOA 的攻擊

以下研究成果為本文構建車輛 SOA 入侵者模型提供了啟發。一篇最新的綜述文獻總結了該領域的研究現狀,分析了 53 篇相關文獻,并基于傳感器攻擊等安全關鍵方面對文獻進行了分類。在 “與魔鬼同行(Drift with the devil)” 一文中,研究人員指出,入侵者可通過欺騙 GPS 無線電信號操縱位置信息,即便定位組件采用多傳感器融合技術,這種攻擊依然有效。激光雷達傳感器信號可能被欺騙,導致道路上的障礙物被 “移除”。由于攝像頭傳輸的數據流未加密,攻擊者可通過欺騙攝像頭信號操縱視頻幀(Jha 等人,2020)。攻擊者還可向雷達傳感器注入信號,使其 “感知” 到不存在的障礙物。此外,攻擊者可利用藍牙協議棧的漏洞實施攻擊,導致車輛剎車鎖死。

研究人員調查了車輛 SOA(尤其是采用 SOME/IP 協議的 SOA)的服務發現機制中可能存在的安全問題,攻擊者可利用這些漏洞在發布者與訂閱者之間實施中間人攻擊。在 AVGuardian 相關研究中,研究人員調查了阿波羅系統中可能存在的發布 - 訂閱權限濫用問題。AVGuardian 工具在阿波羅 5.0 代碼庫中檢測到多個權限濫用實例,例如:(a)GNSS 驅動程序可能利用 tf 主題中的發布權限濫用字段,重新定位道路上感知到的障礙物的估計位置;(b)補償器可能利用 PointCloud 主題中的發布權限濫用字段,從道路感知結果中 “移除” 障礙物。

本文提出的入侵者模型在架構層面明確了攻擊者實施上述攻擊所需的核心能力,包括:(a)外部攻擊者通過傳感器等外部接口實施欺騙攻擊的能力;(b)內部攻擊者在組件之間實施中間人攻擊的能力,這兩類攻擊均可能破壞安全關鍵主題的完整性。其中,權限濫用攻擊可視為中間人攻擊的一種特殊情況。

6.3 威脅分析自動化

目前,能夠為威脅和攻擊路徑計算提供計算機輔助支持的工具較少。一項關于威脅建模的綜述表明,大多數威脅建模工作仍需人工完成。本節簡要介紹汽車領域中部分提供計算機輔助支持的安全 / 威脅分析工具。

AVGuardian是一款靜態分析工具,用于檢測汽車 SOA 源代碼中的權限濫用實例。該工具檢查每個模塊的源代碼,自動檢測模塊定義的主題字段中存在的發布者和訂閱者權限濫用情況,但需要系統的行為規范才能檢測權限濫用實例。而 LAUFEN 工具的設計目標是在系統架構設計階段識別威脅和攻擊路徑,無需依賴系統的行為規范,且能夠自動計算可能導致 AVGuardian 檢測到的攻擊的攻擊路徑。當然,若能獲取行為規范,可得到關于資產和潛在攻擊更準確的信息(例如,主題的哪個字段與權限濫用實例相關)。

ProVerif和 Tamarin Prover是知名的自動化推理工具,基于 Dolev-Yao 入侵者模型驗證系統(尤其是安全協議)的安全屬性。這些推理工具需要系統行為的形式化規范才能驗證其屬性。未來一個有前景的研究方向是在阿波羅模型中加入行為規范,并利用這類推理工具驗證 SOME/IP 或 DDS 等 SOA 協議的安全屬性。

已有研究提出了基于網絡物理系統模型的形式化威脅分析方法,例如針對工業 4.0 應用的分析方法。與安全協議相關研究類似,這些方法也需要系統行為的形式化規范。正如所指出的,由于存在狀態空間問題,這些方法在可擴展性方面存在局限 —— 分析時間隨組件數量的增加呈指數級增長。因此,這類方法單獨使用時,難以適用于包含 60 多個組件的阿波羅系統。未來一個有趣的研究方向是,將本文提出的攻擊路徑識別方法與基于行為形式化規范的推理方法相結合,從而兼具基于行為規范方法的分析精度和本文方法的可擴展性。

另有研究提出了一種針對汽車安全關鍵功能的攻擊傳播方法。商業工具 ThreatGet支持按照 ISO 21434 標準識別攻擊路徑。微軟 SDL 威脅建模工具是另一款知名的商業威脅計算工具,基于 STRIDE 方法計算威脅,并通過數據流圖展示每條計算出的威脅對應的攻擊路徑。據我們所知,這些工具均不支持針對車輛 SOA 的入侵者模型能力。因此,本文通過構建基于車輛 SOA 真實形式化入侵者模型的工具,推動了該領域的技術發展。

7、結論

本文提出了一種基于模型工程方法的自動化威脅分析技術。為此,本文完成了以下工作:(a)構建了忠實反映阿波羅框架自動駕駛功能的車輛模型;(b)基于文獻綜述構建了車輛 SOA 的形式化入侵者模型;(c)開發了 LAUFEN 工具 —— 一款用于執行威脅分析多項活動(包括攻擊路徑計算)的 SOA 工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95677.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95677.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95677.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++語言編程規范-常量

01 C還有搞頭嗎 02 常量 不變的值更易于理解、跟蹤和分析,所以應該盡可能地使用常量代替變量,定義值的時候,應該把 const 作為默認的選項。使用 const 常量取代宏說明:宏是簡單的文本替換,在預處理階段時完成&#x…

【CS32L015C8T6】配置單片機PWM輸出(內附完整代碼及注釋)

目錄 前言: 一、CS32L015中定時器及PWM硬件資源介紹: 二、以CS32L015為例配置PWM步驟: 三、完整代碼及注釋 四、如果這篇文章能幫助到你,請點個贊鼓勵一下吧ξ( ?>??)~ 前言: CS32L015 是一款內嵌 …

hive表不顯示列注釋column comment的問題解決

安裝datasophon平臺hive后,發現hive表的字段注釋丟失了,表的注釋沒問題,csv格式的表沒問題,只有parquet和orc的表有這個問題。查網上似乎沒有這方面的問題。查看mysql表里面的中文注釋也一切正常,后來經過多次研究才發…

【筆記】AI Agent發展趨勢

前言 本章主要探討了現在AI技術的發展趨勢、大模型的一些局限性和小模型存在的必要性,然后引出了AI Agent的優勢與發展趨勢。 目標 學完本課程后,您將能夠: 了解大模型的局限性; 了解小模型存在的必要性; 了解AI Agent的優勢; 了解模型協同的技術。 目錄 1.AI發…

ChatDOC工具測評:AI驅動PDF/Word文檔處理,支持敏感內容隱私保護與表格提取分析

之前跟你們聊過用 Python 處理數據的 Pandas,今天換個更貼近日常辦公的方向 —— 給你們安利一個 AI 文檔處理工具「ChatDOC」,官網地址是https://www.chatdoc.com/,它能直接讀取 PDF、Word 里的內容,你不用逐頁翻文檔找信息&…

Vue + fetchEventSource 使用 AbortController 遇到的“只能中止一次”問題解析與解決方案

前言 在前端項目中,使用 SSE(Server-Sent Events) 長連接去獲取實時消息已經很常見了。像 fetchEventSource 這種封裝好的工具,可以幫助我們輕松處理流式請求。 不過在實踐中,我遇到了一個奇怪的問題:點擊按…

Django get_or_create 方法詳解

get_or_create 是 Django ORM 中的一個非常常用的方法,它用于獲取數據庫中的一個對象,如果該對象不存在,則創建一個新的對象并返回。 方法簽名: Model.objects.get_or_create(defaultsNone, **kwargs)參數解釋: defaul…

LangChain 文檔問答系統中高級文本分割技術

告別語義斷裂:LangChain 文檔問答系統中高級文本分割技術深度指南 文章目錄 引言:問題的根源——為何精準的文本分割是 RAG 系統的命脈? 第一部分:探本溯源——剖析 LangChain 默認分割器的“機械之困” 機制解析:語法驅動的“暴力”切分 問題場景化展示:語義、上下文與結…

Web2 vs Web3--差異一看就懂

互聯網技術的浪潮不斷推動著我們從Web2時代向Web3時代邁進。這兩個時代在技術架構、用戶體驗、數據所有權等方面有著顯著的差異。本文將為您詳細解析Web2與Web3之間的差異,并探討它們如何塑造我們的數字生活。 定義 Web2,即第二代互聯網,以其…

深入解析MongoDB內部架構設計

MongoDB內部構造詳解 MongoDB作為一款流行的NoSQL數據庫,其內部構造設計獨特且高效。以下從多個維度詳細解析MongoDB的內部架構和核心組件。 一、整體架構 MongoDB采用分布式架構設計,主要包含以下核心組件:應用層:應用程序通過語…

ubuntu12.04安裝opencalib手動標定并使用自己的數據

ubuntu22.04安裝opencalib手動標定并使用自己的數據 一、OpenCalib的部署使用 1、基本信息 官網鏈接: https://github.com/PJLab-ADG/SensorsCalibration/tree/v0.2 (官網下載的zip文件是有問題的,不建議到官網下載) 參考鏈接: https://blog.csdn.net/qq_49959714/arti…

scss 轉為原子css unocss

文章目錄前言🎯 **方案一:混合模式 (推薦)**🎯 **方案二:語義化組件類**🎯 **方案三:CSS 模塊化**🎯 **方案四:BEM 命名規范**💡 **推薦做法**前言 記錄讓c4 從scss 轉為…

【面試題】生成式排序了解嗎?

生成式排序是搜索排序的前沿方向,核心思想是利用生成式模型的能力來改善排序效果。 技術實現方式:序列到序列重排序 將候選文檔列表作為輸入序列使用encoder-decoder模型生成重排后的文檔序列優勢:能捕捉文檔間的全局相關性生成式特征提取 使…

【系統架構設計(15)】軟件架構設計一:軟件架構概念與基于架構的軟件開發

文章目錄一、核心思想二、軟件架構概念:系統設計的高級抽象三、軟件架構設計與生命周期:架構在開發流程中的演進四、架構描述語言ADL:架構的標準化表達五、41視圖:多角度的架構展現六、基于架構的軟件開發概念:架構驅動…

文件系統-哈希結構文件

一、核心思想哈希文件的核心思想非常簡單直接:通過一個計算(哈希函數),將記錄的鍵(Key)直接轉換為該記錄在磁盤上的物理地址(通常是塊地址),從而實現對記錄的快速存取。它…

一文吃透 C#中異步編程Task

一文吃透 C#中異步編程Task 一、Task 是什么 二、推薦使用場景 三、Demo:Task 的核心用法 1. 最常用的啟動方式Task.Run 2. task完成狀態與結果獲取 3. 多個任務怎么等?Wait/WaitAll/WaitAny 4. 任務想中途停掉?取消與異常處理 四、必備 API 速查表 五、避坑指南、注意事項 …

TDengine TIMETRUNCATE 函數用戶使用手冊

TDengine TIMETRUNCATE 函數用戶使用手冊 函數概述 TIMETRUNCATE 是 TDengine 中的一個時間處理標量函數,用于將時間戳按照指定的時間單位進行截斷操作。該函數在時間數據聚合、分組和統計分析中非常有用,特別適用于智能電表等時序數據的分析場景。 語法…

KSZ8081寄存器介紹

一、寄存器概覽KSZ8081MNX/RNB 支持 IEEE 802.3 標準的 MII 管理接口(MDIO),寄存器地址范圍為 0x00 - 0x1F,其中寄存器 0x00 - 0x08 為 IEEE 標準寄存器,0x09 - 0x1F 為擴展功能寄存器。寄存器按功能可分為基本控制與狀…

力扣190:顛倒二進制位

力扣190:顛倒二進制位題目思路代碼題目 顛倒給定的 32 位無符號整數number的二進制位。 思路 思路很簡單,我們只需要得到number從低位到高位的每一個二進制位再把二進制位移到顛倒的res的對應二進制位即可,例如number的最低位為1那么res的最高位即1&a…

鴻蒙NEXT交互機制解析:從輸入設備到手勢響應的全面指南

深入探索鴻蒙NEXT的交互設計,掌握下一代人機交互核心技術在智能設備無處不在的今天,一個操作系統的交互設計質量直接影響著用戶體驗。鴻蒙NEXT作為華為推出的新一代操作系統,在交互設計上帶來了許多創新和突破。本文將全面解析鴻蒙NEXT的交互…