病毒免疫方法、装置及电子设备与流程

文档序号:26050946发布日期:2021-07-27 15:26阅读:93来源:国知局
病毒免疫方法、装置及电子设备与流程

本发明涉及信息安全技术领域,尤其是涉及一种病毒免疫方法、装置及电子设备。



背景技术:

计算机技术的发展为生产、生活的各个领域都带来了极大的便利,但同时由于计算机病毒感染也会使用户的利益受到威胁。目前,针对病毒的主动防护主要采用了内核驱动技术,该技术在内核层对程序的文件、注册表、网络等访问行为进行监控,通过一定的模式和策略来判定进程是否是恶意程序。但是基于内核监控的防护方法驱动运行于系统内核层,对操作系统的影响较大,甚至会由于实现缺陷导致操作系统崩溃,而且由于需要对系统的文件、注册表、网络等i/o操作进行过滤和监控,因此会降低操作系统的性能。



技术实现要素:

有鉴于此,本发明的目的在于提供一种病毒免疫方法、装置及电子设备,无需在操作系统中运行内核驱动,降低了对操作系统性能的影响,同时避免了由于实现缺陷导致操作系统崩溃。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种病毒免疫方法,包括:提升病毒免疫系统进程访问令牌权限;基于预先设定的文件规则,在文件规则对应的文件路径下创建对应的免疫文件;其中,文件规则包括计算机系统被病毒感染后病毒文件的全路径文件名称;基于预先设定的注册表规则,在注册表规则对应的路径下创建对应的免疫注册表项;其中,注册表规则包括计算机系统被病毒感染后病毒注册表的全路径名称及键值;基于免疫文件和免疫注册表项进行病毒免疫。

在一种实施方式中,基于预先设定的文件规则,在文件规则对应的文件路径下创建对应的免疫文件的步骤之后,还包括:将免疫文件的文件句柄复制到操作系统的system进程中。

在一种实施方式中,将免疫文件的文件句柄复制到操作系统的system进程中的步骤,包括:获取免疫文件的文件句柄;获取操作系统的system进程的进程句柄;将将免疫文件的文件句柄复制到操作系统的system进程中。

在一种实施方式中,注册表规则包括:预设注册表项、预设键值名称和预设键值数据;基于预先设定的注册表规则,在注册表规则对应的路径下创建对应的免疫注册表项的步骤,包括:获取注册表规则对应的预设注册表项;基于预设键值名称确定预设注册表项的键值;基于预设键值数据确定键值对应的键值数据,得到免疫注册表项。

在一种实施方式中,方法还包括:如果获取预设注册表项失败,重新创建注册表规则对应的注册表项。

在一种实施方式中,提升病毒免疫系统进程访问令牌权限的步骤,包括:获取病毒免疫系统进程的进程句柄;打开病毒免疫系统进程的访问令牌;查看访问令牌的特权值,并将特权值保存至luid结构体中;将luid结构体的privilegecount字段值设置为1,并将luid结构体的privileges[0].attributes字段设置为se_privilege_enabled;提升病毒免疫系统进程访问令牌权限到sese_privilege。

第二方面,本发明实施例提供了一种病毒免疫装置,包括:权限提升模块,用于提升病毒免疫系统进程访问令牌权限;第一创建模块,用于基于预先设定的文件规则,在文件规则对应的文件路径下创建对应的免疫文件;其中,文件规则包括计算机系统被病毒感染后病毒文件的全路径文件名称;第二创建模块,用于基于预先设定的注册表规则,在注册表规则对应的路径下创建对应的免疫注册表项;其中,注册表规则包括计算机系统被病毒感染后病毒注册表的全路径名称及键值;免疫模块,用于基于免疫文件和免疫注册表项进行病毒免疫。

在一种实施方式中,装置还包括:复制模块,用于将免疫文件的文件句柄复制到操作系统的system进程中。

第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面提供的任一项的方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面提供的任一项的方法的步骤。

本发明实施例带来了以下有益效果:

本发明实施例提供的上述病毒免疫方法、装置及电子设备,在提升病毒免疫系统进程访问令牌权限后,可以基于预先设定的文件规则(包括计算机系统被病毒感染后病毒文件的全路径文件名称)和预先设定的注册表规则(包括计算机系统被病毒感染后病毒注册表的全路径名称及键值)创建对应的免疫文件和免疫注册表项,从而实现对计算机病毒的免疫。上述方法采用事前免疫的方式,即在病毒感染前通过创建免疫文件和免疫注册表项避免病毒的感染,无需在操作系统中运行内核驱动,降低了对操作系统性能的影响,同时避免了由于实现缺陷导致的操作系统崩溃。

本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种病毒免疫方法的流程图;

图2为本发明实施例提供的一种免疫注册表项创建方法的流程图;

图3为本发明实施例提供的一种病毒免疫装置的结构示意图;

图4为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前反病毒领域对于病毒检测多采用事后查杀的方式,即系统已经感染病毒后再对系统进行查杀,此时系统文件可能已经被病毒破坏,即使将病毒清除掉可能也无法恢复系统数据。针对病毒的主动防护主要采用了内核驱动技术,该技术在内核层对程序的文件、注册表、网络等访问行为进行监控,通过一定的模式和策略来判定进程是否是恶意程序。但是,基于内核监控的防护方案存在以下缺陷:驱动运行于系统内核层,对操作系统影响较大,因为需要对系统的文件、注册表、网络等i/o操作进行过滤和监控,因此会降低操作系统的性能,此外内核驱动编程开发难度大,如果安全开发人员实现有问题的话,会导致操作系统崩溃等严重后果。

基于此,本发明实施例提供的一种病毒免疫方法、装置及电子设备,无需在操作系统中运行内核驱动,降低了对操作系统性能的影响,同时避免了由于实现缺陷导致的操作系统崩溃。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种病毒免疫方法进行详细介绍,参见图1所示的一种病毒免疫方法的流程图,该方法可以由电子设备执行,主要包括以下步骤s102至步骤s108:

步骤s102:提升病毒免疫系统进程访问令牌权限。

病毒免疫系统是本实施例中用于实现病毒免疫的系统,系统中可以预先设定多种病毒对应的免疫规则,通过该免疫规则创建免疫文件和免疫注册表项,从而实现对病毒的免疫。

访问令牌是一个被保护的对象,包含了与用户帐号相关的辨识和特权信息。当用户登陆到一台windows计算机,登陆进程会验证用户的登陆凭据。验证成功后,登陆进程会返回一个对应用户的sid(安全标识符)和一个用户的安全组sid列表,计算机lsa可以使用这些信息创建一个访问令牌(主访问令牌)。在具体应用中,实现一些关键的系统操作时需要获取进程的访问令牌,然后将访问令牌的权限修改为指定权限。但是系统内部并不直接识别权限名称,而是识别luid值,所以需要根据权限名称获取对应的luid值,之后传递给系统,实现进程访问令牌权限的修改,也即提升系统的访问令牌权限。

步骤s104:基于预先设定的文件规则,在文件规则对应的文件路径下创建对应的免疫文件。

其中,文件规则包括计算机系统被病毒感染后病毒文件的全路径文件名称。

步骤s106:基于预先设定的注册表规则,在注册表规则对应的路径下创建对应的免疫注册表项。

其中,注册表规则包括计算机系统被病毒感染后病毒注册表的全路径名称及键值。

在一种具体的实施方式中,考虑到当操作系统感染某种病毒后,会在文件系统的特定目录下生成与病毒对应的文件以及在注册表的特定位置生成与病毒对应的键值,因此大多数计算机病毒在执行时会检测:系统的文件系统特定目录下是否存在特定名称(与病毒名称相对应)的文件,或者系统注册表特定位置是否存在特定名称的键值。如果检测到上述条件中的任意一条,即可认为当前系统已经感染了相应的病毒,无需重复感染,病毒程序则不再继续执行。

基于此,本实施例中可以通过病毒免疫系统预先设定文件规则和注册表规则,其中,每种病毒都有相对应的文件规则和注册表规则,文件规则包括计算机系统被特定病毒感染后对应的全路径文件名称,注册表规则包括计算机系统被特定病毒感染后对应的注册表全路径名机及其键值;基于文件规则和注册表规则可以在对应的路径下创建免疫文件(与病毒为同名文件夹)和免疫注册表项,从而实现对计算机病毒的免疫,避免被病毒感染。

