我注意到长期支持我的操作系统的存储库尚未编译馅饼, 或者立即绑定(例如)。
在 serverfault 上,有人认为,从安全角度来说,重新编译使用 GCC 中的安全意识标志和功能来保护这些选定的软件?或者更重要的是保持软件尽可能保持最新来自上游存储库,相信他们的编译软件包时做出的决定?
当然,“两者”可能是首选答案。但是现实地,而我仍然没有尝试重新编译关键任务应用程序的唯一原因是,我随后必须将定制的 DEB 包置于保留状态(在包管理器内),以便自定义构建不会在我不知情的情况下被未来的包更新覆盖。
这样,我必须评估更新的重要性或安全性。如果需要,从源代码重建,打包,然后安装所述更新 -
简而言之,自定义编译的好处是否大于按需安全补丁的好处?有什么建议么?
附言;软件包维护者通常是否负责在启用某些安全标志的情况下进行编译(例如 PIE)?或者这通常是根据上游存储库(即 Debian/Ubuntu 发行版维护者)的想法完成的?这会影响我的决定吗?
答案1
它是一个发布目标Debian 项目“通过 dpkg-buildflags 更新尽可能多的软件包以使用安全强化构建标志”。他们的 wiki 中没有说明何时完成这项任务。因此,回答您的一个问题,这是在发行版级别做出的决定,维护人员需要实施。就 Debian 而言,如您所知,维护人员是志愿者。
如果这纯粹是一个安全问题,您不妨联系这些软件包的维护者,或向他们填写错误报告,最好提供补丁。
如果这是一项商业决策,您需要考虑重新编译、打包和分发这些软件所需的时间,直到它们在您的发行版中得到修复,或者使用已经实施这些安全措施的其他发行版。