首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

恶意程序检测方法及装置 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京奇虎科技有限公司

摘要:本发明公开了一种恶意程序检测方法及装置,所述方法包括:监听模拟鼠标点击操作和进程创建操作;在监听到模拟鼠标点击操作时,判断模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;若模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;判断所述未知程序的文件名是否为目标进程的进程路径的子串;若所述未知程序的文件名为所述目标进程的进程路径的子串,则根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。本发明提供的恶意程序检测方法及装置,能够检测出通过MSAA技术模拟鼠标点击启动的恶意程序。

主权项:1.一种恶意程序检测方法,其特征在于,包括:监听模拟鼠标点击操作和进程创建操作;在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;若所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;若所述未知程序的文件名为所述目标进程的进程路径的子串,则根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。

全文数据:恶意程序检测方法及装置技术领域本发明涉及数据安全技术领域,具体涉及一种恶意程序检测方法及装置。背景技术随着计算机在世界范围内的广泛使用,恶意程序导致的防护方法和软件故障亦在持续扩展。由于恶意程序具有感染性、复制性以及破坏性,其已成为困扰计算机使用的一个重大问题。恶意程序是指任何故意创建用来执行未经授权并通常是有害行为的软件程序,其被秘密植入用户系统中,以盗取用户机密信息,最终破坏用户操作系统或者导致其他危害出现。陷门、逻辑炸弹、特洛伊木马、蠕虫、细菌、病毒等,都可以称之为恶意程序。恶意程序对计算机设备以及用户造成的危害是巨大的,因而如何对恶意程序进行检测就显得尤为重要。随着恶意程序呈现爆发式的增长,特征库的生成与更新又通常滞后于恶意程序的产生,传统通过特征库匹配对恶意程序进行检测的方式越来越力不从心,于是出现了主动防御机制。主动防御机制是基于程序行为进行自主分析的实时防护技术,不以恶意程序的特征作为判断依据,而是从恶意程序的定义出发,直接将程序行为作为判断依据,解决了传统安全软件无法防御未知恶意程序的弊端,从技术上实现了恶意程序的主动防御。然而,对于通过MSAAMicrosoftActiveAccessibility技术模拟鼠标点击启动恶意程序的操作,恶意程序被启动后产生的进程链信息与用户主动运行正常程序产生的进城链信息完全相同,主动防御机制会将恶意程序的启动误认为是用户的自主行为。发明内容本发明所要解决的是主动防御机制无法检测出通过MSAA技术模拟鼠标点击启动恶意程序的问题。本发明通过下述技术方案实现:一种恶意程序检测方法,包括:监听模拟鼠标点击操作和进程创建操作;在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;若所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;若所述未知程序的文件名为所述目标进程的进程路径的子串,则根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。可选的,所述监听模拟鼠标点击操作包括:对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子;和或对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。可选的,所述监听进程创建操作包括:对程序管理器进程中实现进程创建的函数挂接钩子。可选的,所述判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用包括:对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈;根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。可选的,所述解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID包括:通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名;通过线程环境块获得所述线程ID。可选的,所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差。可选的,在所述根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序之后,还包括:若所述未知程序为恶意程序,则生成告警信息。可选的,在所述生成告警信息之后,还包括:通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述告警信息发送给所述用户。基于同样的发明构思,本发明还提供一种恶意程序检测装置,包括:第一监听模块,用于监听模拟鼠标点击操作;第二监听模块,用于监听进程创建操作;第一判断模块,用于在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;解析模块,用于在所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用时,解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;第二判断模块,用于判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;分析模块,用于在所述未知程序的文件名为所述目标进程的进程路径的子串时,根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。可选的,所述第一监听模块包括:第一挂接模块,用于对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子;和或第二挂接模块,用于对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。可选的,所述第二监听模块包括:第三挂接模块,用于对程序管理器进程中实现进程创建的函数挂接钩子。可选的,所述第一判断模块包括:调用栈获得模块,用于对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈;确定模块,用于根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。可选的,所述解析模块包括:文件名获得模块,用于通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名;线程ID获得模块,用于通过线程环境块获得所述线程ID。可选的,所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差。可选的,所述恶意程序检测装置还包括:告警信息生成模块,用于在所述未知程序为恶意程序时,生成告警信息。可选的,所述恶意程序检测装置还包括:发送模块,用于通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述告警信息发送给所述用户。基于同样的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述恶意程序检测方法。基于同样的发明构思,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述恶意程序检测方法。本发明与现有技术相比,具有如下的优点和有益效果:本发明提供的恶意程序检测方法及装置,在监听到模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;若所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;若所述未知程序的文件名为所述目标进程的进程路径的子串,则根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。由于本发明提供的恶意程序检测方法及装置,在监听到通过IAccessible接口发起的远程过程调用的模拟鼠标点击操作时,是根据为所述模拟鼠标点击操作创建的进程ID、为所述模拟鼠标点击操作创建的进程路径以及远程过程调用发起端的线程ID综合分析所述未知程序是否为恶意程序,而不是仅根据所述未知程序运行时的父进程判断所述未知程序是否为恶意程序,因而实现了对通过MSAA技术模拟鼠标点击启动恶意程序的检测。附图说明此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:图1为本发明实施例的恶意程序检测方法的流程图;图2为本发明实施例的恶意程序检测装置的结构示意图。具体实施方式MSAA的全称是MicrosoftActiveAccessibility,其技术模型是通过用户界面UI,UserInterface程序可以暴露出一个IAccessible接口,方便另一个程序对其进行控制。MSAA技术的初衷是为了方便残疾人使用Windows程序,用户界面自动化测试也可以借用这项技术,然而,MSAA暴露出来的IAccessible接口也给恶意程序带来了可乘之机。以C盘根目录下存在文件名为“a.exe”的恶意程序为例,其通过MSAA技术模拟鼠标点击操作启动过程如下:首先,打开C盘根目录;然后获得C盘根目录窗口的窗口句柄;接着获得该窗口句柄对应的IAccessible接口;根据该窗口句柄对应的IAccessible接口获得IEnumVARIANT接口;通过IEnumVARIANT接口遍历该窗口句柄所有UI元素,并获得每个UI元素的文件名;将每次遍历时得到的UI元素的文件名和所述恶意程序的文件名“a.exe”进行字符串比较,就可以得到所述恶意程序对应的IAccessible接口,有了这个接口就可以启动所述恶意程序,也就是通过模拟鼠标点击操作启动了所述恶意程序。现有的主动防御机制是根据疑似恶意程序的未知程序运行时的父进程判断所述未知程序是否为恶意程序:若所述未知程序的父进程是程序管理器进程,则认为所述未知程序是用户主动打开的程序,不会进行告警;若所述未知程序的父进程不是程序管理器进程,则认为所述未知程序不是用户主动打开的程序,而是有另外的进程启动了所述未知程序,此时可以认为所述未知程序为恶意程序。但是例如假设有一个文件名为“f.exe”的程序,通过MSAA技术模拟鼠标点击操作启动了文件名为“a.exe”的恶意程序,那么文件名为“a.exe”的恶意程序的父进程就是程序管理器进程,实际上是由文件名为“f.exe”的程序发起的,这样就绕过了主动防御机制的检测。基于此,本发明提供一种恶意程序检测方法及装置,实现对通过MSAA技术模拟鼠标点击启动恶意程序的检测。为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。实施例1本实施例提供一种恶意程序检测方法,图2是所述恶意程序检测方法的流程图,所述恶意程序检测方法包括步骤S11至步骤S15。步骤S11,监听模拟鼠标点击操作和进程创建操作。具体地,通过对程序管理器进程中实现模拟鼠标点击的函数挂接钩子对所述模拟鼠标点击操作进行监听。由于所述模拟鼠标点击操作可能点击的是可执行程序原文件,也可能点击的是可执行程序快捷方式,因而所述监听模拟鼠标点击操作可以是对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子,即对程序管理器进程中的user32.dll导出的SendInput函数挂接钩子,也可以是对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子,即对程序管理器进程中的shell32.dll的一个COM接口中的IContextMenu::InvokeCommand函数挂接钩子,当然还可以是同时对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数和实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。由于通过MSAA技术模拟鼠标点击启动的恶意程序是由程序管理器进程调用进程创建的函数的API来启动的,因而通过对程序管理器进程中实现进程创建的函数挂接钩子对所述进程创建操作进行监听,从而获得为所述模拟鼠标点击操作创建的进程路径。步骤S12,在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。具体地,对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈。若所述模拟鼠标点击操作点击的是可执行程序原文件,则对程序管理器进程中的user32.dll导出的SendInput函数进行栈回溯;若所述模拟鼠标点击操作点击的是可执行程序快捷方式,则对程序管理器进程中的shell32.dll的一个COM接口中的IContextMenu::InvokeCommand函数进行栈回溯。以函数A调用函数B为例,栈回溯原理为:被调用的函数B的EBP值即函数B的栈基址就是存放主调函数A的EBP值的内存首地址,假设从函数B中进行回溯,通过函数B的EBP值得到主调函数A的EBP值,为向上回溯做准备,另外取出内存上紧挨着的返回地址,通过返回地址就能获得位于哪个主调函数中了,然后利用函数A的EBP值再向上回溯即可获得调用者的地址。由于系统中各个调用者的地址和各个调用者的模块名之间的对应关系是确定的,获得所述调用者的地址之后,根据所述调用者的地址调用GetModuleHandleExW函数即可以获得所述调用者的模块名。获得所述调用者的地址后和所述调用者的模块名之后,即获得了所述模拟鼠标点击操作的调用栈之后,根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用,即若所述模拟鼠标点击操作的调用栈符合如下的调用栈:UIAutomationCoreUIAutomationCoreUIAutomationCoreoleaccoleaccrpcrt4rpcrt4ole32ole32Ole32则确定所述模拟鼠标点击操作为通过IAccessible接口发起的远程过程调用。若所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则执行步骤S13,解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID。具体地,通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名。若所述模拟鼠标点击操作点击的是可执行程序原文件,则通过程序管理器进程中的user32.dll导出的SendInput函数的参数获得所述未知程序的文件名;若所述模拟鼠标点击操作点击的是可执行程序快捷方式,则通过程序管理器进程中的shell32.dll的一个COM接口中的IContextMenu::InvokeCommand函数获得所述未知程序的文件名。远程过程调用发起端的线程ID可以通过线程环境块获得,即线程环境块-ReservedForOle指向的结构的+0x0034偏移处数据即为所述线程ID。步骤S14,判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程。在所述模拟鼠标点击操作发生后,程序管理器进程会为所述模拟鼠标点击操作创建进程。通过判断所述未知程序的文件名是否为所述目标进程的进程路径的子串,可以获得程序管理器进程为所述模拟鼠标点击操作创建的进程。所述判断所述未知程序的文件名是否为所述目标进程的进程路径的子串,即是将所述未知程序的文件名与所述目标进程的进程路径进行匹配。若所述目标进程的进程路径对应的字符串包含所述未知程序的文件名对应的字符串,则所述未知程序的文件名为所述目标进程的进程路径的子串。进一步,由于对程序管理器进程中实现进程创建的函数挂接钩子等异常情况下,不会对所述模拟鼠标点击操作创建进程,可以设置所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差,即所述目标进程是在所述模拟鼠标点击操作的发生时间之后的预设时间差内创建的。所述预设时间差可以根据系统处理速度进行设置:系统处理速度越快,所述预设时间差可以设置得越小,在本实施例中所述预设时间差设置为1S。若所述未知程序的文件名为所述目标进程的进程路径的子串,则执行步骤S15,根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。若所述未知程序的文件名为所述目标进程的进程路径的子串,则所述目标进程即为程序管理器进程为所述模拟鼠标点击操作创建进程,根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID进行串链分析,即用所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID对比本地的病毒库或者云端的规则来确定所述未知程序是否为恶意程序。若所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID与本地的病毒库或者云端的规则匹配,则确定所述未知程序为恶意程序。需要说明的是,本领域技术人员知晓如何用所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID对比本地的病毒库或者云端的规则,本实施例对此不进行过多说明。进一步,若所述未知程序为恶意程序,则生成告警信息,所述告警信息用于提示用户的计算机设备存在恶意程序。在生成所述告警信息之后,还可以将所述告警信息发送给所述用户。例如,可以通过邮件的方式将所述告警信息发送至指定的邮箱地址,还可以通过短信的方式将所述告警信息发送至指定的移动终端,还可以通过对话框的形式直接在计算机设备显示所述告警信息,还可以通过即时通信的方式将所述告警信息发送给所述用户。当然,可以采用上述任意一种方式将所述告警信息发送给所述用户,也可以采用任意几种方式的组合将所述告警信息发送给所述用户。本实施例提供的恶意程序检测方法,在监听到通过IAccessible接口发起的远程过程调用的模拟鼠标点击操作时,是根据为所述模拟鼠标点击操作创建的进程ID、为所述模拟鼠标点击操作创建的进程路径以及远程过程调用发起端的线程ID综合分析所述未知程序是否为恶意程序,而不是仅根据所述未知程序运行时的父进程判断所述未知程序是否为恶意程序,因而实现了对通过MSAA技术模拟鼠标点击启动恶意程序的检测。实施例2基于同样的发明构思,本实施例提供一种恶意程序检测装置,所述恶意程序检测装置包括:第一监听模块21,用于监听模拟鼠标点击操作;第二监听模块22,用于监听进程创建操作;第一判断模块23,用于在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;解析模块24,用于在所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用时,解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;第二判断模块25,用于判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;分析模块26,用于在所述未知程序的文件名为所述目标进程的进程路径的子串时,根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。进一步,所述第一监听模块21包括:第一挂接模块,用于对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子;和或第二挂接模块,用于对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。进一步,所述第二监听模块22包括:第三挂接模块,用于对程序管理器进程中实现进程创建的函数挂接钩子。进一步,所述第一判断模块23包括:调用栈获得模块,用于对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈;确定模块,用于根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。进一步,所述解析模块24包括:文件名获得模块,用于通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名;线程ID获得模块,用于通过线程环境块获得所述线程ID。进一步,所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差。进一步,所述恶意程序检测装置还包括:告警信息生成模块,用于在所述未知程序为恶意程序时,生成告警信息。。进一步,所述恶意程序检测装置还包括:发送模块,用于通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述告警信息发送给所述用户。所述恶意程序检测装置的具体工作原理可参考实施例1中对于步骤S11至步骤S15的描述,本实施例在此不再赘述。实施例3基于同样的发明构思,本实施例提供一种计算机可读存储介质,其上存储有计算机程序,本发明实施例1提供的恶意程序检测方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现实施例1提供的恶意程序检测方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器ROM,Read-OnlyMemory、随机存取存储器RAM,RandomAccessMemory、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。本发明公开了A1、一种恶意程序检测方法,包括:监听模拟鼠标点击操作和进程创建操作;在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;若所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;若所述未知程序的文件名为所述目标进程的进程路径的子串,则根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。A2、根据A1所述的恶意程序检测方法,所述监听模拟鼠标点击操作包括:对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子;和或对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。A3、根据A1所述的恶意程序检测方法,所述监听进程创建操作包括:对程序管理器进程中实现进程创建的函数挂接钩子。A4、根据A1所述的恶意程序检测方法,所述判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用包括:对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈;根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。A5、根据A1所述的恶意程序检测方法,所述解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID包括:通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名;通过线程环境块获得所述线程ID。A6、根据A1所述的恶意程序检测方法,所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差。A7、根据A1所述的恶意程序检测方法,在所述根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序之后,还包括:若所述未知程序为恶意程序,则生成告警信息。A8、根据A7所述的恶意程序检测方法,在所述生成告警信息之后,还包括:通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述告警信息发送给所述用户。本发明还公开了B9、一种恶意程序检测装置,包括:第一监听模块,用于监听模拟鼠标点击操作;第二监听模块,用于监听进程创建操作;第一判断模块,用于在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;解析模块,用于在所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用时,解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;第二判断模块,用于判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;分析模块,用于在所述未知程序的文件名为所述目标进程的进程路径的子串时,根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。B10、根据B9所述的恶意程序检测装置,所述第一监听模块包括:第一挂接模块,用于对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子;和或第二挂接模块,用于对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。B11、根据B9所述的恶意程序检测装置,所述第二监听模块包括:第三挂接模块,用于对程序管理器进程中实现进程创建的函数挂接钩子。B12、根据B9所述的恶意程序检测装置,所述第一判断模块包括:调用栈获得模块,用于对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈;确定模块,用于根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。B13、根据B9所述的恶意程序检测方法,所述解析模块包括:文件名获得模块,用于通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名;线程ID获得模块,用于通过线程环境块获得所述线程ID。B14、根据B9所述的恶意程序检测装置,所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差。B15、根据B9所述的恶意程序检测装置,还包括:告警信息生成模块,用于在所述未知程序为恶意程序时,生成告警信息。B16、根据B15所述的恶意程序检测装置,还包括:发送模块,用于通过邮件、短信、对话框以及即时通信中的一种或多种组合将所述告警信息发送给所述用户。本发明还公开了C17、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现A1至A8任一项所述的恶意程序检测方法。本发明还公开了D18、一种计算机设备,包括存储器、处理器以及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现A1至A8任一项所述的恶意程序检测方法。

