写点什么

Linus 怒喷谷歌安全工程师

  • 2017-11-23
  • 本文字数:1282 字

    阅读完需:约 4 分钟

上周五,Linux 之父 Linus Torvalds 在内核邮件列表上用很犀利的言辞抨击了 Google Pixel 安全团队的开发者 Kees Cook,引起了大家广泛地讨论。

事情的起因在于 Google Pixel 安全团队的开发者 Kees Cook 向 Linus 递交了加固 usercopy 的 pull request,但是 Linus Torvalds 认为这种请求是极其愚蠢的,因为他认为此类的加固触及到了 Linux 的核心,会导致内核出现混乱。而且他认为安全人员的很多行为都是让人难以接受的,解决安全问题的核心在于调试和修复 bug,而不是应该像安全人员那样靠杀死机器或终止运行来解决问题。

对此,Rober Graham 对 Linus torvalds 的言论表示赞同,他认为我们应该关注邮件的中心思想而不是激烈的言辞,他表示 Linus Torvalds 在邮件中要表达的意思有两点:

  • 对内核进行大的改动应该在小的迭代步骤中进行,而且每一次都应该彻底调试;
  • 次要的安全问题不是重大的紧急情况,他们不允许绕过的规则比 bug 或功能多。

去年曾经有一些安全固化的代码被添加到内核中,以防止一类缓冲区溢出 / 越界的问题,此代码没有解决任何特定 0day 的漏洞,但它能预防一类未来的潜在漏洞,这个代码可以说是有 bug 的,但是不能说它是罪恶的,因为所有的代码都会有 bug。

在 Linus Torvalds 看来,当检测到溢出 / 越界访问时,代码将终止用户模式进程或内核,那么可以说这个代码罪恶的。Linus 认为它应只产生警告,让有问题的代码继续运行。但杀死这些东西将会使得 bug 变得更加糟糕,它会导致内核的灾难性故障,如果我们的车上运行着 Linux 的 多个副本,那么这种灾难将会危及我们的生命,而警告虽然会把这些 bug 显示出来,但不会造成灾难性的后果。在经过仅仅一年之后,当 bug 得到修复时,代码的默认行为会被改变并消除错误的代码,从而防止 bug 被利用。

简而言之,在内核中进行大的改变应该在小而可管理的步骤中进行,固化代码在 Linux 的 25 年历史中都没有出现过,所以在非紧急的情况下,没必要立即进行,更不用说绕过 Linus 提出的开发流程了。

再者,大多数的安全人员不是开发人员,他们实际上并不知道很多事情是如何运行的,边界检查被他们定义为一种用来防止缓冲区溢出的安全功能,但实际上它是一种调试功能,开发人员都知道知道这一点,但是安全“专家”往往不知道,而做出这些内核变化的往往是不懂这一点的安全人员,他们没有意识到内核的变化会在现有的代码产生大量的 bug,而且杀死错误代码也是极其不恰当的行为。

由此可见,虽然 Linus 的语气有点不友善,但是他的说法是合理的,他是一个讲道理的人,他并没有试图阻止对内核的改变,也并没有阻止在安全上的提升,他只是想告诉人们,对内核进行大的改动需要用传统的方式,而不是采取一刀切的方法,与功能和 bug 相比,安全的地位并没有比他们高。

参考链接


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-11-23 18:0013870
用户头像

发布了 83 篇内容, 共 48.1 次阅读, 收获喜欢 187 次。

关注

评论

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

大文件传输软件| 生命科学中的关键因素

镭速

大文件传输快速

HTML5 Canvas 和 SVG哪个简单好用

2D3D前端可视化开发

html5 SVG 数据可视化 canvas 前端设计

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

大瞿科技

Zebec Protocol ,不止于 Web3 世界的 “Paypal”

股市老人

适合自己企业的erp系统怎么选?这8条关键因素缺一不可!

优秀

ERP系统

为什么要选择文件传输软件?有哪些最佳高速文件传输软件?

镭速

文件传输软件

那些 MySQL 8.0 中的隐藏特性

爱可生开源社区

MySQL 8.0

NFTScan | 07.31~08.06 NFT 市场热点汇总

NFT Research

NFT\

拓展知识 启望未来 | 记内蒙古移动《AntDB ACA初级认证培训》活动

亚信AntDB数据库

数据库 AntDB AntDB数据库

中国电信与国家信息中心共同发布国信政务云

天翼云开发者社区

云计算 政务云

基于PINN的传播动力学研究

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

JMeter源码解析之结果收集器

优测云服务平台

Jmeter 性能测试 压力测试 #性能测试

AI融入管理软件,是否会是下一个“ERP时代”的前奏?

B Impact

10. 数据类型 - 元组详解

茶桁

Python 数据类型 tuple

EndNote 21 for Mac(文献管理软件) v21.0.1激活版

mac

苹果mac Windows软件 EndNoter 参考文献管理软件

吴声年度演讲,关于Notion 的“模版”和 CLG |highlight

B Impact

斩获可信云最佳实践,天翼云存储资源盘活系统助力“一云多芯”!

天翼云开发者社区

云计算 存储

erp系统都有哪几家,如何选择适合自己企业的erp系统?

优秀

ERP系统

Llama2 评测大公开!知识库场景下能否赶超 ChatGPT?

Zilliz

Zilliz Towhee ChatGPT llama llama2

k8s安装prometheus

tiandizhiguai

k8s Promethues

企业选择大文件传输软件的真正原因

镭速

大文件传输软件

AREX 如何支持 Dubbo 自定义私有协议的录制回放

AREX 中文社区

dubbo 自动化测试 流量回放 流量录制

拨开迷雾:利用全链路消息跟踪揭示系统奥秘

鲸品堂

数据库 分布式 全链路 企业号 8 月 PK 榜

中小企业都用哪些工具进行项目管理?

爱吃小舅的鱼

项目管理 PingCode 项目管理软件

使用appuploader工具流程(Windows版本)

用低代码开发平台构建高效敏捷工作流

力软低代码开发平台

三言两语说透webpack对vue的编译

互联网工科生

源码 Vue webpack

使用 RKE 方式搭建 K8s 集群并部署 NebulaGraph

NebulaGraph

k8s

Linus怒喷谷歌安全工程师_Linux_覃云_InfoQ精选文章