一种服务器进程号查询方法及相关装置与流程

文档序号:19571085发布日期:2019-12-31 18:56阅读:159来源:国知局
本申请涉及计算机
技术领域
:,特别涉及一种服务器进程号查询方法、服务器进程号查询装置、服务器以及计算机可读存储介质。
背景技术
::随着信息技术的不断发展,通过互联网技术向海量用户提供了不同的信息服务。而目前的这些信息服务依托了大量的服务器作为数据中心,实时向外界提供各项数据服务。可见,服务器在整个互联网中承担了机器重要的功能。因此,在互联网的数据运行的过程中首先需要保证服务器系统的运行稳定。由于保证服务器可以稳定运行分为不同的角度,其中最为重要的就是保障服务器中的关键进程不会被破坏。现有技术中,会采用api(applicationprogramminginterface,应用程序编程接口)的钩子勾住进程管理进程实现对关键进程的保护,还可以勾住ssdt(systemservicesdescriptortable,系统服务描述符表)函数,当执行危险操作时,通过钩子避免对进程进行影响。但是,以上的保护措施仍然是在用户态的函数或者方法对关键进程进行对应的保护措施,保护力度较低,当出现同为用户态的破坏程序仍然有机会对关键进程的安全运行造成影响。并且,在服务器系统运行期间也会存在其他技术人员无意的杀死服务进程,或者入侵者有意的杀死服务进程,导致服务器无法正常提供服务。因此,如何提高服务器中的关键进程的保护力度,是本领域技术人员关注的重点问题。技术实现要素:本申请的目的是提供一种服务器进程号查询方法、服务器进程号查询装置、服务器以及计算机可读存储介质,通过调测函数替换原有的查询函数,阻拦正常的进程号查询流程,对进程号实现隐藏处理,提高了进程保护的力度。为解决上述技术问题,本申请提供一种服务器进程号查询方法,包括:当获取到进程号查询请求时,采用调测函数对所述进程号查询请求进行处理,得到进程信息;其中,所述调测函数是通过kprobe调测机制将查询函数替换后的函数;根据所述进程信息判断所述进程号查询请求对应的待查询进程是否为待保护进程;若是,则返回查询失败信息;若否,则采用所述查询函数对所述进程号查询请求进行处理。可选的,根据所述进程信息判断所述进程号查询请求对应的待查询进程是否为待保护进程,包括:判断所述进程信息中的进程号是否与所述待保护进程的进程号相同。可选的,根据所述进程信息判断所述进程号查询请求对应的待查询进程是否为待保护进程,包括:判断所述进程信息中是否存在所述待保护进程的识别信息。可选的,采用所述查询函数对所述进程号查询请求进行处理,根据所述进程号查询请求和所述查询函数执行查询操作,得到进程号;发送所述进程号。本申请还提供一种服务器进程号查询装置,包括:调测函数拦截模块,用于当获取到进程号查询请求时,采用调测函数对所述进程号查询请求进行处理,得到进程信息;其中,所述调测函数是通过kprobe调测机制将查询函数替换后的函数;保护进程判断模块,用于根据所述进程信息判断所述进程号查询请求对应的待查询进程是否为待保护进程;进程号隐藏模块,用于当所述带查询进程为待保护进程时,返回查询失败信息;进程号查询模块,用于当所述带查询进程不为待保护进程时,采用所述查询函数对所述进程号查询请求进行处理。可选的,所述保护进程判断模块,具体用于判断所述进程信息中的进程号是否与所述待保护进程的进程号相同。可选的,所述保护进程判断模块,具体用于判断所述进程信息中是否存在所述待保护进程的识别信息。可选的,所述进程号查询模块,包括:进程号查询单元,用于根据所述进程号查询请求和所述查询函数执行查询操作,得到进程号;进程号反馈单元,用于发送所述进程号。本申请还提供一种服务器,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的服务器进程号查询方法的步骤。本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的服务器进程号查询方法的步骤。本申请所提供的一种服务器进程号查询方法,包括:当获取到进程号查询请求时,采用调测函数对所述进程号查询请求进行处理,得到进程信息;其中,所述调测函数是通过kprobe调测机制将查询函数替换后的函数;根据所述进程信息判断所述进程号查询请求对应的待查询进程是否为待保护进程;若是,则返回查询失败信息;若否,则采用所述查询函数对所述进程号查询请求进行处理。通过在获取到进程号查询请求时,采用调测函数对正常的进程号查询流程进行替换,然后当所查询的待查询进程为待保护进程时,直接返回查询失败信息,而不是直接向查询方返回进程号,避免恶意的查询方获取到进程号后执行恶意操作,对于查询方来说相当于将待保护进程进行隐藏,当恶意程序获取不到进程号后也就没有办法实现恶意操作,提高了进程保护的力度。并且,调测函数替换的流程是在内核态中实现的,完全杜绝用户态的入侵程序影响,进一步提高进程保护的力度。本申请还提供一种服务器进程号查询装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不作赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种服务器进程号查询方法的流程图;图2为本申请实施例所提供的一种服务器进程号查询装置的结构示意图。具体实施方式本申请的核心是提供一种服务器进程号查询方法、服务器进程号查询装置、服务器以及计算机可读存储介质,通过调测函数替换原有的查询函数,阻拦正常的进程号查询流程,对进程号实现隐藏处理,提高了进程保护的力度。为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有技术中,会采用api的钩子勾住进程管理进程实现对关键进程的保护,还可以勾住ssdt函数,当执行危险操作时,通过钩子避免对进程进行影响。但是,以上的保护措施仍然是在用户态对关键进程进行对应的保护措施,保护力度较低,当出现同为用户态的破坏程序仍然有机会对关键进程的安全运行造成影响。并且,在服务器系统运行期间也会存在其他技术人员无意的杀死服务进程,或者入侵者有意的杀死服务进程,导致服务器无法正常提供服务。因此,本申请提供了一种服务器进程号查询方法,通过在获取到进程号查询请求时,采用调测函数对正常的进程号查询流程进行替换,然后当所查询的待查询进程为待保护进程时,直接返回查询失败信息,而不是直接向查询方返回进程号,避免恶意的查询方获取到进程号后执行恶意操作,对于查询方来说相当于将待保护进程进行隐藏,当恶意程序获取不到进程号后也就没有办法实现恶意操作,提高了进程保护的力度。并且,调测函数替换的流程是在内核态中实现的,完全杜绝用户态的入侵程序影响,进一步提高进程保护的力度。请参考图1,图1为本申请实施例所提供的一种服务器进程号查询方法的流程图。本实施例中,该方法可以包括:s101,当获取到进程号查询请求时,采用调测函数对进程号查询请求进行处理,得到进程信息;其中,调测函数是通过kprobe调测机制将查询函数替换后的函数;本步骤旨在当系统的用户态进行进程号查询时,也就是接收到进程号查询请求时,采用调测函数拦截正常的查询函数,也就是采用调测函数对该进程号查询请求进行处理,得到进程信息,以便判断此时的待查询进程是否为待保护进程。也就是说,当每次进行进程号查询时,均采用调测函数替换正常的进程查询流程。避免当对待保护进程进行保护时直接返回对应的进程号,从而实现对待保护进程的进程号进行隐藏,对待保护进程进行保护。其中,调测函数是指通过kprobe调测机制将查询函数替换后的函数。其中,kprobe调测机制是为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。利用kprobes调测机制可以在内核的绝大多数指定函数中动态的插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程。并且,利用kprobes调测技术,可以设置不同的回调函数,然后在内核或者模块中几乎所有的函数中动态的插入探测点,当内核执行流程执行到指定的探测函数时,会调用该回调函数,即可收集所需的信息,同时内核最后还会回到原本的正常执行流程。可见,通过kprobe调测机制可以在内核中的函数插入不同的回调函数。基于此,本实施例中再采用该回调函数替换原有的查询函数,也就是最后不会返回至原有的正常执行流程。而其中的调测函数可以是与查询函数的查询方式相同的函数,也可以是与查询函数不同的函数。如果是相同的函数,那么该调测函数获取到该进程信息时并不直接返回进程信息,而是通过下一步骤判断的结果确定是否返回。如果是不同的函数,那么该调测函数可以只获取到用于执行下一步骤判断的信息即可,减少复杂程度。可见,无论调测函数的具体功能是何,当进行进程号查询时,都不进行正常的查询流程,而是执行调测函数。避免用户态直接获取到进程号。s102,根据进程信息判断进程号查询请求对应的待查询进程是否为待保护进程;若是,则执行s103;若否,则执行s104;在s101的基础上,本步骤旨在根据获取到的进程信息判断此时查询的进程是否为需要保护的进程,也就是判断进程号查询请求对应的待查询进程是否为待保护进程。若是,则执行对应的保护操作,避免用户态获取到对应的进程信息。若否,则可以执行正常的查询操作,避免影响正常的进程号查询操作。具体的,根据进程信息的不同内容可以执行不同的判断操作。例如,如果进程信息中包含了进程号,那么可以通过该进程号直接判断当前的进程是否为待保护进程。如果进程信息中包含了进程的类别信息,例如,内核控制进程等关键类别的进程,那么可以通过以上类别判断此时的待查询进程是否为待保护进程。如果在进程信息中对需要保护的进程进行不同的标记,当获取到进程信息时,只要判断是否存在该标记即可。可见,根据进程信息中的内容的不同,本步骤中执行的具体判断方式并不唯一,在此不做具体限定。可以根据实际的应用情况选择合适的判断方式。可选的,本步骤中的对待保护进程进行判断的方式可以包括:判断进程信息中的进程号是否与待保护进程的进程号相同。也就是,采用最基本的进程判断方式,预先存储需要包保护的进程的进程号。当接收到进程信息时直接提取其中的进程号,对预存的进程号进行一一对比。当出现相同的进程号时,则判定该待查询进程为待保护进程。当不存在相同的进程号时,则判定该待查询进程不是待保护进程。可选的,本步骤中的对待保护进程进行判断的方式也可以包括:判断进程信息中是否存在待保护进程的识别信息。可见,本可选方案中主要是通过待保护进程中的识别信息进行对应的判断操作。其中,识别信息可以是对待保护进程进行标记的信息。具体的,该识别信息中具体进行标记的方式可以采用现有技术提供的任意一种标记方法,在此不做具体限定。s103,返回查询失败信息;在s102的基础上,本步骤旨在返回查询失败信息,也就是避免查询方获取到进程号,同时反馈失败信息。s104,采用查询函数对进程号查询请求进行处理。在s102的基础上,本步骤旨在执行正常的进程号查询流程。其中,具体的查询方式只需执行原有的查询过程即可。也可以直接采用现有技术提供的任意一种进程号查询方式,在此不做具体限定。可选的,本步骤中执行正常的进程号查询的方式可以包括:首先根据进程号查询请求和查询函数执行查询操作,得到进程号;最后发送进程号。综上,本实施例通过在获取到进程号查询请求时,采用调测函数对正常的进程号查询流程进行替换,然后当所查询的待查询进程为待保护进程时,直接返回查询失败信息,而不是直接向查询方返回进程号,避免恶意的查询方获取到进程号后执行恶意操作,对于查询方来说相当于将待保护进程进行隐藏,当恶意程序获取不到进程号后也就没有办法实现恶意操作,提高了进程保护的力度。并且,调测函数替换的流程是在内核态中实现的,完全杜绝用户态的入侵程序影响,进一步提高进程保护的力度。以下通过另一个具体的实施例,对本申请提供的一种服务器进程号查询方法做进一步具体说明。本实施例中,该方法可以包括:首先,采用linux内核kprobe调测机制使用协助函数替换处于内核态的查询函数,其中,该查询函数是用于获取进程状态的关键函数。当替换该查询函数之后,保存旧的查询函数。然后在协助函数中获取进程信息,如果进程信息中进程号与所提供的进程号一致则返回无法找到,如果不一致则调用保存的旧关键函数正常返回进程信息。其中,在本实施例中的驱动程序实现时,主要包括以下几个步骤:步骤一,获取驱动加载时要隐藏的进程号并保存在内存中;步骤二,使用协助函数替换内核态获取进程信息的关键函数并保存旧关键函数;步骤三,在替换函数中检查获取到的进程信息,如果信息中进程号与步骤一中保存的进程号一致则返回无法找到,否则进行步骤四;步骤四,调用保存的旧关键函数返回正常进程信息。可见,本实施例通过在获取到进程号查询请求时,采用调测函数对正常的进程号查询流程进行替换,然后当所查询的待查询进程为待保护进程时,直接返回查询失败信息,而不是直接向查询方返回进程号,避免恶意的查询方获取到进程号后执行恶意操作,对于查询方来说相当于将待保护进程进行隐藏,当恶意程序获取不到进程号后也就没有办法实现恶意操作,提高了进程保护的力度。并且,调测函数替换的流程是在内核态中实现的,完全杜绝用户态的入侵程序影响,进一步提高进程保护的力度。下面对本申请实施例提供的一种服务器进程号查询装置进行介绍,下文描述的一种服务器进程号查询装置与上文描述的一种服务器进程号查询方法可相互对应参照。请参考图2,图2为本申请实施例所提供的一种服务器进程号查询装置的结构示意图。本实施例中,该装置可以包括:调测函数拦截模块100,用于当获取到进程号查询请求时,采用调测函数对进程号查询请求进行处理,得到进程信息;其中,调测函数是通过kprobe调测机制将查询函数替换后的函数;保护进程判断模块200,用于根据进程信息判断进程号查询请求对应的待查询进程是否为待保护进程;进程号隐藏模块300,用于当带查询进程为待保护进程时,返回查询失败信息;进程号查询模块400,用于当带查询进程不为待保护进程时,采用查询函数对进程号查询请求进行处理。可选的,该保护进程判断模块200,具体用于判断进程信息中的进程号是否与待保护进程的进程号相同。可选的,该保护进程判断模块200,具体用于判断进程信息中是否存在待保护进程的识别信息。可选的,该进程号查询模块400,可以包括:进程号查询单元,用于根据进程号查询请求和查询函数执行查询操作,得到进程号;进程号反馈单元,用于发送进程号。本申请实施例还提供一种服务器,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如以上实施例所述的服务器进程号查询方法的步骤。本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的服务器进程号查询方法的步骤。该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
:内所公知的任意其它形式的存储介质中。以上对本申请所提供的一种服务器进程号查询方法、服务器进程号查询装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1