加强软件安全性 推动汽车行业发展

作者:新思科技安全技术部副总裁 Gary McGraw

如今,汽车软件不再局限使用于汽车内部的少数零部件,而是变得复杂和相互连接。尽管现在汽车中的软件仍然是一个早期的概念,但黑客不会等到行业成熟之后再发起攻击。一旦这些联网汽车出现安全问题,汽车软件中的代码和设计缺陷被恶意攻击者利用,其利害程度远远不亚于互联网上的安全事件,将会造成严重的社会危害。

新思科技安全技术部副总裁Gary Mcgraw认为,汽车制造商必须高度关注现代汽车的软件完整性—— 质量与安全。软件完整性与他们现在所关心的冶金轴承、防撞安全气囊、安全带和材料等一样重要。

相对来说,软件是一种新的人工产品。如今,即使我们的智能手机和物联网设备变得越来越易于使用,但软件其实越来越复杂。很有趣的是,表面上看起来很简单的软件应用,其实背后的代码却十分复杂。而这种复杂性有机会被网络黑客等利用。

在现代社会,软件可谓无处不在,即使你是一个非常严肃的勒德分子(Luddite是指害怕或者厌恶技术的人,尤其排斥威胁到现有工作的新技术)。软件已经成为日常生活中看不见,却非常必要的一部分。举个例子,你的电力供应是否正常取决于幕后大量软件的运行。真的需要软件才能使用电力,才能打开灯吗?是的,确实如此。而且,我们还需要很多软件来让汽车运转。

软件已经成为现代经济发展的驱动力之一,但构建完美的软件非常困难。软件缺陷与质量和安全问题密不可分。

当我们深入研究汽车行业软件和安全性的关系时会发生什么?让我们首先来看一下其它行业的安全软件开发状态,例如金融服务和医疗行业。2008年,许多创建软件的公司都专注于构建系统。这些系统的设计和实现都提前将安全纳入其中。事实证明,如果构建的软件是安全的,那么保护软件免受黑客攻击就容易很多。在系统中,针对可能有缺陷且易受攻击的软件寻找外围解决方案,并使用防火墙保护实际上就像是天方夜谭。

在软件开发过程中,越来越强调软件安全性。所以技术人员都认同在软件开发早期就要纳入安全性。在软件生命周期的早期识别、修复漏洞和设计缺陷,可以节省企业后期补救的时间和成本,以便企业可以在产品其它方面进行更多投入。

这种理念在汽车领域同样适用。在汽车出厂,销售给消费者之前,制造商需要确保成车的安全性,包括车辆性能和软件。汽车很快就像“轮子上的智能手机”,内置许多软件,设计汽车这样的复杂工件时,制造商不能只是祈祷他们的软件和所有供应商的软件都是安全的。事实上,就像关注冶金轴承、防撞安全气囊、安全带和材料一样,制造商也必须关注软件安全以保证现代汽车的安全。

我们可以进一步将安全类推,汽车安全不仅仅是汽车碰撞测试。当然,碰撞测试很重要。但是通过汽车的碰撞测试发现的简单问题只能通过重新设计,如此一来,成本会变得高昂。通过运行渗透测试找到代码中的漏洞,然后在软件开发人员将所有工序都完工后再修复它,同样成本高昂、不可取。

缺乏安全设计会怎么样?

工程设计也需要权衡。当汽车制造商在设计一辆汽车时,决定燃油箱多大以平均每个油箱的里程数是必须要做的决定。将油箱布局到汽车的哪个位置也需要做同样的决定。这些决策可能是通过反复试验和总结失败经历才做出的,但仅限于在汽车生产之前得出解决方案。

汽车推出市场后一旦出现问题,后果不堪设想。从典型的福特Pinto案例可见一斑。福特忽略了加固Pinto的油箱,其油箱在碰撞时很容易破裂,导致汽车起火。虽然提出了重新设计的计划,但福特决定采用针对事故进行赔偿4,900万美元的方案,而不是采取措施花费1.13亿美元的成本来解决这一问题。因此,此问题依然存在,而且没有合适的解决方案。这件事情几十年后依然困扰着福特公司。

基于媒体的负面报道和美国国家公路交通安全管理局(National Highway Traffic Safety Administration)对此情况的调查,福特于1978年召回了1971年至1976年生产制造的所有Pintos以进行安全升级。如今40年过去了,我仍然想借此来证明一点,尽管安全不像油箱(它是一个系统属性),但是软件是非常重要的。软件安全是我们现在知道如何去解决的问题。事实上,我们需要在软件设计阶段考虑安全性(就像油箱设计的例子),随后在代码设计阶段也要考虑安全性。

汽车制造已经有比较悠久的历史。随着越来越多的软件融入这一行业并渗透到汽车设计中,我们必须将软件安全和工程安全视为同等重要。软件可以实现安全性,我们也知道如何做到,而且我们必须做到这一点。

软件安全的第一步是什么?

软件安全的第一步是要找到专业的人来负责这项工作。成立软件安全小组,并且让一位有话语权的高管来负责这个小组。这个软件安全小组的任务是负责开发公司强大的软件安全计划。值得注意的是,软件安全小组的员工最好是具备安全知识的软件人员,而不仅仅是懂防火墙的网络工程师。

建立软件安全小组是企业采用软件安全构建成熟度模型(BSIMM),并加入BSIMM社区的基本要求。BSIMM现在已经成为软件安全和内置安全性的重要标准之一。BSIMM拥有100多个公司成员,代表许多垂直行业,但是很遗憾的是并没有汽车行业的代表。汽车行业应该利用BSIMM,以推动自身在软件安全方面快速发展。

尽管现在汽车中的软件仍然是一个早期的概念,但黑客不会等到行业成熟之后再发起攻击。在日益互联的网络生态系统中,从充当密钥的智能手机应用程序到自动驾驶汽车的智能芯片,有太多可能出错的方式。如果系统由于软件缺陷而出现故障,或者黑客利用恶意软件控制汽车,事情将会变得雪上加霜。

因此,我们必须积极主动,应对软件安全问题,确保内置到汽车的软件的安全性。组建软件安全小组,对企业的软件安全能力进行基准测试,评比企业创建的软件或者从其他供应商购买的软件的优势和弱势,制定明确的蓝图,以加强软件的安全性,从而推动业务并保护客户的利益。