<img height="1" width="1" style="display:none" src="https://www.脸书.com/tr?id=805165132971224&amp;ev=PageView&amp;noscript=1">
中欧KOK体育
KOK体育 中欧体育
在线访问

开源团队对抗缓冲区溢出

近30年来,内存漏洞一直没有被根除,de Raadt说,任何声称开源组织已经这样做了的说法都需要测试。

有些与会者已经开始怀疑这些更改是否会消除缓冲区溢出。

瑞士通信供应商柯尔特电信(Colt Telecom)的高级安全经理尼古拉斯·菲施巴赫(Nicolas Fischbach)说,“这只是给安全增加了一层”。“这不会有太大的区别,因为在App中总会发现bug。”

当攻击者发送程序请求过多信息时,溢出攻击通常会起作用。这些数据通常包括两个组件:一个是使应用程序崩溃的组件,另一个是指向攻击者想要运行的程序的程序或内存地址。当应用程序由于第一个组件而崩溃时,操作系统将实行第二个组件。

OpenBSD团队使用三种策略强化了操作系统以应对这类攻击。

这组随机分布在内存中的“堆栈”——一种保存应用程序及其数据的结构——驻留的位置,因此设计用来利用缓冲区溢出的代码必须根据系统的内存布局进行调整。

“缓冲区溢出利用了某种内存布局,”de Raadt说。“这有点浪费内存,开销很小,但却让事情变得有点困难。大家正试图让(代码)破解者多工作一点。”

此外,该组重新调整了关键地址存储在堆栈上的方式,从而使缓冲区溢出导致程序运行变得更加困难。该团队在内存结构中放置了一个小标签,称为金丝雀,以检测地址是否被修改,这是黑客们用来获取合法程序运行恶意代码的常用方法。

最后,该小组找到了一种破解BSD文件系统的方法,并将主内存划分为可写部分和可实行部分。存储在内存中的程序和数据片段(称为页面)将被放置在这两个区域之一。

“大家要确保没有页面是同时可实行或可写的,”他说。“大家的目标是,没有黑客能够编写代码,然后实行它。”

OpenBSD组的问题是,虽然64位处理器有这样的内存保护,但最流行的32位处理器没有。因此,该小组不得不解决这个问题,并将计算机的内存分成可写区域和可实行区域。

“你可以在沙地上划一条线——在这条线之前你可以实行,在这条线之上你不能实行,”de Raadt说。

他说,虽然其他安全功能将在5月1日发布,但32位处理器(如英特尔x86芯片和PowerPC芯片)的受保护内存页结构还需要6个月才能准备好。

这项研究是由美国国防高级研究计划局(DARPA)向OpenBSD项目拨款230万美金资助的,但最新的变化超出了最初的拨款要求,de Raadt说。

“这真的不是DARPA拨款的一部分,”他说。“但这是因为美国国防部高级研究计划局(DARPA)的拨款,因为当你扔一堆……把男人关进房间,把他们灌醉,这就是你得到的结果。”De Raadt谨慎地指出,该集团为自己的啤酒买单。

KOK体育
中欧体育801777223
中欧KOK体育版权所有