权利要求:1.一种恶意程序检测方法,其特征在于,包括:监听模拟鼠标点击操作和进程创建操作;在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;若所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用,则解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;若所述未知程序的文件名为所述目标进程的进程路径的子串,则根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。2.根据权利要求1所述的恶意程序检测方法,其特征在于,所述监听模拟鼠标点击操作包括:对程序管理器进程中实现模拟鼠标点击可执行程序原文件的函数挂接钩子;和或对程序管理器进程中实现模拟鼠标点击可执行程序快捷方式的函数挂接钩子。3.根据权利要求1所述的恶意程序检测方法,其特征在于,所述监听进程创建操作包括:对程序管理器进程中实现进程创建的函数挂接钩子。4.根据权利要求1所述的恶意程序检测方法,其特征在于,所述判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用包括:对所述模拟鼠标点击操作进行栈回溯,获得所述模拟鼠标点击操作的调用栈;根据所述模拟鼠标点击操作的调用栈确定所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用。5.根据权利要求1所述的恶意程序检测方法,其特征在于,所述解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID包括:通过实现所述模拟鼠标点击操作的函数参数获得所述未知程序的文件名;通过线程环境块获得所述线程ID。6.根据权利要求1所述的恶意程序检测方法,其特征在于,所述目标进程的创建时间减去所述模拟鼠标点击操作的发生时间小于预设时间差。7.根据权利要求1所述的恶意程序检测方法,其特征在于,在所述根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序之后,还包括:若所述未知程序为恶意程序,则生成告警信息。8.一种恶意程序检测装置,其特征在于,包括:第一监听模块,用于监听模拟鼠标点击操作;第二监听模块,用于监听进程创建操作;第一判断模块,用于在监听到所述模拟鼠标点击操作时,判断所述模拟鼠标点击操作是否为通过IAccessible接口发起的远程过程调用;解析模块,用于在所述模拟鼠标点击操作为通过所述IAccessible接口发起的远程过程调用时,解析所述模拟鼠标点击操作点击的未知程序的文件名和远程过程调用发起端的线程ID;第二判断模块,用于判断所述未知程序的文件名是否为目标进程的进程路径的子串,所述目标进程为在所述模拟鼠标点击操作之后监听到的所述进程创建操作创建的进程;分析模块,用于在所述未知程序的文件名为所述目标进程的进程路径的子串时,根据所述目标进程的进程ID、所述目标进程的进程路径以及所述线程ID分析所述未知程序是否为恶意程序。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的恶意程序检测方法。10.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的恶意程序检测方法。

百度查询: 北京奇虎科技有限公司 恶意程序检测方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。