CN102999721B - 一种程序处理方法和*** - Google Patents
一种程序处理方法和*** Download PDFInfo
- Publication number
- CN102999721B CN102999721B CN201210448648.6A CN201210448648A CN102999721B CN 102999721 B CN102999721 B CN 102999721B CN 201210448648 A CN201210448648 A CN 201210448648A CN 102999721 B CN102999721 B CN 102999721B
- Authority
- CN
- China
- Prior art keywords
- information
- file
- program
- dll file
- grade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种程序处理方法和***,以解决恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题。其中,方法包括:当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。本发明实施例能够更加有效地拦截恶意程序。
Description
技术领域
本发明涉及网络安全技术领域,具体涉及一种程序处理方法和***。
背景技术
恶意程序是一个概括性的术语,指任何故意创建用来执行未经授权并通常是有害行为的软件程序。计算机病毒、后门程序、键盘记录器、密码盗取者、Word和Excel宏病毒、引导区病毒、脚本病毒(batch,windows shell,java等)、木马、犯罪软件、间谍软件和广告软件等等,都是一些可以称之为恶意程序的例子。
现今全球恶意程序数量呈几何级增长,为了适应恶意程序的更新速度,以快速地识别和查杀恶意程序,目前普遍利用主动防御技术查杀恶意程序。主动防御技术是基于程序的行为进行自主分析判断的实时防护技术,其从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,进而衍生出通过在本地使用特征库、在本地设置行为阈值以及在本地启发式杀毒等方式来判别、拦截恶意程序的行为,从而在一定程度上达到保护客户端设备的目的。
但是,为了尽可能减小对程序性能的影响,主动防御技术只对程序的EXE文件进行检测,而不检查程序加载的动态链接库(Dynamic Link Library,DLL)文件。因此,一些恶意程序就利用这一点,通过DLL劫持技术将该恶意程序的DLL文件与可信任的白名单中的程序(例如操作***自带的程序)打包在一起,当用户选择执行该白名单中的程序时,其中的恶意程序的DLL文件就会被加载,从而使主动防御技术不能成功拦截该恶意程序。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序处理***和相应的程序处理方法。
依据本发明的一个方面,提供了一种程序处理方法,包括:
当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;
将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;
依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。
依据本发明的另一方面,提供了一种程序处理***,包括客户端和服务器,其中,
客户端包括:
读取模块,适于当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;
匹配模块,适于将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;
确定模块,适于依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。
根据本发明的程序处理方法和***可以在检测到待执行程序创建进程时,依据预先设置的本地鉴别条件检查所述待执行程序是否存在被劫持的DLL文件,如果待执行程序存在被劫持的DLL文件,则通过服务器对所述被劫持的DLL文件进行查杀,然后依据服务器查杀结果对所述待执行程序执行相应的操作。由此解决了恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题,取得了更加有效地拦截恶意程序的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的程序处理方法的流程图;
图2示出了根据本发明一个实施例的程序处理方法的流程图;
图3示出了根据本发明一个实施例的程序处理方法的流程图;
图4示出了根据本发明实施例所述的本地鉴别条件的示意图;
图5示出了根据本发明一个实施例的程序处理***的结构框图;以及
图6示出了根据本发明一个实施例的程序处理***的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***、大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
实施例一:
参照图1,示出了根据本发明一个实施例的程序处理方法的流程图,该方法具体可以包括:
步骤S101,当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件。
步骤S102,将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果。
步骤S103,依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。
对于本实施例提出的程序处理方法的具体过程,将在下面的实施例中详细介绍。
通过上述步骤S101-步骤S103可以利用本地鉴别条件检测待执行程序是否存在被劫持的DLL文件,后续可以通过检测结果对待执行程序进行处理。如果检测到待执行程序存在被劫持的DLL文件,则后续可以通过服务器对被劫持的DLL文件进行查杀,然后依据服务器查杀结果对所述待执行程序执行相应的操作。由此解决了恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题,能够更加有效地拦截恶意程序。
实施例二:
参照图2,示出了根据本发明一个实施例的程序处理方法的流程图。
为了适应恶意程序的更新速度,以快速地识别和查杀恶意程序,目前普遍利用主动防御技术查杀恶意程序。主动防御技术是基于程序的行为进行自主分析判断的实时防护技术,通过在***的关键位置设置拦截点对***的关键位置进行保护。当有程序执行修改这些关键位置的行为(例如写入注册表、创建计划任务、修改浏览器首页、修改默认浏览器和注册浏览器插件等行为)时,就会对该程序进行拦截,拦截后需要判断此次修改行为是否为恶意的,通常对行为的判断是通过判断执行此次修改行为的程序是否安全来实现的,如果程序是恶意的,则说明该修改行为是恶意的,因此需要拦截该程序的执行。
一般来说,主动防御技术通过对程序的文件进行检查,以检测程序的安全性。但是在检查程序文件时,需要计算文件的哈希值,还需要访问网络,这些都是比较耗费时间的操作,并且一般的程序会加载几十个甚至上百个DLL文件,即使使用缓存技术进行优化,还是会明显延长程序的启动时间。因此,为了尽可能减小对程序性能的影响,主动防御技术只对程序的EXE文件进行检测,而不检查程序加载的DLL文件。因此,一些恶意程序就利用这一点,通过DLL劫持技术将该恶意程序的DLL文件与可信任的白名单中的程序(例如操作***自带的程序)打包在一起,当用户选择执行该白名单中的程序时,其中的恶意程序的DLL文件就会被加载,从而使主动防御技术不能成功拦截该恶意程序。
为了防止恶意程序利用可信任的白名单中的程序突破主动防御而成功执行,本发明实施例提出了一种程序处理方法,具体的,该程序处理方法包括以下步骤:
步骤S201,当检测到待执行程序创建进程时,依据预先设置的本地鉴别条件检查所述待执行程序是否存在被劫持的DLL文件。
需要说明的是,该步骤S201为检查所述待执行程序是否存在被劫持的DLL文件的过程,相对于上述实施例一来说,该步骤S201可以包括上述实施例一中的步骤S101-步骤S103。
步骤S202,若存在,则通过服务器对所述被劫持的DLL文件进行查杀。
步骤S203,依据服务器查杀结果对所述待执行程序执行相应的操作。
通过上述步骤S201-步骤S203可以在待执行程序存在被劫持的DLL文件时,进一步通过服务器对这些被劫持的DLL文件进行查杀,然后依据服务器查杀结果对所述待执行程序执行相应的操作。对于具体的处理过程,将在下面的实施例中详细介绍。
本发明实施例提出的程序处理方法通过对待执行程序中被劫持的DLL文件进行检查,能够解决恶意程序利用可信任的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题,取得了更加有效地拦截恶意程序的有益效果。
实施例三:
下面,对于具体的程序处理方法进行详细描述。
参照图3,示出了根据本发明一个实施例的程序处理方法的流程图,所述方法包括:
步骤S301,当检测到待执行程序创建进程时,依据预先设置的本地鉴别条件检查所述待执行程序是否存在被劫持的DLL文件。
本发明实施例主要是在待执行程序创建进程时,增加对DLL文件的查询过程,需要检查待执行程序是否存在被劫持的DLL文件,如果存在,则说明该待执行程序有可能被恶意程序利用,因此要进一步检查这些被劫持的DLL文件是否安全。
在本实施例中,依据预先设置的本地鉴别条件检查所述待执行程序是否存在被劫持的DLL文件。
本地鉴别条件存储在客户端本地目录下,在本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息,本实施例就是要将待执行程序的一些特征信息与本地鉴别条件进行匹配,然后再依据匹配结果进行判断。
具体的,该步骤S301可以包括以下子步骤:
子步骤a1,获取所述待执行程序的特征信息。
其中,待执行程序的特征信息包括以下信息中的至少一种:
待执行程序的文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、数字签名公司信息,以及待执行程序创建的进程的命令行信息、进程路径信息和父进程路径信息。
当然,所述待执行程序的特征信息还可以包括其他信息,本实施例对此并不加以限制。
子步骤a2,通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL文件信息,将所述需要检查的DLL文件信息作为匹配结果。
下面,具体介绍一下与本地鉴别条件进行匹配的过程。
由上述描述可知,在本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息,在本发明实施例中,所述程序匹配条件包括两种,即公共程序匹配条件和特定程序匹配条件,根据匹配条件的不同,执行不同的匹配过程。
第一种:公共程序匹配条件
在本地鉴别条件中,满足公共程序匹配条件后需要检查的DLL文件信息为公共DLL文件信息。
当进行匹配时,对于公共程序匹配条件来说,每个待执行程序都要与该公共程序匹配条件进行匹配,并且获取所有满足公共程序匹配条件之后需要检查的DLL文件信息。也即针对每个待执行程序,都要获取所有的公共DLL文件信息,然后进一步对这些公共DLL文件信息进行判断。
具体的,针对公共程序匹配条件的处理过程可以包括:
(1)获取满足所述公共程序匹配条件后需要检查的公共DLL文件信息;
(2)将所述公共DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
本实施例中可以在公共程序匹配条件中设置一些常用的DLL文件信息,因此对于劫持常用DLL文件的未知恶意程序也可以进行查杀,提高查杀的准确性。
第二种:特定程序匹配条件
在本地鉴别条件中,满足该特定程序匹配条件后需要检查的DLL文件信息为特定DLL文件信息。
当进行匹配时,对于特定程序匹配条件来说,并不是每个待执行程序都与特定程序匹配条件相匹配。因此,需要将待执行程序的特征信息与所述特定程序匹配条件进行匹配,然后只获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息,如果在特定程序匹配条件中没有与待执行程序的特征信息相匹配的条件,则只需对上述获取的公共DLL文件信息进行判断即可。
由于特定程序匹配条件需要与待执行程序的特征信息进行匹配,因此,在所述特定程序匹配条件中也需要包括一些与程序的特征信息相对应的信息,通过这些信息即可找到与待执行程序的特征信息相匹配的特定程序匹配条件。
在本实施例中,所述特定程序匹配条件包括以下信息中的至少一种:
文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、公司名称的数字签名信息,以及进程的命令行信息、进程路径信息和父进程路径信息。
同样的,所述特定程序匹配条件还可以包括其他信息,本实施例对此并不加以限制。
具体的,针对特定程序匹配条件的处理过程可以包括:
(i)将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;
(ii)获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息;
(iii)将所述特定DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
具体的,可以通过以下实例进行说明。
如图4所示,是本发明实施例所述的本地鉴别条件的示意图。
从图中可以看出,在该本地鉴别条件中包括多个公共程序匹配条件和特定程序匹配条件。其中,DLL-HIJACK为字段名称,单独的DLL-HIJACK字段表示的是公共程序匹配条件,这些单独的DLL-HIJACK字段中的DLL文件信息为公共DLL文件信息;其它一些DLL-HIJACK字段是与特定字段组合在一起的,这些特定字段(例如“FD=360网络连接查看器”)表示的是特定程序匹配条件。特定字段中的文件信息为程序的EXE文件的信息(例如文件描述信息(FD)、内部名称信息(IN)、公司名称的数字签名信息(SP)等),这些信息作为特定程序匹配条件与待执行程序的特征信息进行匹配。与这些特定字段组合在一起的DLL-HIJACK字段中的DLL文件信息为满足特定程序匹配条件后需要检查的特定DLL文件信息。在本实施例中,所述DLL文件信息可以为DLL文件的名称。
例如,lpk.dll、usp10.dll、setupapi.dll(具体参照图3,在此不再一一列举)等单独的DLL_HIJACK字段中的DLL文件名称即为公共DLL文件信息,而360netview.dll、360nzp.dll、somkernl.dll等与特定字段组合在一起的DLL-HIJACK字段中DLL文件名称即为特定DLL文件信息。
对于每个待执行程序,在将该程序与本地鉴别条件进行匹配时,首先要获取单独的DLL_HIJACK字段中的DLL文件名称,然后再将该待执行程序的特征信息与特定字段中的信息进行匹配,获取与相匹配的特定字段组合在一起的DLL-HIJACK字段中的DLL文件名称,最后对获取到的所有的DLL文件名称进行判断。因为对于某些待执行程序来说,其没有明显区别于其它程序的信息,因此对于这些待执行程序,只能与单独的DLL_HIJACK字段进行匹配。
例如,获取到当前待执行程序的特征信息为文件描述信息“360网络连接查看器”,然后将该文件描述信息与本地鉴别条件进行匹配。首先获取所有单独的DLL_HIJACK字段中的DLL文件名称,如“lpk.dll”、“uspl0.dll”、“setupapi.dll”等;然后将文件描述信息“360网络连接查看器”与特定字段进行匹配,经过判断,其中的“|FD=360网络连接查看器|DLL_HIJACK=360netview.dll|”是与文件描述信息“360网络连接查看器”相匹配的信息,因此,获取与该特定字段组合在一起的DLL_HIJACK字段中的DLL文件名称“360netview.dll”;最后将上述获取到的“lpk.dll”、“uspl0.dll”、“setupapi.dll”等单独的DLL_HIJACK字段中的DLL文件名称与“360netview.dll”作为待执行程序需要检查的DLL文件信息。
子步骤a3,判断指定目录下是否存在所述需要检查的DLL文件信息,若存在,则确定所述待执行程序存在被劫持的DLL文件。
一般来说,DLL文件会存储在***目录中,如果在程序执行时需要调用某些DLL文件,则将这些DLL文件存储在指定目录下,因此存储在指定目录下的DLL文件即为该程序所调用的DLL文件。在本实施例中,所述指定目录为当前目录或者指定的相对目录。
所以,在经过上述子步骤a2获取到待执行程序需要检查的DLL文件信息之后,还需要进一步判断指定目录下是否存在所述需要检查的DLL文件信息。如果指定目录下存在所述需要检查的DLL文件信息,说明所述待执行程序存在被劫持的DLL文件,并且所述被劫持的DLL文件即为指定目录下存在的DLL文件,需要对这些被劫持的DLL文件进行查杀;如果指定目录下不存在所述需要检查的DLL文件信息,说明这些DLL文件不会被待执行程序加载,因此不需要对其进行查杀。
例如,仍然以上述举例进行说明,如果在步骤a2中获取到的待执行程序需要检查的DLL文件信息为“lpk.dll”、“usp10.dll”、“setupapi.dll”等单独的DLL_HIJACK字段中的DLL文件名称以及与特定字段组合在一起的DLL_HIJACK字段中的DLL文件名称“360netview.dll”,则判断指定目录下是否存在这些DLL文件名称。
例如,判断出指定目录下存在的文件名称为“lpk.dll”、“usp10.dll”和“360netview.dll”,则将DLL文件“lpk.dll”、“usp10.dll”和“360netview.dll”作为待执行程序被劫持的DLL文件。
需要说明的是,对应于上述实施例一,本实施例中的子步骤a1-子步骤a2为上述实施例一中的步骤S102的具体过程,子步骤a3为上述实施例一中的步骤S103的具体过程,本实施例在此不再详细论述。
步骤S302,获取所述待执行程序对应的EXE文件。
步骤S303,若指定目录下存在所述需要检查的DLL文件信息,则将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息上传至服务器。
其中,上传的文件的信息可以包括文件的哈希值、文件路径等信息,本发明实施例对此并不加以限制。
由于现有的主动防御只对程序的EXE文件进行检查,而不检查程序的DLL文件,如果恶意程序利用可信的白名单中的程序加载恶意DLL文件,则恶意程序就能绕过主动防御的拦截而成功执行。
因此,本发明实施例提出不仅对程序的EXE文件进行检查,对程序的DLL文件也进行检查,但是并不是对所有的DLL文件进行检查,而是通过与本地鉴别条件匹配,确定出程序中被劫持的DLL文件,然后对这些被劫持的DLL文件进行查杀。
具体的,对文件进行查杀的过程由服务器执行,因此,如果在步骤S201中判断出待执行程序中存在被劫持的DLL文件,并且确定出了被劫持的DLL文件,则将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息均上传至服务器,通过服务器对这些文件进行查杀;如果判断出待执行程序中不存在被劫持的DLL文件,则说明该待执行程序没有被恶意程序利用,此时只需要将待执行程序对应的EXE文件的信息上传至服务器即可。
例如,在步骤S301中判断出待执行程序被劫持的DLL文件分别为“lpk.dll”、“usp10.dll”和“360netview.dll”,则将DLL文件“lpk.dll”、“usp10.dll”和“360netview.dll”的信息和文件描述信息为“360网络连接查看器”的待执行程序对应的EXE文件的信息上传至服务器。
步骤S304,通过服务器对所述被劫持的DLL文件进行查杀。
服务器在接收到客户端上传的待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息之后,即依据所述文件信息对相应的文件进行查杀。
该步骤S304具体可以包括:
子步骤b1,通过服务器获取所述EXE文件的等级和所述被劫持的DLL文件的等级。
在本实施例中,所述等级包括安全等级、未知等级、可疑/高度可疑等级、以及恶意等级。对于等级的设置,可以设置等级为10-29时为安全等级(该等级的文件为白文件),等级为30-49时为未知等级(该等级的文件为灰文件),等级为50-69时为可疑/高度可疑等级(该等级的文件为可疑文件),等级大于或等于70时为恶意等级(该等级的文件为恶意文件)。当然,还可以设置所述等级为其他形式,本发明对此并不加以限制。
子步骤b2,依据所述EXE文件的等级和所述被劫持的DLL文件的等级对所述被劫持的DLL文件进行查杀。
具体的,可以通过用于查杀可移植执行体(Portable Execute,PE)类型文件的云查杀引擎,或者人工智能引擎(Qihoo Virtual Machine,QVM)对所述EXE文件和被劫持的DLL文件进行查杀。其中,PE类型文件通常指Windows操作***上的程序文件,常见的PE类型文件包括EXE、DLL、OCX、SYS、COM等类型文件。
杀毒引擎可以根据对文件等级的识别结果,按照杀毒引擎中保存的黑名单,和/或白名单对相应文件进行查杀。
对于具体的查杀过程,本领域技术人员根据实际经验进行相应处理即可,本实施例在此不再详细论述。
步骤S305,依据服务器查杀结果对所述待执行程序执行相应的操作。
服务器在获取到EXE文件和被劫持的DLL文件的等级之后,将获取到的等级下发给客户端,客户端依据服务器查杀结果对所述待执行程序执行相应的操作。
具体的,该步骤S305可以包括以下子步骤:
子步骤c1,当所述EXE文件的等级和所述被劫持的DLL文件的等级中至少一个为恶意等级时,拦截所述待执行程序的执行。
在本实施例中,所述被劫持的DLL文件为一个或多个,如果获取到的EXE文件的等级和被劫持的DLL文件的等级中存在恶意等级,则说明该待执行程序是有风险的,此时需要拦截所述待执行程序的执行。
子步骤c2,当所述EXE文件的等级和所述被劫持的DLL文件的等级均为安全等级时,允许所述待执行程序的执行。
子步骤c3,当所述EXE文件的等级和所述被劫持的DLL文件的等级中没有恶意等级,并且至少一个被劫持的DLL文件的等级高于所述EXE文件的等级时,获取其中最高的等级,将所述EXE文件的等级修改为所述最高的等级,允许所述待执行程序的执行,并拦截待执行程序执行后发起的可疑操作。
如果EXE文件的等级和被劫持的DLL文件的等级不满足上述子步骤c1和子步骤c2中的两种情况,则将EXE文件的等级修改为所述最高的等级,并且可以允许所述待执行程序的执行,此时由于待执行程序的EXE文件可能也存在风险,因此当待执行程序执行后发起可疑操作时,可以对这些可疑的操作进行拦截。
例如,在步骤S301中确定出待执行程序被劫持的DLL文件为“lpk.dll”、“usp10.dll”和“360netview.dll”,通过服务器获取到待执行程序的EXE文件的等级为安全等级,lpk.dll的等级为未知等级,usp10.dll的等级为未知等级,360netview.dll为可疑/高度可疑等级,其中最高的文件等级为可疑/高度可疑等级,此时,即将所述EXE文件的等级修改为可疑/高度可疑等级。
并且,由于EXE文件的等级被修改了,因此后续当该待执行程序执行某些可疑的操作时,即可通过EXE文件的等级判断该程序是否安全,如果EXE文件是可疑的,则可以对这些可疑操作进行拦截。
其中,可疑的操作可以为以下任意一种:文件操作、注册表操作、进程操作和网络操作。
例如,对于文件操作可以为对windows操作***相关的文件,或者一些装载量比较大的应用软件(如qq、阿里旺旺等),或者桌面的快捷方式等的操作;
对于注册表的操作可以是程序写入注册表自动加载,以及破坏注册表等;
对于进程操作可以是进程之间相互注入(一个进程在另一个进程中***并执行一些代码)、进程远线程操作、结束进程(例如有些恶意程序结束掉QQ进程,重新登录会截取到密码,或者进程后续的一些操作)等;
对于网络操作可以是安装驱动或服务、全局钩子注入,记录键盘操作、修改浏览器中网页内容等。
当然,还可以包括其他一些操作,本发明实施例对此并不加以限制。
需要说明的是,本实施例主要是针对恶意程序利用可信任的白名单中的程序加载恶意DLL文件的情况进行处理,因此,EXE文件的等级应为安全等级,如果有DLL文件的等级高于该EXE文件的等级,则修改EXE文件的等级。
步骤S306,定期检测所述本地鉴别条件是否满足升级条件,若满足,则从服务器下载新的鉴别条件,并通过重新加载所述新的鉴别条件完成所述本地鉴别条件的升级更新。
本实施例中的本地鉴别条件是需要定期升级更新的。具体的,可以在服务器中配置升级条件,客户端定期检测所述本地鉴别条件是否满足升级条件,当满足时,就从服务器下载新的本地鉴别条件,并用新的本地鉴别条件替换原有的本地鉴别条件,从而对原有的本地鉴别条件进行升级更新。
其中,升级条件可以根据本地鉴别条件的文件版本来判断,比如有更新的版本时则升级,也可以指定当本地版本满足某个条件时升级为一个指定版本,本发明实施例对此并不加以限制。
例如,如果发现了新的被利用的程序(QQ游戏),但是本地鉴别条件中不存在该程序,则可以在本地鉴别条件中增加一个特定程序匹配条件,其中包括该程序的特征信息(文件描述“QQ游戏”)以及满足该特定程序匹配条件后需要检查的DLL文件信息。
当然,还可以采用其他的方式对本地鉴别条件进行升级更新,本实施例对此并不加以限制。
最后,需要说明的是,本发明实施例主要是针对恶意程序利用可信任的白名单中的程序加载恶意DLL文件的情况进行处理。如果待执行程序是可信任的白名单中的程序,此时主动防御技术只检查程序的EXE文件,将会判断该程序是安全的,从而允许其执行,但是如果恶意程序利用该白名单中的程序加载恶意DLL文件,则该恶意程序也会成功执行。
因此,对于这种情况,本发明实施例通过在检测到待执行程序创建进程时,依据预先设置的本地鉴别条件检查所述待执行程序是否存在被劫持的DLL文件,如果待执行程序存在被劫持的DLL文件,则通过服务器对所述被劫持的DLL文件进行查杀,然后依据服务器查杀结果对所述待执行程序执行相应的操作。由此解决了恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题,取得了更加有效地拦截恶意程序的有益效果。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
实施例四:
参照图5,示出了根据本发明一个实施例的程序处理***的结构框图,所述***包括客户端501和服务器502,其中,
客户端501包括:
读取模块5011,适于当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;
匹配模块5012,适于将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;
确定模块5013,适于依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。
通过上述客户端的各个模块可以利用本地鉴别条件检测待执行程序是否存在被劫持的DLL文件,如果检测到待执行程序存在被劫持的DLL文件,则后续可以通过服务器对被劫持的DLL文件进行查杀,然后依据服务器查杀结果对所述待执行程序执行相应的操作。从而能够解决恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题,更加有效地拦截恶意程序。
实施例五:
参照图6,示出了根据本发明一个实施例的程序处理***的结构框图,所述***包括客户端601和服务器602。
其中,客户端601包括:检查模块6011、EXE文件获取模块6012、上传模块6013、处理模块6014和升级模块6015;服务器602包括查杀模块6021。
检查模块6011,适于当检测到待执行程序创建进程时,依据预先设置的本地鉴别条件检查所述待执行程序是否存在被劫持的DLL文件;
需要说明的是,上述检查模块主要是用于检查所述待执行程序是否存在被劫持的DLL文件,相对于上述实施例四来说,该检查模块可以包括上述实施例四中的读取模块5011、匹配模块5012和确定模块5013。
其中,所述待执行程序为白名单中的程序,所述本地鉴别条件存储在客户端本地目录下。
所述检查模块6011包括:
特征信息获取子模块,适于获取所述待执行程序的特征信息;
其中,所述待执行程序的特征信息可以包括以下信息中的至少一种:
待执行程序的文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、数字签名公司信息,以及待执行程序创建的进程的命令行信息、进程路径信息和父进程路径信息。
DLL文件信息获取子模块,适于通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL文件信息,将所述需要检查的DLL文件信息作为匹配结果;
其中,所述本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息。
所述程序匹配条件包括两种:公共程序匹配条件和特定程序匹配条件。
第一种:公共程序匹配条件
满足该公共程序匹配条件后需要检查的DLL文件信息为公共DLL文件信息,所述DLL文件信息获取子模块包括:
公共DLL文件信息获取单元,适于获取满足所述公共程序匹配条件后需要检查的公共DLL文件信息;
第一确定单元,适于将所述公共DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
第二种:特定程序匹配条件
满足该特定程序匹配条件后需要检查的DLL文件信息为特定DLL文件信息,所述DLL文件信息获取子模块包括:
匹配单元,适于将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;
所述特定程序匹配条件可以包括以下信息中的至少一种:
文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、公司名称的数字签名信息,以及进程的命令行信息、进程路径信息和父进程路径信息;
特定DLL文件信息获取单元,适于获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息;
第二确定单元,适于将所述特定DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
判断子模块,适于判断指定目录下是否存在所述需要检查的DLL文件信息,若存在,则确定所述待执行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件为指定目录下存在的DLL文件,所述指定目录为当前目录或者指定的相对目录。
需要说明的是,对应于上述实施例四,本实施例中的特征信息获取子模块和DLL文件信息获取子模块可以为上述实施例四中的匹配模块中包括的子模块,判断子模块可以为上述实施例四中的确定模块中包括的子模块,本实施例在此不再详细论述。
EXE文件获取模块6012,适于在服务器的查杀模块对所述被劫持的DLL文件进行查杀之前,获取所述待执行程序对应的EXE文件;
上传模块6013,适于将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息上传至服务器;
所述服务器602包括:
查杀模块6021,适于当客户端的检查模块的检查结果为存在时,对所述被劫持的DLL文件进行查杀;
所述查杀模块6021包括:
等级获取子模块,适于获取所述EXE文件的等级和所述被劫持的DLL文件的等级,所述等级包括安全等级、未知等级、可疑/高度可疑等级、以及恶意等级;
查杀子模块,适于依据所述EXE文件的等级和所述被劫持的DLL文件的等级对所述被劫持的DLL文件进行查杀。
所述客户端还包括:
处理模块6014,适于依据服务器查杀结果对所述待执行程序执行相应的操作;
其中,所述被劫持的DLL文件为一个或多个,所述处理模块4014包括:
程序拦截子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级中至少一个为恶意等级时,拦截所述待执行程序的执行;
执行子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级均为安全等级时,允许所述待执行程序的执行;
可疑操作拦截子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级中没有恶意等级,并且至少一个被劫持的DLL文件的等级高于所述EXE文件的等级时,获取其中最高的等级,将所述EXE文件的等级修改为所述最高的等级,允许所述待执行程序的执行,并拦截待执行程序执行后发起的可疑操作。
其中,所述可疑操作可以为以下任意一种:文件操作、注册表操作、进程操作和网络操作,当然,所述可疑操作还可以为其他的一些操作,本发明实施例对此并不加以限制。
升级模块6015,适于定期检测所述本地鉴别条件是否满足升级条件,若满足,则从服务器下载新的鉴别条件,并通过重新加载所述新的鉴别条件完成所述本地鉴别条件的升级更新;
其中,所述升级条件在服务器中进行配置。
本发明实施例的程序处理***可以依据本地鉴别条件检查待执行程序是否存在被劫持的DLL文件,并且对待执行程序被劫持的DLL文件进行查杀,然后依据服务器查杀结果对待执行程序执行相应的操作。由此解决了恶意程序利用可信的白名单中的程序加载恶意DLL文件而导致主动防御无法正常拦截恶意程序的问题,取得了更加有效地拦截恶意程序的有益效果。
对于上述程序处理***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1、图2和图3所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本申请的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的程序处理***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本文公开了A1、一种程序处理方法,包括:当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。A2、根据A1所述的方法,还包括:若存在,则通过服务器对所述被劫持的DLL文件进行查杀;依据服务器查杀结果对所述待执行程序执行相应的操作。A3、根据A1所述的方法,所述将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果,包括:获取所述待执行程序的特征信息;通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL文件信息,将所述需要检查的DLL文件信息作为所述匹配结果。A4、根据A3所述的方法,所述依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件,包括:判断指定目录下是否存在所述需要检查的DLL文件信息,若存在,则确定所述待执行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件为指定目录下存在的DLL文件,所述指定目录为当前目录或者指定的相对目录。A5、根据A3所述的方法,所述本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息。A6、根据A5所述的方法,所述程序匹配条件包括公共程序匹配条件,满足该公共程序匹配条件后需要检查的DLL文件信息为公共DLL文件信息,所述通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL信息,包括:获取满足所述公共程序匹配条件后需要检查的公共DLL文件信息;将所述公共DLL文件信息作为所述待执行程序需要检查的DLL文件信息。A7、根据A5所述的方法,所述程序匹配条件包括特定程序匹配条件,满足该特定程序匹配条件后需要检查的DLL文件信息为特定DLL文件信息,所述通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL信息,包括:将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息;将所述特定DLL文件信息作为所述待执行程序需要检查的DLL文件信息。A8、根据A7所述的方法,所述特定程序匹配条件包括以下信息中的至少一种:文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、公司名称的数字签名信息,以及进程的命令行信息、进程路径信息和父进程路径信息;所述待执行程序的特征信息包括以下信息中的至少一种:待执行程序的文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、数字签名公司信息,以及待执行程序创建的进程的命令行信息、进程路径信息和父进程路径信息。A9、根据A2所述的方法,在通过服务器对所述被劫持的DLL文件进行查杀之前,还包括:获取所述待执行程序对应的EXE文件;将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息上传至服务器;所述通过服务器对所述被劫持的DLL文件进行查杀,包括:通过服务器获取所述EXE文件的等级和所述被劫持的DLL文件的等级,所述等级包括安全等级、未知等级、可疑/高度可疑等级、以及恶意等级;依据所述EXE文件的等级和所述被劫持的DLL文件的等级对所述被劫持的DLL文件进行查杀。A10、根据A9所述的方法,所述被劫持的DLL文件为一个或多个,所述依据服务器查杀结果对所述待执行程序执行相应的操作,包括:当所述EXE文件的等级和所述被劫持的DLL文件的等级中至少一个为恶意等级时,拦截所述待执行程序的执行;当所述EXE文件的等级和所述被劫持的DLL文件的等级均为安全等级时,允许所述待执行程序的执行;当所述EXE文件的等级和所述被劫持的DLL文件的等级中没有恶意等级,并且至少一个被劫持的DLL文件的等级高于所述EXE文件的等级时,获取其中最高的等级,将所述EXE文件的等级修改为所述最高的等级,允许所述待执行程序的执行,并拦截待执行程序执行后发起的可疑操作。A11、根据A10所述的方法,所述可疑操作为以下任意一种:文件操作、注册表操作、进程操作和网络操作。A12、根据A1所述的方法,所述待执行程序为白名单中的程序。A13、根据A1所述的方法,所述本地鉴别条件存储在客户端本地目录下。A14、根据A1所述的方法,还包括:定期检测所述本地鉴别条件是否满足升级条件,若满足,则从服务器下载新的鉴别条件,并通过重新加载所述新的鉴别条件完成所述本地鉴别条件的升级更新;其中,所述升级条件在服务器中进行配置。
本文公开了B15、一种程序处理***,包括客户端和服务器,其中,所述客户端包括:读取模块,适于当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;匹配模块,适于将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;确定模块,适于依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件。B16、根据B15所述的***,所述服务器包括:查杀模块,适于当客户端的确定模块的检查结果为存在时,对所述被劫持的DLL文件进行查杀;所述客户端还包括:处理模块,适于依据服务器查杀结果对所述待执行程序执行相应的操作。B17、根据B15所述的***,所述匹配模块包括:特征信息获取子模块,适于获取所述待执行程序的特征信息;DLL文件信息获取子模块,适于通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL文件信息,将所述需要检查的DLL文件信息作为所述匹配结果。B18、根据B17所述的***,所述确定模块包括:判断子模块,适于判断指定目录下是否存在所述需要检查的DLL文件信息,若存在,则确定所述待执行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件为指定目录下存在的DLL文件,所述指定目录为当前目录或者指定的相对目录。B19、根据B17所述的***,所述本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息。B20、根据B19所述的***,所述程序匹配条件包括公共程序匹配条件,满足该公共程序匹配条件后需要检查的DLL文件信息为公共DLL文件信息,所述DLL文件信息获取子模块包括:公共DLL文件信息获取单元,适于获取满足所述公共程序匹配条件后需要检查的公共DLL文件信息;第一确定单元,适于将所述公共DLL文件信息作为所述待执行程序需要检查的DLL文件信息。B21、根据B19所述的***,所述程序匹配条件包括特定程序匹配条件,满足该特定程序匹配条件后需要检查的DLL文件信息为特定DLL文件信息,所述DLL文件信息获取子模块包括:匹配单元,适于将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;特定DLL文件信息获取单元,适于获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息;第二确定单元,适于将所述特定DLL文件信息作为所述待执行程序需要检查的DLL文件信息。B22、根据B21所述的***,所述特定程序匹配条件包括以下信息中的至少一种:文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、公司名称的数字签名信息,以及进程的命令行信息、进程路径信息和父进程路径信息;所述待执行程序的特征信息包括以下信息中的至少一种:待执行程序的文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、数字签名公司信息,以及待执行程序创建的进程的命令行信息、进程路径信息和父进程路径信息。B23、根据B16所述的***,所述客户端还包括:EXE文件获取模块,适于在服务器的查杀模块对所述被劫持的DLL文件进行查杀之前,获取所述待执行程序对应的EXE文件;上传模块,适于将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息上传至服务器;所述查杀模块包括:等级获取子模块,适于获取所述EXE文件的等级和所述被劫持的DLL文件的等级,所述等级包括安全等级、未知等级、可疑/高度可疑等级、以及恶意等级;查杀子模块,适于依据所述EXE文件的等级和所述被劫持的DLL文件的等级对所述被劫持的DLL文件进行查杀。B24、根据B23所述的***,所述被劫持的DLL文件为一个或多个,所述处理模块包括:程序拦截子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级中至少一个为恶意等级时,拦截所述待执行程序的执行;执行子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级均为安全等级时,允许所述待执行程序的执行;可疑操作拦截子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级中没有恶意等级,并且至少一个被劫持的DLL文件的等级高于所述EXE文件的等级时,获取其中最高的等级,将所述EXE文件的等级修改为所述最高的等级,允许所述待执行程序的执行,并拦截待执行程序执行后发起的可疑操作。B25、根据B24所述的***,所述可疑操作为以下任意一种:文件操作、注册表操作、进程操作和网络操作。B26、根据B15所述的***,所述待执行程序为白名单中的程序。B27、根据B15所述的***,所述本地鉴别条件存储在客户端本地目录下。B28、根据B15所述的***,所述客户端还包括:升级模块,适于定期检测所述本地鉴别条件是否满足升级条件,若满足,则从服务器下载新的鉴别条件,并通过重新加载所述新的鉴别条件完成所述本地鉴别条件的升级更新;其中,所述升级条件在服务器中进行配置。
Claims (16)
1.一种程序处理方法,包括:
当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;其中,所述本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息;
将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;其中,所述匹配结果包括所述待执行程序需要检查的DLL文件信息;
依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件;
若存在,则通过服务器对所述被劫持的DLL文件进行查杀,依据服务器查杀结果对所述待执行程序执行相应的操作;
其中,所述查杀结果包括所述待执行程序对应的EXE文件的等级和所述被劫持的DLL文件的等级;所述依据服务器查杀结果对所述待执行程序执行相应的操作,包括:当所述EXE文件的等级和所述被劫持的DLL文件的等级中没有恶意等级,并且至少一个被劫持的DLL文件的等级高于所述EXE文件的等级时,获取其中最高的等级,将所述EXE文件的等级修改为所述最高的等级,允许所述待执行程序的执行,并拦截待执行程序执行后发起的可疑操作。
2.根据权利要求1所述的方法,所述将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果,包括:
获取所述待执行程序的特征信息;
通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL文件信息,将所述待执行程序需要检查的DLL文件信息作为所述匹配结果。
3.根据权利要求2所述的方法,所述依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件,包括:
判断指定目录下是否存在所述待执行程序需要检查的DLL文件信息,若存在,则确定所述待执行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件为指定目录下存在的DLL文件,所述指定目录为当前目录或者指定的相对目录。
4.根据权利要求2所述的方法,所述程序匹配条件包括公共程序匹配条件,满足该公共程序匹配条件后需要检查的DLL文件信息为公共DLL文件信息,
所述通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL信息,包括:
获取满足所述公共程序匹配条件后需要检查的公共DLL文件信息;
将所述公共DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
5.根据权利要求2所述的方法,所述程序匹配条件包括特定程序匹配条件,满足该特定程序匹配条件后需要检查的DLL文件信息为特定DLL文件信息,
所述通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL信息,包括:
将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;
获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息;
将所述特定DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
6.根据权利要求5所述的方法,
所述特定程序匹配条件包括以下信息中的至少一种:
文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、公司名称的数字签名信息,以及进程的命令行信息、进程路径信息和父进程路径信息;
所述待执行程序的特征信息包括以下信息中的至少一种:
待执行程序的文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、数字签名公司信息,以及待执行程序创建的进程的命令行信息、进程路径信息和父进程路径信息。
7.根据权利要求1所述的方法,
在通过服务器对所述被劫持的DLL文件进行查杀之前,还包括:
获取所述待执行程序对应的EXE文件;
将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息上传至服务器;
所述通过服务器对所述被劫持的DLL文件进行查杀,包括:
通过服务器获取所述EXE文件的等级和所述被劫持的DLL文件的等级,所述等级包括安全等级、未知等级、可疑/高度可疑等级、以及恶意等级;
依据所述EXE文件的等级和所述被劫持的DLL文件的等级对所述被劫持的DLL文件进行查杀。
8.根据权利要求7所述的方法,所述被劫持的DLL文件为一个或多个,
所述依据服务器查杀结果对所述待执行程序执行相应的操作,还包括:
当所述EXE文件的等级和所述被劫持的DLL文件的等级中至少一个为恶意等级时,拦截所述待执行程序的执行;
当所述EXE文件的等级和所述被劫持的DLL文件的等级均为安全等级时,允许所述待执行程序的执行。
9.一种程序处理***,包括客户端和服务器,其中,
所述客户端包括:
读取模块,适于当检测到待执行程序创建进程时,读取预先设置的本地鉴别条件;其中,所述本地鉴别条件中包括多个程序匹配条件和满足该程序匹配条件后需要检查的DLL文件信息;
匹配模块,适于将所述待执行程序与所述本地鉴别条件进行匹配,得到匹配结果;其中,所述匹配结果包括所述待执行程序需要检查的DLL文件信息;
确定模块,适于依据所述匹配结果确定所述待执行程序是否存在被劫持的DLL文件;
所述服务器包括:
查杀模块,适于当客户端的确定模块的检查结果为存在时,对所述被劫持的DLL文件进行查杀;
所述客户端还包括:
处理模块,适于依据服务器查杀结果对所述待执行程序执行相应的操作;
其中,所述查杀结果包括所述待执行程序对应的EXE文件的等级和所述被劫持的DLL文件的等级;所述处理模块包括:可疑操作拦截子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级中没有恶意等级,并且至少一个被劫持的DLL文件的等级高于所述EXE文件的等级时,获取其中最高的等级,将所述EXE文件的等级修改为所述最高的等级,允许所述待执行程序的执行,并拦截待执行程序执行后发起的可疑操作。
10.根据权利要求9所述的***,所述匹配模块包括:
特征信息获取子模块,适于获取所述待执行程序的特征信息;
DLL文件信息获取子模块,适于通过将所述待执行程序的特征信息与所述本地鉴别条件进行匹配,获得所述待执行程序需要检查的DLL文件信息,将所述待执行程序需要检查的DLL文件信息作为所述匹配结果。
11.根据权利要求10所述的***,所述确定模块包括:
判断子模块,适于判断指定目录下是否存在所述待执行程序需要检查的DLL文件信息,若存在,则确定所述待执行程序存在被劫持的DLL文件;其中,所述被劫持的DLL文件为指定目录下存在的DLL文件,所述指定目录为当前目录或者指定的相对目录。
12.根据权利要求10所述的***,所述程序匹配条件包括公共程序匹配条件,满足该公共程序匹配条件后需要检查的DLL文件信息为公共DLL文件信息,
所述DLL文件信息获取子模块包括:
公共DLL文件信息获取单元,适于获取满足所述公共程序匹配条件后需要检查的公共DLL文件信息;
第一确定单元,适于将所述公共DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
13.根据权利要求10所述的***,所述程序匹配条件包括特定程序匹配条件,满足该特定程序匹配条件后需要检查的DLL文件信息为特定DLL文件信息,
所述DLL文件信息获取子模块包括:
匹配单元,适于将所述待执行程序的特征信息与所述特定程序匹配条件进行匹配;
特定DLL文件信息获取单元,适于获取满足相匹配的特定程序匹配条件后需要检查的特定DLL文件信息;
第二确定单元,适于将所述特定DLL文件信息作为所述待执行程序需要检查的DLL文件信息。
14.根据权利要求13所述的***,
所述特定程序匹配条件包括以下信息中的至少一种:
文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、公司名称的数字签名信息,以及进程的命令行信息、进程路径信息和父进程路径信息;
所述待执行程序的特征信息包括以下信息中的至少一种:
待执行程序的文件名称信息、文件描述信息、文件大小信息、文件版本信息、文件特征值信息、内部名称信息、公司名称信息、版权声明信息、产品名称信息、产品版本信息、数字签名公司信息,以及待执行程序创建的进程的命令行信息、进程路径信息和父进程路径信息。
15.根据权利要求9所述的***,
所述客户端还包括:
EXE文件获取模块,适于在服务器的查杀模块对所述被劫持的DLL文件进行查杀之前,获取所述待执行程序对应的EXE文件;
上传模块,适于将所述待执行程序对应的EXE文件的信息和所述被劫持的DLL文件的信息上传至服务器;
所述查杀模块包括:
等级获取子模块,适于获取所述EXE文件的等级和所述被劫持的DLL文件的等级,所述等级包括安全等级、未知等级、可疑/高度可疑等级、以及恶意等级;
查杀子模块,适于依据所述EXE文件的等级和所述被劫持的DLL文件的等级对所述被劫持的DLL文件进行查杀。
16.根据权利要求15所述的***,所述被劫持的DLL文件为一个或多个,
所述处理模块还包括:
程序拦截子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级中至少一个为恶意等级时,拦截所述待执行程序的执行;
执行子模块,适于当所述EXE文件的等级和所述被劫持的DLL文件的等级均为安全等级时,允许所述待执行程序的执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210448648.6A CN102999721B (zh) | 2012-11-09 | 2012-11-09 | 一种程序处理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210448648.6A CN102999721B (zh) | 2012-11-09 | 2012-11-09 | 一种程序处理方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999721A CN102999721A (zh) | 2013-03-27 |
CN102999721B true CN102999721B (zh) | 2015-09-16 |
Family
ID=47928276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210448648.6A Active CN102999721B (zh) | 2012-11-09 | 2012-11-09 | 一种程序处理方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999721B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123489A (zh) * | 2014-07-02 | 2014-10-29 | 珠海市君天电子科技有限公司 | 可执行程序的监控方法和装置 |
CN104331664B (zh) * | 2014-11-27 | 2017-08-08 | 南京大学 | 一种在取证场景下自动分析未知恶意程序特征的方法 |
CN109815692B (zh) * | 2017-11-20 | 2023-02-10 | 腾讯科技(深圳)有限公司 | 识别安装应用的方法和装置、存储介质及电子装置 |
CN109240707A (zh) * | 2018-09-29 | 2019-01-18 | 珠海市君天电子科技有限公司 | 防止恶意动态链接库dll文件注入的方法和装置 |
CN112084502B (zh) * | 2020-09-18 | 2024-06-21 | 珠海豹趣科技有限公司 | 一种软件识别方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1838136A (zh) * | 2006-04-24 | 2006-09-27 | 南京树声科技有限公司 | 在计算机存储设备上查找有害程序的方法 |
CN102081722A (zh) * | 2011-01-04 | 2011-06-01 | 奇智软件(北京)有限公司 | 一种保护指定应用程序的方法及装置 |
CN102663288A (zh) * | 2012-03-22 | 2012-09-12 | 奇智软件(北京)有限公司 | 病毒查杀方法及装置 |
-
2012
- 2012-11-09 CN CN201210448648.6A patent/CN102999721B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1838136A (zh) * | 2006-04-24 | 2006-09-27 | 南京树声科技有限公司 | 在计算机存储设备上查找有害程序的方法 |
CN102081722A (zh) * | 2011-01-04 | 2011-06-01 | 奇智软件(北京)有限公司 | 一种保护指定应用程序的方法及装置 |
CN102663288A (zh) * | 2012-03-22 | 2012-09-12 | 奇智软件(北京)有限公司 | 病毒查杀方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102999721A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103001947B (zh) | 一种程序处理方法和*** | |
CN102999720B (zh) | 程序鉴别方法和*** | |
CN102982281B (zh) | 程序状况检测方法和*** | |
CN103077353B (zh) | 主动防御恶意程序的方法和装置 | |
US9596257B2 (en) | Detection and prevention of installation of malicious mobile applications | |
CN102902919B (zh) | 一种可疑操作的识别处理方法、装置和*** | |
CN107038045B (zh) | 加载库文件的方法及装置 | |
CN105427096B (zh) | 支付安全沙箱实现方法及***与应用程序监控方法及*** | |
CN102332072B (zh) | 用于检测恶意软件和管理恶意软件相关信息的***和方法 | |
CN103020524B (zh) | 计算机病毒监控*** | |
Homayoun et al. | A blockchain-based framework for detecting malicious mobile applications in app stores | |
CN103281325A (zh) | 基于云安全的文件处理方法及装置 | |
CN102882875B (zh) | 主动防御方法及装置 | |
CN103049695B (zh) | 一种计算机病毒的监控方法和装置 | |
CN102999721B (zh) | 一种程序处理方法和*** | |
CN104885092A (zh) | 用于操作***的安全***和方法 | |
CN104517054A (zh) | 一种检测恶意apk的方法、装置、客户端和服务器 | |
CN103473501B (zh) | 一种基于云安全的恶意软件追踪方法 | |
CN103679031A (zh) | 一种文件病毒免疫的方法和装置 | |
CN104536981A (zh) | 实现浏览器安全的方法、浏览器客户端和装置 | |
CN104036019A (zh) | 网页链接的开启方法及装置 | |
CN103279707A (zh) | 一种用于主动防御恶意程序的方法、设备及*** | |
CN103793649A (zh) | 通过云安全扫描文件的方法和装置 | |
CN104572197A (zh) | 一种启动项的处理方法和装置 | |
CN102857519B (zh) | 主动防御*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220829 Address after: No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science and Technology Park, High-tech Zone, Binhai New District, Tianjin 300000 Patentee after: 3600 Technology Group Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |