一种恶意程序检测的方法及装置与流程

文档序号:11156186阅读:280来源:国知局
一种恶意程序检测的方法及装置与制造工艺

本申请涉及计算机领域,特别涉及一种恶意程序检测的方法及装置。



背景技术:

随机计算机技术的发展,各种病毒程序也日益增多,为了保证计算机系统的安全,病毒查杀技术需要得到有效发展。

目前,传统的基于特征码的静态反病毒查杀的方式无法解决当前日益增多的高级威胁,只能解决已知的病毒威胁,对于日益变化的新型病毒却无能为力。

如,现有的杀毒软件对于提权类的病毒样本检测只能根据具体的安全漏洞提取特征,并且依据提取特征进行检测,因此只能检测出利用已经公开的提权类安全漏洞的病毒样本,无法解决检测出利用未知的提权类安全漏洞。

因此,需要对病毒查杀技术作出进一步强化。



技术实现要素:

本申请实施例提供一种恶意程序检测的方法及装置,用以提高对新型高级病毒的查杀能力。

本申请实施例提供的具体技术方案如下:

一种恶意程序检测的方法,包括:

采用普通权限运行程序样本,确定程序样本运行过程中产生的关联进程;

每确定一个关联进程,对当前确定的一个关联进程的运行状态进行监控,并按照设定周期记录所述当前确定的一个关联进程的权限状态信息;

基于记录的所有关联进程的权限状态信息,当确定任意一关联进程的权限等级得到提升时,判定所述程序样本为恶意程序。

较佳的,所述关联进程至少包括以下进程中的一种或任意组合:

所述程序样本自身所调用的进程;

所述程序样本在运行过程中创建的新进程;

在所述程序样本运行过程中,被所述程序样本注入恶意代码的进程。

较佳的,确定一个关联进程后,对所述一个关联进程的运行状态进行监控,并按照设定周期记录所述一个关联进程的权限状态信息,包括:

确定所述一个关联进程后,在所述一个关联进程中注入预设的监控代码,通过所述监控代码对所述一个关联进程的运行状态进行监控,以及通过所述监控代码定期调用系统API,读取并记录所述一个关联进程的权限状态信息。

确定一个关联进程后,对所述一个关联进程的运行状态进行监控,并按照设定周期记录所述一个关联进程的权限状态信息,包括:

较佳的,确定所述一个关联进程后,通过应用层程序对所述一个关联进程的运行状态进行监控,以及通过系统内核进程数据结构中预设的系统API,读取并记录所述一个关联进程的权限状态信息。

较佳的,基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级得到提升时,判定所述程序样本为恶意程序,包括:

基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高时,直接判定所述程序样本为恶意程序;或者,

基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高至预设等级范围时,判定所述程序样本为恶意程序。

一种恶意程序检测的装置,包括:

运行单元,用于采用普通权限运行程序样本,确定程序样本运行过程中产生的关联进程;

监控单元,用于每确定一个关联进程,对当前确定的一个关联进程的运行 状态进行监控,并按照设定周期记录所述当前确定的一个关联进程的权限状态信息;

判定单元,用于基于记录的所有关联进程的权限状态信息,当确定任意一关联进程的权限等级得到提升时,判定所述程序样本为恶意程序。

较佳的,所述关联进程至少包括以下进程中的一种或任意组合:

所述程序样本自身所调用的进程;

所述程序样本在运行过程中创建的新进程;

在所述程序样本运行过程中,被所述程序样本注入恶意代码的进程。

较佳的,确定一个关联进程后,对所述一个关联进程的运行状态进行监控,并按照设定周期记录所述一个关联进程的权限状态信息时,所述监控单元用于:

确定所述一个关联进程后,在所述一个关联进程中注入预设的监控代码,通过所述监控代码对所述一个关联进程的运行状态进行监控,以及通过所述监控代码定期调用系统API,读取并记录所述一个关联进程的权限状态信息。

较佳的,确定一个关联进程后,对所述一个关联进程的运行状态进行监控,并按照设定周期记录所述一个关联进程的权限状态信息时,所述监控单元用于:

确定所述一个关联进程后,通过应用层程序对所述一个关联进程的运行状态进行监控,以及通过系统内核进程数据结构中预设的系统API,读取并记录所述一个关联进程的权限状态信息。

较佳的,基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级得到提升时,判定所述程序样本为恶意程序时,所述判定单元用于:

基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高时,直接判定所述程序样本为恶意程序;或者,

基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等 级相较上一次的记录结果等级提高至预设等级范围时,判定所述程序样本为恶意程序。

