车联网安全-TARA分析_tara风险分析-程序员宅基地

技术标签: 安全  网络  汽车网络信息安全  安全架构设计  

1概述

TARA,全称Threat Analysis and Risk Assessment,威胁分析与风险评估,是汽车电子电气架构中常用的网络安全威胁分析与风险评估方法论。TARA从道路交通参与者角度,确定道路交通参与者受威胁场景影响的程度。

如下图所示,在ISO/SAE 21434中,作为最后一个章节出现,主要包含了资产识别、威胁场景识别、影响等级、攻击路径分析、攻击可行性等级、风险评估上确定、风险处置决策,共7个基本的步骤。

对应着上述七个步骤,TARA分析有七项基本目标:

①识别资产,它们的网络安全属性,以及它们遭受损害的场景;

②识别威胁场景;

③确定损害场景的影响等级;

④识别实现威胁场景的攻击路径;

⑤确定攻击路径实施的难易程度;

⑥确定威胁场景的风险值;

⑦为威胁场景选择合适的风险处置措施

2资产识别

在资产识别环节,需要识别出TARA目标范围内那些具有网络安全特性的资产,这些资产的网络安全特性遭到破坏时可能产生一些损害场景。通常情况下,这里指的是软性的信息资产(或称为数据资产),在某些特殊情况下,也可能会是硬件资产。

例如,IVI中存储的个人搜索历史记录。这明显是一种资产,该资产对应的需要保护的网络安全属性主要为机密性。损害场景是,当该资产的机密性遭到破坏时,会产生未经数据主体同意的个人敏感信息泄露(这些搜索历史可能反应数据主体的政治倾向、宗教信仰、性取向等等)。

再比如,刹车系统的控制信号,该资产的完整性需要被妥善保护。损害场景是,当刹车系统的控制信号被篡改后,驾驶员的刹车控制指令无法被正确的传送到制动器,导致刹车失败、追尾等严重事故。

如下表所示,资产识别阶段需要确定的主要内容如下。

注意:对于上面所述的网络安全属性,最基本的是CIA三元组(Confidentiality-保密性,Integrality-完整性,Availability-可用性),除此之外,还可以衍生出真实性(Authenticity)、不可抵赖性(Non-Repudiation)等。

3威胁场景识别

在威胁场景识别环节,也可以包括或者关联其它更进一步的信息。例如,损害场景,以及资产、攻击者、方法、工具、攻击面之间技术上的相互依赖性。另外,威胁场景识别可以使用小组讨论的方法,也可以使用诸如EVITA、TVRA、PASTA、STRIDE等系统化的威胁建模方法。

针对威胁场景的描述,主要包括三个方面的内容:目标资产、破坏的网络安全属性、对应的危害场景。例如,针对制动ECU的CAN消息欺骗,可以导致CAN消息的完整性丧失,从而导致制动功能的完整性丧失。

如下表所示,威胁场景识别阶段需要确定的主要内容如下。

注意:一个损害场景可以对应多个威胁场景,反之,一个威胁场景也可以导致多个损害场景。

4影响评级

在影响评级环节,主要从道路使用者可能受到影响的四个维度进行评估:安全(Safety)、财务(Financial)、运行(Operational)、隐私(Privacy),简称SFOP。

但是在ISOSAE 21434中也明确说明了这一块:首先,不考虑这四个维度之间的相互关系(比如加权);其次,可以考虑引入这四个维度之外的其它影响因素。

在对损害场景的影响评级时,除了考虑这几个维度之外,还需要确定每个维度的影响级别,比如:极其严重(severe)、高(major)、中等(moderate)、忽略不计(negligible)。

如下表所示,影响评级环节,需要确定的内容如下。

为了能够在实施过程中更加顺畅,整体上更加客观(尽管整个评级过程中带有TARA分析人员的较大的主观因素),在实施过程中一般会对SFOP的四个维度赋予不同的权重,这取决于组织在这四个维度上差异化的风险偏好。

另外,对于每一个维度中的几个影响级别(可以定义更加精细化的级别)可以赋予不同的分值(可以使用5分制、10分制、100分制等),不同维度上的相同影响级别可以赋予不同的分值,这也跟组织的风险偏好以及目标产品的特点有关系。

因此,最终在组织中实施TARA的时候,需要确定的信息可能是如下的形式。

