摘要

软件多样性能够有效提升系统弹性和安全性,广泛应用于软件分发、操作系统等场景,但现有软件多样性评估方法普遍基于常规代码特征进行度量且较为单一,难以准确反映软件多样性带来的安全增益。针对此问题,以ROP(return-oriented programming)攻击视角出发,通过分析软件多样性对代码重用攻击过程中各阶段的影响,提出了一种综合gadget质量、实用性和分布指标的软件多样性评估方法,通过度量软件多样性对构建gadget攻击链的难度、攻击者潜在可获得的计算能力和攻击者在不同变体中搜索gadget成本的影响程度对其进行安全性评估。利用不同粒度的多样化技术进行实验,结果表明,所提方法能够准确全面地反映软件多样性带来的安全增益,细粒度的多样化技术能使软件中大量的gadget重定位/修改/移除,增加攻击软件变体的成本,但部分多样化技术会导致不同程度的软件膨胀等问题。最后,依据不同度量指标下得到的结果对现有软件多样化技术的优势与不足进行分析和讨论。

  • 单位
    信息工程大学