综上所述,本申请实施例中,将程序样本放至在沙盒系统中以普通权限(非administrator)运行,并对程序样本产生的各类关联进程进行实时监控,记录各个关联进程的权限状态信息,确定任意一关联进程的权限得到提升时,判定程序样本为恶意程序。这样,可以不依赖于于已知的安全漏洞的特征进行恶意程序检测,即使针对新的高级威胁,也可以准确定义出哪些程序样本为恶意程序,大大提升了未知病毒的检测成功率。

附图说明

图1A为本申请实施例中恶意程序检测的流程图;

图1B为本申请实施例中关联进程示意图;

图2为本申请实施例中恶意程序检测的装置功能结构示意图。

具体实施方式

下面合附图对本申请优选的实施方式进行详细说明。

当前最新的操作系统如windows、linux等,都实现权限划分机制,并且一般的用户只能够使用默认的权限(通常为普通权限,而非高权限),满足日常的使用需求即可,运行程序需要高权限时都需要用户进行确认或者输入密码,从而保证计算机系统不被恶意程序肆意破坏。如,windows7,默认一般的用户是没有administrator权限的,当运行程序需要administrator或者System权限时,会弹出用户账户控制(User Account Control,UAC)提示框,提示用户输入密码或者进行确认操作。Linux系统同样如此,建议一般的用户使用非root权限,只有在需要使用root权限时才进行切换。

发明人经研究发现,对程序样本的运行状态进行监控及行为分析,判断其在运行过程中是否进行的权限提升,从而判定其是否为恶意程序(如,病毒程 度)。其中,所谓行为分析:是指通过分析程序的动态行为,对行为匹配一定的规则或者算法分析出程序是否恶意或者进行程序分类;所谓权限提升:简称提权,现有的操作系统为了安全性均引入了权限的概念,不同的用户有着不同的权限,权限存在高低之分,若低权限提升到高权限则称之为提权;所谓恶意程序:又称恶意软件,指能够在计算机系统中进行非授权操作的程序。

可选的,根据本申请至少一个实施例,对程序样本的运行状态监控并通过判断其在运行过程中是否进行的权限提升来判定其是否为恶意病毒的过程,在沙盒系统中执行。

参阅图1A所示,本申请实施例中,进行恶意程序检测的详细流程如下:

步骤100:采用普通权限运行程序样本,确定程序样本运行过程中产生的关联进程。

本申请实施例中,例如可以将未知的程序样本投入沙盒系统的虚拟机中运行。

沙盒系统,是一个程序样本的行为分析系统,可以调度程序样本,投入虚拟机进行分析,再通过驱动程序和应用层程序等方式记录程序样本运行的所有行为,然后通过分析算法、规则对这些行为进行分析、定性和归类。

本申请实施例中,在采用普通权限运行程序样本后,需要记录程序样本运行过程中产生的所有关联进程,所谓关联进程,可以是程序样本自身所调用的进程,可以是程序样本在运行过程中创建的新进程,还可以是程序样本运行过程中,被程序样本注入恶意代码的进程等等,可以是其中的一种也可以是任意组合。

例如,参阅图1B所示,运行待检测程序样本Sample.exe后,调用了进程1,而在进程1运行过程中新建了进程2、进程4、进程N,以及进程1运行过程中,向进程3中注入了恶意代码,则进程1、进程2、进程3、进程4、进程N均为关联进程。

此方法不仅可以应用在沙盒系统中,还可以应用在所有以防御为目的的系 统上,如,可以应用在客户端防御为目的的主机入侵检测系统上,通过检测权限变化,防御web服务器被提权。

步骤110:每确定一个关联进程,对当前确定的一个关联进程的运行状态进行监控,并按照设定周期记录上述当前确定的一个关联进程的权限状态信息。

具体的,在确定程序样本对应的关联进程的过程中,每确定一个关联进程,便需要对其进行监控,各个关联进程的监控流程可以是并行的。

下面以关联进程A为例,介绍步骤110的具体执行过程,具体可以采用但不限于以下两种方式实现:

第一种方式为:确定关联进程A后,在关联进程A中注入预设的监控代码,通过该监控代码对关联进程A的运行状态进行监控,以及通过该监控代码定期调用系统应用程序接口(Application Programming Interface,API),读取并记录关联进程A的权限状态信息。

在第一种方式下,在关联进程A中注入监控代码,其目的是通过运行监控代码对关联进程A进行实时监控,包括但不限于:监控关联进程A的文件操作流程、监控关联进程A的网络行为、监控关联进程A的权限状态信息等等;通过监控代码监控到这些信息后,需要实时地将关联进程A的监控结果记录在日志文件中,其中,在运行监控代码后,需要通过监控代码不停地循环调用系统API,以实时读取并记录关联进程A的权限状态信息,如,window系统下的安全标识符(security identifier,SID),或者,Linux系统下的用户身份证明(User Identification,UID),较佳的,关联进程A的权限状态信息记录在日志文件中。

