著录项信息
专利名称 | 主动防御方法及装置 |
申请号 | CN201510221827.X | 申请日期 | 2012-09-29 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2015-07-29 | 公开/公告号 | CN104811453A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 申请人地址 | 北京市西城区新街口外大街28号D座112室(德胜园区)
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 | 当前权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 |
发明人 | 闫继平 |
代理机构 | 北京华沛德权律师事务所 | 代理人 | 刘杰 |
摘要
本发明公开了主动防御方法及装置,其中,所述方法包括:对预置接口产生的远程过程调用协议RPC调用进行跟踪;当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件与被调用的系统服务进程之间的关联;如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到所述被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;根据所述源文件的危险等级,执行主机入侵防御处理。通过本发明,能够降低误判的概率。
1.一种主动防御方法,包括:
通过监控与远程过程调用协议RPC相关的API函数,对预置接口产生的RPC调用进行跟踪;
当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;
如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,根据所述源文件的路径与被调用的系统服务进程之间的关联,将所述源文件的路径确定为所述操作行为的来源;
根据所述源文件的危险等级,执行主机入侵防御处理。
2.根据权利要求1所述的方法,所述源文件包括MSI安装包文件,所述对预置接口的RPC调用进行跟踪包括:
对接口IMSIServer::DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。
3.根据权利要求1所述的方法,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述对预置接口的RPC调用进行跟踪包括:
对接口CMsiCustomAction::PrepareDLLCustomAction的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。
4.根据权利要求1至3任一项所述的方法,所述根据所述源文件的危险等级,执行主机入侵防御处理包括:
确定源文件的危险等级;
根据所述源文件的危险等级,对所述操作行为执行拦截。
5.根据权利要求1至3任一项所述的方法,所述根据所述源文件的危险等级,执行主机入侵防御处理包括:
根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。
6.一种主动防御装置,包括:
跟踪单元,用于通过监控与远程过程调用协议RPC相关的API函数,对预置接口产生的RPC调用进行跟踪;
拦截单元,用于当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;
来源确定单元,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,根据所述源文件的路径与被调用的系统服务进程之间的关联,将所述源文件的路径确定为所述操作行为的来源;
处理单元,用于根据所述源文件的危险等级,执行主机入侵防御处理。
7.根据权利要求6所述的装置,所述源文件包括MSI安装包文件,所述跟踪单元包括:
第一跟踪子单元,用于对接口IMSIServer::DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。
8.根据权利要求6所述的装置,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述跟踪单元包括:
第二跟踪子单元,用于对接口CMsiCustomAction::PrepareDLLCustomAction的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。
9.根据权利要求6至8任一项所述的装置,所述处理单元包括:
危险等级确定子单元,用于确定源文件的危险等级;
操作拦截子单元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。
10.根据权利要求6至8任一项所述的装置,所述处理单元包括:
风险提示子单元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。
主动防御方法及装置\n[0001] 本申请为申请日2012年9月29日,申请号CN201210376903.0,发明名称为“主动防御方法及装置”的母案的分案申请。\n技术领域\n[0002] 本发明涉及计算机安全技术领域,特别是涉及主动防御方法及装置。\n背景技术\n[0003] 恶意程序是一个概括性的术语,指任何故意创建用来执行未经授权并通常是有害行为的软件程序。计算机病毒、后门程序、键盘记录器、密码盗取者、Word和Excel宏病毒、引导区病毒、脚本病毒(batch,windows shell,java等)、木马、犯罪软件、间谍软件和广告软件等等,都是一些可以称之为恶意程序的例子。\n[0004] 传统的恶意程序防杀主要依赖于特征库模式。特征库是由厂商收集到的恶意程序样本的特征码组成,而特征码则是分析工程师从恶意程序中找到和正当软件的不同之处,截取一段类似于“搜索关键词”的程序代码。当查杀过程中,引擎会读取文件并与特征库中的所有特征码“关键词”进行匹配,如果发现文件程序代码被命中,就可以判定该文件程序为恶意程序。\n[0005] 特征库匹配是查杀已知恶意程序很有效的一项技术。但是现今全球恶意程序数量呈几何级增长,基于这种爆发式的增速,特征库的生成与更新往往是滞后的,很多时候杀毒软件无法防杀层出不穷的未知恶意程序。\n[0006] HIPS(Host-based Intrusion Prevention System,基于主机的入侵防御系统)是一种通过拦截系统内的常见危险动作,不以特征码作为判断恶意程序的依据,而是从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,其中衍生出在本地使用特征库、在本地设置行为阈值以及在本地启发式杀毒的方式来判别、拦截恶意程序的行为,从而一定程度上达到保护用户电脑的目的。借助自己对软件及系统的了解,人为的或者软件内置的一些触发条件制止一些不正常的动作,以达到系统安全的一个软件系统,这种触发条件一般称为HIPS规则。\n[0007] 然而,在现有技术中使用HIPS规则进行主动防御时,经常出现误报的现象。因此,迫切需要本领域技术人员解决的技术问题就在于,如何在使用HIPS规则进行主动防御时,降低误报的概率。\n发明内容\n[0008] 本发明提供了主动防御方法及装置,能够降低误判的概率。\n[0009] 本发明提供了如下方案:\n[0010] 本发明实施例提供一种主动防御方法,包括:\n[0011] 对预置接口产生的远程过程调用协议RPC调用进行跟踪;\n[0012] 当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;\n[0013] 如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;\n[0014] 根据所述源文件的危险等级,执行主机入侵防御处理。\n[0015] 可选地,所述源文件包括MSI安装包文件,所述对预置接口的RPC调用进行跟踪包括:\n[0016] 对接口IMSIServer::DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。\n[0017] 可选地,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述对预置接口的RPC调用进行跟踪包括:\n[0018] 对接口CMsiCustomAction::PrepareDLLCustomAction的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。\n[0019] 可选地,所述根据所述源文件的危险等级,执行主机入侵防御处理包括:\n[0020] 确定源文件的危险等级;\n[0021] 根据所述源文件的危险等级,对所述操作行为执行拦截。\n[0022] 可选地,所述根据所述源文件的危险等级,执行主机入侵防御处理包括:\n[0023] 根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。\n[0024] 本发明实施例提供一种主动防御装置,包括:\n[0025] 跟踪单元,用于对预置接口产生的远程过程调用协议RPC调用进行跟踪;\n[0026] 拦截单元,用于当当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;\n[0027] 来源确定单元,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到所述被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;\n[0028] 处理单元,用于根据所述源文件的危险等级,执行主机入侵防御处理。\n[0029] 可选地,所述源文件包括MSI安装包文件,所述跟踪单元包括:\n[0030] 第一跟踪子单元,用于对接口IMSIServer::DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。\n[0031] 可选地,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述跟踪单元包括:\n[0032] 第二跟踪子单元,用于对接口CMsiCustomAction::PrepareDLLCustomAction的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。\n[0033] 可选地,所述处理单元包括:\n[0034] 操作拦截子单元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。\n[0035] 可选地,所述处理单元包括:\n[0036] 风险提示子单元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。\n[0037] 根据本发明提供的具体实施例,本发明公开了以下技术效果:\n[0038] 通过本发明,针对用户启动运行某文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另一个进程中去执行,导致进程链断链的情况,能够将建立源文件与被调用的系统服务权限进程之间的关联,从而在某操作行为触发HIPS规则时,能够追溯到操作行为的真正来源,进而通过对真正来源处的文件进行危险等级的判断,来确定是否需要进行拦截或者弹出提示,这样可以降低误判的概率。\n附图说明\n[0039] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0040] 图1是HIPS系统示意图;\n[0041] 图2是本发明实施例提供的方法的流程图;\n[0042] 图3是本发明实施例提供的装置的示意图;\n[0043] 图4是本发明实施例提供的系统的示意图;\n[0044] 图5是本发明实施例提供的另一系统的示意图。\n具体实施方式\n[0045] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。\n[0046] 为了便于理解本发明,首先对HIPS的相关内容进行简单的介绍。参见图1,最常见的HIPS是“3D”类的借助规则拦截程序动作的软件。所谓的3D包括AD(Application Defend,应用程序防御体系)、RD(Registry Defend,注册表防御体系)、FD(File Defend,文件防御体系),这三个HIPS进行防御所采用的最直观的动作,通过拦截这些直观的动作的来起到保护系统的安全。其中,AD的作用是监控程序运行、加载、访问物理内存、操作底层磁盘、键盘记录等等的关键操作;FD的作用就是监控系统对任何文件的读取、修改、创建、删除操作;RD的作用是监控对注册表的操作。\n[0047] 例如:假设有病毒入侵电脑,则:\n[0048] 病毒首先会在硬盘上建立病毒实体,这时候就会触发FD的“创建”规则;\n[0049] 接着读取病毒体,会触发FD的“读取”规则;\n[0050] 再接着运行病毒体,会触发AD的各项规则;\n[0051] 如果是感染型病毒,在运行过程中还会修改硬盘的文件,例如感染exe文件,此时,会触发FD的“修改”规则;如果是破坏型病毒,运行过程中还会删除硬盘的文件,例如删除exe、gho等文件,此时,会触发FD的“删除”规则;\n[0052] 接下来,病毒通常会修改注册表来达到自启动或破坏的目的,此时会触发RD规则。\n[0053] 每次触发规则,HIPS就会从规则库里面查找,如果规则库里面已经有对该操作的规则,就按规则处理;如果没有,就会询问用户。如果在上述检测过程中有操作行为被拦截掉了,那么就算这是一个有问题文件,也不能对系统造成危害。\n[0054] 在某行为触发HIPS规则时,HIPS需要找到执行了该行为的进程,根据执行该行为的进程的安全等级,来确定是否需要拦截或者提示。但是,一些恶意程序为了更好的隐藏自己,可能会通过其进程A启动另一个进程B,通过进程B执行具体的恶意行为,甚至还可能有更多级的进程调用,最终才执行一个恶意行为。此时,如果仅获取到执行该行为的当前进程,则根据当前进程来判断是否需要拦截则是不准确的。因此,就需要找到执行了该行为的进程所在的进程链,追本溯源,找到行为的真正来源,例如,前述例子中的进程A,如果进程A的安全等级比较低,则可以进行拦截或者向用户进行提示,等等。\n[0055] 本发明人在实现本发明的过程中发现,现有技术之所以会经常有误报的现象发生,是因为现有技术虽然能够获取到触发规则的行为所在的进程链,但是,在针对一些特殊类型的文件进行主动防御的过程中,在触发HIPS规则之后,根据进程链追溯行为的来源时,无法追溯到真正的来源,因此经常会出现误报的情况,使得一些正常的行为也无法被顺利的执行。例如,在通过一个MSI(Windows Installer)安装包安装某程序的过程中,只要发现执行了一个修改注册表启动项的行为,HIPS系统就都不加区别地弹出提示,如果经用户判断后发现是一个可以允许的操作,则在用户手动选择了“允许此次操作”等选项之后,才会继续安装过程。\n[0056] 本发明人在实现本发明的过程中还发现,之所以在针对有些文件进行主动防御时,无法追溯到真正的来源,是因为,有些文件在运行过程中可能会出现以下现象:用户启动运行该文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另一个进程中去执行,触发HIPS规则的行为可能是在转移到系统服务权限下的进程之后才执行的,而在HIPS获取进程链时,只能追溯到该系统服务权限下的起始进程,而无法与用户权限下的进程链关联起来,也就是说,这种特殊文件在执行过程中,会导致进程链的断链,因此,也就无法追溯到真正的来源。\n[0057] 例如,用户双击一个MSI安装包,系统会根据扩展名关联,首先启动一个当前用户权限的msiexec.exe的进程,msiexec.exe,系统进程,是Windows Installer的一部分。用于安装Windows Installer安装包(MSI),然后这个用户权限的msiexec.exe会调用接口将请求转发给接口对应的Server,即系统服务权限的msiexec.exe(如果该系统服务权限的msiexec.exe尚未启动,则需要先用DCOM将其启动),之后再执行后续的操作行为。这样,当某操作行为触发HIPS权限之后,在通过进程链进行追溯时,只能追溯到系统服务权限的msiexec.exe,但实际上该操作行为的来源应该是该MSI安装包本身,或者是MSI安装包中的某个DLL(Dynamic Link Library,动态链接库)文件。这样,在现有技术中,由于无法获知具体是哪个MSI安装包或者哪个动态链接库执行的该行为,因此只要发现触发了HIPS规则,并且追溯到系统服务权限的msiexec.exe,就一律进行风险提示,显然,这会造成大量的误报。\n[0058] 因此,在本发明实施例中,就可以通过建立源文件与被调用的系统服务权限进程之间的关联,来追溯到操作行为的真正来源,进而通过对真正来源处的文件进行安全性判断,来确定是否需要进行拦截或者弹出提示。下面就对本发明实施例提供的方法进行详细地介绍。\n[0059] 参见图2,本发明实施例提供的主动防御方法包括以下步骤:\n[0060] S201:对预置接口产生的远程过程调用协议RPC调用进行跟踪;\n[0061] S202:当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;\n[0062] 具体实现时,通过对预置接口的RPC调用进行跟踪,截获到调用系统服务权限进程的请求,然后从请求中提取出源文件的完整路径,这样就可以建立起源文件与被调用的系统服务进程之间的关联。其中,对IMSIServer::DoInstallRemote这个接口的RPC调用进行跟踪,并拦截请求包,可以获取到原始的MSI安装包的全路径,对CMsiCustomAction::\nPrepareDLLCustomAction这个接口的RPC调用进行跟踪,并拦截请求包,就可以获取到MSI安装包里面的DLL文件对应的DLL路径。\n[0063] 具体实现时,可以通过监控(例如HOOK)与RPC进行间通信相关的API函数,来达到上述跟踪的目的,其中,需要根据不同的操作系统版本,HOOK不同的API函数,以达到准确的跟踪和拦截的目的,在WindowsXP操作系统中,可以HOOK以下API函数:\nNtRequestWaitReplyPort等,在WindowsVista及其之后的版本中,可以HOOK以下API函数:\nNtAlpcSendWaitReplyPort等。\n[0064] 这样,在前述例子中,仍假设用户双击一个MSI安装包启动某程序的安装过程后,系统仍然会首先启动一个当前用户权限的msiexec.exe的进程,然后这个用户权限的msiexec.exe会调用相应的接口(如果是MSI安装包文件本身发起的请求,则该进程会调用IMSIServer::DoInstallRemote这个接口,如果是安装包文件中的某DLL发起的请求,则该进程会调用CMsiCustomAction::PrepareDLLCustomAction这个接口),将请求转发给接口对应的Server;在对前述API函数进行HOOK之后,当用户权限的进程转发请求给Server的时候,就可以截获到该请求,然后通过解析该函数的参数,就可以获取到MSI安装包的完整路径,或者MSI安装包文件中的某DLL文件的DLL路径。然后再将该请求转发给系统服务权限的进程msiexec.exe,接下来,系统服务权限的进程msiexec.exe会根据IMSIServer::\nDoInstallRemote这个接口或者CMsiCustomAction::PrepareDLLCustomAction这个接口传过来的路径启动一个线程来进行具体的安装操作,这个线程也可以创建新的线程来做具体的事情(比如写文件、写注册表等),当该行为触发到HIPS规则的时候,就可以首先追溯到msiexec.exe这个系统服务权限进程,然后,就可以根据记录下的源文件与该系统服务权限进程msiexec.exe之间的关系,获取到是哪个MSI安装包或MSI安装包中的哪个DLL文件对应的动作,这个MSI安装包的完整路径或者MSI安装包中这个DLL文件的DLL路径即是真正的来源。\n[0065] 当然,具体在进行HOOK API函数时,可以将与进程间通信的一系列函数都进行HOOK,例如,在Windows XP操作系统下,可以包括NtCreatePort,NtConnectPort,NtRequestPort,NtAcceptPort,NtListenPort,NtReplyPort,NtReplyWaitReceivePort等等。\n[0066] S203:如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到所述被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;\n[0067] 当有操作行为触发HIPS规则之后,就可以首先根据进程链进行追溯,如果追溯到系统服务进程,则可以根据之前建立的关联,找到操作行为的真正来源,例如,可能是某个安装包文件,或者是某个安装包文件中的某个DLL文件,等等。\n[0068] 例如,仍假设用户双击一个MSI安装包,系统会根据扩展名关联,启动一个当前用户权限的msiexec.exe的进程,然后这个msiexec.exe会调用接口IMSIServer::\nDoInstallRemote,系统会把它转发给接口对应的Server,即SYSTEM权限的msiexec.exe(如果不存在,会用DCOM调起)。\n[0069] 而在本发明实施例中,通过拦截系统服务NtRequestWaitReplyPort(xp),NtAlpcSendWaitReplyPort(VistaLater),可以在系统转发请求给Server的时候获取到MSI包的完整路径,这样,当服务进程msiexec.exe触发到主防规则的时候,根据线程链的关系,可以获取到是那个MSI包对应的动作,这个MSI包的完整路径即是当前操作行为真正的来源。\n[0070] 其中,具体在获取进程链时,可以API来实现,例如,NtQueryInformationProcess可以取得父进程的PID,这样,一级一级向上找,便可以找到所有的进程。另外,本发明实施例还可以有自己的进程链管理功能,使用驱动来取得一个进程创建和退出事件,自己创建了一个进程链,这样,只要去查自己的进程链管理功能就可以取得整个进程链中的父子进程关系了。\n[0071] S204:根据所述源文件的危险等级,执行主机入侵防御处理。\n[0072] 找到操作行为的真正来源之后,就可以确定真正来源文件的危险等级,并根据该真正来源文件的危险等级,执行主机入侵防御处理。其中,真正来源的文件的危险等级可以根据专门的危险等级评判系统获知,例如,可以预先将各个源文件的等级信息记录在服务器端的列表中。这个列表包含了每个进程的PID、创建关系、文件等级等信息,然后通过查询该列表,便可以获得当前源文件的危险等级。\n[0073] 具体实现时,危险等级的表述方式可以有多种,例如,第一等级:可信文件,第二等级:灰文件,第三等级:可疑文件,第四等级为病毒或木马等,具体在执行主机入侵防御处理时,可以直接对危险等级较高的源文件的操作行为执行拦截,或者,也可以首先向用户进行危险提示,由用户选择是否执行拦截。当然,在向用户进行危险提示时,显示给用户的操作行为的来源就是本发明实施例中获取到的真正的来源,而不是系统服务进程。例如,在前述例子中,假设发现真正的来源是MSI1F.tmp这个DLL文件,则会通过弹出窗口等方式将该文件提示给用户,而不是只提示对应的系统服务进程msiexec.exe,当然,在判断源文件的危险级别时,也是判断该MSI1F.tmp的危险级别,而不是msiexec.exe。具体在进行提示时,可以不仅仅将源文件的文件名显示给用户,还可以将该来源文件的路径等信息一并显示给用户。\n[0074] 总之,在本发明实施例中,针对用户启动运行某文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另一个进程中去执行,导致进程链断链的情况,能够将建立源文件与被调用的系统服务权限进程之间的关联,从而在某操作行为触发HIPS规则时,能够追溯到操作行为的真正来源,进而通过对真正来源处的文件进行危险等级的判断,来确定是否需要进行拦截或者弹出提示界面,这样可以降低误报的概率。\n[0075] 与本发明实施例提供的主动防御方法相对应,本发明实施例还提供了一种主动防御装置,参见图3,该装置包括:\n[0076] 跟踪单元301,用于对预置接口产生的远程过程调用协议RPC调用进行跟踪;\n[0077] 拦截单元302,用于当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;\n[0078] 来源确定单元303,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到所述被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;\n[0079] 处理单元304,用于根据所述源文件的危险等级,执行主机入侵防御处理。\n[0080] 其中,所述源文件包括MSI安装包文件,所述跟踪单元301可以包括:\n[0081] 第一跟踪子单元,用于对接口IMSIServer::DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。\n[0082] 或者,所述源文件包括MSI安装包文件中的动态链接库DLL文件,此时,所述跟踪单元201可以包括:\n[0083] 第二跟踪子单元,用于对接口CMsiCustomAction::PrepareDLLCustomAction的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。\n[0084] 在实际应用中,所述处理单元304具体可以包括:\n[0085] 操作拦截子单元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。\n[0086] 或者,所述处理单元304也可以包括:\n[0087] 风险提示子单元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。\n[0088] 与本发明实施例提供的主动防御方法及装置相对应,本发明实施例还提供了一种主动防御系统,参见图4,该系统可以包括客户端401及服务器端402:\n[0089] 跟踪单元4011,用于对预置接口产生的远程过程调用协议RPC调用进行跟踪;\n[0090] 拦截单元4012,用于当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;\n[0091] 来源确定单元4013,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;\n[0092] 特征提取单元4014,用于提取所述源文件的特征;具体的,提取的源文件特征可以是源文件的名称、MD5等静态特征,或者也可以在客户端设备上部署沙箱系统,将源文件放入沙箱中运行,提取其动态行为特征,将其上传到服务器端,以便服务器端根据这些特征对源文件进行判断。\n[0093] 上传单元4015,用于将所述源文件的特征上传到服务器端402;\n[0094] 所述服务器端402包括:\n[0095] 危险等级确定单元4021,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;\n[0096] 所述客户端401还包括:\n[0097] 处理单元4016,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。\n[0098] 当然,在实际应用中,客户端也可以是将整个文件上传至服务器端,由服务器端提取文件的特征,或者直接根据文件白名单或黑名单等来判定文件的危险等级。因此,本发明实施例还提供了另一种主动防御系统,参见图5,该系统同样包括客户端501及服务器端\n502,其中:\n[0099] 客户端具体可以包括:\n[0100] 跟踪单元5011,用于对预置接口产生的远程过程调用协议RPC调用进行跟踪;\n[0101] 拦截单元5012,用于当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;\n[0102] 来源确定单元5012,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;\n[0103] 上传单元5014,用于将所述源文件上传到服务器端502;\n[0104] 所述服务器端502包括:\n[0105] 特征提取单元5021,用于提取所述源文件的特征;\n[0106] 危险等级确定单元5022,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;\n[0107] 所述客户端501还包括:\n[0108] 处理单元5015,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。\n[0109] 总之,在本发明实施例提供的主动防御装置中,针对用户启动运行某文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另一个进程中去执行,导致进程链断链的情况,能够将建立源文件与被调用的系统服务权限进程之间的关联,从而在某操作行为触发HI PS规则时,能够追溯到操作行为的真正来源,进而通过对真正来源处的文件进行危险等级的判断,来确定是否需要进行拦截或者弹出提示,这样可以降低误报的概率。\n[0110] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。\n各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。\n[0111] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。\n[0112] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。\n[0113] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。\n[0114] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。\n[0115] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的主机入侵防御设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。\n[0116] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。\n[0117] 本申请可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
法律信息
- 2022-07-19
专利权的转移
登记生效日: 2022.07.07
专利权人由北京奇虎科技有限公司变更为北京奇虎科技有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为100015 北京市朝阳区酒仙桥路6号院2号楼1至19层104号内8层801
专利权人由奇智软件(北京)有限公司 变更为空
- 2018-05-01
- 2015-08-26
实质审查的生效
IPC(主分类): H04L 29/06
专利申请号: 201510221827.X
申请日: 2012.09.29
- 2015-07-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-01-16
|
2012-09-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |