[发明专利]一种ShellCode检测方法和装置有效
申请号: | 201410191246.1 | 申请日: | 2014-05-07 |
公开(公告)号: | CN104008336B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | 喻民;姜建国;李敏;刘超;仇新梁;黄超;王菲飞;王冉晴;赵双;刘坤颖;高翔;胡波 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 李迪 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 shellcode 检测 方法 装置 | ||
技术领域
本发明涉及网络安全领域,尤其涉及一种ShellCode检测方法和装置。
背景技术
当前,缓冲区溢出是多种系统攻击、获取系统控制权的一个主要跳板,而具体实施缓冲区溢出攻击,必须要通过ShellCode来进行,进行攻击的数据中一定包含相应的ShellCode。因此,加强对缓冲区溢出等攻击的检测是信息安全领域的一个重要研究内容。同时,当前广泛使用的软件如Office、Adobe Reader等文档处理软件成为很多ShellCode的攻击跳板,许多攻击者将ShellCode隐藏在DOC和PDF等这些常用文档中进行攻击。
当前对ShellCode的检测,主要分为静态检测和动态检测,静态ShellCode检测技术一般采用模式匹配和静态反汇编技术,通过对数据进行扫描和分析,根据ShellCode知识库中的特征码,识别出可能存在的ShellCode。其特点是检测速度快,但存在针对性不强,无法检测未知ShellCode的问题。同时,静态二进制分析没有实际执行指令,无法自动捕获指令的控制转移,完全依赖人工分析程序的控制流图。
动态的ShellCode检测技术是将数据流当作可执行代码模拟执行,其通过实际运行程序,可以自动捕获程序指令的控制转移,可以对程序的运行数据访问进行监控和分析,不受代码混淆技术的影响。但现有的基于内存搜索的ShellCode检测技术,是在ShellCode已载入内存后才进行检测,难以防止ShellCode所做的更改,并且在数据量大的情况下难以对内存进行准确有效的搜索;基于虚拟执行的ShellCode检测技术,需要相应虚拟机技术的支持,在数据量大的情况下,需要部署大量的虚拟机,并且当前众多ShellCode代码都具有虚拟机对抗功能。
另外,当前已经实现的技术大多是针对网络数据流的分析,但对攻击本地程序的ShellCode的检测方面支持不足,并且无法避免ShellCode已经对系统造成的伤害。
发明内容
(一)要解决的技术问题
本发明提供一种ShellCode检测方法和装置,以解决现有技术仅能在ShellCode运行之后进行检测,无法避免对系统造成既成伤害的技术问题和混淆技术导致难以静态检测ShellCode的问题。
(二)技术方案
为解决上述技术问题,本发明提供一种ShellCode检测方法,包括:
建立包含ShellCode特征序列的ShellCode指令序列特征库;
载入待检测文件,对所述待检测文件进行解析,形成解析文件;
对所述解析文件进行指令的模拟执行和分析,记录可疑指令序列并与所述ShellCode指令序列特征库中的ShellCode特征序列进行对比,判断所述解析文件中是否包含ShellCode;
输出检测结果。
进一步地,所述对所述待检测文件进行解析,形成解析文件包括:
根据待检测文件的类型进行解析,转换为统一格式的解析文件。
进一步地,所述文档类型包括:
DOC、DOCX、XLS、XLSX、PPT、PPTX、PDF中的一种或多种。
进一步地,所述对所述解析文件进行指令的模拟执行和分析,记录可疑指令序列并与所述ShellCode指令序列特征库中的ShellCode特征序列进行对比,判断所述解析文件中是否包含ShellCode,包括:
步骤S1:初始化可疑指令序列步长;
步骤S2:将所述解析文件作为二进制串进行指令的模拟执行和分析,当检测到可疑指令时,执行步骤S3,否则,执行步骤S6;
步骤S3:将所述可疑指令序列步长加1;
步骤S4:比较所述可疑指令序列步长是否达到所述ShellCode指令序列特征库中的ShellCode特征序列的阀值,如果达到阀值,执行步骤S5,否则,执行步骤S6;
步骤S5:判定所述解析文件数据中包含ShellCode,记录告警信息;
步骤S6:判断是否对所述解析文件中的所有数据完成检测,如果完成了所有数据检测,判定所述解析文件中不包含ShellCode,否则,回到步骤S2。
进一步地,所述方法还包括:
利用ShellCode检测结果对所述ShellCode指令序列特征库中的ShellCode特征序列进行更新。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410191246.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种回转式刮毛机
- 下一篇:一种马桶上自动防尿溅装置