下面会从SFOP的四个维度分别进行阐述。

4.1 安全-Safety

对于Safety维度的影响评级,重点参照了ISO 26262-3:2018,另外也可以参照该标准中的可控性和暴露度进行影响评级。安全评级的基本定级规则如下表所示。

4.2 财务

对于财务维度的影响评级,可以遵循如下表所示的原则。

4.3 运行

对于运行维度的影响评级,可以遵循如下表所示的原则。

4.4 隐私

对于隐私的影响评级,可以遵循如下表所示的原则。

注:在ISO 21434中,相关信息关联到的自然人统一称为“PII principal”,有的地方翻译成PII(Personal Identifiable Information)主体,个人总感觉比较拗口,这里统一采用GDPR的称谓-数据主体(data subject)。

5 攻击路径分析

在攻击路径分析环节,需要参照项目的定义文件,或者产品的网络安全specification。除此之外,攻击路径分析中还可以参照已知网络安全事件中的脆弱性、产品开发过程中发现的脆弱性、架构设计文档、之前识别到的相关的攻击路径,以及可能的脆弱性分析等。

从方法论上来讲,主要采用自顶向下和自底向上两种方法实现。

自顶向下,分析威胁场景的各种可能的实现方式,并以此推理攻击路径,典型的如攻击树方法、攻击图方法。

自底向上,这种情况比较单一,主要是基于已知的漏洞构建攻击路径。

在攻击路径分析中,建议使用“威胁源,攻击面,攻击向量”的模式来描述一条攻击路径。比如“攻击者通过在CAN总线上发起泛洪攻击,导致制动踏板的指令无法到达制动执行器,从而造成制动功能失效”。

如下表所示,在TARA分析过程中,一般会通过威胁场景ID和攻击路径关联起来。

6 攻击可行性评级

攻击可行性评级的主要目的是,给每条攻击路径确定一个攻击可行性的等级。具体的攻击可行性等级,可以基于组织的需要来定义,比如高、中、低。

更进一步,攻击可行性评级的方法有多种,比如基于攻击潜力、基于CVSS、基于攻击向量等。ISO/SAE 21434中指出可以基于这三种方法中的任何一种进行攻击可行性评级。

6.1 基于攻击潜力的方法

主要包括了,攻击所需要的时间、需要的专业知识、对攻击对象的了解程度、攻击的机会窗口,以及攻击所需要的设备的专业度。

注:在ISO 21434中,针对攻击潜力的所有维度的打分值不太统一,也相对比较凌乱,对于初上手的人来说不太好理解。因为从方法论的角度讲,这些分值都是可以根据组织的情况进行自定义的,个人建议还是采用统一的百分制打分更加通用。

6.1.1 所需的时间

攻击所需的时间包括了识别漏洞以及利用漏洞的时间,因此针对这个参数的打分本身也是基于打分时的专家知识状况。例如可以分成如下几个阶段进行打分。

6.1.2 专业知识

专业知识参数跟攻击者的能力和经验都是有关系的,可以分成如下几个层次进行打分。

注:这里指的主要还是在网络安全领域或者渗透测试领域的专业知识,注意区别于下面针对攻击对象的专业知识。

6.1.3 针对攻击目标的专业知识

对攻击对象的了解程度跟攻击者获取的攻击对象相关的信息的详细程度(或者说信息量)有关系。针对攻击对象的了解程度可以从如下几个层次进行打分。

6.1.4 机会窗口

机会窗口与成功实施攻击的访问条件有关系,比如时间、类型等。机会窗口结合了访问控制类型(如逻辑的、物理的)、访问时间(如受限的、不受限的)等等。

依赖于攻击的类型,可能包括发现可能的目标、侵入目标、对目标的勘探、对目标实施攻击的时间、保持不被发现、规避检测与控制等等。针对机会窗口,可以从如下几个层面进行打分。

6.1.5 设备工具

攻击采用的设备工具可以有如下几个层次的打分。

6.1.6 基于攻击潜力的攻击可行性评级

与影响评级一样,攻击可行性评级的时候,每一个维度的权重,以及每一个维度的分值定义,在没有强制(或通用)标准的情况下,组织可以根据自己的实际情况来定义。下图展示了采用基于攻击潜力的方法进行攻击可行性评级,并且为每个维度赋予了不同的权重。

6.2 基于CVSS的方法

为了评定信息技术的安全漏洞,常用的方法是CVSS。在CVSS的基本指标组中的“可利用性指标”可以用来评估攻击的可行性。可利用性指标主要包括:攻击矢量、攻击复杂性、需要的特权、用户互动。

对于CVSS指标的评估,需要根据预先定义的范围,为每个指标设定数字值。整体的可利用性指标值可以根据下面的简单公式计算产生。

E = 8.22 × V × C × P × U

其中,E是整体可利用性指标值;V是攻击矢量指标值,范围是[0.2, 0.85];C是攻击复杂性指标,范围是[0.44, 0.77];P是所需特权的指标值,范围是[0.27, 0.85];U是用户互通的指标值,范围是[0.62, 0.85]。这样一来,可利用性指标的范围在[0.12, 3.89]。

下表是ISO 21434中给出的CVSS可利用性指标与攻击可行性之间的映射示例,每个范围都是等距的。

注:只采用可利用性指标本身并不是严格符合CVSS对指标的要求。因此在ISO 21434中,缺失的影响度量可以用其它方式进行补偿。理论上来讲,CVSS的可利用性指标是一个不错的工具,还可以用来评价概念性的弱点、缺陷等。

6.3 基于攻击向量的方法

主要是通过评估攻击路径中的主要攻击向量,来确定攻击的可行性等级。基于攻击向量的方法反映了攻击路径可能被利用的场景。

对于攻击可行性评级来说,攻击者在越远(可以是逻辑的,也可以是物理的)的地方利用攻击路径,可行性评级就越高。这里假设从网络上利用漏洞的潜在攻击者数量大于从物理上访问攻击对象的潜在攻击者数量。

下表展示了基于攻击向量的方法中,攻击可行性评级与攻击向量之间的映射关系。

7 风险值确定

对于每一种威胁场景,需要根据其相关损害场景的影响,以及相关攻击路径的攻击可行性来确定风险值。

如果一个威胁场景可以对应一个以上的损害场景;或者一个损害场景在一个以上的影响类别中产生影响,则建议给每个影响等级单独确定一个风险值。

此外,如果一个威胁场景可以与一个以上的攻击路径相对应,则可以将相关的攻击可行性评级结果酌情汇总,比如将攻击可行性评级最大的攻击路径赋予威胁场景。

威胁场景的风险值应设置在[1, 5]上,其中1代表最小的风险,5代表最大的风险。

在实践中,可以使用风险矩阵法或定义好的风险公式来确定威胁场景的风险值,风险矩阵法比较常用。下图所示的是ISO 21434附录中给出的风险矩阵示例。

8 风险处置决策

风险值确定后,需要考虑如何处置这些风险,主要基于组织的风险偏好、项目的特点、历史上类似风险的处置。

对于风险的处置,一般有以下四种方式:规避、缓解、转移(ISO 21434中叫“sharing-分担”)、接受。

规避:简单直接,通过消除风险来源来避免风险,比如直接取消引起风险的活动(既然有风险,老子不干了!)

缓解:通过优化设计、优化流程、采用新技术等,减缓风险的影响。

注:通过缓解措施,可以降低风险的等级,或者减少风险发生时的损失,但是风险不会完全消除,还会有残余风险存在。从风险管理的专业角度来讲,残余风险也需要记录到风险跟踪列表中进行持续跟踪;在某些条件下,残余风险又可能发展成很大的风险。

转移:通过跟第三方签订合同等形式,将风险转移给第三方(比如,买保险。请注意:风险的转移,只是降低风险发生时的部分损失,或者说在风险发生时第三方以金钱等方式进行支援,但是风险的责任不会被转移,还是在组织手中)。

注:从专业的角度,应该叫风险的“转移”,通过签订合同/购买保险等措施,将部分或者全部风险转移给第三方;但是在ISO 21434中称作“分担”(sharing),并且在注释中也说明了通过合同或者购买保险的方式“share”,也解释的通;具体不做纠结,读者明白这个意思即可。另外需要重点说明的是,风险的转移,只是在风险发生时第三方以金钱等方式对组织进行一定的补偿,但是风险的责任本身不会被转移,还是在组织中。

接受:当缓解或者转移风险的成本可能超出了风险本身造成的损失时,组织就会选择接受风险。(躺平了!)