第二种方式为:确定关联进程A后,通过应用层程序对关联进程A的运行状态进行监控,以及通过系统内核进程数据结构中预设的系统API,读取并记录关联进程A的权限状态信息。

在第二种方式下,可以不向关联进程A注入监控代码,而是通过系统内核 数据结构中自带的系统API,来实时地读取并记录关联进程A的权限状态信息,较佳的,该权限状态信息记录在日志文件中。

上述两种方式均可以称为hook方式,即在目标控制进程中添加自定义的回调程序,以便处理一些自定义的需求。

另一方面,上述监控代码,较佳的,可以通过动态链接库实现,即.dll文件,但并不限于此,在此不再赘述。

步骤120:基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级得到提升时,判定程序样本为恶意程序。

具体的,在执行步骤120时,可以执行但不限于以下方式:

第一种方式为:基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高时,直接判定程序样本为恶意程序。

在第一种方式下,一旦确定程序样本的关联进行的权限有所提升,便立即判定程序样本为恶意程序,以防止程序样本权限提升后在短时间内注入恶意代码。

第二种方式为:基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高至预设等级范围时,判定程序样本为恶意程序。

在第二种方式下,确定程序样本的关联进程的权限在合理范围内提升时,并不会判定其为恶意程序,只有当判定程序样本的关联进程的权限提升至危险等级(如,管理员等级),才会确定程序样本为恶意程序,以免于误判断所带来了资源消耗。

实际应用中,病毒通常需要进行很多危险的操作,比如,写入系统目录、替换系统文件、安装驱动模块实现系统驻留,都需要administrator、system权限。而很多情况下,一般用户的权限都是非administrator权限,因此病毒所涉及的关联进程需要在运行之前进行提权,如果按照常规的方法弹出提示框,会 被对安全有了解的用户察觉到,因此,通常会利用系统的安全漏洞进行悄无声息的提权操作。同时一般利用系统的安全漏洞进行提权的病毒属于高级威胁,因此,本申请实施例将重点关注放在程序样本涉及的关联进程所执行的提权操作上,不但提高了恶意程序检测的准确率,也没有令检测步骤复杂化,即没有给系统运维带来不必要的负荷,是最理想的高级威胁查杀手段。

基于上述实施例,参阅图2所示,本申请实施例中,用于恶意程序检测的装置包括运行单元20、监控单元21和判定单元22,包括:

运行单元20,用于采用普通权限运行程序样本,确定程序样本运行过程中产生的关联进程;

监控单元21,用于每确定一个关联进程,对当前确定的一个关联进程的运行状态进行监控,并按照设定周期记录上述当前确定的一个关联进程的权限状态信息;

判定单元22,用于基于记录的所有关联进程的权限状态信息,当确定任意一关联进程的权限等级得到提升时,判定上述程序样本为恶意程序。

较佳的,上述关联进程至少包括以下进程中的一种或任意组合:

上述程序样本在运行过程中创建的新进程;

上述程序样本在运行过程中创建服务时所调用的进程;

在上述程序样本运行过程中,被上述程序样本注入恶意代码的进程。

较佳的,确定一个关联进程后,对上述一个关联进程的运行状态进行监控,并按照设定周期记录上述一个关联进程的权限状态信息时,上述监控单元21用于:

确定上述一个关联进程后,在上述一个关联进程中注入预设的监控代码,通过上述监控代码对上述一个关联进程的运行状态进行监控,以及通过上述监控代码定期调用系统API,读取并记录上述一个关联进程的权限状态信息。

较佳的,确定一个关联进程后,对上述一个关联进程的运行状态进行监控,并按照设定周期记录上述一个关联进程的权限状态信息时,上述监控单元21 用于:

确定上述一个关联进程后,通过应用层程序对上述一个关联进程的运行状态进行监控,以及通过系统内核进程数据结构中预设的系统API,读取并记录上述一个关联进程的权限状态信息。

较佳的,基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级得到提升时,判定上述程序样本为恶意程序时,上述判定单元22用于:

基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高时,直接判定上述程序样本为恶意程序;或者,

基于记录的所有关联进程的权限状态信息,确定任意一关联进程的权限等级相较上一次的记录结果等级提高至预设等级范围时,判定上述程序样本为恶意程序。

综上所述,本申请实施例中,将程序样本放至在沙盒系统中以普通权限(即非administrator权限)运行,并对程序样本产生的各类关联进程进行实时监控,记录各个关联进程的权限状态信息,确定任意一关联进程的权限得到提升时,判定程序样本为恶意程序。这样,可以不依赖于于已知的安全漏洞的特征进行恶意程序检测,即使针对新的高级威胁,也可以准确定义出哪些程序样本为恶意程序,大大提升了未知病毒的检测成功率。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1