分布式异构N变体执行系统DMON:增强软件安全的新方案
1. 引言
在当今的软件安全领域,C和C++程序的内存错误一直是软件漏洞的主要来源。攻击者和防御者之间的军备竞赛从未停止,防御者不断开发复杂的防御机制,而攻击者则不断创造新的攻击手段来绕过这些防御。
目前,攻击者通常依赖对目标环境的深入了解,发起代码复用或面向数据的攻击,以控制目标系统或泄露敏感数据。虽然内存安全技术可以抵御这些威胁,但由于性能和兼容性问题,许多此类技术并未得到广泛应用。因此,防御者往往采用性能影响相对较小的缓解措施,如控制流完整性(CFI)技术、自动化软件多样性技术或两者的结合。然而,这些防御措施都存在已知的弱点。
N - 变体执行(NVX)系统通过放大软件多样性技术的效果,提高了系统的弹性。它并行运行同一程序的多个多样化变体,并监控它们的行为差异。现有的NVX系统在单一主机上执行多样化的程序变体,这限制了变体之间的多样性水平。为了解决这个问题,DMON应运而生。
DMON是一种新颖的分布式NVX系统,它利用不同平台之间自然存在的多样性,提高了对内存漏洞的抵御能力。DMON在不同的物理机器上本地运行每个程序变体,并通过网络在系统调用边界交叉检查这些分布式变体的行为。
1.1 DMON的主要贡献
- 结合ISA和ABI异构性与N - 变体执行 :DMON将一组变体的执行分布在一组异构的物理机器上,是首个将ISA和ABI异构性与N - 变体执行相结合的系统。
- 重新定义系统调用的语义等价性 :提出了平台无关状态规范化(PISC)技术,将不同平