专利名称:主动防御系统的制作方法
技术领域:
本发明涉及计算机安全技术领域,特别是涉及主动防御系统。
背景技术:
恶意程序是ー个概括性的术语,指任何故意创建用来执行未经授权并通常是有害行为的软件程序。计算机病毒、后门程序、键盘记录器、密码盗取者、Word和Excel宏病毒、引导区病毒、脚本病毒(batch, windows shell, java等)、木马、犯罪软件、间谋软件和广告软件等等,都是ー些可以称之为恶意程序的例子。传统的恶意程序防杀主要依赖于特征库模式。特征库是由厂商收集到的恶意程序样本的特征码组成,而特征码则是分析工程师从恶意程序中找到和正当软件的不同之处,截取一段类似干“搜索关键词”的程序代码。当查杀过程中,引擎会读取文件并与特征库中的所有特征码“关键词”进行匹配,如果发现文件程序代码被命中,就可以判定该文件程序为恶意程序。特征库匹配是查杀已知恶意程序很有效的ー项技木。但是现今全球恶意程序数量呈几何级增长,基于这种爆发式的增速,特征库的生成与更新往往是滞后的,很多时候杀毒软件无法防杀层出不穷的未知恶意程序。HIPS (Host-based Intrusion Prevention System,基于主机的入侵防御系统)是ー种通过拦截系统内的常见危险动作,不以特征码作为判断恶意程序的依据,而是从最原始的定义出发,直接将程序的行为作为判断恶意程序的依据,其中衍生出在本地使用特征库、在本地设置行为阈值以及在本地启发式杀毒的方式来判別、拦截恶意程序的行为,从而一定程度上达到保护用户电脑的目的。借助自己对软件及系统的了解,人为的或者软件内置的一些触发条件制止ー些不正常的动作,以达到系统安全的ー个软件系统,这种触发条件一般称为HIPS规则。然而,在现有技术中使用HIPS规则进行主动防御时,经常出现误报的现象。因此,迫切需要本领域技术人员解决的技术问题就在于,如何在使用HIPS规则进行主动防御吋,降低误报的概率。
发明内容
本发明提供了主动防御系统,能够降低误判的概率。在本发明的ー个方面,提供了一种主动防御系统,包括客户端及服务器端,其中所述客户端包括跟踪单元,用于对预置接ロ产生的远程过程调用协议RPC调用进行跟踪;拦截单元,用于当用户权限的进程通过预置接ロ发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;来源确定单元,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;特征提取単元,用于提取所述源文件的特征;上传单元,用于将所述源文件的特征上传到服务器端;所述服务器端包括危险等级确定単元,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;所述客户端还包括处理单元,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。 任选地,所述源文件包括MSI安装包文件,所述跟踪単元包括第一跟踪子单元,用于对接ロ IMSIServer: :DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。 任选地,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述跟踪単元包括第二跟踪子单兀,用于对接ロ CMsiCustomAction: :PrepareDLLCustomAction 的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。任选地,所述处理単元包括操作拦截子単元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。任选地,所述处理単元包括风险提示子単元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。在本发明的另一方面,提供了一种主动防御系统,包括客户端及服务器端,其中所述客户端包括跟踪单元,用于对预置接ロ产生的远程过程调用协议RPC调用进行跟踪;拦截单元,用于当用户权限的进程通过预置接ロ发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;来源确定单元,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;上传单元,用于将所述源文件上传到服务器端;所述服务器端包括特征提取単元,用于提取所述源文件的特征;危险等级确定単元,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;所述客户端还包括处理单元,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。
任选地,所述源文件包括MSI安装包文件,所述跟踪単元包括第一跟踪子单元,用于对接ロ IMSIServer: :DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。任选地,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述跟踪単元包括第二跟踪子单兀,用于对接ロ CMsiCustomAction: : PrepareDLLCustomAction 的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。任选地,所述处理単元包括
操作拦截子単元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。任选地,所述处理単元包括风险提示子単元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。根据本发明提供的具体实施例,本发明公开了以下技术效果通过本发明,针对用户启动运行某文件之后,会通过用户权限下的ー个进程转移到系统服务权限下的另ー个进程中去执行,导致进程链断链的情況,能够将建立源文件与被调用的系统服务权限进程之间的关联,从而在某操作行为触发HIPS规则吋,能够追溯到操作行为的真正来源,进而通过对真正来源处的文件进行危险等级的判断,来确定是否需要进行拦截或者弹出提示,这样可以降低误判的概率。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是HIPS系统示意图;图2是本发明实施例提供的方法的流程图;图3是本发明实施例提供的装置的示意图;图4是本发明实施例提供的系统的示意图;图5是本发明实施例提供的另一系统的示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。为了便于理解本发明,首先对HIPS的相关内容进行简单的介绍。參见图1,最常见的HIPS是“3D”类的借助规则拦截程序动作的软件。所谓的3D包括AD(ApplicationDefend,应用程序防御体系)、RD (Registry Defend,注册 表防御体系)>FD (File Defend,文件防御体系),这三个HIPS进行防御所采用的最直观的动作,通过拦截这些直观的动作的来起到保护系统的安全。其中,AD的作用是监控程序运行、加载、访问物理内存、操作底层磁盘、键盘记录等等的关键操作;FD的作用就是监控系统对任何文件的读取、修改、创建、删除操作;RD的作用是监控对注册表的操作。例如假设有病毒入侵电脑,则病毒首先会在硬盘上建立病毒实体,这时候就会触发FD的“创建”规则;接着读取病毒体,会触发FD的“读取”规则;再接着运行病毒体,会触发AD的各项规则;如果是感染型病毒,在运行过程中还会修改硬盘的文件,例如感染exe文件,此 时,会触发FD的“修改”规则;如果是破坏型病毒,运行过程中还会删除硬盘的文件,例如删除exe、gho等文件,此时,会触发FD的“删除”规则;接下来,病毒通常会修改注册表来达到自启动或破坏的目的,此时会触发RD规贝1J。毎次触发规则,HIPS就会从规则库里面查找,如果规则库里面已经有对该操作的规则,就按规则处理;如果没有,就会询问用户。如果在上述检测过程中有操作行为被拦截掉了,那么就算这是ー个有问题文件,也不能对系统造成危害。在某行为触发HIPS规则吋,HIPS需要找到执行了该行为的进程,根据执行该行为的进程的安全等级,来确定是否需要拦截或者提示。但是,一些恶意程序为了更好的隐藏自己,可能会通过其进程A启动另一个进程B,通过进程B执行具体的恶意行为,甚至还可能有更多级的进程调用,最終才执行ー个恶意行为。此时,如果仅获取到执行该行为的当前进程,则根据当前进程来判断是否需要拦截则是不准确的。因此,就需要找到执行了该行为的进程所在的进程链,追本溯源,找到行为的真正来源,例如,前述例子中的进程A,如果进程A的安全等级比较低,则可以进行拦截或者向用户进行提示,等等。本发明人在实现本发明的过程中发现,现有技术之所以会经常有误报的现象发生,是因为现有技术虽然能够获取到触发规则的行为所在的进程链,但是,在针对ー些特殊类型的文件进行主动防御的过程中,在触发HIPS规则之后,根据进程链追溯行为的来源时,无法追溯到真正的来源,因此经常会出现误报的情况,使得ー些正常的行为也无法被顺利的执行。例如,在通过ー个MSI (Windows Installer)安装包安装某程序的过程中,只要发现执行了ー个修改注册表启动项的行为,HIPS系统就都不加区别地弹出提示,如果经用户判断后发现是一个可以允许的操作,则在用户手动选择了“允许此次操作”等选项之后,才会继续安装过程。本发明人在实现本发明的过程中还发现,之所以在针对有些文件进行主动防御时,无法追溯到真正的来源,是因为,有些文件在运行过程中可能会出现以下现象用户启动运行该文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另ー个进程中去执行,触发HIPS规则的行为可能是在转移到系统服务权限下的进程之后才执行的,而在HIPS获取进程链时,只能追溯到该系统服务权限下的起始进程,而无法与用户权限下的进程链关联起来,也就是说,这种特殊文件在执行过程中,会导致进程链的断链,因此,也就无法追溯到真正的来源。例如,用户双击ー个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,就一律进行风险提示,显然,这会造成大量的误报。因此,在本发明实施例中,就可以通过建立源文件与被调用的系统服务权限进程之间的关联,来追溯到操作行为的真正来源,进而通过对真正来源处的文件进行安全性判 断,来确定是否需要进行拦截或者弹出提示。下面就对本发明实施例提供的方法进行详细地介绍。參见图2,本发明实施例提供的主动防御方法包括以下步骤S201 :对预置接ロ产生的远程过程调用协议RPC调用进行跟踪;S202:当用户权限的进程通过预置接ロ发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;具体实现吋,通过对预置接ロ的RPC调用进行跟踪,截获到调用系统服务权限进程的请求,然后从请求中提取出源文件的完整路径,这样就可以建立起源文件与被调用的系统服务进程之间的关联。其中,对IMSIServer: :DoInstallRemote这个接ロ的RPC调用进行跟踪,并拦截请求包,可以获取到原始的MSI安装包的全路径,对CMsiCustomAction::PrepareDLLCustomAction这个接ロ的RPC调用进行跟踪,并拦截请求包,就可以获取到MSI安装包里面的DLL文件对应的DLL路径。具体实现时,可以通过监控(例如H00K)与RPC进行间通信相关的API函数,来达到上述跟踪的目的,其中,需要根据不同的操作系统版本,HOOK不同的API函数,以达到准确的跟踪和拦截的目的,在Windows XP操作系统中,可以H00K以下API函数NtRequestWaitReplyPort等,在Windows Vista及其之后的版本中,可以H00K以下API函数=NtAlpcSendWaitReplyPort 等。这样,在前述例子中,仍假设用户双击ー个MSI安装包启动某程序的安装过程后,系统仍然会首先启动ー个当前用户权限的msiexec.exe的进程,然后这个用户权限的msiexec. exe会调用相应的接ロ(如果是MSI安装包文件本身发起的请求,则该进程会调用IMSIServer: :DoInstallRemote这个接ロ,如果是安装包文件中的某DLL发起的请求,则该进程会调用CMsiCustomAction: :PrepareDLLCustomAction这个接ロ),将请求转发给接ロ对应的Server ;在对前述API函数进行HOOK之后,当用户权限的进程转发请求给Server的时候,就可以截获到该请求,然后通过解析该函数的參数,就可以获取到MSI安装包的完整路径,或者MSI安装包文件中的某DLL文件的DLL路径。然后再将该请求转发给系统服务权限的进程msiexec. exe,接下来,系统服务权限的进程msiexec. exe会根据IMSIServer: :DoInstal!Remote 这个接□或者 CMsiCustomAction: :PrepareDLLCustomAction这个接ロ传过来的路径启动ー个线程来进行具体的安装操作,这个线程也可以创建新的线程来做具体的事情(比如写文件、写注册表等),当该行为触发到HIPS规则的时候,就可以首先追溯到msiexec. exe这个系统服务权限进程,然后,就可以根据记录下的源文件与该系统服务权限进程msiexec. exe之间的关系,获取到是哪个MSI安装包或MSI安装包中的哪个DLL文件对应的动作,这个MSI安装包的完整路径或者MSI安装包中这个DLL文件的DLL路径即是真正的来源。当然,具体在进行HOOK API函数时,可以将与进程间通信的一系列函数都进行H00K,例如,在 Windows XP 操作系统下,可以包括 NtCreatePort, NtConnectPort, NtRequestPort, NtAcceptPort, NtListenPort, NtReplyPort, NtReplyffaitReceivePort 等等。S203 :如果有操作行为触发基于主机的入侵防御系统HIPS规则、井根据进程链追溯到所述被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源; 当有操作行为触发HIPS规则之后,就可以首先根据进程链进行追溯,如果追溯到系统服务进程,则可以根据之前建立的关联,找到操作行为的真正来源,例如,可能是某个安装包文件,或者是某个安装包文件中的某个DLL文件,等等。例如,仍假设用户双击ー个MSI安装包,系统会根据扩展名关联,启动一个当前用户权限的msiexec. exe的进程,然后这个msiexec. exe会调用接ロIMSIServer: :DoInstallRemote,系统会把它转发给接ロ对应的Server,即SYSTEM权限的msiexec. exe (如果不存在,会用DCOM调起)。而在本发明实施例中,通过拦截系统服务NtRequestWaitReplyPort (xp), NtAlpcSendffaitReplyPort (Vista Later),可以在系统转发请求给Server的时候获取到MSI包的完整路径,这样,当服务进程msiexec. exe触发到主防规则的时候,根据线程链的关系,可以获取到是那个MSI包对应的动作,这个MSI包的完整路径即是当前操作行为真正的来源。其中,具体在获取进程链时,可以API来实现,例如,NtQuerylnformationProcess可以取得父进程的PID,这样,一级ー级向上找,便可以找到所有的进程。另外,本发明实施例还可以有自己的进程链管理功能,使用驱动来取得一个进程创建和退出事件,自己创建了ー个进程链,这样,只要去查自己的进程链管理功能就可以取得整个进程链中的父子进程关系了。S204 :根据所述源文件的危险等级,执行主机入侵防御处理。找到操作行为的真正来源之后,就可以确定真正来源文件的危险等级,井根据该真正来源文件的危险等级,执行主机入侵防御处理。其中,真正来源的文件的危险等级可以根据专门的危险等级评判系统获知,例如,可以预先将各个源文件的等级信息记录在服务器端的列表中。这个列表包含了每个进程的PID、创建关系、文件等级等信息,然后通过查询该列表,便可以获得当前源文件的危险等级。具体实现时,危险等级的表述方式可以有多种,例如,第一等级可信文件,第二等级灰文件,第三等级可疑文件,第四等级为病毒或木马等,具体在执行主机入侵防御处理时,可以直接对危险等级较高的源文件的操作行为执行拦截,或者,也可以首先向用户进行危险提示,由用户选择是否执行拦截。当然,在向用户进行危险提示时,显示给用户的操作行为的来源就是本发明实施例中获取到的真正的来源,而不是系统服务进程。例如,在前述例子中,假设发现真正的来源是MSI IF. tmp这个DLL文件,则会通过弹出窗ロ等方式将该文件提示给用户,而不是只提示对应的系统服务进程ms iexec. exe,当然,在判断源文件的危险级别时,也是判断该MSI1F. tmp的危险级别,而不是msiexec. exe。具体在进行提示时,可以不仅仅将源文件的文件名显示给用户,还可以将该来源文件的路径等信息一井显示给用户。总之,在本发明实施例中,针对用户启动运行某文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另ー个进程中去执行,导致进程链断链的情況,能够将建立源文件与被调用的系统服务权限进程之间的关联,从而在某操作行为触发HIPS规则吋,能够追溯到操作行为的真正来源,进而通过对真正来源处的文件进行危险等级的判断,来确定是否需要进行拦截或者弹出提示界面,这样可以降低误报的概率。与本发明实施例提供的主动防御方法相对应,本发明实施例还提供了一种主动防御装置,參见图3,该装置包括跟踪单元301,用于对预置接ロ产生的远程过程调用协议RPC调用进行跟踪;
拦截单元302,用于当用户权限的进程通过预置接ロ发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;来源确定单元303,用于如果有操作行为触发基于主机的入侵防御系统HIPS规贝U、并根据进程链追溯到所述被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;处理单元304,用于根据所述源文件的危险等级,执行主机入侵防御处理。其中,所述源文件包括MSI安装包文件,所述跟踪単元301可以包括第一跟踪子单元,用于对接ロ IMSIServer: :DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。 或者,所述源文件包括MSI安装包文件中的动态链接库DLL文件,此时,所述跟踪単元201可以包括第二跟踪子单兀,用于对接ロ CMsiCustomAction: :PrepareDLLCustomAction 的RPC调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。在实际应用中,所述处理単元304具体可以包括操作拦截子単元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。或者,所述处理単元304也可以包括风险提示子単元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。与本发明实施例提供的主动防御方法及装置相对应,本发明实施例还提供了ー种主动防御系统,參见图4,该系统可以包括客户端401及服务器端402 跟踪单元4011,用于对预置接ロ产生的远程过程调用协议RPC调用进行跟踪;拦截单元4012,用于当用户权限的进程通过预置接ロ发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;来源确定单元4013,用于如果有操作行为触发基于主机的入侵防御系统HIPS规贝U、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;特征提取単元4014,用于提取所述源文件的特征;具体的,提取的源文件特征可以是源文件的名称、MD5等静态特征,或者也可以在客户端设备上部署沙箱系统,将源文件放入沙箱中运行,提取其动态行为特征,将其上传到服务器端,以便服务器端根据这些特征对源文件进行判断。上传单元4015,用于将所述源文件的特征上传到服务器端402 ;所述服务器端402包括
危险等级确定単元4021,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;所述客户端401还包括处理单元4016,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。当然,在实际应用中,客户端也可以是将整个文件上传至服务器端,由服务器端提取文件的特征,或者直接根据文件白名单或黑名单等来判定文件的危险等级。因此,本发明实施例还提供了另ー种主动防御系统,參见图5,该系统同样包括客户端501及服务器端502,其中客户端具体可以包括跟踪单元5011,用于对预置接ロ产生的远程过程调用协议RPC调用进行跟踪;拦截单元5012,用于当用户权限的进程通过预置接ロ发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联;来源确定单元5012,用于如果有操作行为触发基于主机的入侵防御系统HIPS规贝U、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;上传单元5014,用于将所述源文件上传到服务器端502 ;所述服务器端502包括特征提取単元5021,用于提取所述源文件的特征;危险等级确定単元5022,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;所述客户端501还包括处理单元5015,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。总之,在本发明实施例提供的主动防御装置中,针对用户启动运行某文件之后,会通过用户权限下的一个进程转移到系统服务权限下的另ー个进程中去执行,导致进程链断链的情况,能够将建立源文件与被调用的系统服务权限进程之间的关联,从而在某操作行为触发HIPS规则吋,能够追溯到操作行为的真正来源,进而通过对真正来源处的文件进行危险等级的判断,来确定是否需要进行拦截或者弹出提示,这样可以降低误报的概率。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技木,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的ー个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式
的权利要求书由此明确地并入该具体实施方式
,其中每个权利要求本身都作为本发明的单独实施例。 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成ー个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者単元中的至少ー些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或単元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在ー个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的主机入侵防御设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有ー个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何參考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“ー个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。本申请可以应用于计算机系統/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系統/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。 在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
权利要求
1.一种主动防御系统,包括客户端及服务器端,其中 所述客户端包括 跟踪单元,用于对预置接口产生的远程过程调用协议RPC调用进行跟踪; 拦截单元,用于当用户权限的进程通过预置接口发起调用系统服务进程的请求时,拦截所述请求,从所述请求中提取源文件的路径,并建立所述源文件的路径与被调用的系统服务进程之间的关联; 来源确定单元,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源; 特征提取单元,用于提取所述源文件的特征; 上传单元,用于将所述源文件的特征上传到服务器端; 所述服务器端包括 危险等级确定单元,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端; 所述客户端还包括 处理单元,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。
2.根据权利要求I所述的系统,其中,所述源文件包括MSI安装包文件,所述跟踪单元包括 第一跟踪子单元,用于对接口 IMSIServer: :DoInstallRemote的RPC调用进行跟踪,以便获取所述MSI安装包文件在系统中的保存路径。
3.根据权利要求I所述的系统,其中,所述源文件包括MSI安装包文件中的动态链接库DLL文件,所述跟踪单元包括 第二跟踪子单兀,用于对接口 CMsiCustomAction: : PrepareDLLCustomAction 的 RPC 调用进行跟踪,以便获取所述MSI安装包文件中的DLL文件的DLL路径。
4.根据权利要求I至3任一项所述的系统,其中,所述处理单元包括 操作拦截子单元,用于根据所述源文件的危险等级,对所述操作行为执行拦截。
5.根据权利要求I至3任一项所述的系统,其中,所述处理单元包括 风险提示子单元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。
6.一种主动防御系统,包括客户端及服务器端,其中 所述客户端包括 跟踪单元,用于对预置接口产生的远程过程调用协议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任一项所述的系统,其中,所述处理单元包括 风险提示子单元,用于根据所述源文件的危险等级,向用户进行风险提示,并将所述源文件的信息提示给用户。
全文摘要
本发明公开了主动防御系统,包括客户端及服务器端,其中所述客户端包括跟踪单元;拦截单元;来源确定单元,用于如果有操作行为触发基于主机的入侵防御系统HIPS规则、并根据进程链追溯到发起所述操作行为的进程是被调用的系统服务进程,则将所述源文件的路径确定为所述操作行为的来源;特征提取单元,用于提取所述源文件的特征;上传单元,用于将所述源文件的特征上传到服务器端;所述服务器端包括危险等级确定单元,用于根据所述源文件的特征判定所述源文件的危险等级,并返回给客户端;所述客户端还包括处理单元,用于根据所述服务器端返回的所述源文件的危险等级,执行主机入侵防御处理。通过本发明,能够降低误判的概率。
文档编号H04L29/06GK102857519SQ20121037637
公开日2013年1月2日 申请日期2012年9月29日 优先权日2012年9月29日
发明者闫继平 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司