中文

用于缩减攻击面的即时代码激活

密码学与安全 2021-10-20 v1

摘要

现代代码重用攻击充分利用了软件的膨胀。攻击者在原本良性的代码中拼凑简短的指令序列以执行恶意操作。消除这些可重用的代码片段(称为 gadget)已成为缩减攻击面的首要关注点之一。其目的是打破这些 gadget 链,从而使此类代码重用攻击变得不可能或大幅减少。先前关于缩减攻击面的工作通常试图通过裁剪应用程序(例如通过用户指定的输入、配置或功能),或通过专注于第三方库,以在对应用程序最小干扰的情况下实现高 gadget 缩减率。在本工作中,我们提出了一种名为 OCA 的通用、全程序攻击面缩减技术,该技术显著减少了 gadget 且仅有轻微的性能下降。OCA 无需用户输入并保留所有功能。OCA 识别特定的程序点,并通过分析确定在运行时要启用/禁用的关键函数集。因此,运行时系统在执行期间控制已启用函数的集合,从而显著减少了攻击者可使用的活动 gadget 集合,进而大幅削减活动 gadget 链的集合。在 SPEC CPU 2017 上,我们的框架实现了 73.2% 的 gadget 总缩减率,平均减速仅为 4%。在 10 个 GNU coreutils 应用程序上,它实现了 87.2% 的缩减率。在 nginx 服务器上,它实现了 80.3% 的缩减率,减速为 2%。我们还提供了跨所有应用程序的 gadget 链破坏研究,并表明我们的框架在所有情况下都破坏了生成 shell 的链。

关键词

引用

@article{arxiv.2110.09557,
  title  = {On-the-fly Code Activation for Attack Surface Reduction},
  author = {Chris Porter and Sharjeel Khan and Santosh Pande},
  journal= {arXiv preprint arXiv:2110.09557},
  year   = {2021}
}