注:从风险管理专业的角度来说,接受的风险仍然需要计入风险跟踪列表持续跟踪;在某些条件下,已接受的风险又可能发展成不可接受的风险。

在风险处置决策环节,将会呈现如下的相关信息。

注:上表只是一个示例,并不代表风险等级跟风险处置措施之间的强对应关系。具体的风险处置决策还是以组织的风险偏好、项目的性质、历史的经验等多方位考虑。

注:上表只是一个示例,并不代表风险等级跟风险处置措施之间的强对应关系。具体的风险处置决策还是以组织的风险偏好、项目的性质、历史的经验等多方位考虑。

9 结语

从实践经验来看,在汽车整车及零部件研发过程中,TARA不是一蹴而就的,几乎贯穿整个研发过程。但是总体上遵循着渐进明细的规则,随着项目的深入和对产品的了解,TARA的粒度也会越来越细。

10 智车信安自动化TARA分析平台

智车信安初始团队均来自国内前五的主机厂,熟知内部业务流,通过丰富的项目实践经验及前沿的政策解读,研发了威胁建模平台(简称VTMP),一款基于的图形化建模和自动化威胁措施分析的汽车安全建模分析自动化平台。

VTMP平台基于安全可行性风险评估以及架构设计,对系统建设所可能遇到的威胁、通过“拖、拉、拽”的方式,进行图形化组件式建模,对威胁的分类、演变、关系、来源等进行自动化或者辅助自动化分析,大量减少人力投入,并可自动生成威胁建模报告。

智车信安自动化TARA分析平台

转载地址:智能网联汽车-电子电气TARA分析_影响_场景_识别

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a1207129057/article/details/135992415

智能推荐

Day00-Exercise06 :git_commit.sh_commit.sh文件是干嘛的-程序员宅基地

