发明内容
针对现有技术中的问题,本发明实施例提供一种基于内核驱动的软件核心文件内生防护方法及装置。
具体地,本发明实施例提供了以下技术方案:
第一方面,本发明实施例提供了一种基于内核驱动的软件核心文件内生防护方法,包括:
基于内核驱动捕获内核中发生的与文件和进程相关的事件;
根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理。
进一步地,所述基于内核驱动捕获内核中发生的与文件和进程相关的事件,具体包括:
基于系统SYSCALL调用表中的函数行为捕获内核中发生的与文件和进程相关的事件。
进一步地,所述根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理,具体包括:
根据与所述事件对应的事件动作确定所述事件动作是否与预设需要进行安全防护的事件动作匹配,若是,则根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理。
进一步地,所述根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,具体包括:
根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配,若是,则根据匹配的文件或进程确定相应的安全防护处理。
进一步地,所述根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配,具体包括:
根据所述事件获取所述事件的操作参数;
根据所述操作参数判断所述操作参数是否与预设需要进行安全防护的文件或进程的名称或标识匹配。
进一步地,所述根据匹配的文件或进程确定相应的安全防护处理,具体包括:
根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理。
进一步地,所述根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理,具体包括:
若匹配的文件或进程对应的重要等级为第一等级,则进行阻断和告警处理;
若匹配的文件或进程对应的重要等级为第二等级,则进行阻断处理;
若匹配的文件或进程对应的重要等级为第三等级,则进行告警处理;
其中,第一等级的重要性>第二等级的重要性>第三等级的重要性。
第二方面,本发明实施例提供了一种基于内核驱动的软件核心文件内生防护装置,包括:
捕获模块,用于基于内核驱动捕获内核中发生的与文件和进程相关的事件;
防护模块,用于根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述基于内核驱动的软件核心文件内生防护方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述基于内核驱动的软件核心文件内生防护方法的步骤。
由上面技术方案可知,本发明实施例提供的基于内核驱动的软件核心文件内生防护方法及装置,由于基于内核驱动捕获内核中发生的与文件和进程相关的事件,并根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理,因此,本发明实施例实现了在内核对文件和进程的保护,较应用层来说,内核对恶意、误删、误杀等破坏行为发现的最早,可以第一时间实现控制,拦截和阻断;同时,由于在内核里,程序执行的权限较高,这样可以阻断一些在应用层由于权限问题失败的违规行为。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
正如背景技术部分所述,在应用层对文件和进程进行保护时存在一些问题。例如,针对软件中的核心文件或进程的破坏行为在应用层有可能无法被发现(由于应用层的权限问题),进而导致不能很好地实现对软件中核心文件和进程进行保护的目的。此外,在应用层对文件和进程进行保护时还存在其他问题。例如,当在应用层发现破坏行为时,实际上,此时破坏行为已经对系统造成了较大影响,即便此时进行拦截阻断等操作,也很难消除该破坏行为对系统已经造成的损失。为解决该问题,本发明实施例提供了一种基于内核驱动的软件核心文件内生防护方法,本发明实施例是从内核中实现对文件和进程的保护,较应用层来说,对恶意、误删、误杀等破坏行为发现的最早,可以第一时间实现控制、拦截和阻断;同时,由于在内核里,程序执行的权限较高,这样可以阻断一些在应用层由于权限问题访问失败的违规行为。在本发明实施例中,内生防护是指面对不断变化的网络威胁,网络安全进化到了内生安全时代,需要依靠聚合,从信息化系统内不断生长出自适应、自主和自成长的安全能力,内生防护能够极大降低网络攻击风险,从而真正保证业务安全。当前,网络安全的内涵和外延在不断扩大,网络环境经历了从互联网到网络空间的演化,互联网时代的安全目标主要是防止数据被破坏、被泄漏和网络瘫痪,网络空间安全时代的安全目标,是包含设施、数据、用户、操作在内整个网络空间的系统安全。伴随着网络环境从I到C的演化(从Internet到Cyberspace),网络安全行业面对的客户正在经历从to C到to B的变化,网络安全观也正在经历从外到内的进化,采用内生防护的手段,可以面对不断变化的网络威胁,自适应性地进行由内至外的安全防护。自适应的内生安全,很像一个强壮的免疫系统,既能做到“明察秋毫、防微杜渐”的告警功能,又能拥有“一方有难、八方支援”和“不惜一切代价,消灭入侵之敌”的防御功能。当信息化系统具备了自适应的内生安全能力后,针对一般性网络攻击能自我发现、自我修复、自我平衡;针对大型网络攻击能自动预测、自动告警和应急响应;应对极端网络灾难时能保证关键业务不中断。内生防护具有较强的安全防护能力,内生防护能够极大降低网络攻击风险,从而真正保证业务安全。下面将通过具体实施例对本发明提供的基于内核驱动的软件核心文件内生防护方法及装置进行详细说明。
图1示出了本发明实施例提供的基于内核驱动的软件核心文件内生防护方法的流程图。如图1所示,本发明实施例提供的基于内核驱动的软件核心文件内生防护方法包括如下步骤:
步骤101:基于内核驱动捕获内核中发生的与文件和进程相关的事件。
在本步骤中,内核中发生的与文件和进程相关的事件,如图2所示,可以包括对文件和进程进行的写、移动、删除、杀死、截断等威胁行为函数事件,也可以包含对文件和进程进行的正常行为函数事件。
在本步骤中,在基于内核驱动捕获内核中发生的与文件和进程相关的事件时,可以基于系统SYSCALL调用表中的函数行为捕获内核中发生的与文件和进程相关的事件。
在本步骤中,需要说明的是,在实际处理过程中,系统内核获取系统调用表地址,对写,移动,删除,杀死,截断等威胁行为函数进行关注,并Hook,当威胁文件或的进程进行这些威胁动作时,进行拦截,并取得操作对象参数,然后对操作参数的文件进行匹配,判断是否为需要进行防护的文件和进程,如果所操作的文件不是需要进行防护的文件和进程,就给予放行,如果所操作的文件是需要进行防护的文件和进程,这时候就对该行为给予告警或者阻断。
步骤102:根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理。
在本步骤中,与事件对应的事件动作可以包括写、移动、删除、杀死、截断等威胁行为动作,也可以包括正常行为动作。
在本步骤中,与事件对应的事件对象可以包括:预先确定的需要进行安全防护的文件、预先确定的需要进行安全防护的进程、预先确定的需要进行安全防护的文件和进程。
在本步骤中,可以先根据与所述事件对应的事件动作确定所述事件动作是否与预设需要进行安全防护的事件动作匹配,若是,则根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,这里,所述预设需要进行安全防护的事件动作可以包括:写、移动、重命名、删除、杀死和截断中的一种或多种。也即是说,当根据与所述事件对应的事件动作确定相应事件为具有威胁动作的事件时才根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,否则,不进行安全防护处理。例如,假设根据与所述事件对应的事件动作(例如为正常的访问或读取)确定相应事件为不具有威胁动作的正常事件,则不进行安全防护处理。
在本步骤中,需要说明的是,当根据与所述事件对应的事件动作(删除动作)确定相应事件为具有威胁动作的事件(删除事件)时,需要根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,这里,根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,可以指:根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件和/或进程匹配,若是,则根据匹配的文件和/或进程确定相应的安全防护处理,否则,不进行安全防护处理。举例来说,若根据事件动作(例如为删除动作)确定相应事件为具有威胁动作的删除事件时,若此时该删除事件对应的事件对象并不是预设需要进行安全防护的文件和/或进程,则此时无需进行安全防护处理。若此时该事件对应的事件对象,经匹配确认后,正是预设需要进行安全防护的文件和/或进程,则需要根据所述事件对象确定相应的安全防护处理。例如,在根据所述事件对象确定相应的安全防护处理时,可以根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理:若匹配的文件或进程对应的重要等级为第一等级,则进行阻断和告警处理;若匹配的文件或进程对应的重要等级为第二等级,则进行阻断处理;若匹配的文件或进程对应的重要等级为第三等级,则进行告警处理;其中,第一等级的重要性>第二等级的重要性>第三等级的重要性。
在本步骤中,需要说明的是,在根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配时,可以采用如下处理方式:根据所述事件获取所述事件的操作参数;根据所述操作参数判断所述操作参数是否与预设需要进行安全防护的文件或进程的名称或标识匹配。由于事件的操作参数中一般包含有该事件的处理对象参数,如该事件待处理的文件或进程的名称等参数,因而可以通过判断所述操作参数是否与预设需要进行安全防护的文件或进程的名称或标识匹配的方式确定相应的事件对象是否与预设需要进行安全防护的文件或进程匹配。
下面结合图3对本实施例提供的基于内核驱动的软件核心文件内生防护方法进行详细说明。如图3所示,具体包括如下处理过程:
S1、系统内核获取系统调用表地址;
S2、对写,移动,删除,杀死,截断等威胁行为函数进行关注,并Hook;
S3、当威胁进程进行这些威胁动作时,进行拦截,并取得操作对象参数;
S4、对操作参数的文件进行匹配,判断是否为需要进行防护的文件和进程;
S5、如果所操作的文件不是需要进行防护的文件和进程,就给予放行;
S6、如果所操作的文件时需要进行防护的文件和进程,这时候就对该行为给予告警或者阻断。
通过以上步骤可以完成国产系统上文件和进程的防护。
由此可见,本实施例是从内核中实现的文件和进程保护,较应用层,对恶意和误删,误杀等破坏行为发现的最早,可以第一时间实现控制,拦截和阻断;同时,由于在内核里,程序执行的权限较高,这样可以阻断一些在应用层由于权限问题失败的违规行为;本实施例主要采用对系统SYSCALL调用表中的函数行为进行HOOK分析实现,其中核心HOOK打开、关闭、重命名、删除、截断等行为,并对其中的参数进行分析比较,对于有危害的行为进行阻断。
由上面技术方案可知,本发明实施例提供的基于内核驱动的软件核心文件内生防护方法,由于基于内核驱动捕获内核中发生的与文件和进程相关的事件,并根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理,因此,本发明实施例实现了在内核对文件和进程的保护,较应用层来说,内核对恶意、误删、误杀等破坏行为发现的最早,可以第一时间实现控制,拦截和阻断;同时,由于在内核里,程序执行的权限较高,这样可以阻断一些在应用层由于权限问题失败的违规行为。
进一步地,基于上述实施例的内容,在本实施例中,所述基于内核驱动捕获内核中发生的与文件和进程相关的事件,具体包括:
基于系统SYSCALL调用表中的函数行为捕获内核中发生的与文件和进程相关的事件。
在本实施例中,基于系统SYSCALL调用表中的函数行为,能够较为简单方便地获取内核中发生的与文件和进程相关的事件。例如,系统内核获取系统调用表地址,对写,移动,删除,杀死,截断等威胁行为函数进行关注,并Hook,从而捕获内核中发生的与文件和进程相关的事件。
进一步地,基于上述实施例的内容,在本实施例中,所述根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理,具体包括:
根据与所述事件对应的事件动作确定所述事件动作是否与预设需要进行安全防护的事件动作匹配,若是,则根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理。
在本实施例中,可以先根据与所述事件对应的事件动作确定所述事件动作是否与预设需要进行安全防护的事件动作匹配,若是,则根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,这里,所述预设需要进行安全防护的事件动作可以包括:写、移动、重命名、删除、杀死和截断中的一种或多种。也即是说,当根据与所述事件对应的事件动作确定相应事件为具有威胁动作的事件时才根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,否则,不进行安全防护处理。例如,假设根据与所述事件对应的事件动作(例如为正常的访问或读取)确定相应事件为不具有威胁动作的正常事件,则不进行安全防护处理。
进一步地,基于上述实施例的内容,在本实施例中,所述根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,具体包括:
根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配,若是,则根据匹配的文件或进程确定相应的安全防护处理。
在本实施例中,需要说明的是,当根据与所述事件对应的事件动作(删除动作)确定相应事件为具有威胁动作的事件(删除事件)时,需要根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,这里,根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理,可以指:根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件和/或进程匹配,若是,则根据匹配的文件和/或进程确定相应的安全防护处理,否则,不进行安全防护处理。举例来说,若根据事件动作(例如为删除动作)确定相应事件为具有威胁动作的删除事件时,若此时该删除事件对应的事件对象并不是预设需要进行安全防护的文件和/或进程,而是其他不需要进行安全防护的文件或进程或其他内容,则此时无需进行安全防护处理。若此时该事件对应的事件对象,经匹配确认后,正是预设需要进行安全防护的文件和/或进程,则需要根据所述事件对象确定相应的安全防护处理。通过该处理方式,不但能够保证需要进行安全防护的文件或进程得到必要的安全防护,同时又能够避免对不需要进行安全防护的文件或进程或其他内容的不必要干扰。
进一步地,基于上述实施例的内容,在本实施例中,所述根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配,具体包括:
根据所述事件获取所述事件的操作参数;
根据所述操作参数判断所述操作参数是否与预设需要进行安全防护的文件或进程的名称或标识匹配。
在本实施例中,由于事件的操作参数中一般包含有该事件的处理对象参数,如该事件待处理的文件或进程的名称等,因而可以通过判断所述操作参数是否与预设需要进行安全防护的文件或进程的名称或标识匹配的方式确定相应的事件对象是否与预设需要进行安全防护的文件或进程匹配。
进一步地,基于上述实施例的内容,在本实施例中,所述根据匹配的文件或进程确定相应的安全防护处理,具体包括:
根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理。
在本实施例中,根据文件或进程的重要等级确定对应的安全防护处理等级,从而保证了不同重要等级的文件或进程,能够得到不同程度的安全防护。
进一步地,基于上述实施例的内容,在本实施例中,所述根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理,具体包括:
若匹配的文件或进程对应的重要等级为第一等级,则进行阻断和告警处理;
若匹配的文件或进程对应的重要等级为第二等级,则进行阻断处理;
若匹配的文件或进程对应的重要等级为第三等级,则进行告警处理;
其中,第一等级的重要性>第二等级的重要性>第三等级的重要性。
在本实施例中,根据文件或进程的重要等级确定对应的安全防护处理等级,从而保证了不同重要等级的文件或进程,能够得到不同程度的安全防护。例如,对于重要等级较高的文件或进程,不但要进行阻断,还要进行告警,以在阻断危害的同时,提醒相关人员及时查找发生危害的原因等。又如,对重要等级较低的文件或进程,只需进行告警即可,无需进行阻断,以免因阻断操作破坏其他相关进程的运行或其他相关程序的运行,此时只需进行告警,提示相关人员了解该威胁事件并在适当的时候采取相应的措施即可。
以在阻断危害的同时,提醒相关人员及时查找发生危害的原因等。
图4示出了本发明实施例提供的基于内核驱动的软件核心文件内生防护装置的结构示意图。如图4所示,本发明实施例提供的基于内核驱动的软件核心文件内生防护装置包括:捕获模块21和防护模块22,其中:
捕获模块21,用于基于内核驱动捕获内核中发生的与文件和进程相关的事件;
防护模块22,用于根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理。
进一步地,基于上述实施例的内容,在本实施例中,所述捕获模块21,具体用于:
基于系统SYSCALL调用表中的函数行为捕获内核中发生的与文件和进程相关的事件。
进一步地,基于上述实施例的内容,在本实施例中,所述防护模块22,具体用于:
根据与所述事件对应的事件动作确定所述事件动作是否与预设需要进行安全防护的事件动作匹配,若是,则根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理。
进一步地,基于上述实施例的内容,在本实施例中,所述预设需要进行安全防护的事件动作包括:写、移动、重命名、删除、杀死和截断中的一种或多种。
进一步地,基于上述实施例的内容,在本实施例中,所述防护模块22在根据与所述事件对应的事件对象确定与所述事件对应的安全防护处理时,具体用于:
根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配,若是,则根据匹配的文件或进程确定相应的安全防护处理。
进一步地,基于上述实施例的内容,在本实施例中,所述防护模块22在根据与所述事件对应的事件对象确定所述事件对象是否与预设需要进行安全防护的文件或进程匹配时,具体用于:
根据所述事件获取所述事件的操作参数;
根据所述操作参数判断所述操作参数是否与预设需要进行安全防护的文件或进程的名称或标识匹配。
进一步地,基于上述实施例的内容,在本实施例中,所述防护模块22在根据匹配的文件或进程确定相应的安全防护处理时,具体用于:
根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理。
进一步地,基于上述实施例的内容,在本实施例中,所述防护模块22在根据匹配的文件或进程对应的重要等级,进行相应级别的安全防护处理时,具体包括:
若匹配的文件或进程对应的重要等级为第一等级,则进行阻断和告警处理;
若匹配的文件或进程对应的重要等级为第二等级,则进行阻断处理;
若匹配的文件或进程对应的重要等级为第三等级,则进行告警处理;
其中,第一等级的重要性>第二等级的重要性>第三等级的重要性。
由于本发明实施例提供的基于内核驱动的软件核心文件内生防护装置,可以用于执行上述实施例所述的基于内核驱动的软件核心文件内生防护方法,其工作原理和有益效果类似,故此处不再详述,具体内容可参见上述实施例的介绍。
基于相同的发明构思,本发明又一实施例提供了一种电子设备,参见图5,所述电子设备具体包括如下内容:处理器501、存储器502、通信接口503和通信总线504;
其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;
所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述基于内核驱动的软件核心文件内生防护方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:基于内核驱动捕获内核中发生的与文件和进程相关的事件;根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
基于相同的发明构思,本发明又一实施例提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于内核驱动的软件核心文件内生防护方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述过程:基于内核驱动捕获内核中发生的与文件和进程相关的事件;根据与所述事件对应的事件动作和事件对象,确定与所述事件对应的安全防护处理。
可以理解的是,所述计算机程序可以执行的细化功能和扩展功能可参照上面实施例的描述。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的基于内核驱动的软件核心文件内生防护方法。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本发明中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。