zoukankan      html  css  js  c++  java
  • 基于可执行代码的缓冲区溢出检测模型

    https://baike.baidu.com/item/可执行代码

    缓冲区是程序为存储数据而分配的连续的具有一定长度的内存空间。而缓冲区溢出是指,写入缓冲区的数据长度大于缓冲区分配的长度,使得数据写到相邻的内存中而覆盖掉其中已有的数据。若覆盖掉的数据恰好是程序的入口,那么程序将会跳转到写入的数据指定的地址去执行。攻击者通过精心构造填充数据,可以使程序跳转到指定的代码处执行,从而进行非法操作。
    当前缓冲区溢出检测技术主要分为 2 类:静态检测和动态检测。
    静态检测主要是通过对源代码的审查和分析来发现缓冲区溢出漏洞。由于不需要运行程序,因此,检测效率较高,代价较小;缺点是大都依赖于源代码且有较高的误报率和漏报率。
    动态检测技术是在程序的运行过程中,通过监测程序的运行状态来检测是否发生了缓冲区溢出。该类技术可以通过模糊测试 (fuzz testing) 主动诱发, 也可以通过修改软硬件平台被动监测 ,以发现漏洞。前者的优点是误报率低;缺点是测试充分性无法保证,可能有较高的漏报率。后者的优点是漏报率低;缺点是代价大,且大都无法防御拒绝服务攻击。
    根据缓冲区溢出原理,提出一种基于可执行代码的缓冲区溢出检测模型,给出该模型的理论基础,描述模型构建的过程,提出新的缓冲区引用实例的识别方法。 该模型将可执行代码反汇编为汇编代码, 建立函数调用关系图和控制流图, 分析缓冲区变量及其引用实例,从缓冲区引用实例逆程序流方向归结路径约束,通过约束求解判断缓冲区溢出可能与否。 [3] 
     
     
  • 相关阅读:
    23、Django实战第23天:视频播放页面
    22、Django实战第22天:课程评论
    21、Django实战第21天:课程章节信息
    20、Django实战第20天:课程详情页
    19、Django实战第19天:课程列表页
    Tomcat 的 catalina.out 日志分割
    18、Django实战第18天:课程机构收藏功能
    17、Django实战第17天:机构详情展示
    16、Django实战第16天:优化url
    15、Django实战第15天:我要学习咨询
  • 原文地址:https://www.cnblogs.com/rsapaper/p/10482551.html
Copyright © 2011-2022 走看看