步骤s108:基于免疫文件和免疫注册表项进行病毒免疫。

在一种实施方式中,当病毒检测到对应的文件和注册表项的存在时,即认为该计算机系统已经被感染,无需重复感染,因此系统可以基于创建的免疫文件和免疫注册表项实现对计算机病毒的免疫。此外,免疫文件是与病毒同名的同名文件夹,如果创建同名文件可能会存在文件被病毒感染的可能,而文件夹从性质上不存在被病毒感染的可能。

本发明实施例提供的上述病毒免疫方法,可以基于预先设定的文件规则和预先设定的注册表规则创建对应的免疫文件和免疫注册表项,从而实现对计算机病毒的免疫。上述方法采用事前免疫的方式,即在病毒感染前通过创建免疫文件和免疫注册表项避免病毒的感染,无需在操作系统中运行内核驱动,降低了对操作系统性能的影响,同时避免了由于实现缺陷导致的操作系统崩溃。

进一步,病毒发现系统文件系统特定目录下存在特定名称的文件会尝试替换,替换失败不再继续执行,为了避免创建的免疫文件被病毒程序删除,本实施例提供的上述方法还包括:将免疫文件的文件句柄复制到操作系统的system进程中。具体的,可以通过调用zwduplicatehandle()函数将免疫文件的文件句柄复制到操作系统的system进程中,由于免疫文件属于与病毒同名的目录,而不是真正的可执行文件,因此病毒也无法对免疫文件进行感染破坏。

为了便于理解,本发明实施例还提供了一种具体的将免疫文件的文件句柄复制到操作系统的system进程中的实现方式,具体包括以下步骤1至步骤3:

步骤1:获取免疫文件的文件句柄。

在一种实施方式中,在基于文件规则创建免疫文件后,也即创建病毒的同名文件夹(目录)后,可以通过调用createfile()函数打开已经创建的目录(免疫文件)后,获得该目录的文件句柄。

步骤2:获取操作系统的system进程的进程句柄。

在一种实施方式中,可以通过调用openprocess()函数打开进程号为4也就是windows操作系统的sytem进程,并获得system进程的进程句柄。

步骤3:将将免疫文件的文件句柄复制到操作系统的system进程中。

在一种实施方式中,可以通过调用zwduplicatehandle()函数将步骤1中的文件句柄复制到system进程中。

在一种实施方式中,注册表规则包括:预设注册表项、预设键值名称和预设键值数据,基于此,本发明实施例还提供了一种具体的基于预先设定的注册表规则,在注册表规则对应的文件路径下创建对应的免疫注册表项的实现方式,参见图2所示的一种免疫注册表项创建方法的流程图,具体包括以下步骤s202至步骤s206:

步骤s202:获取注册表规则对应的预设注册表项。

在实际应用中,可以通过调用regopenkeyex()函数打开注册表规则对应的注册表项(即预设注册表项)。

步骤s204:基于预设键值名称确定预设注册表项的键值。

具体的,可以通过调用regcreatekeyex()函数创建指定名称的键值,指定名称即为注册表规则中预先设定的预设键值名称。

步骤s206:基于预设键值数据确定键值对应的键值数据,得到免疫注册表项。

具体的,可以通过调用regsetvalueex()函数设置指定内容的键值数据,指定内容即为注册表规则中预先设定的预设键值名称和预设键值数据。

在一种实施方式中,在打开预设注册表项时可能会打开失败,因此,本发明实施例提供的上述方法还包括:如果获取预设注册表项失败,重新创建注册表规则对应的注册表项。具体的,如果调用regopenkeyex()函数打开预设注册表项失败,则可以通过调用regcreatekeyex()函数创建对应的注册表项,然后继续执行上述步骤s202和步骤s204。

在一种实施方式中,在实现一些关键的系统操作时需要获取进程的访问令牌,然后将访问令牌的权限修改为指定权限。本发明实施例中提升病毒免疫系统进程访问令牌权限主要包括以下步骤(1)至步骤(5):

