DEP/SEHOP/ASLR



微软的安全开发生命周期(SDL)已经实施了十年了。这段时间里发生了很大的变化。在过去的十年中,互联网使用人口已经由约3亿5千万增长到超过24亿。现在,开发人员的机会比以往任何时候都要多。Windows 8仍然相对较新,云尚处于采用的早期阶段,而新型的移动设备和平台已经出现了迅猛发展。虽然互联网创造了许多处理业务的全新机会和方法,但是它也为网络犯罪创造了地下温床。安全漏洞所引发的财务问题、知识产权损失、网站篡改和间谍活动已成为现在计算领域所面临的现实。

    许多开发人员他们普遍认识到了安全开发的重要性。尽管如此,有证据表明,大多数组织仍然没有将安全开发采纳为基础业务原则。最近微软对全球2200多名专业人员和490名开发人员进行了调查。调查发现,只有37%的专业人员声称他们的组织在提供产品和服务时考虑安全问题。此外,61%的开发人员没有利用已存在的缓解技术,如ASLR、SEHOP和DEP等。多年来,这些缓解技术一直是免费向业内提供的,并且经常作为现有开发实践的简单补充―但是现在仍然只有少数开发人员在利用这些技术。所有使用互联网的人都应该对此感到担忧。


DEP

        溢出主要指缓冲区溢出,就是利用系统(应用软件)漏洞从只有Windows和其他程序可以使用的内存位置执行恶意代码从而达到控制系统的目的。

        缓冲区溢出攻击经常在其它程序的内存缓冲区写入可执行的恶意代码,然后诱骗程序执行恶意代码。使用DEP的目的是阻止恶意插入代码的执行。

        运行机制:Windows利用DEP标记只包含数据的内存位置为非可执行(NX),当应用程序试图从标记为NX的内存位置执行代码时,Windows的DEP逻辑将阻止应用程序这样做,从而达到保护系统防止溢出。

       微软DEP实现采用了两种方式:硬件强制DEP和软件强制DEP。

       硬件强制DEP,这需要处理器的支持,不过现在大多数处理器是支持DEP的。软件强制DEP,这是由Windows操作系统在系统内存中为保存的数据对象自动添加的一组特殊指针提供。

SEHOP

        SEHOP的全称是Structured Exception Handler Overwrite Protection(结构化异常处理覆盖保护),SEH攻击是指通过栈溢出或者其他漏洞,使用精心构造的数据覆盖结构化异常处理链表上面的某个节点或者多个节点,从而控制EIP(控制程序执行流程)。而SEHOP则是是微软针对这种攻击提出的一种安全防护方案。

        微软最开始提供这个功能是在09年。它是以一种SEH扩展的方式提供的,通过对程序中使用的SEH结构进行一些安全检测,来判断应用程序是否受到了SEH攻击。SEHOP的核心是检测程序栈中的所有SEH结构链表,特别是最后一个SEH结构,它拥有一个特殊的异常处理函数指针,指向的是一个位于NTDLL中的函数。

        异常处理时,由系统接管分发异常处理,因此上面描述的检测方案完全可以由系统独立来完成,正因为SEH的这种与应用程序的无关性,因此应用程序不用做任何改变,你只需要确认你的系统开启了SEHOP即可。

ASLR

       ASLR(Address space layout randomization)地址空间布局随机化是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值