下载此文档

网络安全教程 教学课件 ppt 田园 第4章 反入侵技术(I):基于第4章 反入侵技术(I):基于.ppt


文档分类:IT计算机 | 页数:约37页 举报非法文档有奖
1/37
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/37 下载此文档
文档列表 文档介绍
第4章反入侵技术(I)::*HIDS实例:,容易给出一个简单的解决方案:在编译程序的过程中,在每个函数的栈帧中位于“返回地址”项之前插入一个攻击者无法预测,但其值对合法系统本身是已知的特征字,如图4-1(a)所示。超界的输入串要能达到改写“返回地址”项的位置,一定会改变特征字的值(注意合法的特征值对攻击者保密),于是每当函数返回之前只要检查该特征字的值是否改变,就可以判定当前是否发生了栈溢出入侵,如图4-1(b)所示。图4-1StackGuard保护机制以上过程很容易由编译生成的前导代码和清场代码自动完成(参考第3章注释3)。这一解决方案要求改变编译器,这对编译器开发商和GNUC++/C这样的开放源代码编译器是不难做到的,程序运行期间增加的额外代价也微不足道,是一个针对性很强的解决方案。这就是著名的StackGuard栈一致性保护技术。可以将StackGuard的思想扩展到解决单字节溢出入侵,如图4-2所示,方法是使编译器将一个攻击者未知的特征值插入到紧邻“上一栈帧地址”项之前:若输入缓冲区溢出到“上一栈帧地址”项或“返回地址”项则必然改变该特征值。编译器总将输入缓冲区置于最高地址(如图4-2所示中的buffer[]),以避免其他局部变量因溢出而被篡改。这就是著名的ProPilice栈一致性保护技术。图4-2Propilice保护机制还有其他防止栈溢出措施。在正常情况下一个进程的栈是用于暂存函数调用的上下文,如栈帧这类数据,从来不会被用于保存指令代码。操作系统为进程分配任何页面时,每个页面是有严格的存取属性的,这些属性包括可读(PG_READ)、可写(PG_WRITE)、可执行(PG_EXEC),而作为数据页面被分配给栈空间的页面应该具有不可执行这一属性(!PG_EXEC)。因此,一个简单(但需要修改操作系统内核)的解决方案就是使操作系统在为栈空间分配页面时关闭页面的PG_EXEC属性,从而禁止从栈空间执行(病毒)程序代码。一种不必修改操作系统的用户模态机制是在运行时对函数入口进行检查保护,主要保护对象之一就是最常用的标准C函数库。已经开发出了Linux的(用户模态)共享库LibSafe,它针对某些常用的C库函数具体检验该函数当前是否有过长的以至覆盖当前栈帧的“上一栈帧地址”项和“返回地址”项的输入参数。图4-。因此,若在这类API中添加病毒检测代码,在其被调用时先检测某些入侵特征或条件。这就是代码注入检测的基本思想。

网络安全教程 教学课件 ppt 田园 第4章 反入侵技术(I):基于第4章 反入侵技术(I):基于 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数37
  • 收藏数0 收藏
  • 顶次数0
  • 上传人386259182
  • 文件大小266 KB
  • 时间2019-08-20