登录| 注册 退出
驭捷智能
2021-04-13 11:13:43

联网汽车的汽车网络安全(五):车载网络安全的开发流程和评价方法

分享到:

联网汽车的网络安全(五):车载网络安全的开发流程和评价方法(图1)

文:岡 健五,译:牛喀网

针对汽车网络安全,传统车载系统的开发流程需要做一些变更。而且要针对该车载系统的安全等级有一个测评的机制。

汽车网络安全开发流程

美国自动机协会(SAE)正在对汽车网络安全相关的规程《J3061:信息物理汽车网络安全指南(Cybersecurity Guidebook for Cyber-Physical Vehicle Systems)》进行研究,已于2016年1月发布该指南。规程最小化限制了车载系统被恶意利用的可能性,并提供了执行需求功能的复杂系统设计方法。

另外,在美国召开的汽车网络安全会议(escar USA 2015)上Robert Bosch发布了Bosch SEP(Security Engineering Process)汽车网络安全工程流程。BoschSEP中定义了三个阶段。简单的说,第一阶段是在产品的概念、系统架构设计时定义汽车网络安全目标。第二阶段是分析攻击的风险、漏洞,以及已知的攻击或威胁的场景,最后对结果和风险进行评价审查。第三阶段是以安全需求为核心,定义可接受的风险标准以及汽车网络安全需求,并以此需求为核心作成客户需求规范。

联网汽车的网络安全(五):车载网络安全的开发流程和评价方法(图2)
図1「Bosch SEP」的3个阶段

目前已经知道造成汽车网络安全问题的原因中50%以上是实施缺陷。典型的例子包括缓存溢出,索引/整数溢出、错误处理不当等。因此安全编码非常重要。

实施缺陷的原因多数是开发者安全培训不足,对复杂规范和标准(包括Safety和Security标准)的正确理解不足。因此,需要safe-secure的编码规范。Bosch-SEP还讨论了渗透测试和fuzz测试等安全测试方法。这些后面会稍作详细说明。

嵌入式安全评价

最近引起关注的是嵌入式安全评估(Embedded Security Evaluations).比如针对ECU这样的车载系统,在开发初期就做大量的安全评审,从而改善安全漏洞,防止攻击者利用这些漏洞带来经济上的损失和安全性方面的破坏。基本的安全性评价包括理论和应用两类。

联网汽车的网络安全(五):车载网络安全的开发流程和评价方法(图3)
図2 「嵌入式安全评价」2个分类

理论安全分析(TheoreticalSecurity Analysis)在车辆整个开发周期内都能够并应该执行。原则上,理论分析在开发阶段中越早开始越好。实际安全安全性测试(Practical Security Testing)只有在系统实施(比如试验品)之后才可以执行。

理论安全分析的实例包括设计分析、威胁和风险分析。设计分析是基于车载系统的概述进行的概要分析。设计分析的最终目的是在系统开发周期的早期确定系统级的缺陷。例如,找到脆弱的加密算法,标准协议之间的脆弱处理等易受攻击的地方。

车载系统的详细描述文档存在的话,可以对威胁和风险进行深入的分析。在系统开发最开始就能够进行彻底的分析,确定出设想的潜在攻击。每种潜在攻击的时间、攻击者的专业知识、需要的设备、目标系统的侵入方法等都可以评价。

更进一步,各个攻击可能造成的潜在损失,可以基于经济损失,使用损失,安全损失做出评价。在考虑每种攻击的潜在攻击和破坏潜力基础上,每可以计算出种攻击的风险值。高风险值的安全漏洞,必须在任何情况下优先解决。

但是理论安全分析不能发现实施缺陷,找不到规范和实施之间的差异。为了降低实施上的风险,要采用安全软件开发流程。

4步实现安全性测试

当然,即使采用了最好的开发方法,实施的时候可能也会有漏洞。通过安全性测试使进行攻击测试可以发现这些漏洞。安全性测试越深入,越能发现未定义的功能或者与规范不一致的点。安全性测试可以发现目标系统实际使用中被攻击的难度有多大。

联网汽车的网络安全(五):车载网络安全的开发流程和评价方法(图4)

図3 实际安全性测试的分类

典型的安全性测试由4个步骤组成。第一步是通过功能安全测试,重点验证目标系统所有的安全相关功能的稳定且正常工作。这一步可以发现和安全漏洞关联的实施错误、规范不一致、未定义功能等。

第二步叫做漏洞扫描。针对目标系统,进行已知的常规漏洞检查。例如已知的安全漏洞,不正常设置等。

第三步是深入挖掘,重点找出未知的安全漏洞。这一步也叫作fuzzing,向目标系统发送异常或者与规范不一致的输入,并对系统进行监测。然后确认是否有异常。使用CAN的fuzzing,检车目标ECU的动作非常困难。因为多数情况下发送的CAN消息不要求ECU回复。可是,其使用监测功能,提出了改良CAN的fuzzing的方法。比如通过执行内存检查确认重要的值有没有被覆盖,设置一个新的断点确认执行了代码的哪个部分。

第四步是侵入目标系统的软件和硬件,重点对系统的整体进行测试。实验者模拟优秀的攻击者,测试全部已知的安全漏洞。试验者根据多年积累的经验,采用逆向工程、重要数据抽取、软硬件结合法等进行更加复杂的攻击。比如,利用硬件调试接口的漏洞读取内存的一部分信息,再结合软件攻击获取秘钥或其他重要数据等。

但是,必须注意,安全性测试,尤其是fuzzing侵入测试,想要穷尽所有可能的攻击是非常难的。在无法覆盖全的情况下,必须决定测试时间、资源和费用花在哪些测试范围。当然,很有可能这些测试还是漏掉了重大的系统缺陷。安全性测试不能取代理论安全分析,要实现完全的安全测试,应该通过理论安全分析来覆盖。

如之前所述,有必要在早期,改善整个软件开发流程,以使攻击范围最小化。而且还要在开发周期的每一个阶段添加汽车网络安全。



上一篇:联网汽车的汽车网络安全(四):车载软件网络攻击的四层防御
下一篇:没有了

在线
客服

在线客服 - 驭捷智能周一至周日 10:00-24:00(欢迎呼叫)

选择下列服务马上在线沟通:

客服
热线

18917451722
6*12小时客服服务热线