开源的代码就真的绝对安全?

简介:

Jeep 黑客和大众汽车排放丑闻这样的汽车软件问题成为了今年的头条,表明公众开始重视之前从未考虑过的汽车软件安全问题了。一些专家认为强制要求某些软件开源是解决问题的一个好办法。尽管如此可以让软件被公众监督,但开放代码这个事情本身却不能给你带来保障。就像 Sam Liles 最近发给我的邮件所说的一样,开源并不能够阻止破壳漏洞ShellShock的出现 。

Liles 博士曾是普渡大学网络取证专业的教授。在那时,他和他的学生研究汽车以及其他物联网设备的网络安全问题。他说,多层防御已经接近死亡,换言之我们不能再依赖于多弄几层的安全保护了。我们的手机和其他个人设备可能泄露我们正在做的事情,例如:我们去了哪儿,我们正在和谁交流,或其他更加隐私的活动等。这些设备和它们所包含的信息,存在于我们的私人和工作网络中。显然一个被入侵的手机可能被利用,入侵者可以访问其发现的所有信息,甚至把病毒传播给与它相连接的所有电子设备。

单就这些设备的数量本身就是一个巨大挑战。Liles 提出一些问题:“谁来做这个级别的事件响应?”更重要的是,谁来审核所有的代码? Eric S. Raymond 在《大教堂与集市》中写道,“只要有足够多的眼睛,所有的问题都将不是问题,” 此称之为林纳斯定律。但我们不能仅仅只依赖于足够多的眼睛来发现问题。假 如像 OpenSSL 这样重大的项目都会由于缺少资金而导致 Heartbleed 这类漏洞的话,那么谁来检查这些我们每天都用到的数以百万行代码的软件呢?

开源的代码就真的绝对安全?

虽然 2011 年美国航空航天局和国家公路交通安全管理局做的关于丰田汽车意外加速事件的调查表明:“没有证据证明电子故障是导致大量意外加速的原因”,但是其他研究人员已经确定汽车可以通过软件来加速。IOActive 报告中写道:“如果电源管理 ECU 被破坏,我们将能够很容易的改变速度,这个时候汽车是非常不安全”。显然,软件已经是现代汽车安全的重要组成部分之一。

然而,与 Liles 团队做类似研究的仍然很少。单纯分析软件是非常困难的。Liles 认为:“计算机取证模块几乎很少被内置到系统中,但是为了使证据具有法律效力,往往需要借助逆向工程。”此外,物联网设备所带来的威胁需要从研究方式上进 行根本解决。解决掉一些旧的信息保障,安全体系学说,基于神学、半真理性的,过时的技术理论等。

那么,到底要不要将开源思想融入进去呢?不管代码是否开源,一些意外的错误仍然存在。心脏滴血(Heartbleed) , 破壳漏洞(ShellShock)等 漏洞的存在确实证实了许多开源软件同样存在一定的漏洞。有些人为的错误在开源代码中有着更加巨大的风险。开源在某种程度只是给我们提供了一种监管方式,我 们可以方便的查看、检验源代码实际的运作情况。当汽车成为开放的系统并与我们的电话,互联网相连之后,这其中的安全问题也变得愈加突出。


来源:51CTO

相关文章
|
2月前
|
C++
红警源代码居然开源了....
红警源代码居然开源了....
|
7月前
|
开发框架 前端开发 Java
GitHub首次开源标星20k+项目:Guns-现代化主流Java应用开发框架
Guns是一个现代化的Java应用开发框架,基于主流技术Spring Boot2 + Vue3,Guns的核心理念是提高开发人员开发效率,降低企业信息化系统的开发成本
|
移动开发 前端开发 JavaScript
有哪些代码开源平台值得推荐?
开源是程序员最高的浪漫
|
7月前
|
传感器 算法 安全
开源Marlin2.x源代码架构学习笔记
开源Marlin2.x源代码架构学习笔记
357 0
|
12月前
为什么要开源核心代码?(1)
为什么要开源核心代码?
|
12月前
为什么要开源核心代码?(2)
为什么要开源核心代码?
|
JavaScript 前端开发
为方便大家使用,汇总一下VueAdminWork免费开源系列框架各版本
为方便大家使用,汇总一下VueAdminWork免费开源系列框架各版本
为方便大家使用,汇总一下VueAdminWork免费开源系列框架各版本
|
Java 编译器 Maven
谷歌开源项目ProtoBuf一探(基础环境配置)
谷歌开源项目ProtoBuf一探(基础环境配置)
131 0
谷歌开源项目ProtoBuf一探(基础环境配置)
|
TensorFlow 算法框架/工具 图计算
如何实现一个图化框架?代码已开源!
大家好,我是不会写代码的纯序员——Chunel Feng[3]。俗话说,人生如码,码如人生。人生中,有些事情是可以同时进行的,有些事情又必须是前后依次进行的;有些事情是可以刚开始就做的,有些事情又必须等待某个时机成熟了才可以开始。
281 0
如何实现一个图化框架?代码已开源!
|
移动开发 机器学习/深度学习 C语言
非常好的开源C项目tinyhttpd(500行代码)
编译命令 gcc -W -Wall -lpthread -o httpd httpd.c 源码 #include #include #include #include #include #include #inc...
1330 0