软件包加固渐近线
归档于:博客、Debian、安全、Ubuntu、Ubuntu服务器 — kees @ 下午3:35
很久以前,我建立了工具来生成图表,展示Ubuntu软件包中各种加固功能的采用情况。在2006年堆栈保护开始进入软件包存档时,这些图表非常有趣。类似地,在2008年和2009年,FORTIFY_SOURCE和只读重定位也逐步进入存档。虽然花了些时间才真正站稳脚跟,但最终在2016年至2018年间,默认启用PIE开始起飞:
大约在2012年,当Debian开始认真为其存档启用加固功能时,我意识到这将是一条漫长的道路。我为Ubuntu添加了上述“20年视图”,并开始类似地绘制Debian软件包中的加固功能(这里的PIE波动是工具故障,IIRC):
今天,我意识到我的Ubuntu工具在一月份就坏了,但没有人注意到,包括我自己。真的,为什么有人会注意到呢?“近期”(每周、每月)的图表多年来基本上都是平的:
从长期来看,这些测量结果呈现出明显的渐近线外观,图表现在可能只对历史曲线有价值。但随后我想,接下来是什么?还有什么新的编译器功能采用可以衡量?我认为仍然有一些不错的候选…
比如启用-fstack-clash-protection
(仅在GCC中,Clang尚未实现)。
或者认真对待并使用前向边缘控制流完整性?(Clang有-fsanitize=cfi
用于基于函数原型的通用执行,而GCC有更有限的-fvtable-verify
用于C++对象。)
后向边缘CFI在哪里?(每个人都在等待CET吗?)
有人看到有意义的、需要采用跟踪的东西吗?
© 2019, Kees Cook。本作品采用知识共享署名-相同方式共享4.0国际许可协议进行许可。
评论 (1)
1条评论
非常酷的图表!仅仅知道有些编译器标志功能可以启用以提高质量和性能,就可能有助于推动这些功能的更多采用。
评论者:Chris Morgan — 2019年7月4日 @ 下午3:39