信息安全人士提议,关闭不可靠的进程来确保Linux的安全性,Linux之父Linus Torvalds因此大光其火。

在探讨提议将哪些功能特性添加到版本4.15的Linux内核中时,Linux之父莱纳斯•托瓦尔兹(Linus Torvalds)炮轰了不同的安全方法,言词之激烈让人瞠目结舌。

托瓦尔兹这回炮轰的对象是开放软件爱好者和谷歌Pixel安全团队的成员基斯•库克(Kees Cook),他之前曾讥讽库克是白痴。

库克在发帖请求“务必为v4.15-rc1合并经过加固的用户拷贝(usercopy)变更代码”后,在开源界赢得了这一轮的呼声。

图0:Linux之父开炮,一些“安全人士是TMD的白痴!”

图1:Linux之父开炮,一些“安全人士是TMD的白痴!”

图2:Linux之父开炮,一些“安全人士是TMD的白痴!”

图3:Linux之父开炮,一些“安全人士是TMD的白痴!”

他解释道:“由于为slab缓存区域添加了明确的白名单机制(explicit whitelisting),这显著缩小了可以在用户空间之间来回拷贝,但面临usercopy漏洞的内存区域。这已存在了很长一段时间,没有什么大问题,但是很晚才发现遗忘了几个白名单,所以添加了一种后退模式(fallback mode),只是为了确保我们没有破坏任何东西。我预计一两个版本后会去掉后退模式。”

托瓦尔兹的回复对基斯贡献的代码很有用或经过全面的测试表示了怀疑。因此他说:“这个合并窗口不会是我悠闲地打量这等货色的窗口。”

KVM的维护者保罗•波兹尼(Paolo Bonzini)随后发表了意见,他力挺库克,敦促托瓦尔兹“务必要合并一个子集,甚至是在-rc1之后。”

库克对其代码作了进一步的解释,包括“这就是为什么我引入了后退模式:由于kvm和sctp(ipv6)没有引起注意、直到开发周期的后期才引起注意,我对于它没有得到足够的测试而极不满意。”

托瓦尔兹随后发飙了:

图4:Linux之父开炮,一些“安全人士是TMD的白痴!”

图5:Linux之父开炮,一些“安全人士是TMD的白痴!”

图6:Linux之父开炮,一些“安全人士是TMD的白痴!”

他开场就说:“老实讲,这是一种完全不能接受的‘安全人士’的行为,我们之前就在用户访问方面经过了加固,现在一来反而比过去让人痛苦得多。”

“安全人士设置了不可思议的新规则,然后一旦违反那些新规则,就致使内核崩溃,这是不可接受的。”

那只能算是托瓦尔兹的热身,接下来才好戏上演:“这纯粹是胡扯。我们没有那些规则已有25年多,突然有人过来说‘哦,每个人都必须这么做;要是你没有这么做,我们就会杀死内核’。”

“你在那个系列的后期才‘引入后退模式’完全表明了这个系列一开始有多么地破烂不堪。”

托瓦尔兹的帖子解释了他对安全的态度,即“安全问题只是bug”,而不是改变内核运行方式的机会。

“关于‘只是bug’的重要部分是,你要明白一点,你后来为加固之类的方面引入的补丁主要是用来调试。”

“我对杀死进程一点也不感兴趣。我感兴趣的唯一进程就是开发进程,我们发现bug,修复bug。”

“只要你将自己的加固工作视作主要是‘让我杀死出现故障的机器/进程’,我就不会接受那些狗屎般的补丁。”

“当我说安全问题‘只是bug’时,一些安全人士就嘲笑我。”

“那些安全人士是TMD的白痴。”

他补充道:“我认为,加固项目需要真正好好打量一番自己”,抛弃“一见就杀死,以后再提问”的心态,而是采用这种做法:

不妨提醒看起来很危险的事情;我们确信我们确实了解了所有正常的情况,然后才可以开始采取更激烈的措施。

一直以来,托瓦尔兹并不怯于用粗鲁的言词来表达自己在内核方面的观点,并且因任由开源社区成为“有毒的工作场所”而受到批评。他对别人的那些抨击不屑一顾,认为他那过激的语言不是针对个人,因为他是在捍卫Linux,而不是批评个人。

这一回,他那过激的语言针对一个团队和库克的安全方法,而不是径直针对库克本人。不过在外人看来,这种言词也够大胆的。

库克倒是不动声色,发帖子称:“我认为,我在帮助将这些防御机制引入到内核时所犯的主要缺点是,一直以为它们在单一开发周期中会得到全面测试,而这个开发周期显然犯了这个错误,这就是为什么我调整了那个系列。”

他最后说:“我想我觉得确实学到了一点东西,因为在你对我咆哮之前我已搞定了这个系列。”

“我会做进一步的调整,为v4.16再试一下。”

余下全文(1/3)
分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注