文章浏览阅读316次。Day00-Exercise06 :git_commit.sh这道题没有找到PDF所以没有原题:只能靠记忆:好像是建立一个sh文件,里边存入可以显示最近五次的git commit的hashcode;知识点:git loggit log是用来显示莫个项目的提交历史;一般显示如下commit 755adc66e7455b9b5e527ac4fa02b5529c47e00f (HEAD -..._commit.sh文件是干嘛的

从贝叶斯方法谈到贝叶斯网络_有程万fb543c-程序员宅基地

文章浏览阅读5.1k次,点赞3次,收藏10次。原 从贝叶斯方法谈到贝叶斯网络 ..._有程万fb543c

并行与分布式计算复习大纲 华南农业大学_华农分布与并行-程序员宅基地

文章浏览阅读7.3k次,点赞51次,收藏135次。复习提纲:1. 为什么要并行编程分布和并行计算的区别(重点)答:并行(如果针对线程进程而言的问题的话,并行就是共享计算机CPU资源)。单机多核,问题并行编程;分布:网络连接,对外以整体提供服务并行和并发的区别(重点)答:并发:支持同时存在;并行:支持同时执行。并行是并发的一个子集。(如果针对线程进程的观点去看的话,那么同一时刻只有一条指令执行的话,然后多个指令轮流执行,那么叫做并发,如果同一时刻多条指令在多个处理器上同时执行的话,那么叫做并发)进程、线程的区别答:进程是操_华农分布与并行

【可视化】rviz下的kitti数据集可视化(2)_r0_rect-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏22次。接上篇【可视化】rviz下的kitti数据集可视化(1)Rviz下绘制Velodyne雷达坐标系下的3D标注框 前文已经提到,KIITI中3D框是标注在参考相机(0号相机)坐标系下。为了能够在Velodyne激光雷达坐标系下通过标注数据绘制3D框,一方面是要涉及参考相机坐标系到Velodyne激光雷达坐标系之间的坐标转换(旋转+平移),另一方面还要注意标注数据中的rotate_y(ry)值。它表示在相机坐标系下,3D物体的全局方向角(物体前进方向与相机坐标系x轴的夹角),取值范围为:..._r0_rect

神经网络原理&一个简单的神经网络模型搭建_简单神经网络模型-程序员宅基地

文章浏览阅读7.8k次,点赞24次,收藏76次。神经网络基本原理文章目录神经网络基本原理前言一、神经网络是什么?1.1 神经网络的分类1.2 神经网络结构图1.3 神经元1.4 为什么神经网络能预测?二、 一个最简单的神经网络1.去不去爬山?2.案例代码2.1 引入类库2.2 创建数据2.3 初始假设2.4 神经元计算2.5 运行结果2.6 小结3.神经网络的自我学习总结前言神经网络是一门重要的机器学习技术,它是目前最为火热的研究方向–深度学习的基础。本文以一个生活中的小场景切入问题,详细的介绍了人工神经网络的本质基本原理。一、神经网络是什_简单神经网络模型

直线二阶倒立摆之数学建模_二级倒立摆数学模型-程序员宅基地

文章浏览阅读8.2k次,点赞45次,收藏83次。本文是关于二阶倒立摆模型如何在平衡点处得到其的线性化模型的说明,介绍的比较详细,但是大部分内容参考于前人所写的论文,这些参考文献,我将列在本文的最后,但是我所建立的模型不同于论文中的模型,基本上计算过程我也是手算了一遍,在这里写出来,也是为了给想物理含义符号滑轨质量M滑轨位置x摆杆1质量m1摆杆1角度θ1摆杆1半杆长l1摆杆2质量m2摆杆2角度θ2摆杆2半杆长l2二阶倒立摆的数学模型使用拉格朗日方程建模使用拉格朗日方程_二级倒立摆数学模型

随便推点

解决mac中idea打开某个项目没有权限的问题/解决mac中修改某个文件提示没有权限的问题_mac idea 权限-程序员宅基地

文章浏览阅读6.3k次。最近在测试时想看开发的代码,然后拉下代码后用idea打开,老是看到有一个锁的标志,一直没明白啥意思,然后拉取开发代码时又有报错,提示没有权限,很闹心。所以没提要拉代码或者提交测试脚本时都要先把本地的工程删了重新拉一遍,后来才想起来是当前用户对这个工程没有权限sudo chown -R yangzhongliang /autotest 其中yangzhongliang为当前用户,/autotest为需要加权限的文件夹(项目or文件 所在文件夹)sudo chown -R yangzhongli.._mac idea 权限

计算机网络 数据链路层详解(一)_为什么缺少前导符和帧首定界-程序员宅基地

文章浏览阅读475次。关于数据链路层个人认为可以分四大方面 来了解基本知识,深入理解还是需要个人自己去阅读书籍 花费时间去深度学习。(1)两大信道的特点,以及相关协议在学习这个方面前 我先介绍另一个很重要的知识点对,就是我们都知道的三个基本问题。(2)三大基本问题封装成帧 透明运输 差错检测很多书籍教材 对于三大基本问题 描述 都存在过于复杂 或 过于简单 不便理解 这里我也是分享自己的理解 后面有新的理解 会更新子篇 下面看第一个问题。当我们第一次看到 封装成帧 该怎么理解呢?作为菜鸟的.._为什么缺少前导符和帧首定界

java 动态调用类的方法_java动态方法名-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏3次。Java动态调用方法,主要用到java反射机制,Class和Method这些类。//被调用的方法名String methodName="testmethod";//用于传递参数的class数组。Class[] cargs = new Class[1];cargs[0]=mId.getClass();//testService.getClass():得到testService的class..._java动态方法名

【微信小程序】从零开始搭建一个英语学习小程序02——页面样式设计(1)_微信小程序学英文-程序员宅基地

文章浏览阅读1.4k次,点赞6次,收藏16次。一、导航栏设计在全局配置文件app.json中配置pages、window、tabBar等项,具体代码如下所示。{ "pages":[ "pages/home/home", "pages/words/words", "pages/logs/logs", "pages/listening/listening", "pages/saying/saying", "pages/reading/reading" ], "window":{ _微信小程序学英文

.net core AutoMapper的简单使用。_addautomapper-程序员宅基地

文章浏览阅读1.3k次。AutoMapper主要处理对象与对象之间的映射,减少程序员自己编写代码的工作量,提高开发效率。假如你想对原始数据,进行部分字段展示,那么你需要创建一个对应的DTO类,进行手动映射,这样太麻烦。所以可以采用自动映射。_addautomapper

Vue3项目按需引入 view-ui-plus-程序员宅基地

文章浏览阅读2.3k次。Vue3项目按需引入 view-ui-plus。_view-ui-plus