开源的代码就真的绝对安全?
Jeep 黑客和大众汽车排放丑闻这样的汽车软件问题成为了今年的头条,表明公众开始重视之前从未考虑过的汽车软件安全问题了。一些专家认为强制要求某些软件开源是解决问题的一个好办法。尽管如此可以让软件被公众监督,但开放代码这个事情本身却不能给你带来保障。就像 Sam Liles 最近发给我的邮件所说的一样,开源并不能够阻止破壳漏洞ShellShock的出现 。
Liles 博士曾是普渡大学网络取证专业的教授。在那时,他和他的学生研究汽车以及其他物联网设备的网络安全问题。他说,多层防御已经接近死亡,换言之我们不能再依赖于多弄几层的安全保护了。我们的手机和其他个人设备可能泄露我们正在做的事情,例如:我们去了哪儿,我们正在和谁交流,或其他更加隐私的活动等。这些设备和它们所包含的信息,存在于我们的私人和工作网络中。显然一个被入侵的手机可能被利用,入侵者可以访问其发现的所有信息,甚至把病毒传播给与它相连接的所有电子设备。
单就这些设备的数量本身就是一个巨大挑战。Liles 提出一些问题:“谁来做这个级别的事件响应?”更重要的是,谁来审核所有的代码? Eric S. Raymond 在《大教堂与集市》中写道,“只要有足够多的眼睛,所有的问题都将不是问题,” 此称之为林纳斯定律。但我们不能仅仅只依赖于足够多的眼睛来发现问题。假 如像 OpenSSL 这样重大的项目都会由于缺少资金而导致 Heartbleed 这类漏洞的话,那么谁来检查这些我们每天都用到的数以百万行代码的软件呢?
开源的代码就真的绝对安全?
虽然 2011 年美国航空航天局和国家公路交通安全管理局做的关于丰田汽车意外加速事件的调查表明:“没有证据证明电子故障是导致大量意外加速的原因”,但是其他研究人员已经确定汽车可以通过软件来加速。IOActive 报告中写道:“如果电源管理 ECU 被破坏,我们将能够很容易的改变速度,这个时候汽车是非常不安全的”。显然,软件已经是现代汽车安全的重要组成部分之一。
然而,与 Liles 团队做类似研究的仍然很少。单纯分析软件是非常困难的。Liles 认为:“计算机取证模块几乎很少被内置到系统中,但是为了使证据具有法律效力,往往需要借助逆向工程。”此外,物联网设备所带来的威胁需要从研究方式上进 行根本解决。解决掉一些旧的信息保障,安全体系学说,基于神学、半真理性的,过时的技术理论等。