| 编辑推荐: |
本文主要介绍了功能安全与网络安全方法的系统架构建模元模型相关内容。希望对您的学习有所帮助。
本文来自于微信公众号猿力部落 ,由火龙果软件Alice编辑、推荐。
|
|
摘要:随着数字化的推进,信息通信技术在技术系统中的集成度不断提高。令人瞩目的价值潜力正在显现(例如自动驾驶),但系统开发也面临着诸多挑战。产品复杂度和网络化程度的持续提升,要求采用系统化的开发方式,而基于模型的系统工程(MBSE)的成熟方法恰好满足了这一需求。为确保未来系统的可靠性,还需在设计初期综合考虑功能安全和网络安全问题。为展示失效和攻击的可能性及后果,本文构建了一种建模语言,将已有的、部分相互独立的功能安全和网络安全方法整合到统一的元模型中。该语言能让开发人员在跨学科层面透明地构建系统架构,并综合分析攻击和失效的传播路径。此方法可揭示系统架构设计在功能安全和网络安全方面的协同目标、协同效应,尤其是相互冲突的目标和效应,以便基于权衡分析做出合理的架构决策。
01. 简介
机电系统的数字化和网络化程度不断加深,推动了信息通信技术的深度融合。特别是在交通领域,这一趋势为未来交通工具带来了巨大的创新飞跃和诱人的潜在效益。从传统技术系统向智能系统的转型,除了带来新的功能和效益外,也给系统开发带来了日益严峻的挑战。系统工程(SE)及其延伸的基于模型的系统工程(MBSE),为复杂跨学科系统的开发提供了有效途径。尤其在开发初期,通过一致地使用模型,能够有效掌控系统复杂度,例如尽早发现并排除潜在错误。
研究表明,尤其是在汽车行业,连通性、自动化和自主性的持续提升,导致技术系统的脆弱性显著增加。因此,确保系统可靠性(特别是功能安全和网络安全)成为当今开发人员面临的又一重大挑战。如何在MBSE框架下的产品开发初期为开发人员提供支持,以安全可靠的方式开发未来产品,这一问题亟待解决。为了构建系统架构模型,并能跨领域综合分析功能安全和网络安全相关挑战,需要一种能够综合涵盖功能安全和网络安全相关方面的建模语言。
本文的目标是通过定义一种系统架构建模语言,为面向功能安全和网络安全的系统建模奠定基础。该语言能让开发人员在开发初期,以综合的方式识别错误和威胁,例如错误传播路径和攻击向量。第一节将进行问题分析,阐述系统架构建模、功能安全和网络安全面临的挑战,以及将二者综合融入MBSE建模语言的必要性。文章先是评估相关研究现状。再以元模型的形式呈现解决方案,并进行了验证。最后总结全文并展望未来研究方向。
02. 问题分析
2.1 系统工程中的架构建模
系统工程支持复杂网络化技术系统的整体开发。在各个技术领域之上的不同抽象层级进行设计开发和考量,有助于人类掌控整个系统的复杂性。抽象化的作用是仅呈现相关信息。系统架构便是这样一个层级或视角,它展示了各项功能由哪些系统实现。本文之所以聚焦系统架构,是因为它对系统早期的整体功能安全和网络安全防护具有重要意义。系统架构开发分为构建阶段(即创建系统架构)和分析阶段(即验证现有架构结构)。
基于模型的系统工程(MBSE):根据国际系统工程委员会(INCOSE)的观点,系统工程的未来将是基于模型的。与面向文档的流程不同,基于模型的设计方法能够利用整体系统模型,以更精确、一致且可复用的形式整合多个领域。
描述系统模型的三个核心部分包括方法、工具和建模语言。建模方法是指导原则,规定了语言元素的建模方式。建模语言仅作为表达工具,明确系统建模可用的各个语言元素。建模工具则用于执行建模操作。只有这三部分协同配合,才能实现成功的系统建模。尤其是图形化建模语言,在感知、维护、处理以及部门间沟通等方面具有显著优势。为此,INCOSE和对象管理组织(OMG)开发了标准化的系统建模语言(SysML),用于系统模型的映射和建模。
如前所述,要基于模型描述系统,就需要一种建模语言(例如SysML)。如图1所示,建模语言由语法和语义定义。具体而言,建模语言包括抽象语法、一种或多种具体语法以及语义。抽象语法定义了不同的模型元素及其属性,以及与其他模型元素的关系。抽象语法(也称为元模型)还包含静态语义,主要用于定义模型元素和关系的约束条件。具体语法(也称为表示法)规定了图形化呈现方式。例如,可以定义系统元素用蓝色矩形表示。语义则在具体的模型环境中定义了模型元素的含义。
图1:建模语言的结构
领域种类繁多,开发一种涵盖所有现有方面的建模语言实际上是不可能的。为应对这一局限,可通过扩展机制(即所谓的概要文件)添加新的概念和表示法。为此,可以创建元模型并将其整合到现有的建模语言中。
2.2 开发过程中的功能安全与网络安全
功能安全和网络安全的处理思路有所不同。安全关注的是控制由系统失效等导致的灾难性事件,而网络安全关注的是防范恶意实体对系统的攻击。ISO
26262标准(道路车辆——功能安全)将功能安全定义为“避免因电子电气系统失效行为导致的危害所带来的不合理风险”。因此,功能安全被理解为不存在与系统功能故障引发的危害相关的不可接受风险。网络安全则被理解为最大限度地减少资产和资源的薄弱环节。因此,网络安全不仅指防范已知的黑客攻击,还包括防范所有可能对系统造成损害的外部干预。与ISO
26262相对应的是ISO 21434标准,该标准聚焦道路车辆的网络安全。它使用“道路车辆网络安全”这一术语,并将其定义为“资产得到充分保护,以抵御针对道路车辆电子电气组件及其功能的威胁场景的状态”(ISO/SAE
21434)。开发过程中处理功能安全和网络安全的不同方式,在各类方法中得到了明显体现。安全方法用于防范由功能故障或不可预见情况等引发的危害。成熟的安全方法包括故障树分析(FTA)、组件故障树(CFT)、动态故障树(DFT)和失效模式及影响分析(FMEA)等。网络安全方法侧重于攻击的分类和预测,尤其是在网络安全领域。用于识别威胁及其破坏潜力的典型网络安全方法包括威胁分析与风险评估(TARA)、攻击树(AT)或STRIDE方法(ISO/SAE
21434)。
2.3 功能安全与网络安全集成建模语言的行动需求
由于现代技术系统及其组件的功能集成和网络化程度不断提高,通信和网络接口数量急剧增加。这导致系统复杂度极高,在开发过程中,只有借助基于模型的系统工程方法才能将其掌控。开发过程中早期安全分析的重要性日益凸显。纯粹面向安全或纯粹面向网络安全的设计和防护,已无法满足不断增长的需求。例如,网络安全漏洞可能以薄弱环节和故障的形式累积,导致最小子系统出现错误,并在整个系统中引发不可预见的影响。为了在开发初期预判这些挑战并采取适当措施加以弥补,需要一种系统架构建模语言,能够跨学科对功能安全和网络安全特定方面(例如错误或攻击路径)进行建模。该建模语言是功能安全和网络安全综合或组合分析与防护的基础,能够尽早发现协同效应以及相互冲突的影响或目标,并通过适当方式加以解决。
03. 相关研究
如2.1节所述,所分析的研究现状可分为基础建模语言和概要文件两类。基础建模语言为表示系统架构和其他方面(如需求等)提供了基本可能,而概要文件通过对基础建模语言进行一致扩展,能够表示特定概念。
3.1 基础建模语言
跨学科系统模型的图形化、基于模型的表示,通过UML、SysML和CONSENS等知名建模语言实现。借助形式化定义的元素,除了用例或需求等方面外,还可以表示系统架构。统一建模语言(UML)提供了14种不同的图类型,用于表示系统的结构和行为。前7种图可用于模型的结构描述,其余图则用于行为建模。UML是系统建模语言(SysML)的基础。为实现标准化扩展,SysML添加了全新的元素并对部分元素进行了修改,同时明确排除了对系统工程无关的UML元素。
CONSENS规范技术(即“复杂系统工程概念设计规范技术”)在MBSE领域用于高度复杂系统的开发。CONSENS既有建模语言,也有用于创建系统模型的建模方法。该建模语言的目标是改善产品设计领域各学科之间的沟通与协作,并对系统模型进行整体描述。为此,CONSENS涵盖了8个不同的视角,其中一个视角以所谓的主动结构形式包含了系统架构。基础建模语言提供了标准化的语言结构,可用于跨学科指定系统架构。但它们并不旨在直接映射功能安全和/或网络安全特定方面,因此只能通过概要文件形式的元模型扩展来实现这一目标。
3.2 建模语言的概要文件/扩展
Fockel提出的UML概要文件,实现了基于模型的组件故障树(CFT),为系统架构中的安全相关分析提供了特别良好的基础。失效类型的专门定义,提高了潜在危害的可追溯性,同时使系统影响的评估更加透明。基于UML和SysML,汽车领域开发了电子架构和软件技术——架构描述语言(EAST-ADL)。关于ISO
26262标准下的功能安全和可靠性,可靠性包中预定义了不同的元素。EAST-ADL 支持为安全分析(如FTA)建模系统行为,并能够指出错误/失效。对于错误传播,可在端口上检测错误,并通过传播链接将其关联。CONSENS概要文件与EAST-ADL类似,非常适合安全相关方面的架构分析,但未针对汽车领域进行指定。另一种方法是Biggs等人提出的SysML概要文件,该文件引入了与安全相关的构造型。但该概要文件的重点并非架构建模,而是需求工程。
在网络安全领域,根据Schmidt和Jürjens的研究,UMLsec是UML的一种扩展,聚焦于安全软件开发。它定义了不同的构造型,例如能够表示和分类不同的通信通道,并分配关键程度。Roudier和Apvrille提出的SysMLsec是SysML的扩展,支持攻击树的集成建模。其目标是在早期更透明地识别威胁,以便设计适当的应对措施。Oates等人提出的SysML概要文件整合了网络安全视角,其核心是威胁代理模型,该模型描述了威胁代理可能发起的威胁,并提供有关漏洞的信息。
所分析的研究现状表明,目前缺乏一种元模型,能够在早期系统架构建模中组合应用功能安全和网络安全分析方法。2.2节中介绍的成熟方法所涉及的功能安全或网络安全特定方面,均是单独处理的。因此,需要以整体元模型的形式实现它们的一致集成。
04. 功能安全与网络安全集成系统架构建模元模型
如前所述,为了对将要开发的系统进行早期防护,需要一种能够综合处理功能安全和网络安全问题并支持组合应用的元模型。为了定义该元模型,下文将使用OMG的元对象设施(MOF)建模语言。该语言使用关联、数据类型、类和包,能够以类似于UML的方式对元模型进行形式化结构化。如图2所示,本文构建的元模型(系统架构模型)包括构建模型和分析模型。构建模型包含系统架构构建所需的架构元素和架构连接。这些类组的推导基础是已有的方法和基础建模语言(如SysML)。分析模型由触发模型以及错误和攻击传播模型组成。触发模型涵盖了所有表示系统内部和外部可能干扰的类。而错误-攻击传播模型则支持对架构中的影响进行建模。因此,能够综合再现复杂架构中可能的错误和攻击传播路径。为此,本文采用了多种方法,下文将对其进行详细说明。
图2:元模型概述
4.1 构建模型
下文详细介绍的构建模型支持系统架构的建模。架构建模需要各种架构元素,同时也需要关系(架构连接)来表示各个元素之间的交互(见图3)。架构元素分为系统元素、端口或端口规格。系统元素代表系统的所有组件,直至原子子系统(例如制动卡钳)。一个系统元素可以包含任意数量的子系统元素。
图3:构建模型概述
系统元素通过端口形式的连接结构与其他元素交互。端口具有方向,可设置为输入或输出。端口规格对端口进行更详细的描述。类型属性允许对端口进行分类,类似于对技术关系的分类。技术关系包括在各个系统元素之间流动的各种流,用于表示技术依赖关系。这些流分为物质流、能量流和信息流,且只能表示有向连接。一个特殊功能是能够专门对机械连接进行建模,这在安全方面尤为重要。例如,两个元素之间的机械连接被有意或无意破坏,可能会对整个系统的安全产生严重影响。无需通过端口即可建立分配关系。分配关系包括系统元素与系统模型中其他方面之间的“满足”、“实现”和“实施”关系。例如,可通过“满足”关系将安全目标(功能安全和网络安全目标)分配给负责的元素。“实现”关系将元素所实现的功能关联起来。通过“实施”关系,可将系统元素分配给物理解决方案元素(例如具体的控制单元)。危害和威胁的分配通过追溯关系表示。
4.2 分析模型
在架构构建的基础上或与架构构建相结合,将进行架构分析,例如检查构建的结构是否存在漏洞或故障传播的影响。下文将分别介绍分析所需的子模型。
4.2.1 触发模型
触发模型包含支持对系统架构故障和攻击可能性进行建模的类。可在系统元素内部对内部故障进行建模。在安全领域,内部故障主要基于EAST-ADL的错误模型和CONSENS概要文件。为了同时涵盖网络安全方面,还添加了以下将要说明的其他方面。
内部故障表示相应系统元素的内部状态。为此,故障发生属性用于指定元素的随机失效概率。此外,黑客影响属性表示黑客攻击对系统元素随机失效概率的影响。随机失效概率的变化取决于攻击类型。因此,能够表示不同黑客攻击类型对架构目标元素的不同影响。例如,对目标元素的拒绝服务(DoS)攻击可能会因负载增加而导致内部故障,进而可能引发开发人员事先未从该角度考虑到的安全关键情况。
另一个重要属性是间接黑客影响,与一般黑客影响不同,它关注攻击的间接影响。对具体目标系统的攻击通常是通过联网的相邻系统进行的。例如,只有通过元素A、B和C的访问路径,才能成功对目标元素D实施黑客攻击。这种访问以及攻击路径的延伸,会对间接受影响的系统产生实际影响。对于信息处理系统(例如电子控制单元),这种访问可能会因意外的资源需求而增加系统失效的概率。在安全方面,这可能导致不受控制的错误传播,最终导致整个系统失效。
通过失效模式和失效规格,可以更详细地指定系统元素端口的安全关键薄弱环节。失效规格允许为每个输入端口和输出端口分配多种失效模式,包括威胁/危害的分配。该类是在UML概要文件之后添加的,该概要文件指定了五种失效类型:遗漏型(O)、误动作型(C)、崩溃型(Cr)、数值型(V)以及时序提前型(TE)/时序延迟型(TL)。安全关键触发因素以威胁代理或环境元素的形式建模。威胁代理被建模为一个独立的环境元素,并明确了攻击者组件。施泰纳开发了一种将(组件)故障树与攻击树相结合的方法。其目标是通过适当的网络安全方面丰富安全分析。由此,能够发现可能由恶意攻击者引发的新的安全关键事件。威胁代理不仅包括黑客攻击,还包括自然灾害和恶意程序。
图4:触发模型概述
威胁代理攻击通过包含的黑客攻击类型进行指定。不同的黑客攻击可分为被动攻击、主动攻击和物理攻击。Hoppe的方法对各种被动和主动黑客攻击进行了详细分类。黑客攻击类型可通过攻击事件进一步细化,包括攻击所需的资源、时间和知识。这些属性基于ISO/SAE
21434《道路车辆——网络安全工程》中的攻击可行性评级。
环境元素允许对所有位于系统范围之外的元素进行建模(攻击者组件除外)。它具有与系统元素类似的属性,并通过与其他环境元素的关系,能够表示攻击路径攻击(见4.2.2节)。
最后,触发模型中的信息流规格可以对信息流进行细化。根据UMLsec,可将类型分为局域网(LAN)、无线局域网(WLAN)、蓝牙和有线连接。此外,可使用布尔值对信息加密的必要性进行建模。
4.2.2 错误-攻击传播模型
整个元模型的最后一部分涉及错误和攻击传播。其目标是表示不同攻击和错误对系统架构的影响。该元模型主要基于CONSENS概要文件和UML概要文件。这两种安全方法都涉及组件故障传播(CFA)。关于网络安全特定方面(攻击树建模),SysML-Sec被用作重要参考。
系统元素的端口可以具有多个端口状态,能够表示输入和输出失效(见图5)。状态属性可用于映射“正常”、“部分正常”或“异常”状态。端口状态既可以是“可能隐含链接”的源,也可以是其目标。一个系统元素中可以同时建模门和黑客元素。通过门和“可能隐含链接”,能够表示架构中的不同传播路径。黑客元素用于表示相应黑客攻击类型的访问概率。攻击事件和黑客元素之间的连接通过攻击路径建模。此外,还可以表示环境元素与黑客元素之间的攻击路径,或攻击事件与环境元素之间的攻击路径,因为威胁也可能通过环境元素发生。攻击路径的纳入参考了ISO/SAE
21434中的攻击路径分析,这对于高度网络化的复杂系统开发尤为重要。为了能够在系统层面进行风险分类,系统元素扩展了关键程度概念。关键程度由ISO
26262(汽车安全完整性等级ASIL)和SAHARA方法(安全等级SecL)确定。通过综合分析和风险分类,开发人员能够明确哪些元素在后续细化过程中需要特别关注。
图5:错误-攻击传播模型概述
05. 验证
为进行原型验证,本文采用了一个高度简化的车辆系统(见图6)。以下用例描述了来自外部的安全关键干预,以及在车辆系统中可能产生的后果。攻击者组件被设定为一名罪犯,其意图获取车辆1的检测子系统(例如用于环境检测)的访问权限,以对制动子系统进行安全关键型操控。基于架构分析发现,存在一条通过信息娱乐子系统的无线局域网(WLAN)的攻击向量。
图6:验证示例
根据所需的资源(R1)、知识(K1)和时间(T1),可以对检测到的攻击事件进行详细说明。第一个潜在漏洞存在于信息娱乐子系统中能够与环境通信的元素。攻击路径通过无线局域网编解码器、处理器/控制器和检测子系统,最终到达攻击者的目标。每个系统元素都有特定的访问概率和失效概率,这些概率均可计算。为了更好地理解概率的构成,图7给出了详细概述。如第4节所述,每个系统元素的内部故障由三个值组成:失效发生概率、黑客影响和随机黑客影响。失效发生概率指定了系统元素的随机失效概率,基于以往经验确定(λ1)。在通过直接黑客攻击确定失效概率之前,必须首先确定对系统元素的访问概率(黑客元素)。为此,可以参考ISO
21434的攻击可行性评级来确定黑客攻击的可能性。该分析的输入是之前定义的威胁代理、黑客攻击类型和攻击事件等结构。此外,如果对相连的相邻系统发起或通过相连的相邻系统发起内部黑客攻击,系统元素的失效概率也可能因间接黑客攻击而增加(λ3)。如果攻击成功,将结合黑客攻击类型确定由黑客攻击导致的失效概率(λ2)。
图7:失效概率计算
如果该事件成功发生,攻击者将获得信息娱乐子系统中控制设备的访问权限,进而能够在下一步获取检测子系统的访问权限。一旦实现这一点,攻击者就可以操纵输出数据,以修改制动子系统的输入数据(误动作型失效)。这可能导致安全关键状态,必须在开发初期检测到这些状态,以便制定适当的应对措施。显然,本文提出的建模语言能够表示更为复杂的攻击和失效场景,并综合分析其在功能安全和网络安全方面的后果。
06. 总结与展望
未来的技术系统(例如自动驾驶车辆)需要系统化的开发方式,在开发初期就综合考虑功能安全和网络安全防护。为了能够跨领域检测和弥补潜在危害及威胁,本文提出了一种系统架构建模语言,该语言将已有的功能安全和网络安全方法进行了一致整合。基于形式化建模的结构,该元模型能够在跨学科、系统抽象层面透明地表示复杂的依赖关系。除了支持系统架构构建的结构外,分析阶段还能够表示攻击和错误传播方面以及风险分类。这种综合方法能够揭示系统架构设计在功能安全和网络安全方面的协同目标、协同效应,尤其是相互冲突的目标和效应,以便基于权衡分析做出合理的架构决策。
所开发的建模语言的应用还需要进一步研究。关于构成MBSE核心的系统模型的定义,必须开发相应的方法。基于已识别的类,例如需要开发用于确定各个属性的计算算法。尤为关键的是确定受潜在外部干预(黑客影响)的安全关键失效概率。此外,需要持续研究其他适用的功能安全和网络安全分析方法,并将其一致地纳入元模型中。该应用的一个关键挑战是系统识别攻击源和错误源。为了使开发人员能够有效且高效地对安全可靠的系统架构进行建模,建议参照元模型,以数据库的形式构建攻击、失效和应对措施的解决方案模式库。此外,为了发现新的攻击和错误形式,需要开发一种尤其能够激发创造力的综合方法(例如设计思维)。最后,由于目前该元模型主要聚焦于汽车领域,未来的研究将通过分析其他领域(例如网络化船舶)的相应挑战和已有的设计方法,探索该元模型在这些领域的应用。 |