Skip to main content
QUICK REVIEW

[论文解读] Algorithmic Diversity for Software Security

Michael Stewart|arXiv (Cornell University)|Dec 13, 2013
Security and Verification in Computing参考文献 5被引用 3
一句话总结

本文提出一种确定性的静态编译时算法,用于软件安全中的算法多样性,通过基于模式的空操作(NOP)插入生成多样且安全的可执行文件变体。该方法实现了高达15,010的熵值,性能开销仅4%,内存膨胀极低,优于随机或仅填充的方法,同时实现了安全、性能与资源使用之间的可调制权衡。

ABSTRACT

Software diversity protects against a modern-day exploits such as code-reuse attacks. When an attacker designs a code-reuse attack on an example executable, it relies on replicating the target environment. With software diversity, the attacker cannot reliably replicate their target. This is a security benefit which can be applied to massive-scale software distribution. When applied to large-scale communities, an invested attacker may perform analysis of samples to improve the chances of a successful attack (M. Franz). We present a general NOP-insertion algorithm which can be expanded and customized for security, performance, or other costs. We demonstrate an improvement in security so that a code-reuse attack based on any one variant has minimal chances of success on another and analyse the costs of this method. Alternately, the variants may be customized to meet performance or memory overhead constraints. Deterministic diversification allows for the flexibility to balance these needs in a way that doesn't exist in a random online method.

研究动机与目标

  • 为解决大规模软件分发中在线随机多样化方法的局限性,提出一种确定性的静态编译时方法。
  • 降低攻击者在不同软件变体中可靠预测小工具(gadget)位置的能力。
  • 在多样化软件社区中实现安全、性能与内存开销之间的可调制权衡。
  • 使用反映攻击者不确定性的熵度量来评估多样性,从而降低成功实施代码重用攻击的概率。
  • 证明确定性的基于模式的NOP插入在多样性与效率方面优于随机或仅填充的方法。

提出的方法

  • 在编译时应用确定性多样化算法,预先生成一组固定的多样化变体,再进行分发。
  • 该方法采用基于模式的NOP插入——以结构化、非均匀的模式插入NOP指令——以提高熵值并减少不同变体之间的小工具重叠。
  • 将多样化与分发分离,确保在运行时条件无关的情况下,能够一致且可重复地生成变体。
  • 熵值作为攻击者不确定性的度量,其中P(c)表示在另一变体中相同位置存在功能等价小工具的概率。
  • 通过小工具重叠、文件大小和性能开销等指标,对多种变换类型(如NOP05、NOP50、NOP100)下的变体进行比较。
  • 在标准化基准测试下,对50个经过多样化的SQLite 3.6.9二进制文件测量了性能和文件大小。

实验结果

研究问题

  • RQ1确定性的静态编译时多样化是否能优于随机的在线多样化,在生成安全软件变体方面表现更优?
  • RQ2与仅填充或随机插入相比,基于模式的NOP插入在多大程度上提升了熵值并减少了小工具重叠?
  • RQ3在静态编译多样化软件中,性能开销和内存成本如何随多样化水平的提高而变化?
  • RQ4该方法是否可调优,以在不牺牲多样性的前提下平衡安全性、性能与资源约束?
  • RQ5多样性度量(如熵值)与成功实施代码重用攻击的概率之间存在何种关系?

主要发现

  • 基于模式的NOP插入实现了15,010的熵值,性能开销仅为4%,文件大小增加15%,优于仅填充的方法。
  • 仅填充方法实现了最高的熵值(15,019),性能提升了2%,且文件大小略小于原始版本。
  • 静态编译时NOP100插入导致文件大小增加32.18%,性能开销为6.069%,表明在高插入率下收益递减。
  • 基于模式的方法在50个变体的社区中生成了600个唯一的小工具,性能开销极低且多样性高。
  • 基于噪声的NOP插入导致文件大小增加11.31%,性能成本为8.256%,表明其多样性增益微小但成本高昂。
  • 该方法支持可调多样性:通过减小填充大小或噪声率,可在更低开销下维持高熵值,表明具有优化潜力。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。