作者:京東安全 Dawn Security Lab
原文鏈接:https://dawnslab.jd.com/rossec02/#more
ROS 安全方案
ROS 1.0 安全方案
在上一期文章中,我們介紹了 ROS 安全研究的多個階段。在第二階段,ROS 1.0 的安全風險充分暴露,業界涌現了眾多安全方案,主要解決身份認證、加密通信、訪問控制等風險。在各方案中,SROS 安全特性相對全面,同時具備較好的易用性(部署工具/腳本),是 ROS 社區推薦方案。(需要說明的是,因ROS 本身演進規劃,ROS 1.0 無官方安全方案。ROS 社區未來更多聚焦在 ROS 2.0)
方案
rosauth
【目的】解決遠程客戶端訪問 ROS 身份認證問題
【實現】ROS 系統運行在隔離網絡域內;遠程客戶端在通過 SSL 在外部 Authenticator 進行身份鑒權并獲取 token;遠程客戶端使用 token,通過 SSL訪問 ROS;ROS 校驗 token,允許或拒絕訪問。
【不足】未解決身份認證后的 Authorization 問題

ROSRV
【目的】實現 ROS 通信實時監控管理
【實現】ROS Runtime Verification 使用 Man-in-the-Middle 技術,通過增加 RVMaster 節點,實時監控 ROS 1.0 內部消息,同時可配置訪問控制策略進行訪問控制。
【不足】訪問控制基于 IP,RVMaster 中心化設計在節點數過多時的 scalability 問題

Secure ROS Transport
【目的】解決 ROS 通信安全與訪問控制
【方案 1】應用層方案,使用外部 Authentication Server 實現 publisher-subscriber 之間的身份認證與加密通信。優點是無需改動 ROS,缺點是應用層實現,無法阻止類似 DoS 攻擊。
【方案 2】通信層方案,使用證書+TLS 解決節 點間身份認證、加密通信、訪問控制問題。缺 點是沒有解決 master 節點安全問題。

Secure ROS
【目的】解決 ROS 通信安全與訪問控制
【方案】基于 IPSec 實現身份認證與加密通信,使用系統配置文件實現集中式訪問控制。優點是安裝方便,不足是訪問控制等基于IP 粒度。

SROS
【目的】解決 ROS 通信安全與訪問控制
【方案】基于 TLS+證書機制解決身份認證、加密通信、訪問控制問題。使用經過證書簽名的配置文件進行集中式訪問控制,細粒度。不足是需要源碼安裝及相關配置。

ROS 2.0 安全方案
ROS 2.0 階段,因組件 DDS 自帶安全特性原因,安全方案有了統一框架,并形成 SROS 2。命名 SROS 2是為繼承和區分 SROS 方案,但不同于 SROS,SROS2 是 ROS2 官方標準并集成在主線中。
SROS2 具體來說,指在 ROS 2 基礎上為使能 DDS-Security 所做的特性適配和工具集,故
SROS 2 = ROS 2 + DDS-Security Enable
ROS 2 適配修改主要有兩個,一個是 RCL(ROS Client Library)層修改,一個是 SROS 2 utilities 工具 集。RCL 修改主要是安全特性開關和策略配置,具體如ROS_SECURITY_ENABLE (true/false)、ROS_SECURITY_STRATEGY (Enforce/Permissive)、 ROS_SECURITY_KEYSTORE (key files directory) 等參數實現和支持。SROS 2 utilities 工具主要解決 PKI 秘鑰證書和控制策略文件的管理,具體如 CA 和KEYSTORE 根目錄管理、節點公私鑰和證書創建部署、訪問控制策略文件(Governance/Permission)創建部署等。

如上圖所示,SROS 2 通過 PKI 機制,解決節點間通信安全,包括身份認證、加密通信;通過策略配置文件(Governance、Permission,證書簽名),實現集中式訪問控制。
關于訪問控制,首先,Governance 文件限制 domain 域的整體訪問控制策略,如節點訪問控制(是否允許未授權節點訪問,是否允許被發現),以及 domain 內部 topic 訪問控制(是否允許被發現、是否允許未授權讀寫)等。其次,每個節點的 Permission 限制自己的訪問權限,如是否允許對某 topic 讀寫。
因 DDS 是標準規范且有開源、商業不同實現,ROS 2 增加了 DDS 抽象適配層 RMW,如上圖所示。
機器人安全趨勢
ROS 是目前最主流的機器人操作系統框架,ROS 安全經過多年研究和發展,在風險分析和安全方案維度已有不小進步,ROS 2 中已有了基于 DDS 的統一安全框架。但是對于 ROS 甚至整個機器人系統來說,在安全標準與規范、DDS 標準與實現差異、DDS 安全與性能、全系統方案等維度,還有很多工作可以改進。
安全標準
自動駕駛領域已經有相對完整、成熟的安全標準,包括功能安全(Functional Safety)標準 ISO26262、網絡安全(Cyber Security)標準 ISO 21434。但在機器人領域,現有工業機器人標準 ISO10218、ISO 20218、ISO/TS 15066、服務機器人標準 ISO 13482、ISO 23482 等主要面向功能安全,尚無權威的網絡安全標準。但是,隨著服務機器人應用推廣、機器人網絡安全研究、及產業聯盟的推動,機器人網絡安全標準是必然趨勢。
安全方案
在安全方案維度,針對現有方案的問題或盲點,后續可見的研究趨勢有:
一是 DDS 本身的成熟度演進。一方面,當前開源或商業 DDS 實現與 DDS 標準規范還存在差異,例如DDS-Security 標準規定了 5 大安全特性(Authentication、Access Control、Cryptographic、Logging、DataTagging),而多數方案僅實現前 3 種強制特性;另一方面,開源 DDS 實現目前還存在性能、穩定性問題,質量成熟度不高。
二是基于 DDS-Security 安全方案的性能調優。一方面,在安全研究第三階段,已有很多論文對 DDS-Security 方案的性能進行過深入分析,如加密算法對通信性能影響、DDS-Security 使能及 Governance 配置對整體性能影響等,但仍缺乏相對全面、精細的性能調優實踐、指導。而 ROS 系統中不同節點、不同消息的安全需求并不完全一致,面向性能優化的安全策略對方案實施有積極意義。另一方面,社區中 DDS-Security 使能對應的 demo 樣例相對簡單、對應安全文檔匱乏,用戶學習和配置困難,不利于方案推廣。
三是安全研究從 ROS 框架擴展到機器人全系統。在 SROS/SROS2 聚焦解決 ROS 本身安全問題后,作為 ROS 執行環境、存儲載體的 Host OS 的安全和風險受到更多關注。例如 SROS 2 中秘鑰證書默認明文存儲在 Host OS 指定目錄下,無額外安全措施。業界 libddssec 方案通過 TEE 技術(ARM Trustzone)解決秘鑰證書安全存儲問題,為機器人系統提供了可信計算和可信根能力,提升系統整體安全性。除軟硬件安全能力應用外,一些研究傾向借用傳統安全方案如 IDS(Intrusion Detection System)部署緩解 Host 風險,一些研究傾向于在機器人全系統中實施零信任方案,如 Zero Trust in Robotics。
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1800/
暫無評論