一种分析可执行文件判断高危文件的方法及系统的制作方法

文档序号:10618247阅读:330来源:国知局
一种分析可执行文件判断高危文件的方法及系统的制作方法
【专利摘要】本发明公开了一种分析可执行文件判断高危文件的方法及系统,该方法在Linux系统下对可执行文件或者动态库文件进行分析,通过检测可执行文件或者动态库文件中的mmap系统调用和mprotect系统调用来判断该可执行文件或者动态库文件是否在用户空间申请内存并修改了默认权限,即Linux中定义了PROT_EXEC权限,若是则认为可执行文件或者动态库文件为高危文件。通过本方法解决了在传统的漏洞环境下文件检测效率低范围窄的技术问题。
【专利说明】
一种分析可执行文件判断高危文件的方法及系统
技术领域
[0001]本发明涉及计算机网络安全技术领域,尤其涉及一种分析可执行文件判断高危文件的方法及系统。【背景技术】
[0002]目前针对各种利用漏洞的程序进行检测的方法通常是等待一个漏洞的利用方法或者分析报告出现后,对其进行分析,提取出其关键步骤作为检测手段。但是这种方法存在诸多问题,例如:1、形成检测手段需要等到该漏洞完全披露后,可能在形成检测能力后漏洞利用已经很广泛了;2、需要对网上披露的漏洞利用代码或者报告进行一定深度的分析,占用人力较大;3、检测目标单一,针对上述方法提取的特征只能针对单一漏洞利用手段,目前漏洞形式千奇百怪,该方式启发性低。
【发明内容】

