作者 | 柳澤上海控安可信軟件創新研究院 鑒源實驗室
01
引 言
近年來,隨著工業4.0和智能網聯技術的發展,數據驅動型系統的需求日益增加,推動了諸如 DDS(Data Distribution Service)等高效數據分發中間件的應用和發展。在工業制造和智能網聯領域,實時性、可靠性以及可擴展性成為系統設計中不可或缺的要素,傳統的數據傳輸和通信架構難以滿足這些需求。因此,DDS 作為一種標準化的發布/訂閱通信模型,逐漸受到廣泛關注。
DDS最早應用于國防軍工,歐美的主流軍工廠商,如THALES泰雷茲、、Raytheon雷神、Lockheed Martin洛克希德·馬丁均采用DDS中間件為其作戰指揮與控制系統、無人機、導彈發射控制的提供通信服務。隨著自動駕駛技術的快速發展和車聯網(V2X)的普及,為滿足智能網聯汽車車內多種傳感器之間,以及與車外高帶寬,低延遲的數據傳輸需求,DDS于2018年被引入AUTOSAR。DDS 系統通常承擔著實時數據分發和通信的重任,其安全性和穩定性變得至關重要。一旦發生故障或遭遇惡意攻擊,可能導致嚴重的系統失效或數據泄露,進而影響業務連續性和人身安全。因此,對DDS進行深入研究,挖掘并消除潛在漏洞,確保 DDS 中間件的穩定性和可靠性對于工業自動化、智能化控制的安全至關重要。
02
DDS介紹
DDS(Data Distribution Service) 是一種用于實時系統的中間件標準,由對象管理組織 (OMG, Object Management Group) 制定。它專門設計用于支持分布式系統中的高效、可靠和可擴展的數據交換,尤其在高性能、實時性和可用性要求較高的分布式場景中應用。以下是DDS的應用示意圖:
圖 1
在 DDS(Data Distribution Service)中,“域” 是一個重要的概念,它用來組織和隔離數據通信,以便在大型分布式系統中實現高效和有序的數據管理。每個域由一個唯一的域標識符(Domain ID)進行標識。DDS中的通信實體為域參與者(DomainParticipant),只有同一個域中的域參與者才可相互通信。在域之下,對通信的主題Topic進行了進一步的劃分,只有參與者參與到了同一Topic時,兩者才能進行通信。Topic通信中有兩種角色:
· Publisher:Topic消息的發布者,可以同時有1個或多個發布者。
· Subscriber:Topic消息的訂閱者,可以同時有1個或多個發布者。
DDS在網絡協議棧中位于TCP和UDP之上,并且基于TCP和UDP來進行發送。DDS的規范中針對網絡實時發布訂閱,規定了實時發布訂閱(Real-Time Publish Subscribe,RTPS)協議。
圖 2
RTPS 是 DDS 中的一個通信協議,專門用于在分布式系統中實現實時數據分發。RTPS 是 DDS 的核心傳輸協議,負責確保數據在網絡上傳輸的實時性和可靠性。其主要特性包括:
· 數據傳輸:RTPS 確保發布者和訂閱者之間的數據能夠以實時和高效的方式傳輸。根據配置的 QoS 策略,RTPS 可以保證數據傳輸的可靠性和傳遞順序,滿足不同應用場景的需求。
· 自動發現:RTPS 支持節點之間的自動發現機制,允許分布式系統中的發布者和訂閱者在啟動時自動找到彼此,而無需手動配置。這使系統的動態擴展變得更加容易。
· QoS 管理:RTPS 協議支持多種 QoS 策略,如可靠性、持久性和傳輸優先級,提供對數據傳輸的嚴格控制,滿足不同的實時性和可靠性要求。
圖 3
RTPS協議的消息報文結構如圖3所示,主要頭(Header)、頭拓展(HeaderExtention)、子消息(Submessage)組成。Header負責定義RTPS消息的域和節點信息,而功能的控制是由各個子消息來實現的,每個RTPS可以有一個或多個子消息。每個子消息都有特定的用途,用于在發布者和訂閱者之間協調數據分發、可靠性控制以及參與者的自動發現。以下是 RTPS 的主要子消息類型:
圖 4
各子消息的報文結構及功能可見DDSI-RTPS v2.5,在此不做深入探討。
03
DDS協議模糊測試技術
3.1 DDS漏洞分析
基于DDS的中間件因其去中心化,Qos機制豐富,耦合度低,數據分發高效靈活等特性,被諸多高分布式系統采用,其中ROS2已將fastDDS當作長期發布版本的默認中間件。除此之外,Eclipse CycloneDDS、GurumNetworks GurumDDS、OCI OpenDDS、RTI Connext DDS等不同廠商的DDS開源工程也被行業廣泛應用。這些項目盡管在性能和功能上不斷優化,但也不可避免地暴露出各種安全漏洞。根據CVE(Common Vulnerabilities and Exposures)數據庫的統計,對開源DDS項目的安全漏洞記錄已達41條之多,這些漏洞可能被利用來發動多種類型的網絡攻擊,如拒絕服務、信息泄露和未經授權的訪問等。下面介紹一些DDS中挖掘出來的CVE漏洞:
1)子報文解析中的錯誤格式的處理不當
DDS-RTPS協議中,不同節點的通信控制都是依靠子消息的來實現。DDS-RTPS消息中支持攜帶一條或者多條子消息,且DDS-RTPS的報文種類與的格式變化豐富,因此子消息的解析過程處理不當也會造成很多漏洞。多子消息的DDS-RTPS報文依靠子消息頭中的子消息長度來解析單條子報文,如圖5所示:
圖 5
攻擊者可以利用子消息解析過程中的漏洞,構造惡意拼接的復雜子報文,致使RTPS報文解析出錯誤的消息。CVE-2024-28231中,攻擊者通過刻意構造數據包的結構,使得 uint32_t型的參數payload_size被計算為-1(被轉譯成0xFFFFFFFF),最終導致了緩沖區溢出的錯誤。
圖 6
為了觸發該漏洞,攻擊者需要構造特定DATA報文使得程序進入該位置。攻擊者精心構造了子消息頭的長度OctetsToNextHeader,InlineQos的偏移量octetsToInlineQos,以及inlineQosSize,最終使得payload_size計算異常。
2)子消息缺乏隱私安全保護措施
該類漏洞是由于DDS-RTPS報文的子消息中存在很多控制相關的命令,對于該類命令的傳輸如果不進行有效的安全加密,則會外部攻擊者通過偽造合法節點在網絡中進行惡意網絡攻擊行為。CVE-2023-50257描述了eProsima Fast DDS(前稱為Fast RTPS)中存在的一個嚴重漏洞。在Fast DDS的實現中,用于斷開節點連接的數據(如p[UD])和guid值未被加密。這一缺陷允許攻擊者構造并發送惡意數據包,從而強行斷開訂閱者(Subscribers)與發布者(Publishers)的連接。攻擊者可以發送特制的斷開連接數據包到全局數據空間,并使用特定的發布者ID。這樣,所有連接到該發布者的訂閱者將斷開連接,并無法接收數據,且通過持續發送斷開連接的惡意數據包,攻擊者可以阻止訂閱者與發布者重新建立連接,導致分布式系統中的數據傳輸中斷。
3)缺乏邏輯檢查
該類漏洞是由于程序在接收外部數據輸入時,未進行有效的邏輯結構檢查,使得外部程序可以在沒有初始化等前置操作時便去進行進一步應用處理。CVE-2023-50716描述了一個典型的未初始化導致DDS程序崩潰的例子。輸入的無效DATA_FRAG子消息會使得CacheChange_t對象在未對inline_qos和serializedpayload進行初始化時便去釋放內存,最終導致了程序的終止。
3.2 DDS-RTPS協議模糊測試
DDS 中間件通過“發布-訂閱”模式提供一個高效的數據分發引擎,抽象化了底層的通信細節,簡化了數據傳輸和消息管理。雖然DDS中間件簡化了應用開發者的開發流程,但是也使自身暴露在復雜的分布式網絡環境中。DDS開源軟件漏洞分析的案例分析中,很多漏洞都是攻擊者偽裝成網絡節點,通過精心構造報文來引發DDS中間件的崩潰。通過發送特定協議報文觸發漏洞來實現網絡惡意攻擊的方式使得攻擊者可以用低廉的成本來達成攻擊目的。因此,有必要通過模糊測試的方式預先排查并修復漏洞,提升產品的魯棒性和穩定性。
SmartRocket TestSec是一款針對工業互聯網協議的自動化智能黑盒模糊測試工具。工具的模糊測試測試功能支持CAN、CAN FD、Ethernet、USB、BlueTooth、WIFI等不同硬件類型的模糊測試,DDS-RTPS的協議模糊測試屬于工具的Ethernet模糊測試用例。
DDS-RTPS的協議模糊測試有以下特性:
· 被測件的互操作性檢查
· 用戶自定義配置DDS-RTPS報文的待模糊字段
· 用戶自定義配置監控套件監控被測件狀態
· 支持模糊的交互過程全記錄
· 支持crash報文記錄及向前回溯
· 支持結果報告自動生成
圖 7
TestSec協議模糊測試頁面(圖7)勾選添加了RTPS模糊測試用例之后,可以通過用例說明了解各個報文字段的意義,并根據需求選擇特定的字段進行模糊。RTPS協議模糊測試支持用戶添加多個子消息以模擬真實的RTPS報文格式。用戶可以固定填寫關鍵參數信息使得報文信息可以發送到指定的被測件上或者使被測件進入特定的報文交互模式,以更快的測試具體功能。以CVE-2024-28231的POC為例,用戶可以固定部分字段,并對其賦予有意義的值,對想要模糊測試的字段進行變異勾選。
圖 8
然后利用ASAN監控套件,檢測被測軟件的狀態。在檢測到Crash后,TestSec會匯總監控信息、以及模糊用例的信息,并最終生成測試報告,見圖10。
圖 9
圖 10
參考文獻:
1. https://github.com/eProsima/Fast-DDS/security
2.https://www.omg.org/spec/DDSI-RTPS/
3.AUTOSAR. (2022). Specification of Secure Onboard Communication. AUTOSAR Standard Working Specification.
審核編輯 黃宇
-
測試
+關注
關注
8文章
5653瀏覽量
128475 -
DDS
+關注
關注
22文章
672瀏覽量
154161
發布評論請先 登錄
鑒源實驗室·基于MQTT協議的模糊測試研究

Kilby實驗室大揭秘
鋰電材料截面制樣-氬離子拋光CP離子研磨 金鑒實驗室分享(下)
lims實驗室管理系統是什么?實驗室信息管理系統介紹!
實驗室lims系統解決方案
廣東金鑒實驗室科技有限公司介紹

晶豐明源測試實驗室簡介
極致出品,可靠至上 | 晶豐明源測試實驗室

DEKRA德凱為Hisense海信實驗室授予CTF實驗室資質
鑒源實驗室丨智能網聯汽車協議模糊測試技術概述
鑒源實驗室·HTTP協議網絡安全攻擊

鑒源實驗室·ISO 26262中測試用例的得出方法-等價類的生成和分析

評論