您的位置  > 互联网

防止堆缓冲区溢出的漏洞--最新安全管理法

随着冯·诺依曼架构的出现,缓冲区溢出漏洞开始出现。 1988 年,随着 互联网蠕虫的广泛传播,它们开始声名狼藉。 不幸的是,同样的攻击至今仍在继续。 一方面,攻击者基于程序运行和存储设计上的缺陷,可以通过各种渠道精准攻击目标地址,让其恶意代码肆意运行,破坏计算机系统的安全; 另一方面,对于攻击者的攻击,我们没有有效的方法从根本上阻止它。 到目前为止,防范各种缓冲区溢出攻击的唯一方法是彻底设计、编码和测试所有应用程序。 与其他因素相比,缓冲区溢出是最典型的攻击类型。 对于缓冲区溢出,我们可以将其分为两类,一类是基于堆栈的缓冲区溢出,另一类是基于堆的缓冲区溢出。 虽然基于堆栈的攻击仍然更加频繁和重要,并且取得了一定的进展; 但基于堆的溢出最近引起了更多关注。 本文详细分析了进程的内存组织、堆缓冲区溢出的基本理论以及堆缓冲区溢出的各种类型。 综上所述,堆缓冲区溢出是由于攻击者篡改堆中关键数据或向堆缓冲区注入恶意代码破坏计算机系统而造成的。 针对攻击者的攻击目标——堆元数据(堆管理结构信息),提出了一种新的堆缓冲区溢出预防机制。 基本思想是通过分离堆中的堆元数据和用户数据来防止堆缓冲。 区域溢出,对堆元数据进行特殊存储,使攻击者难以更改,以达到防止堆缓冲区溢出的目的。 实验表明,新的堆缓冲区预防机制可以有效防止堆缓冲区溢出。

展开