[0003]针对上述技术问题,本发明提供了一种分析可执行文件判断高危文件的方法及系统,该方法在Linux系统下对可执行文件或者动态库文件进行分析,通过检测可执行文件或者动态库文件中的mmap系统调用和mprotect系统调用来判断该可执行文件或者动态库文件是否在用户空间申请内存并修改了默认权限,即Linux中定义了 PR0T_EXEC权限,若是则认为可执行文件或者动态库文件为高危文件。
[0004]—种分析可执行文件判断高危文件的方法,包括:分析可执行文件或者动态库文件;检测可执行文件或者动态库文件中的_ap系统调用,若发现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者动态库文件为高危文件;检测可执行文件或者动态库文件中的mprotect系统调用,若发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为高危文件。
[0005]进一步的,所述可执行文件或者动态库文件为ELF文件,还包括:所述系统为 Linux系统。
[0006]进一步的,所述检测可执行文件或者动态库文件中的_ap系统调用,若发现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者动态库文件为高危文件,具体为:提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存在PR〇T_EXEC值,若存在,则所述可执行文件或者动态库文件为高危文件。
[0007]进一步的,所述检测可执行文件或者动态库文件中的mprotect系统调用,若发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为高危文件,具体为:提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存在PR0T_EXEC值,若存在,则所述可执行文件或者动态库文件为高危文件。
[0008]—种分析可执行文件判断高危文件的系统,包括:分析模块,用于分析可执行文件或者动态库文件;系统检测第一模块,用于检测可执行文件或者动态库文件中的_&?系统调用,若发现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者动态库文件为高危文件;系统检测第二模块,用于检测可执行文件或者动态库文件中的mprotect系统调用,若发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为高危文件。
[0009] 进一步的,所述可执行文件或者动态库文件为ELF文件,还包括:所述系统为 Linux系统。
[0010] 进一步的,所述系统检测第一模块具体用于:提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存在PR0T_EXEC值,若存在, 则所述可执行文件或者动态库文件为高危文件。
[0011] 进一步的,所述系统检测第二模块具体用于:提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存在PR0T_EXEC值,若存在, 则所述可执行文件或者动态库文件为高危文件。
[0012] 本发明涉及一种分析可执行文件判断高危文件的方法,本方法利用漏洞这一常见的利用场景,通过对可执行文件或者动态库文件进行检测,判断是否开辟了一块具有执行权限的内存空间,即具有PR〇T_EXEC权限的内存空间,若有则认为可执行文件或者动态库文件为高危文件,通过本方法克服了利用Linux漏洞获取root权限进行恶意操作的问题, 进而提尚了查找尚危文件的能力。【附图说明】
[0013] 为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为本发明提供的一种分析可执行文件判断高危文件的方法中检测mmap系统调用实施例流程图;图2为本发明提供的一种分析可执行文件判断高危文件的方法中检测mprotect系统调用实施例流程图;图3为本发明提供的一种分析可执行文件判断高危文件的系统实施例结构图。【具体实施方式】
[0015] 本发明给出了一种分析可执行文件判断高危文件的方法及系统,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:本发明首先提供了一种分析可执行文件判断高危文件的方法中检测mmap系统调用实施例,如图1所示,包括:S101分析可执行文件或者动态库文件;可执行文件或者动态库文件为ELF文件,系统为Linux系统;S102检测可执行文件或者动态库文件中的mmap系统调用;提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存在PR〇T_EXEC值;mmap为Linux系统提供的系统调用,PROT_EXEC为系统定义的一个常量,在mmap系统调用的参数中代表该块内存可执行;mmap是一个使用程度一般的系统调用,但用户一般不会使用其映射一个带有执行权限的内存区域;S103若发现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者动态库文件为高危文件。
[0016]本发明其次提供了一种分析可执行文件判断高危文件的方法中检测mprotect系统调用实施例,如图2所示,包括:S201分析可执行文件或者动态库文件;可执行文件或者动态库文件为ELF文件,系统为Linux系统;S202检测可执行文件或者动态库文件中的mprotect系统调用;提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存在PR〇T_EXEC值;mprotect为Linux系统提供的系统调用,PR0T_EXEC为系统定义的一个常量,在 mprotect系统调用的参数中代表该块内存可执行;mprotect为较罕见的系统调用,使用了该调用的可执行文件或者动态库文件都是高可疑文件,不仅仅是漏洞利用时可能用到,一些Hook操作也需要使用到该调用。
[0017]S203若发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为高危文件。
[0018]本发明还提供了一种分析可执行文件判断高危文件的系统,如图3所示,包括:分析模块301,用于分析可执行文件或者动态库文件;系统检测第一模块302,用于通过检测可执行文件或者动态库文件中的_ap系统调用,若发现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者动态库文件为高危文件;系统检测第二模块303,用于通过检测可执行文件或者动态库文件中的mprotect系统调用,若发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为高危文件。[〇〇19]综上所述,本发明涉及一种分析可执行文件判断高危文件的方法。本方法是在Linux系统的基础上,对可执行文件或者动态库文件进行检测,当检测到文件中的_ap系统调用或者mprotect系统调用的权限参数存在PR0T_EXEC值时,则文件为高危文件。传统的利用漏洞分析文件的方法通常是等待一个漏洞的分析报告出现后,对其进行分析,提取出其关键步骤作为检测手段,这种方法效率较低、范围较窄。本发明克服了这些缺点,通过 mmap系统调用、mprotect系统调用这些罕见的高级调用,利用PR0T_EXEC执行权限的特点, 简单方便的分析出已知或者未知的高危文件。
[0020]以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
【主权项】
1.一种分析可执行文件判断高危文件的方法,其特征在于:分析可执行文件或者动态库文件;检测可执行文件或者动态库文件中的_ap系统调用,若发现其在用户空间映射了带 有执行权限的内存区域,则可执行文件或者动态库文件为高危文件;检测可执行文件或者动态库文件中的mprotect系统调用,若发现其赋予了内存空间 执行权限,则可执行文件或者动态库文件为高危文件。2.如权利要求1所述的方法,其特征在于,所述可执行文件或者动态库文件为ELF文 件,还包括:所述系统为Linux系统。3.如权利要求1所述的方法,其特征在于,所述检测可执行文件或者动态库文件中的 _ap系统调用,若发现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者 动态库文件为高危文件,具体为:提取所述可执行文件或者动态库文件的TEXT代码段数 据,进行反汇编处理,判断其权限参数是否存在PR〇T_EXEC值,若存在,则所述可执行文件 或者动态库文件为高危文件。4.如权利要求1所述的方法,其特征在于,所述检测可执行文件或者动态库文件中的 mprotect系统调用,若发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为 高危文件,具体为:提取所述可执行文件或者动态库文件的TEXT代码段数据,进行反汇编 处理,判断其权限参数是否存在PR〇T_EXEC值,若存在,则所述可执行文件或者动态库文件 为高危文件。5.—种分析可执行文件判断高危文件的系统,其特征在于:分析模块,用于分析可执行文件或者动态库文件;系统检测第一模块,用于检测可执行文件或者动态库文件中的_&?系统调用,若发 现其在用户空间映射了带有执行权限的内存区域,则可执行文件或者动态库文件为高危文 件;系统检测第二模块,用于检测可执行文件或者动态库文件中的mprotect系统调用,若 发现其赋予了内存空间执行权限,则可执行文件或者动态库文件为高危文件。6.如权利要求5所述的系统,其特征在于,所述可执行文件或者动态库文件为ELF文 件,还包括:所述系统为Linux系统。7.如权利要求5所述的系统,其特征在于,所述系统检测第一模块具体用于:提取所述 可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存 在PR0T_EXEC值,若存在,则所述可执行文件或者动态库文件为高危文件。8.如权利要求5所述的系统,其特征在于,所述系统检测第二模块具体用于:提取所述 可执行文件或者动态库文件的TEXT代码段数据,进行反汇编处理,判断其权限参数是否存 在PR0T_EXEC值,若存在,则所述可执行文件或者动态库文件为高危文件。
【文档编号】G06F21/56GK105989286SQ201510538094
【公开日】2016年10月5日
【申请日】2015年8月28日
【发明人】徐浩, 袁海涛, 潘宣辰
【申请人】武汉安天信息技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1