步骤(1):获取病毒免疫系统进程的进程句柄。

在实际应用中,可以通过调用getcurrentprocess()函数获取病毒免疫系统进程的进程句柄。

步骤(2):打开病毒免疫系统进程的访问令牌。

在实际应用中,可以通过调用openprocesstoken()函数打开病毒免疫系统进程的访问令牌。

步骤(3):查看访问令牌的特权值,并将特权值保存至luid结构体中。

在实际应用中,可以通过调用lookupprivilegevalue()函数查看访问令牌的特权值。

步骤(4):将luid结构体的privilegecount字段值设置为1,并将luid结构体的privileges[0].attributes字段设置为se_privilege_enabled。

步骤(5):提升病毒免疫系统进程访问令牌权限到sese_privilege。

在实际应用中,可以通过调用adjusttokenprivileges()函数完成提升进程访问令牌权限到sese_privilege。

综上所述,本发明实施例提供的病毒免疫方法是一种基于文件占位的病毒免疫方法,可以通过系统预定义的文件规则与注册表规则,在系统中创建免疫文件和免疫注册表项,从而实现对计算机病毒的免疫,避免被病毒感染;该方法具有轻量级、稳定性好的特点,无需在操作系统中运行内核驱动,不会对操作系统i/o性能造成任何影响,系统的所有实现全部都是在应用层,不会因为实现缺陷导致操作系统崩溃。

对于前述实施例提供的病毒免疫方法,本发明实施例还提供了一种病毒免疫装置,参见图3所示的一种病毒免疫装置的结构示意图,该装置可以包括以下部分:

权限提升模块301,用于提升病毒免疫系统进程访问令牌权限。

第一创建模块302,用于基于预先设定的文件规则,在文件规则对应的文件路径下创建对应的免疫文件;其中,文件规则包括计算机系统被病毒感染后病毒文件的全路径文件名称。

第二创建模块303,用于基于预先设定的注册表规则,在注册表规则对应的文件路径下创建对应的免疫注册表项;其中,注册表规则包括计算机系统被病毒感染后病毒注册表的全路径名称及键值。

免疫模块304,用于基于免疫文件和免疫注册表项进行病毒免疫。

本发明实施例提供的上述病毒免疫装置,可以基于预先设定的文件规则和预先设定的注册表规则创建对应的免疫文件和免疫注册表项,从而实现对计算机病毒的免疫。上述装置采用事前免疫的方式,即在病毒感染前通过创建免疫文件和免疫注册表项避免病毒的感染,无需在操作系统中运行内核驱动,降低了对操作系统性能的影响,同时避免了由于实现缺陷导致的操作系统崩溃。

在一种实施方式中,上述装置还包括:复制模块,用于将免疫文件的文件句柄复制到操作系统的system进程中。

在一种实施方式中,上述复制模块进一步还用于获取免疫文件的文件句柄;获取操作系统的system进程的进程句柄;将将免疫文件的文件句柄复制到操作系统的system进程中。

在一种实施方式中,注册表规则包括:预设注册表项、预设键值名称和预设键值数据;上述第二创建模块303进一步还用于获取注册表规则对应的预设注册表项;基于预设键值名称确定预设注册表项的键值;基于预设键值数据确定键值对应的键值数据,得到免疫注册表项。

在一种实施方式中,上述装置还包括第三创建模块,用于如果获取预设注册表项失败,重新创建注册表规则对应的注册表项。

在一种实施方式中,上述权限提升模块301进一步还用于获取病毒免疫系统进程的进程句柄;打开病毒免疫系统进程的访问令牌;查看访问令牌的特权值,并将特权值保存至luid结构体中;将luid结构体的privilegecount字段值设置为1,并将luid结构体的privileges[0].attributes字段设置为se_privilege_enabled;提升病毒免疫系统进程访问令牌权限到sese_privilege。

本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

本发明实施例还提供了一种电子设备,具体的,该电子设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被处理器运行时执行如上实施方式的任一项所述的方法。

图4为本发明实施例提供的一种电子设备的结构示意图,该电子设备100包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。

其中,存储器41可能包含高速随机存取存储器(ram,randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线42可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。

处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。

本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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