[发明专利]一种基于程序图的栈缓冲区溢出脆弱性检测方法在审
申请号: | 201811514895.5 | 申请日: | 2018-12-12 |
公开(公告)号: | CN109784048A | 公开(公告)日: | 2019-05-21 |
发明(设计)人: | 陈锦富;张庆晨;黄如兵;陈书杰;周敏敏 | 申请(专利权)人: | 江苏大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 212013 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序图 脆弱性 溢出 脆弱性检测 缓冲区空间 危险函数 缓冲区 地址偏移 覆盖空间 源代码 复制 比较函数 大小计算 函数操作 静态分析 点位置 遍历 | ||
本发明公开了一种基于程序图的栈缓冲区溢出脆弱性检测方法,1对源代码静态分析后构造相应程序图;2遍历程序图寻找危险函数,得到溢出点位置;3在溢出点比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址偏移;4判断是否出现地址偏移而得到脆弱性检测结果。其中所述的危险函数主要针对Strncpy()、Memcpy()和Gets()三种危险函数,对于Strncpy()和Memcpy()函数,获取函数操作的缓冲区空间O和覆盖空间C,对于Gets()函数只需获取函数的缓冲区空间O;对于Strncpy函数,如果复制长度n<O,则没有脆弱性,如果n>O且O<C,则有脆弱性;对于Memcpy函数,如果复制长度n<O,则没有脆弱性,如果n<O且O<C,则有脆弱性;对于Gets函数,如果O=[0,∞],则有脆弱性。
技术领域
本发明属于信息安全技术领域,涉及一种基于程序图的栈缓冲区溢出脆弱性检测方法。
背景技术
随着计算机技术的不断发展,各行各业对软件的需求越来越大,越来越多的人享受着信息系统带来的方便快捷。在信息技术不断发展过程中不可避免要面对的问题就是软件漏洞。在软件开发过程中开发人员都会犯一些错误,有些错误致命如果不及时找出来会造成很严重地后果。在目前所有的软件漏洞中,缓冲区溢出是很常见的安全漏洞之一。因此,软件脆弱性成因分析日益成为信息安全领域关注的重点。
缓冲区溢出产生的主要原因是向固定长度大的缓冲区中写入超出其预分配长度的内容,造成缓冲区中数据的溢出从而导致缓冲区的结构被破坏。攻击者借此构造假数据导致原有程序改变,最终获取控制权。1988年第一个蠕虫病毒在极短的时间内攻击了几百台电脑造成了巨大的影响。2001年名为CodeRed的病毒导致了30多万台运行Windows的计算机受到攻击,造成了巨大的经济损失。此外,还有很多利用Shellcode进行远程溢出攻击的案例。目前公共漏洞库(CVE)组织已经形成了一批在国际上颇具影响力的标准。美国国家漏洞库(NVD)对漏洞进行了统一命名、分类和描述,严格兼容CVE,构建了全方位、多渠道的漏洞发布机制和标准化的漏洞修复模式。
C和C++语言的使用经常导致缓冲区溢出漏洞。目前,静态和动态技术是检测缓冲区溢出漏洞的主要技术。静态检测技术是指不运行被测程序本身,仅仅通过分析或检测源代码的语法和结构等来检测程序的准确性。也就是说在程序执行之前完成漏洞的检测;动态检测技术是指通过运行被测程序,检查运行结果与预期结果的差异并分析运行效率等性能。也就是说通过运行代码来检测代码的动态行为和运行结果的准确性。但一般来说,静态检测更加的方便快捷,无需执行程序,可在开发前期检测漏洞,因此缓冲区溢出漏洞的静态检测是测试者用得比较多的。但由于大多数静态分析工具建模不够精确,导致了缓冲区溢出漏洞检测的结果中存在较高的漏报率和误报率。在C和C++语言中,一些拷贝函数和常见的外部输入函数在分配内存和输入长度是容易产生缓冲区溢出。
发明内容
本文发明了一种基于程序图的栈缓冲区溢出脆弱性检测方法。首先对源代码进行静态分析后构造相应的程序图。遍历生成的程序图寻找到危险函数,得到溢出点位置。并且通过比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址的偏移。最后通过判断是否出现地址偏移而得到脆弱性检测的结果。
本发明的技术方案如下:
步骤1,对源代码进行静态分析后构造相应的程序图;
步骤2,遍历生成的程序图寻找到危险函数,得到溢出点位置;
步骤3,在溢出点比较函数操作的缓冲区空间与所要覆盖空间的大小计算地址的偏移;
步骤4,通过判断是否出现地址偏移而得到脆弱性检测的结果。
进一步方案,上述步骤1的具体步骤如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏大学,未经江苏大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811514895.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于多特征的程序检测方法
- 下一篇:威胁数据处理的方法、设备、系统和介质