进程保护方法及装置的制造方法

文档序号:10725505阅读:300来源:国知局
进程保护方法及装置的制造方法
【专利摘要】本申请提出一种进程保护方法和装置,其中,该方法包括:截获调用打开进程函数的操作;判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程;若是,则禁止所述调用打开进程函数的操作。通过本申请提供的进程保护方法和装置,该方法实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
【专利说明】
进程保护方法及装置
技术领域
[0001 ]本申请涉及安全防护技术领域,尤其涉及一种进程保护方法及装置。
【背景技术】
[0002]随着互联网技术发展,木马、病毒等恶意程序技术日益发展。现有的恶意程序在攻击系统时的一种常用方式是,进入系统进程,然后关闭系统中一些重要进程,比如杀毒软件,从而对系统进行任意攻击。

【发明内容】

[0003]本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
[0004]为此,本申请的第一个目的在于提出一种进程保护方法,该方法实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
[0005]本申请的第二个目的在于提出一种进程保护装置。
[0006]为达上述目的,本申请第一方面实施例提出了一种进程保护方法,包括:截获调用打开进程函数的操作;判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程;若是,则禁止所述调用打开进程函数的操作。
[0007]基于上述进程保护方法,在本申请一种可能的实现形式中,所述判断是否所述调用打开进程函数的操作的权限为预设权限,包括:
[0008]判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与第一预设的列表中的值匹配的值;
[0009]若是,则确定所述调用打开进程函数的操作的权限为预设权限。
[0010]基于上述进程保护方法,在本申请另一种可能的实现形式中,所述判断是否所述调用打开进程函数的操作要打开的进程为目标进程,包括:
[0011]判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配;
[0012]若匹配,则确定所述调用打开进程函数的操作要打开的进程为目标进程。
[0013]基于上述进程保护方法,在本申请又一种可能的实现形式中,所述截获调用打开进程函数的操作,包括:
[0014]通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。
[0015]基于上述进程保护方法,在本申请又一种可能的实现形式中,所述判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程,还包括:
[0016]若否,则调用所述打开进程函数。
[0017]本申请实施例进程保护方法,首先截获调用打开进程函数的操作,然后判断是否调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程,并在调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程时,禁止调用打开进程函数的操作。由此,实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
[0018]为达上述目的,本申请第二方面实施例提出了一种进程保护装置,包括:
[0019]截获模块,用于截获调用打开进程函数的操作;判断模块,用于判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程;禁止模块,用于若所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程,则禁止所述调用打开进程函数的操作。
[0020]述判断模块,具体用于:
[0021]判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与第一预设的列表中的值匹配的值;
[0022]若是,则确定所述调用打开进程函数的操作的权限包括预设权限。
[0023]基于上述进程保护装置,在本申请另一种可能的实现形式中,所述判断模块,具体用于:
[0024]判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配;
[0025]若匹配,则确定所述调用打开进程函数的操作要打开的进程为目标进程。
[0026]基于上述进程保护装置,在本申请又一种可能的实现形式中,所述截获模块,具体用于:
[0027]通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。
[0028]基于上述进程保护装置,在本申请又一种可能的实现形式中,该进程保护装置,还包括:调用模块,用于若所述调用打开进程函数的操作的权限不为预设权限,或者所述调用打开进程函数的操作要打开的进程不为目标进程,则调用所述打开进程函数。
[0029]本申请实施例进程保护装置,首先截获调用打开进程函数的操作,然后判断是否调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程,并在调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程时,禁止调用打开进程函数的操作。由此,实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
【附图说明】
[0030]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0031]图1是本申请一个实施例的进程保护方法的流程示意图;
[0032]图2是本申请另一个实施例的进程保护方法的流程示意图;
[0033]图3是本申请一个实施例的进程保护装置的结构示意图;
[0034]图4是本申请另一个实施例的进程保护装置的结构示意图。
【具体实施方式】
[0035]下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0036]下面参考附图描述本申请实施例的进程保护方法及装置。
[0037]图1是本申请一个实施例的进程保护方法的流程示意图。
[0038]如图1所示,该进程保护方法包括:
[0039]步骤101,截获调用打开进程函数的操作。
[0040]具体的,本实施例提供的进程保护方法的执行主体为本申请提供的进程保护装置。该装置可以被配置在具有操作系统、且可以安装其他软件或者应用的终端中,比如手机、计算机等等。
[0041 ] 其中,上述打开进程函数,可以指NtOpenProcess函数。终端中的其他应用或者终端系统可以通过调用NtOpenProcess函数来打开进程。
[0042]实际使用中,恶意软件可以通过NtOpenProcess函数来打开进程,之后若确定打开的进程为终端中的重要进程,比如为防毒软件的进程,则可以进一步地调用结束进程(NtTerminateprocess)函数来将重要进程强制结束或者暂停,进而恶意软件即可对终端系统进行肆意毁坏了。
[0043]本申请实施例中针对上述情况,在终端中的打开进程函数中设置挂钩。当用户或者系统在打开系统进程时,都需要通过调用打开进程函数,此时进程保护装置,即可截获该操作。即上述步骤101,包括:
[0044]通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。
[0045]具体的,可以首先查找系统服务描述符表(System Services Descriptor Table,简称SSDT ),确定原始的NtOpenProce ss的地址,使用钩子函数的地址替换原始的NtOpenProcess函数的地址。在用户或者系统打开进程时,会首先经过钩子函数,从而即可截获调用打开进程函数的操作。
[0046]步骤102,判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程。
[0047]其中,步骤102是为了衡量打开进程函数的操作是否非法设置的,比如若认为打开进程函数的操作要打开的目标进程为“杀毒软件”进程时,即为非法操作,则预设的条件可以为各个“杀毒软件”的名称、标识或者其它信息,以使进程保护装置在截获调用打开进程函数的操作后,即可判断打开进程函数的操作要打开的目标进程,是否与预设的进程信息匹配。
[0048]具体的,进程保护装置,可以首先判断打开进程函数的操作的权限是否为预设权限,然后再判断调用打开进程函数的操作要打开的进程是否为目标进程;或者,也可以先判断调用打开进程函数的操作要打开的进程是否为目标进程,然后再判断打开进程函数的操作的权限是否为预设权限。
[0049]通常,设置的钩子函数与原始的打开进程函数可以包括相同个数的参数,比如,可以包括多个分别用于表征打开进程的标识或权限的参数。
[0050]本申请实施例中进程保护装置,可以根据设置的钩子函数中的用于表征打开进程函数的操作的权限的值,确定该打开进程函数的操作的权限是否为预设权限。
[0051]相应的上述判断是否所述调用打开进程函数的操作的权限为预设权限,包括:
[0052]判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与预设的列表中的值匹配的值;
[0053]若是,则确定所述调用打开进程函数的操作的权限包括预设权限。
[0054]具体的,钩子函数中的访问权限参数(DesiredAccess)的值用来表征打开进程的操作的权限。进程保护装置在截获调用打开进程的函数后,即可根据设置的钩子函数中的DesiredAccess参数中的值,判断该操作的权限是否为预设权限。
[0055]通常,进程保护装置中,可以预先存储预设权限的参数值,当截获调用打开进程函数的操作后,即可判断设置的钩子函数中的表征访问权限的参数值中是否至少包括一个与预设权限的参数值匹配的值,若有,则说明该打开进程函数的操作权限为高权限。
[0056]举例来说,预先存储的预设权限的参数值可以为:PROCESS_TERMINATE(结束进程的权限)、PR0CESS_VM_WRITE(读写进程内存的权限)、PROCESS_DUP_HANDLE(复制进程句柄的权限)、PROCESS_SUSPEND_RESUME(暂停进程的权限)、PR0CESS_SET_INF0RMAT10N(设置进程信息的权限)。则进程保护装置在确定打开进程函数中用于表征访问权限的参数值中至少有一个与上述参数匹配,则可以确定打开进程函数的操作的权限为预设的权限,进而再判断所述调用打开进程函数的操作要打开的进程是否为目标进程。
[0057]其中,目标进程是指对终端的系统运行有重要作用的进程,可以为一个进程,也可以为多个进程。比如,目标进程可以为杀毒软件的进程,也可以为系统的核心进程。
[0058]通常,钩子函数中的第四参数为进程信息结构(ClientId)参数,该参数的值用来表征此次打开进程函数要打开的进程标识(PID),进程保护装置,即可根据进程标识(PID),来判断此次调用打开进程函数的操作要打开的进程是否为目标进程。
[0059]相应的,上述判断是否所述调用打开进程函数的操作要打开的进程为目标进程,包括:
[0060]判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配;
[0061]若匹配,则确定所述调用打开进程函数的操作要打开的进程为目标进程。
[0062]其中,目标进程指在终端的运行过程中,有重要作用的进程,比如为防毒软件的进程等。
[0063]具体的,进程保护装置中可以预先存储所有目标进程标识,当截获到调用打开进程的操作后,即可判断钩子函数中用于表征进程信息结构的参数是否为预先存储的目标进程标识。
[0064]或者,进程保护装置中,还可以包括所有目标进程的路径信息,从而在根据钩子函数中用于表征进程信息结构的参数值,确定此次调用打开进程函数的操作要打开的进程标识后,即可通过调用系统内核函数PsLookupProcessByProcessId和ZwQuery Informat1nProcess来获取到要打开的进程的路径,进而再将要打开的进程路径与各目标进程的路径进行匹配,若匹配,则确定要打开的进程为目标进程。
[0065]可以理解的是,第一预设的列表中的值和第二预设的列表中的值,可以根据终端的允许情况或者用户的操作,进行更新。举例来说,用户在确定终端中新增加了新的目标进程后,可以在第二预设的列表中添加目标进程的标识或目标进程的路径信息,从而使所有的目标进程都不被恶意破坏。
[0066]步骤103,若是,则禁止所述调用打开进程函数的操作。
[0067]具体的,在确定调用打开进程函数的操作的权限包括预设权限,且该调用打开进程函数的操作要打开的进程为目标进程时,则直接禁止其他应用调用该打开进程函数,从而防止了恶意软件通过打开进程函数打开目标进程,进而对目标进程进行关闭、修改或者暂停等非法处理。
[0068]本申请实施例进程保护方法,首先截获调用打开进程函数的操作,然后判断是否调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程,并在调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程时,禁止调用打开进程函数的操作。由此,实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
[0069]图2是本申请另一个实施例的进程保护方法的流程示意图。
[0070]如图2所示,该进程保护方法包括:
[0071]步骤201,通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。
[0072]步骤202,判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与第一预设的列表中的值匹配的值,若是,则执行步骤203,否则执行步骤205。
[0073]步骤203,判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配,若匹配,则执行步骤204,否则执行步骤205。
[0074]步骤204,禁止所述调用打开进程函数的操作。
[0075]步骤205,调用所述打开进程函数。
[0076]具体的,本申请实施例中,在通过与打开进程的函数关联的钩子,截获调用打开进程的函数后,首先判断打开进程函数的操作对应的权限是否包括预设权限,比如是否包括读写进程内存的权限、结束进程的权限、暂停进程的权限等等,若不包括,则可以直接调用打开进程函数,若包括,则继续判断打开进程函数中用于表征进程信息结构的参数值是否为目标进程,若是,则禁止调用打开进程函数的操作,若不是,则调用打开进程函数。
[0077]本申请实施例的进程保护方法,在通过与打开进程函数关联的钩子,截获调用打开进程函数的操作后,首先判断调用打开进程函数的操作的权限是否包括预设权限,若不包括则调用打开进程函数,若包括,则再判断调用打开进程函数的操作要打开的进程是否为目标进程,若是,则禁止调用打开进程的函数,否则,调用打开进程函数。由此,由此,实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
[0078]为了实现上述实施例,本申请还提出一种进程保护装置。
[0079]图3是本申请一个实施例的进程保护装置的结构示意图。
[0080]如图3所示,该进程保护装置包括:
[0081 ]截获模块31,用于截获调用打开进程函数的操作;
[0082]判断模块32,用于判断是否调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程;
[0083]禁止模块33,用于若调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程,则禁止所述调用打开进程函数的操作。
[0084]其中,上述截获模块31,具体用于:
[0085]通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。
[0086]进一步地,上述判断模块32,具体用于:
[0087]判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与第一预设的列表中的值匹配的值;
[0088]若是,则确定所述调用打开进程函数的操作的权限包括预设权限。
[0089]另外,上述判断模块32,还具体用于
[0090]判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配;
[0091]若匹配,则确定所述调用打开进程函数的操作要打开的进程为目标进程。
[0092]需要说明的是,前述对进程保护方法实施例的解释说明也适用于该实施例的进程保护装置,此处不再赘述。
[0093]本申请实施例进程保护装置,首先截获调用打开进程函数的操作,然后判断是否调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程,并在调用打开进程函数的操作的权限为预设权限、且调用打开进程函数的操作要打开的进程为目标进程时,禁止调用打开进程函数的操作。由此,实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
[0094]图4是本申请另一个实施例的进程保护装置的结构示意图,如图4所示,基于图3所示实施例,该进程保护装置,还包括:
[0095]调用模块41,用于若调用打开进程函数的操作的权限不为预设权限,或者调用打开进程函数的操作要打开的进程不为目标进程时,则调用所述打开进程函数。
[0096]需要说明的是,前述对进程保护方法实施例的解释说明也适用于该实施例的进程保护装置,此处不再赘述。
[0097]本申请实施例的进程保护装置,在通过与打开进程函数关联的钩子,截获调用打开进程函数的操作后,首先判断调用打开进程函数的操作的权限是否包括预设权限,若不包括则调用打开进程函数,若包括,则再判断调用打开进程函数的操作要打开的进程是否为目标进程,若是,则禁止调用打开进程的函数,否则,调用打开进程函数。由此,由此,实现了保护目标进程不被随意打开,进而对目标进程进行破坏,有效的保护了目标进程的安全,增强了系统的安全性。
[0098]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0099]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0100]应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0101]本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
【主权项】
1.一种进程保护方法,其特征在于,包括以下步骤: 截获调用打开进程函数的操作; 判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程; 若是,则禁止所述调用打开进程函数的操作。2.如权利要求1所述的方法,其特征在于,所述判断是否所述调用打开进程函数的操作的权限为预设权限,包括: 判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与第一预设的列表中的值匹配的值; 若是,则确定所述调用打开进程函数的操作的权限为预设权限。3.如权利要求1所述的方法,其特征在于,所述判断是否所述调用打开进程函数的操作要打开的进程为目标进程,包括: 判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配; 若匹配,则确定所述调用打开进程函数的操作要打开的进程为目标进程。4.如权利要求1-3任一所述的方法,其特征在于,所述截获调用打开进程函数的操作,包括: 通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。5.如权利要求1-3任一所述的方法,其特征在于,所述判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程之后,还包括: 若否,则调用所述打开进程函数。6.一种进程保护装置,其特征在于,包括: 截获模块,用于截获调用打开进程函数的操作; 判断模块,用于判断是否所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程; 禁止模块,用于若所述调用打开进程函数的操作的权限为预设权限、且所述调用打开进程函数的操作要打开的进程为目标进程,则禁止所述调用打开进程函数的操作。7.如权利要求6所述的装置,其特征在于,所述判断模块,具体用于: 判断所述打开进程函数中用于表征访问权限的参数值中是否有至少一个与第一预设的列表中的值匹配的值; 若是,则确定所述调用打开进程函数的操作的权限包括预设权限。8.如权利要求6所述的装置,其特征在于,所述判断模块,具体用于: 判断所述打开进程函数中用于表征进程信息结构的参数值是否与第二预设的列表中的进程标识匹配; 若匹配,则确定所述调用打开进程函数的操作要打开的进程为目标进程。9.如权利要求6-8任一所述的装置,其特征在于,所述截获模块,具体用于: 通过与所述打开进程函数关联的钩子,截获调用打开进程函数的操作。10.如权利要求6-8任一所述的装置,其特征在于,还包括: 调用模块,用于若所述调用打开进程函数的操作的权限不为预设权限,或者所述调用打开进程函数的操作要打开的进程不为目标进程,则调用所述打开进程函数。
【文档编号】G06F21/55GK106096401SQ201610412811
【公开日】2016年11月9日
【申请日】2016年6月13日 公开号201610412811.1, CN 106096401 A, CN 106096401A, CN 201610412811, CN-A-106096401, CN106096401 A, CN106096401A, CN201610412811, CN201610412811.1
【发明人】李文靖
【申请人】北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1