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

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

高精度電流源在電子實驗室中的應(yīng)用

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

DEKRA德凱為Hisense海信實驗室授予CTF實驗室資質(zhì)
鑒源實驗室丨智能網(wǎng)聯(lián)汽車協(xié)議模糊測試技術(shù)概述
鑒源實驗室·HTTP協(xié)議網(wǎng)絡(luò)安全攻擊

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

評論