阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

开源等于安全吗?

  • 2015-11-02
  • 本文字数:1356 字

    阅读完需:约 4 分钟

今年,汽车圈的那些事占据着媒体头条,比如黑客入侵吉普车、大众汽车在排放测试上作弊, 这说明公众开始思索汽车的软件问题,这是前所未有的。有些专家可能会争辩说,强制这些软件开源,是一个解决办法。虽然将这些软件置于公众的审视之下是有明显好处的,但开放代码这种行为本身,并不能给你带来保障。就像Sam Liles 在一封电子邮件中给我解释的那样,开源并没有阻止“破壳(ShellShock)”漏洞的发生。

Liles 教授以前是普渡大学数字取证领域的教授,在那儿工作时,他和他的学生研究过汽车和其他物联网设备的安全。他说,多重防御的思想已经落伍,我们无法再靠多设几层安全屏障来保护自己。举个例子,我们的手机和其他个人设备,知道我们的一切:我们去过哪里,和谁联系过,甚至何时做爱。这些设备,以及存在其中的所有信息,已经渗透到我们生活和工作的方方面面。一部被入侵的手机,可以挖出各种隐藏的信息,或者把威胁传播给与之相连的其他设备。

这些设备的存量本身就是个威胁。“如果发生了安全事件,谁应为此负责?”Liles 问。就我们这个问题来说,谁来审查那些代码?在《大教堂和市集》中,Eric S. Raymond 写道,“只要给予足够的关注,所有的bug 都会显形”,他称之为 Linus 定律,但我们不能指望什么软件都有足够的关注度。像 OpenSSL 这样成名已久的重要项目都因为缺乏资金而无法预防像“心脏滴血(Heartbleed)”这样的 Bug,那运行在你设备中的你都已习以为常的成千上万行代码,又指望谁去审查呢?

2011 年,美国国家航空航天局和美国高速公路安全管理局针对丰田汽车意外加速事件进行了调查,结果显示并没有证据表明电子设备的失控能导致大量意外加速,但尽管如此,其他研究人员还是找到了能让汽车产生加速的软件方法。“如果电源管理单元被攻破,” IOActive 的报告指出,"加速度就会迅速变化,汽车将处于极度危险中。"毫无疑问,软件是现代汽车安全的一个至关重要的组件。

然而,像Liles 小组所做的那类研究还是不多见的。单纯分析软件是一件困难的事。“系统中几乎从来不考虑集成一个用于搜集取证的模块,为了使证据有法律效力,必须要使用逆向工程的手段来取证。”Liles 说。此外,物联网给汽车带来的威胁在不断变化,所以我们的研究方向也要随之改变。“很多陈旧的信息保护手段,安全规则和教条,有时还称之为科学的东西,都是基于谬见、伪事实和过时的技术概念而来的。”

所以,开源软件要如何适应这种形势?无论是否开源,偶发的bug 总是会出现,有时还很严重。“心脏滴血(Heartbleed)”、“破壳(ShellShock)”,以及开源软件中其他备受瞩目的漏洞都在告诉我们,这就是现实。开源更容易使软件被恶意利用,而只有在我们能验证软件的行为和代码的意图一致时,其开放性才能带来好处。这一点将愈发重要,因为汽车正在变成和我们的手机和移动互联网服务相连的开放系统。

本文由作者Ben Cotton 发表在Opensource.com 上: Open source code isn’t a warranty 。经授权,在 InfoQ 中文站翻译共享。本文在 Creative Commons BY-SA 4.0 许可证下发布。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-11-02 18:001553
用户头像

发布了 77 篇内容, 共 35.3 次阅读, 收获喜欢 25 次。

关注

评论

发布
暂无评论
发现更多内容

小程序在产业互联网中的作用

Geek_99967b

小程序 小程序容器

devkit入门

乌龟哥哥

7月月更

图解网络:TCP三次握手背后的原理,为啥两次握手不可以?

wljslmz

TCP 三次握手 网络协议 网络技术 7月月更

在QWidget上实现窗口阻塞

小肉球

qt 7月月更

【LeetCode】装满石头的背包的最大数量Java题解

Albert

LeetCode 7月月更

Android 无限循环ViewPager滑动空白Bug及报错跳坑

芝麻粒儿

android 手机 7月月更

面试突击63:MySQL 中如何去重?

王磊

Java MySQL 面试

CSS 基于文字的图片马赛克你见过吗

南城FE

CSS 前端 马赛克 7月月更

CRMEB 商城系统如何助力营销?

CRMEB

详细页返回列表保留原来滚动条所在位置

小恺

7月月更

小程序容器可以发挥的价值

Geek_99967b

小程序 小程序容器

Promise

Jason199

Promise 7月月更

synchronized 和 ReentrantLock

zarmnosaj

7月月更

看抖音直播Beyond演唱会有感

Empty

使用标签模板解决用户恶意输入的问题

猪痞恶霸

前端 js ES6 7月月更

LeetCode-155. 最小栈(java)

bug菌

Leet Code 7月月更

基本磁盘与动态磁盘 RAID磁盘冗余阵列区分

Albert Edison

7月月更

深入理解计算机系统(CSAPP)第1章计算机系统漫游

小明Java问道之路

计算机基础 csapp 计算机结构 7月月更 解读

解构运算符的理解与运用

是乃德也是Ned

7月月更

SAP UI5 框架的 manifest.json

Jerry Wang

SAP Fiori SAP UI5 ui5 7月月更

猿桌派第三季开播在即,打开出海浪潮下的开发者新视野

融云 RongCloud

分布式不来点网关都说不过去

zxhtom

7月月更

面试突击62:group by 有哪些注意事项?

王磊

Java MySQL 面试

前端知识链条中少不了的一环--Ajax

是乃德也是Ned

ajax 前端 7月月更

C++|TCP 服务端中接收文件

中国好公民st

c++ TCP通信 7月月更

中移动、蚂蚁、顺丰、兴盛优选技术专家,带你了解架构稳定性保障

博文视点Broadview

node の SQLite

空城机

sqlite Node 7月月更

Fedora/REHL 安装 semanage

HoneyMoose

基于STM32+华为云IOT设计的智能路灯

DS小龙哥

7月月更

Python|数据结构——字典和集合

AXYZdong

Python 7月月更

python 函数二三事

AIWeker

Python python小知识 7月月更

开源等于安全吗?_安全_曹知渊_InfoQ精选文章