Linux 之父 Linus Torvalds 在内核邮件列表上详细阐述了他对加固内核的看法,这一次他没有用粗口,而是相当的平易近人。
Torvalds 说他同意在内核中整合多层次安全方案将单个 bug 被利用的风险最小化的观点,但安全从业者与用户和开发者在对待 bug 和安全上有着截然不同的立场。站在安全的角度,当你发现一个非法访问,你减轻了风险,你就做出了出色的工作,你的加固是成功的,而你的工作也就完成了,你会说这不再是安全问题了,然后你会认为导致安全问题的 bug 不再是你的问题,因为非法访问被阻止了。
但站在开发者的角度,事情根本就没完,开发者认为非法访问是一种症状,需要报告,调试,识别 bug 和修复。从开发者的角度来说,加固的终点其实是开发者的起点。从用户的角度看,这又是另一种情况。几乎每次曝出的安全问题,对他们来说并不是安全攻击,只是一个潜在的 bug 被暴露而已。从安全角度看,加固补丁是将问题从“危险”转为“良性”。但加固常常会带来其它问题,本来他们并没有真的碰到问题,但加固却给他们造成了真正的问题,如可能导致工作流中断。加固对三个不同的人群有着不同的意义。
内核开发的头号原则是不要给用户添堵,因为没有用户,你的程序是没有意义的,你几十年的开发工作是没有意义的。最终安全也变得毫无意义。Torvalds 反复强调,安全人员不要伤害用户和开发者,发现安全问题首先应该报告。