AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

开源等于安全吗?

  • 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:001649
用户头像

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

关注

评论

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

【数据结构】Java 常用集合类 ArrayDeque

Alex🐒

Java 源码 数据结构

JVM 垃圾回收器 CMS

Alex🐒

JVM 深入理解JVM GC

压测工具如何选择?

elfkingw

JVM 类加载机制

Alex🐒

JVM 深入理解JVM

【数据结构】Java 常用集合类 PriorityQueue

Alex🐒

Java 源码 数据结构

并发必备基础知识汇总

itlemon

并发 基础

Spring Security入门到实践(一)HTTP Basic在Spring Security中的应用原理浅析

itlemon

源码分析 spring security

架构师训练营第7周总结

时来运转

深入Java Web技术内幕(一)浅析Web请求过程

itlemon

Java

程序员面试必备战衣 | T恤衫 - 程序员穿搭

chaozh

GEEK

创世 | 中国古神话

chaozh

神话

深入 Java Web 技术内幕(二)浅析DNS域名解析过程

itlemon

DNS 域名解析

如何挑选编程笔记本 | 数码产品

chaozh

玩转混合加密 | 精美配图

阿宝哥

安全 加密解密 数据加密

JVM 运行时数据区

Alex🐒

JVM 深入理解JVM

神国统治者 | 中国古神话

chaozh

【干货分享】通过命令操作来学习Git

itlemon

git git入门

Flask 中的 Sessions

Leetao

Python flask Web框架

JVM 垃圾回收器 G1

Alex🐒

JVM 深入理解JVM GC

架构师训练营第七周作业-性能测试

sunnywhy

架构师训练营第7周作业

时来运转

【译文】创建 Kubernetes manifest 的初学者指南

FeiLong

Kubernetes

架构师训练营 - 命题作业 第 7 周

铁血杰克

Ubuntu 20.04 上安装和配置 VNC

酱紫的小白兔

JVM 对象内存布局

Alex🐒

JVM 深入理解JVM

记一次bem命名规范使用优化方案

前端有的玩

Vue npm React bem

Java并行程序基础

itlemon

Java 高并发 并行

JVM 垃圾回收机制

Alex🐒

JVM 深入理解JVM

彻底弄懂C++11右值引用 | 技术总结

chaozh

c++

优雅地利用c++编程从1乘到20 | 技术总结

chaozh

c++

女娲造物与补天 | 中国古神话

chaozh

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