[发明专利]一种基于模拟攻击的软件漏洞检测方法有效
| 申请号: | 201510179362.6 | 申请日: | 2015-04-15 |
| 公开(公告)号: | CN104778413B | 公开(公告)日: | 2018-04-03 |
| 发明(设计)人: | 曾庆凯;杨继龙 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 南京瑞弘专利商标事务所(普通合伙)32249 | 代理人: | 陈建和 |
| 地址: | 210093 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 模拟 攻击 软件 漏洞 检测 方法 | ||
技术领域
本发明涉及软件漏洞的检测,特别涉及一种结合程序静态分析、对待检测软件进行模拟攻击实施软件漏洞动态监控和检测的方法。
背景技术
随着信息技术的不断发展,软件漏洞作为软件系统安全性的主要威胁之一,其危害程度越来越严重。攻击者利用软件漏洞可在未授权的情况下访问或破坏系统,甚至是取得系统的最高权限。针对软件漏洞的检测工作,大多集中在程序分析上,通过静态或动态分析提取漏洞特征,从而完成漏洞识别过程。然而,利用程序分析进行漏洞检测缺乏对攻击因素的考虑,使得检测出的漏洞可能是无法被利用的,因而会产生误报。因此,为实现软件漏洞的准确检测,需要将攻击因素融入到程序分析中,充分考虑漏洞利用条件以减少误报的产生。
本发明提出一种基于模拟攻击的软件漏洞检测方法。利用预先收集的程序信息,结合程序和系统级的监控方法,对程序的敏感操作和攻击的实施条件进行检测,在满足条件的情况下对程序实施模拟攻击,将攻击影响作为漏洞识别的主要依据,从而完成漏洞的准确识别。本方法的实施可有效检测软件漏洞,并减少现有检测方法所存在的误报,对提高软件系统安全性具有重要意义。同时,检测中涉及程序分析、攻击利用等方面的信息可作为漏洞定位修复、级别判定的准确依据,降低人工分析的工作量。
发明内容
本发明的目的是,为实现准确检测软件漏洞,提供一种基于模拟攻击的检测方法。通过预先获取的程序信息,结合程序和系统级的监控实现敏感操作检测,利用敏感操作触发检测机制,并在符合攻击实施条件时对程序进行模拟攻击,进行漏洞判定。
本发明的技术方案是:基于模拟攻击的软件漏洞检测方法,通过静态反汇编工具获取敏感操作所涉及的函数信息,利用动态插桩平台实现监控、模拟攻击和攻击影响分析等过程;主要操作如下:
1)执行静态分析获取程序信息;
2)动态执行程序,检测敏感函数调用;
3)分析攻击实施条件;
4)执行模拟攻击;
5)分析攻击影响,依据攻击影响结果进行漏洞判定;
在具体实施时,采用符号链接攻击对程序进行模拟攻击,对应的漏洞类型为一类文件访问漏洞,通过利用这类漏洞,本地攻击者通过符号链接更改程序预期访问文件,从而实现访问攻击者权限之外的文件资源;
操作1):在静态分析阶段,利用静态反汇编工具IDA Pro对待检测elf文件进行反汇编获得反汇编代码,通过对反汇编代码的分析获取程序信息,包括函数信息和常量信息;静态分析阶段的输入为待检测的elf文件,输出为程序信息,静态分析所提取的程序信息存储在elf_data文件中,以供动态检测阶段使用;
程序信息包括函数信息和常量信息;其中函数信息包括敏感函数、影响函数和信息流传播函数的信息;常量信息为常量地址;静态分析过程利用反汇编工具对待检测程序进行反汇编得到反汇编代码,并分析反汇编代码获取函数信息和常量信息。
函数信息具体体现为函数名、函数调用地址,敏感函数信息还需要获取含有敏感函数的函数体的开始和结束地址;函数名来自动态符号表中的函数名与敏感函数集的匹配结果;函数调用地址为敏感函数被调用的地址;含有敏感函数的函数体为敏感函数调用地址所在的函数体;函数名来自动态符号表中的函数名与敏感函数集的匹配结果;函数调用地址为敏感函数被调用的地址;含有敏感函数的函数体为敏感函数调用地址所在的函数体;静态提取程序信息流程,利用静态反汇编工具实现程序信息的提取;通过预先定义的函数集匹配完成函数信息的获取;常量信息为常量地址;静态分析过程利用反汇编工具对待检测程序进行反汇编得到反汇编代码,并分析反汇编代码获取函数信息和常量信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510179362.6/2.html,转载请声明来源钻瓜专利网。





