本节通过一个简化后的ADAS客户项目案例,展示如何在实践中逐步应用ISO 21434。虽然示例经过简化,但意义在于介绍安全工程。
第1步:相关项定义
相关项定义不仅是确定元素边界所必须的,而且一直都是定义系统资产所需的重要参考。在该案例中,广义的相关项就是整个ADAS系统,其顶层网络架构如图4所示。
04 ADAS网络架构示例
简单起见,假设所有通信都通过CAN总线完成。对于外部接口,要根据底层架构来识别。该系统可通过4G网络与OEM云基础设施进行通信,并拥有可连接到网关的OBD接口。
第2步:资产识别
下一步是识别并列出相关项中的所有资产。在选择资产时,要基于其价值或受到损害时的风险等,比如功能安全目标、财务风险、运营成本和隐私等。以下是ADAS系统的资产示例:
> A1:ADAS接收或发送的网络报文
> A2:ADAS软件,包括安全机制
> A3:安全密钥
> A4:驾驶历史和记录的数据
第3步:威胁分析和风险评估
基于已经识别出的资产,下一步要进行TARA分析。通过TARA可以系统性地分析在受到攻击时威胁所带来的影响程度,以及实现攻击的难易程度。然后结合影响等级和攻击可行性等级,按照从1(非常低)到5(非常高)的尺度来划定风险等级。之后,根据风险等级的高低来计划和实施进一步的风险应对措施。除此之外,ISO 21434还建议按照从CAL1(低)到 CAL4(高)的尺度,对每项资产划定网络安全保障级别(CAL)。
示例中,我们列出了一些针对已识别资产的攻击,以及相应的威胁,资产和威胁都各自有专属ID。以下是一些攻击路径的示例:
> A1-AT1:车辆制动相关报文被阻塞;
> 安全机制(即手动接管期间无车道保持)遭到破坏,无法正常工作。
在此基础上,可识别出相应的威胁,即:
> A1-AT1-T1:尽管驾驶员踩下制动踏板,但车辆不制动(危害:如果制动失效,可能引发事故并造成伤害)
> A2-AT1-T1:手动接管期间保持车道(危害:因接管失败而造成重伤)。
表1显示了根据识别出的攻击内容和威胁场景进行评估所获得的攻击可行性等级和影响等级,进而判定出风险级别和网络安全保障级别(CAL)。
表1 TARA分析示例
第4步:安全目标和安全要求
为了降低风险,要根据风险可能造成的影响来识别和评估安全目标。安全目标是高层面的安全要求。从每个安全目标出发,可以衍生出一个或多个功能级安全要求,而对于每个功能级安全要求,又可以衍生出一个或多个技术级安全要求。在这个例子中:
> 安全目标:A1-AT1-T1-SG1:系统必须阻止对驾驶员辅助系统所发送消息的操纵行为。
> 功能级安全要求:SG1-FSecR1:必须确保驾驶员辅助系统和传感器之间通信的完整性。
> 技术级安全要求:SG1-FsecR1-TSecR1:MAC应由符合安全硬件扩展(SHE)的硬件信任锚(HTA)使用算法RSA2048计算获得。SG1-FsecR1-TSecR2:MAC值应在x字节后进行截断。
第5步:可追溯性
可追溯性有助于保持一致性并降低责任风险。即使在发生变更,增量构建或持续构建的过程中,可追溯性对于确保覆盖率和一致性也是必不可少的。
图5展示了将需求、设计和测试相关联的一种抽象模型。在应用该模型时,设计者从负面需求(即黑客的需求)开始,提炼出解决方案以降低这些攻击的可行性,进而确保从初始TARA分析结果和安全要求定义出发的追溯关系的完整性。
05 网络安全可追溯性
第6步:设计
由于在安全相关资产的TARA分析中发现了相应风险,因此ADAS系统需要在设计上进行变更来应对这一风险。根据安全目标SG1,系统必须具备识别和预防机制来避免攻击者对网络信号的操纵。通过落实功能级安全要求和技术级安全要求,可设计出相应的识别和预防机制。
在落实安全要求的过程中,硬件设计可能会相应地发生变更。在本文所研究的案例中,必须使用HTA。同时,通过应用MISRA和CERT提供的指南进行安全编码,可以避免设计和代码错误可能导致的安全漏洞。应当始终牢记,大多数攻击得逞的原因是设计不足,而非密码学的限制。
第7步:集成和验证
该步骤的主要目的是验证实施和集成的安全机制是否满足网络安全目标和要求。为实施这一步骤,推荐以下具有相互依赖性的典型方法:
> 单元级验证:静态和动态代码质量分析侧重于MISRA和CERT等安全编码指南以及单元级鲁棒性。自动工具用于执行代码质量分析(CQA)并生成测试报告。
> 功能测试:基于需求的测试有助于识别系统设计和架构中的基本缺陷。在该案例中,对最初在相关项定义中描述的实际功能进行了系统级别的测试,以确保功能表现不会因为额外的安全措施而受到损害。
> 模糊测试:模糊测试用于测试超出预期范围和边界的各类车辆通信协议。
> 渗透测试:渗透测试是在组件和系统级别上独立执行的测试策略。灰盒渗透测试[5]因其高效率和有效性,已被证明能够实现这一策略。
第8步:开发后阶段
在开发阶段,除了做好充分的测试,也必须为开发后的活动做好相关准备。这包括相关项的生产、运行、维护以及最终报废。因此需要为这些活动预留预算、时间和能力储备,比如紧急事件响应团队、安全警报通知和软件补丁交付等。该阶段可分成以下几个环节:
> 生产:在相关项的制造和组装过程中,必须遵循一些网络安全要求。例如,在这个案例中,对于在下线阶段向HTA的内存中注入供应商或OEM关键材料的过程,应当进行充分的计划和处理。
> 运营和维护:作为持续网络安全活动的一部分,每个组织都需要维护一个独立的项目监控团队。当网络安全事件触发时,运营团队必须按照预先定义和商定的网络安全事件响应计划来进行事件响应。
> 报废:报废过程与网络安全密切相关,因为相关项可能包含需要安全处置的信息。
颐卓咨询管理集团-广州总部
总部地址:广州市海珠区琶洲数字科技产业园A15-2栋
联系方式:13622221264(张小姐)
邮 箱:eyzo@chinakec.com
公司官网:www.chinakec.com
集团分支机构:深圳、成都、重庆、佛山、东莞、长沙、武汉、北京、昆山、厦门等