汽车软件问题,例如 Jeep 被黑 和 大众汽车排放作弊 等事件今年成为了头条新闻,这意味着公众对汽车软件的思考达到了前所未有的程度。一些专家 认为,强制要求此类软件开源是解决问题的方法。虽然公开审查软件肯定有好处,但仅凭代码可见性并不能保证安全。正如 Sam Liles 在最近的电子邮件中向我解释的那样,开源代码并没有阻止 ShellShock 漏洞。
Liles 博士曾是普渡大学网络取证学教授,他和他的学生研究了汽车和其他物联网设备的安全性。他说,纵深防御已死,这意味着我们不能再依赖多层安全保护。例如,我们的手机和其他个人设备了解关于我们的一切:我们去哪里,与谁交流,甚至 我们何时发生性行为。这些设备以及它们包含的所有信息都存在于我们的个人和工作网络中。一台被入侵的手机可以访问大量信息或将威胁传播到其他连接的设备。
这些设备的大量涌现本身就构成了一个挑战。“谁来处理这种级别的事件响应?” Liles 问道。 就此而言,谁来审计所有这些代码?埃里克·S·雷蒙德在《大教堂与集市》中写道:“只要有足够的眼球,所有的漏洞都是肤浅的”,他称之为林纳斯定律,但我们不能仅仅依靠足够的眼球。如果像 OpenSSL 这样重要且成熟的项目都缺乏资源来预防像 Heartbleed 这样的漏洞,那么谁来检查数百万行运行我们每天视为理所当然的设备的软件呢?
尽管 2011 年 NASA 和 NHTSA 对涉及丰田汽车的一系列意外加速事件的调查发现“没有证据表明电子设备故障导致了严重的意外加速”,但其他研究人员已经确定了通过软件在汽车中产生加速的方法。“如果电源管理 ECU 被入侵,”IOActive 报告写道,“可以快速更改加速以使汽车运行极其不安全。” 显然,软件是现代汽车安全的关键组成部分。
然而,像 Liles 小组所做的研究仍然相对罕见。仅仅分析软件通常就很困难。“取证几乎从未内置到系统中,并且通常为了法律效力需要进行逆向工程,”Liles 说。此外,物联网带来的威胁变化需要研究方式发生根本转变。“许多‘旧的’信息保障和安全规则、原则,有时被称为科学,都是基于神话、半真半假的事实和过时的技术概念。”
那么开源在其中扮演什么角色呢?无论源代码是否开源,意外的错误(有时很严重)都将继续存在。OpenSSL、ShellShock 和许多其他开源软件中的高调漏洞告诉我们情况就是如此。有意的恶意行为在开放环境中会变得风险更大,但开放性只有在我们有某种方法来验证所提供的源代码是否是实际运行的代码时才会有所帮助。随着汽车变得开放系统,连接到我们的手机和移动互联网服务,这一点变得越来越重要。
11 条评论