基于虚拟执行的未知恶意程序离线检测系统的制作方法

文档序号:11063644阅读:619来源:国知局
本发明涉及恶意程序检测技术和网络安全领域,特别涉及一种基于虚拟执行的未知恶意程序离线检测系统。
背景技术
:随着信息与通信技术、传感与测量技术、先进的设备技术以及先进的控制技术的高速发展,高级恶意软件攻击对工业控制网络产生很大安全隐患。作为工业控制网络的重要部分,智能电网也面临着巨大的威胁。目前在智能电网领域带有保护、测量、控制、计费等功能的智能电子设备在电网中被大量使用,为提高智能电子设备之间的互操作性及互操作的实时性,满足国际标准(如IEC61850)的通信服务模块也被采用。相比传统电网,用于互连互通的网元(工业交换机、路由器、网管服务器等)成为新型电网基础设施的重要组成部分,因此电力系统自动化、智能化得到了前所未有的发展。然而,ICT技术的广泛应用促进电网快速发展的同时,也带来许多新的挑战,尤其是近年来专门针对智能电网系统的新型高破坏性攻击事件频发,严重威胁着人们的人身安全、资产安全和国家环境、能源安全。为了遏制未知威胁攻击系统,保护用户数据免受不法分子窃取,最大程度的减小由于威胁入侵带来的损失,更方便地控制未知威胁的扩散、攻击等行为,需要有可靠的检测手段对未知威胁进行识别和分析。对现有文件检索发现,当前主要有两类未知恶意程序检测方法。中国专利申请号201310573299.5,发明名称“一种基于病毒样本特征的检测方法、检测装置及检测系统”,通过对实际脚本进行词法、语法分析,确定实际脚本中每个词语单元的单词类型、语句类型、集合,并根据单词类型和语句类型集合获取实际脚本的虚拟脚本集合,检测对虚拟脚本集合进行虚拟执行的结果,判定是否为脚本病毒。该专利提供的方案是对脚本语言进行分析,检测手段单一,而且准确率无法保证。随着攻击技术的快速更新,攻击者所采用的攻击代码不断伪装迭代,仅根据现有的脚本集合难以应对最新的攻击代码,该专利所提出的检测方法很难应对。中国专利申请号201310084544.6,发明名称“一种基于虚拟执行的病毒检测系统”通过病毒样本收集器收集未知病毒,并通过虚拟机执行未知病毒,然后得 到该病毒的执行行为报告,最后对执行的未知病毒行为报告进行分析,判断该未知病毒是否为病毒。该专利提供的方案是对所有已进入的未知病毒进行虚拟执行,需要让每一个进来的未知文件在虚拟系统中运行至少一个周期,面对很多程序时,不仅耗费大量时间,而且对硬件资源的占用率也很高。技术实现要素:针对以上检测技术在检测大量、高级恶意程序攻击时所存在的不足,本发明提供了一种基于虚拟执行的未知恶意程序离线检测系统,该系统采用多种检测机制相结合的检测系统,不仅可以通过病毒检测来对现有文件类型进行快速分析,还可以跟踪系统调用来对未出现过的威胁程序进行软件行为特征分析,并观察分析内存和指令的变化,从而能够在漏洞利用阶段就发现高级恶意软件攻击,从而规避了漏洞利用后高级恶意程序针对沙箱检测的逃避技术。本发明所实现的系统具体技术方案如下:一种基于虚拟执行的未知恶意程序离线检测系统,其特点在于,包括:文件导入,用于导入待检测的威胁未知的文件;恶意程序检测系统,用于对待检测文件进行综合检测;日志系统,用于记录检测过程中攻击行为和代码特征;威胁内容分析,用于分析所检测到的恶意程序威胁详情。本系统采用用户直接导入和远程批量导入两种离线文件导入方式。所述离线文件是指待检测的威胁未知的文件,一般是指采用伪装、嵌入常用文件等主要方法产生的恶意程序,本系统支持包含了当前主要常用文件,包括pdf、xls、doc、exe等类型。用户直接导入是指系统提供控制界面,由用户选择需要检测的文件,直接导入到系统;远程批量导入是指由用户提供远程导入文件的权限,系统支持基于SMB协议的远程网络资源共享方式导入远程的大批量文件。只要用户提供相应权限,即可实现文件的远程批量导入。所述病毒检测是指基于恶意代码特征的病毒检测。对于导入计算机上的文件,提取其静态特征。静态特征提取主要方式是提取文件中包含的字符串。特征项可以有字符串描述方式、特征资源描述方式、二进制描述方式,而无论是哪一种都需要申请系统资源来完成自身的功能,在所有的应用程序之间找到了一个共性:需要通过调用系统底层的APl函数来实现自身的功能,而这些API函数无疑会在该应用程序文件中出现。因此我们采用字符串描述方式作为文件特征的描述方式,这些字符串可以反映出该文件的特性。本发明使用病毒检测技术的主要目的是将待测文件中感染了已知病毒的文件快速筛选检测出来,将较为消耗资源的动态检 测方法集中用于未知恶意程序的检测。所述静态检测,主要关注与攻击威胁中造成溢出等漏洞利用的特征,虽然需要基于已知的漏洞信息,但是检测精度高,并且针对利用同一漏洞的不同恶意软件,可以使用一个检测规则做到完整的覆盖。本发明增加了智能Shellcode检测部分。Shellcode是恶意软件攻击中一段可执行代码。传统恶意程序内部结构一般都有固定的填充字段和功能字段,因此基于模式匹配和反汇编技术静态检测方法能有效检测出在文件中的Shellcode代码。然而随着多态和变形技术的发展,恶意文件内部的功能字段都经过了编码和加密,当Shellcode代码隐藏其中时,简单的模式匹配和反汇编就不能检测出Shellcode代码。并且在传统Shellcode检测的基础上,增加文件动态解码的功能。首先从待检测文件队列中取出文件,然后判断文件是否需要解码,如不需要解码,则直接进行Shellcode检测,如需要解码,则通过对文件动态解码,还原出功能字段,最后检测出Shellcode。该检测方法能有效针对多态Shellcode的逃避技术。所述动态检测是指动态检测模块通过虚拟机技术建立多个不同的应用环境,观察程序在其中的行为,来判断是否存在攻击。这种方式可以检测已知和未知威胁,并且因为分析的是真实应用环境下的真实行为,因此可以做到极低的误报率,而较高的检测率。考虑到检测目标是未知恶意程序,其行为和特征都不详,需要从多个层面进行深入分析。因此,系统从进程、文件、注册表、网络、漏洞利用等多个维度提供告警数据,为最终的定性提供数据支撑。虚拟执行检测技术采用和沙箱检测不同的虚拟机机制,不仅可以通过对系统调用的跟踪来分析软件的行为特征,而且可以观察分析内存和指令的变化。漏洞利用的过程,必然涉及到内存和指令的变化,也包括绕过操作系统保护机制采取的特定方式。因此基于虚拟执行技术这种更深层次的虚拟机技术,能够防止针对沙箱检测的逃避技术,漏洞利用阶段的高级恶意软件。虚拟执行检测技术的过程包括:1)根据动态检测策略,生成虚拟执行环境;2)将流量重组文件还原模块还原的文件放入文件存储队列;3)从文件存储队列中取出待检测的文件;4)将文件使用不同的软件版本打开并放到多个虚拟机环境下执行,以便判别漏洞针对的系统和软件版本;5)观察待检测文件被触发后,内存指令层面的变化,判断是否存在高级恶意软件攻击;6)观察待检测文件在虚拟机中的后续行为特征,包括文件和网络的访问、注册表的修改、进程的变化和检测系统具备指令级的代码分析能力,可以跟踪分析指令特征以及行为特征。指令特征包括了堆、栈中的代码执行情况等,通过指 令运行中的内存空间的异常变化,可以发现各种溢出攻击等漏洞利用行为,发现0day漏洞。所述日志系统是指在检测完成后系统记下此次未知程序的攻击行为和代码特征,方便后续对攻击情况进行统计分析。所述威胁内容分析是指检测系统具备指令级的代码分析能力,可以跟踪分析指令特征以及行为特征。指令特征包括了堆、栈中的代码执行情况等,通过指令运行中的内存空间的异常变化,可以发现各种溢出攻击等漏洞利用行为,发现0day漏洞。附图说明图1是本发明基于虚拟执行的未知恶意程序离线检测系统的结构示意图图2是本发明基于虚拟执行的未知恶意程序离线检测系统的检测流程图具体实施方式本发明实施例在以本发明技术方案为前提下实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下面的实施例,下面对本发明的实施例作详细说明。下面参照附图,对本发明的具体实施方式作进一步的详细描述。图1是本发明基于虚拟执行的未知恶意程序离线检测系统的结构示意图,如图所示,包括:离线文件102、恶意程序检测系统106、日志系统107和威胁分析报告108,其中离线文件102有本地文件导入100和远程文件导入101两种导入方式,恶意程序检测系统106包括病毒检测103、静态检测104和动态检测105。本发明的总体运行流程为:首先按照需求导入程序文件(本地文件导入100或远程文件导入101),然后启动恶意程序检测系统106,若果检测出结果为威胁程序,则生成并输出威胁检测报告108,并将攻击行为和代码特征写入日志系统107。离线文件102为待检测的威胁未知的文件,一般是指采用伪装、嵌入常用文件等主要方法产生的恶意程序。本系统支持包含了当前主要常用文件,具体支持包括如下七大类文件:文件类型扩展名office文件.ppt/.pptx、.doc/.docx、.xls/.xlsx、.rtf可执行文件.exe、.dll、.com、.scr、.pif、.batflash文件.swfjava文件.class、.jarpdf文件.pdf网页文件.html、.xml、.js压缩文件.zip、.rar、.gzip、.gz、.tar、.7z、.bz2本地文件导入100指提供控制界面,由用户选择需要检测的文件,直接导入到系统;远程文件导入101指由用户提供远程导入文件的权限,系统支持基于SMB协议的远程网络资源共享方式导入远程的大批量文件,当用户提供相应权限时,可实现文件的远程批量导入。图2是本发明基于虚拟执行的未知恶意程序离线检测系统的检测流程图,本发明的具体实施步骤如下:1)、系统完成初始化200后,由用户选择由系统控制界面直接导入100或基于SMB协议远程批量导入101的方式将待检测文件导入到系统的文件存储队列203。2)、同时,系统读取检测策略204并根据预先设定的检测策略205分别启动各检测引擎206,具体检测引擎检测方法如下:a)病毒检测引擎207从文件存储队列中获取文件并进行病毒检测210,通过检测恶意代码特征,将待测文件中感染了已知病毒的文件快速筛选检测出来,把较为消耗资源的动态检测方法集中用于未知恶意程序的检测执行;b)静态检测引擎208从文件存储队列中获取文件211,判断文件是否采用了变形技术逃避检测,如果是,则对对应功能字段解码还原,接着对还原后的文件进行ShellCode检测,检测攻击威胁中造成溢出等漏洞利用的特征;c)动态检测引擎209从文件存储队列中获取文件,按照检测策略将文件放入不同虚拟执行环境217进行动态检测212。检测过程中首先根据预先设定的检测策略生成虚拟执行环境213,如WinXP和Win7等,因此某些类型的恶意程序主要利用WinXP系统的漏洞,而在Win7系统中没有效果;某些带有恶意代码的word文件是针对word2003缺陷设计的,在word2007环境下则无法运行。根据文件在虚拟机技术建立多个不同的应用环境中的运行行为,来判断其是否存在攻击。可以检测未知威胁,并且因为分析的是真实应用环境下的真实行为,因此可以做到极低的误报率,而较高的检测率。在检测过程中,可以灵活设定检测策略;即可只启用一类检测引擎以加快检测速度,也可以启动多个检测引擎、设定多种动态检测虚拟执行环境以提高检测准确率。3)、日志系统107是指在检测完成后系统记下此次未知程序的攻击行为和代码特征,方便后续对攻击情况进行统计分析。4)、威胁内容分析108是指检测系统所检测的病毒检测告警信息218、静态 检测告警信息219、动态检测告警信息220,其中病毒检测告警信息218包含了病毒的来源、请求的外部链接等;静态检测告警信息219是指对ShellCode检测出的漏洞利用情况等;动态检测告警信息220是指系统进行指令级的代码分析,并跟踪分析指令特征以及行为特征。其中指令特征包括了堆、栈中的代码执行情况等,分析指令运行中的内存空间的异常变化,系统同时跟踪进程的创建中止,进程注入,服务、驱动,注册表访问、改写,文件访问、改写、下载,程序端口监听,网络访问行为等行为特征,系统根据以上行为特征,综合分析找到属于攻击威胁的行为特征,进而发现0day木马等恶意软件。5)、动态检测中考虑到检测目标是未知恶意程序,其行为和特征都不详,需要从多个层面进行深入分析。因此,系统从进程、文件、注册表、网络、漏洞利用等多个维度提供告警数据,为最终的定性提供数据支撑。本系统提供的告警信息如下表所示:最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1