CN115795462B - Linux内核模块执行进程的检测方法及装置 - Google Patents

Linux内核模块执行进程的检测方法及装置 Download PDF

Info

Publication number
CN115795462B
CN115795462B CN202211567382.7A CN202211567382A CN115795462B CN 115795462 B CN115795462 B CN 115795462B CN 202211567382 A CN202211567382 A CN 202211567382A CN 115795462 B CN115795462 B CN 115795462B
Authority
CN
China
Prior art keywords
module
linux
kernel module
struct
subprocess
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211567382.7A
Other languages
English (en)
Other versions
CN115795462A (zh
Inventor
赵克奉
姜向前
鲍春杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anxin Wangdun Beijing Technology Co ltd
Original Assignee
Anxin Wangdun Beijing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anxin Wangdun Beijing Technology Co ltd filed Critical Anxin Wangdun Beijing Technology Co ltd
Priority to CN202211567382.7A priority Critical patent/CN115795462B/zh
Publication of CN115795462A publication Critical patent/CN115795462A/zh
Application granted granted Critical
Publication of CN115795462B publication Critical patent/CN115795462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例涉及一种Linux内核模块执行进程的检测方法及装置,所述方法包括:调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和进程tgid的对象,并将其插入构建的缓存列表中;在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;若该struct subprocess_info对象中包含的可执行程序的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意Rootkit内核模块发起执行的。本发明实施例提供的检测方法简单、高效,能够精确捕捉内核调用执行进程的行为,从而识别可能存在的恶意Rootkit内核模块,并且可以对该行为进行实时拦截或者放行操作。

Description

Linux内核模块执行进程的检测方法及装置
技术领域
本发明实施例涉及Rootkit检测技术领域,尤其涉及一种Linux内核模块执行进程的检测方法及装置。
背景技术
研究发现,目前许多基于Linux内核的Rootkit为了躲避基于系统调用(systemcall)的挂钩(hook)检测,采用在Linux内核发起进程的调用和执行,从而达到隐藏自身以及躲避追踪的目的。其中,Rootkit是一种特殊的恶意软件,功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息。而现有技术中,尚未有针对Linux内核的Rootkit的有效检测方法。
发明内容
基于现有技术的上述情况,本发明实施例的目的在于提供一种Linux内核模块执行进程的检测方法及装置,通过检测从Linux内核模块发起的进程调用执行,从而追踪到具体的内核模块并对执行进程的操作进行阻断。
为达到上述目的,根据本发明的一个方面,提供了一种Linux内核模块执行进程的检测方法,包括步骤:
在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;
在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和该进程的tgid的对象,并将其插入构建的缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;
在第二回调函数中,若该进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;
若该struct subprocess_info对象中可执行程序的的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意Rootkit内核模块发起执行。
进一步的,所述方法还包括:
若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针存在于Linux的任一内核模块中,且该任一内核模块已被判断为恶意模块,则判断该进程由恶意Rootkit内核模块发起执行。
进一步的,所述方法还包括:
当判断该进程由恶意Rootkit内核模块发起执行时,第二回调函数返回-EPERM标识,并阻断该进程执行。
进一步的,所述方法还包括卸载驱动程序:
解注册第一注册函数,解注册第二注册函数。
根据本发明的第二个方面,提供了一种Linux内核模块执行进程的检测装置,包括:
回调函数注册模块,用于在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;
第一回调函数处理模块,用于在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和进程tgid的对象,并将其插入构建的缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;
第二回调函数处理模块,用于在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;
恶意Rootkit程序判断模块,若该struct subprocess_info对象中可执行程序的的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意Rootkit内核模块发起执行。
进一步的,所述Rootkit恶意程序判断模块,还用于若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针存在于Linux的任一内核模块中,且该任一内核模块已被判断为恶意模块,则判断该进程由恶意Rootkit内核模块发起执行。
进一步的,还包括Rootkit恶意程序处理模块,用于当判断该进程由恶意Rootkit内核模块发起执行时,第二回调函数返回-EPERM标识,并阻断该进程执行。
进一步的,还包括驱动程序卸载模块,用于解注册第一注册函数和解注册第二注册函数。
根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述程序时实现如本发明第一个方面所述的方法。
根据本发明的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如本发明第一个方面所述的方法。
综上所述,本发明实施例提供了一种Linux内核模块执行进程的检测方法及装置,所述方法包括:在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和进程tgid的对象,并将其插入构建的缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;若该struct subprocess_info对象中可执行程序的的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意Rootkit模块发起执行。本发明实施例提供的检测方法,根据Linux内核执行进程的原理,检测从内核模块发起的进程调用执行,并能追踪到具体的内核模块并对执行进程的操作进行阻断,该Linux内核进程执行检测方法简单、高效,能够精确捕捉内核模块调用执行进程的行为,从而识别可能存在的Rootkit恶意程序,并且可以对该行为实时进行拦截或者放行操作。
附图说明
图1是本发明实施例提供的Linux内核模块执行进程检测方法的流程图;
图2是本发明实施例中第一回调函数处理过程的流程图;
图3是本发明实施例中第二回调函数处理过程的流程图;
图4是本发明实施例提供的Linux内核模块执行进程的检测装置的构成框图;
图5是本申请该实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
下面对结合附图对本发明实施例的技术方案进行详细说明。Linux下从应用空间执行新程序的模型如下:通过fork函数创建一个新的进程;然后调用execve函数执行程序。此时,采用系统调用挂钩函数(system call hook)的方式,很容易追踪到此类事件。为了躲避追踪,越来越多的内核Rootkit通过内核模块发起进程调用并执行,进而开启类似反弹shell(反弹shell就是一种反向链接,在对方计算机执行命令连接到本方计算机的攻击模式,并且这种攻击模式必须搭配远程执行命令漏洞来使用)、后门等恶意功能。针对内核Rootkit的以上攻击方式,本发明的实施例,提供了一种Linux内核模块执行进程的检测方法,通过检测内核模块发起进程调用执行,进而检测到该进程是否由恶意内核Rootkit程序发起执行。
以下以基于Linux 4.15.0内核为例,说明从内核执行进程要执行的步骤:
步骤1、Linux内核首先执行call_usermodehelper函数,设置需要执行的可执行程序的路径、参数、环境变量。在该call_usermodehelper函数内会继续调用call_usermodehelper_setup函数,以初始化一个struct subprocess_info对象,该对象实际保存可执行程序的路径、参数和环境变量的指针,同时该函数会初始化一个工作任务,工作任务的函数是call_usermodehelper_exec_work。
步骤2、call_usermodehelper_setup函数返回后,执行call_usermodehelper_exec函数。call_usermodehelper_exec函数的主要任务是添加工作任务到任务队列,等待call_usermodehelper_exec_work函数被调用。
步骤3、call_usermodehelper_exec_work函数以call_usermodehelper_exec_async函数为回调函数,以及struct subprocess_info对象为参数,调用kernel_thread创建一个内核线程。
步骤4、call_usermodehelper_exec_async函数以struct subprocess_info对象保存的可执行程序的路径、参数和环境变量调用do_execve函数执行新程序。
根据从Linux内核执行进程要执行的以上步骤,可知从Linux内核执行进程的关键步骤有两点:一、内核创建线程;二、调用do_execve函数执行程序。本发明实施例提供的检测方法,针对这两个关键步骤,采用tracepoint hook函数以及LSM hook函数分别对两个关键点挂钩,采集需要的数据,配合使用两个挂钩(hook)点完成检测以及阻断功能。
图1中示出了本发明实施例提供的Linux内核模块执行进程的检测方法的流程图,如图1所示,该检测方法包括如下步骤:
S202、在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数。驱动是内核支持的一种动态扩展的模块,进程执行的时候,会执行驱动模块中包含的代码逻辑。驱动模块生成后,需要通过安装才能加载到内核,发挥提供的功能,同理,驱动模块不在使用时,需要从内核卸载掉。该步骤在驱动安装时,进行初始化步骤,包括构建缓存列表和初始化struct tracepoint对象。调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数,其中,该第一注册函数例如为tracepoint_probe_register函数,第一注册点例如为sched_process_fork hook点;第二注册点例如为LSM的security_bprm_check_security hook点其中,LSM(Linux Security Modules)是Linux内核提供的用于访问控制的通用框架,security_bprm_check_security是LSM提供的一个挂钩点。
S204、该步骤是对于第一回调函数的处理程序,图2中示出了第一回调函数处理过程的流程图,如图2所示,在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有结构体类型为struct subprocess_info的对象的指针和进程tgid的对象,并将其插入构建的缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针。该步骤中,判断该进程是否为Linux内核创建的线程可以采用以下方式:判断该进程是否是call_usermodehelper_exec_work函数调用kernel_thread函数创建的线程,例如,判断该进程的执行函数是否为call_usermodehelper_exec_async函数,如果判断结果为是,则该进程为call_usermodehelper_exec_work函数调用kernel_thread函数创建的线程;如果判断结果为否,则该进程不是call_usermodehelper_exec_work函数调用kernel_thread函数创建的线程。如果判断结果为是Linux内核创建的线程,则生成一个保存有struct subprocess_info对象的指针和进程tgid的对象,并将其插入构建的缓存列表中;如果判断结果为否,则该步骤关于第一回调函数的处理结束,并开始进行第二回调函数的处理。
S206、该步骤是对于第二回调函数的处理程序,图3中示出了第二回调函数处理过程的流程图,如图3所示,在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针。在第二回调函数,即security_bprm_check_security回调函数中,根据当前进程的tgid查询上述缓存列表。如果查询到当前进程的tgid存在于该缓存列表中,则说明该进程是上述步骤S204中创建的进程,进而获取到struct subprocess_info对象的指针,接着查询subprocess_info对象中保存的地址是否在Linux某个内核模块中。判断结束后释放步骤S204中插入缓存列表中的对象。
S208、若该struct subprocess_info对象中可执行程序的的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意内核Rootkit模块发起执行;或者,若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针存在于Linux的任一内核模块中,且该任一内核模块已被判断为恶意模块,则判断该进程由恶意内核Rootkit模块发起执行。在该步骤中,如果检测到struct subprocess_info对象中可执行程序的路径、参数和环境变量指针存在于Linux某个内核模块中,并且已知该模块是恶意模块;或者查询不到struct subprocess_info对象中可执行程序的路径、参数和环境变量指针存在于任何的Linux内核模块中(由于恶意Rootkit会隐藏自身,从而会导致无法检测到),则由第二回调函数,即security_bprm_check_security回调函数返回-EPERM标识,阻断进程执行。
根据某些可选的实施例,上述步骤S208的判断结果为是时,还可以进一步判断该判断结果是否为误报,如果发生误报情况(例如可以通过预设的白名单来判断是否有误报情况),则进一步判断是否需要阻断进行执行,如果是,则由第二回调函数返回-EPERM标识,阻断进程执行;如果否,则返回正常结果。上述步骤S208的判断结果为否时,还可以进一步判断是否需要阻断进行执行,如果不需要,则返回正常结果。
根据某些可选的实施例,所述方法还包括卸载驱动程序,包括步骤:解注册tracepoint的第一注册点sched_process_fork hook的第一注册函数,解注册LSM的第二注册点security_bprm_check_security hook的第二注册函数,清理构建的缓存列表。
本发明的实施例中,还提供了一种Linux内核模块执行进程的检测装置,图4中示出了该Linux内核模块执行进程的检测装置的构成框图,如图4所示,该检测装置包括:
回调函数注册模块401,用于在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;
第一回调函数处理模块402,用于在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和进程tgid的对象,并将其插入Linux缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;
第二回调函数处理模块403,用于在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;
Rootkit恶意程序判断模块404,若该struct subprocess_info对象中可执行程序的的路径、参数和环境变量指针未存在于Linux的任一内核模块中,则判断该进程由恶意内核Rootkit模块发起执行,若该struct subprocess_info对象中可执行程序的路径、参数和环境变量指针存在于Linux的任一内核模块中,且该任一内核模块已被判断为恶意模块,则判断该进程由恶意内核Rootkit模块发起执行。
根据某些可选的实施例,该装置还包括Rootkit恶意程序处理模块,用于当判断该进程由恶意内核Rootkit模块发起执行,第二回调函数返回-EPERM标识,并阻断该进程执行。
根据某些可选的实施例,该装置还包括驱动程序卸载模块,用于解注册第一注册函数和解注册第二注册函数。
本发明的实施例中,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,所述处理器执行所述程序时实现如本发明上述实施例中所述的方法。图5所示为本申请该实施例提供的电子设备500的结构示意图。如图5所示,该电子设备500包括:一个或多个处理器501和存储器502;以及存储在存储器502中的计算机可执行指令,可执行指令在被处理器501运行时使得处理器501执行如上述实施例的Linux内核模块执行进程的检测方法。处理器501可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。存储器502可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器501可以运行程序指令,以实现上文的本发明实施例的Linux内核模块执行进程的检测方法中的步骤以及/或者其他期望的功能。在一些实施例中,电子设备500还可以包括:输入装置503和输出装置504,这些组件通过总线系统和/或其他形式的连接机构(图5中未示出)互连。例如,在该电子设备是单机设备时,该输入装置503可以是通信网络连接器,用于从外部的可移动设备接收所采集的输入信号。此外,该输入设备503还可以包括例如键盘、鼠标、麦克风等。该输出装置504可以向外部输出各种信息,例如可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等。
本发明的实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明上述实施例中所述的方法中的步骤。计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器((RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
应当理解的是,本发明实施例中的处理器可以为中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
综上所述,本发明实施例涉及一种Linux内核模块执行进程的检测方法及装置,所述方法包括:在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;在第一回调函数中,当判断该进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和进程tgid的对象,并将其插入Linux缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;若该structsubprocess_info对象中可执行程序的的路径、参数和环境变量指针未存在于Linux的任一内核模块中,则判断该进程由恶意内核Rootkit模块发起执行。本发明实施例提供的检测方法,根据Linux内核执行进程的原理,检测从内核发起的进程调用执行,并能追踪到具体的内核模块并对执行进程的操作进行阻断,该Linux内核模块执行进程的检测方法简单、高效,能够精确捕捉内核调用执行进程的行为,从而识别可能存在的Rootkit恶意程序,并且可以对该行为实时进行拦截或者放行操作。
应当理解的是,以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (10)

1.一种Linux内核模块执行进程的检测方法,其特征在于,包括步骤:
在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;
在第一回调函数中,当判断Linux内核模块执行的进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和保存有该进程的tgid的对象,并将其插入构建的缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;
在第二回调函数中,若该进程的tgid存在于缓存列表中,则从缓存列表中获取structsubprocess_info对象的指针;
若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意Rootkit内核模块发起执行。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针存在于Linux的任一内核模块中,且该任一内核模块已被判断为恶意模块,则判断该进程由恶意Rootkit内核模块发起执行。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当判断该进程由恶意Rootkit内核模块发起执行时,第二回调函数返回-EPERM标识,并阻断该进程执行。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括卸载驱动程序:
解注册第一注册函数,解注册第二注册函数。
5.一种Linux内核模块执行进程的检测装置,其特征在于,包括:
回调函数注册模块,用于在Linux环境下,执行驱动安装程序,调用第一注册函数向第一注册点注册第一回调函数,向第二注册点注册第二回调函数;
第一回调函数处理模块,用于在第一回调函数中,当判断Linux内核模块执行的进程为Linux内核创建的线程时,则生成一个保存有struct subprocess_info对象的指针和保存有该进程的tgid的对象,并将其插入构建的缓存列表中;所述struct subprocess_info对象保存对应于该进程可执行程序的路径、参数和环境变量的指针;
第二回调函数处理模块,用于在第二回调函数中,若当前进程的tgid存在于缓存列表中,则从缓存列表中获取struct subprocess_info对象的指针;
恶意Rootkit程序判断模块,若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针未存在于Linux的任一内核模块中,则判断该进程由恶意Rootkit内核模块发起执行。
6.根据权利要求5所述的装置,其特征在于,所述恶意Rootkit程序判断模块,还用于若该struct subprocess_info对象中可执行程序的路径、参数和环境变量的指针存在于Linux的任一内核模块中,且该任一内核模块已被判断为恶意模块,则判断该进程由恶意Rootkit内核模块发起执行。
7.根据权利要求5或6所述的装置,其特征在于,还包括Rootkit恶意程序处理模块,用于当判断该进程由恶意Rootkit内核模块发起执行时,第二回调函数返回-EPERM标识,并阻断该进程执行。
8.根据权利要求5所述的装置,其特征在于,还包括驱动程序卸载模块,用于解注册第一注册函数和解注册第二注册函数。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的可执行指令,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,所述可执行指令被处理器执行时实现如权利要求1-4中任一项所述的方法。
CN202211567382.7A 2022-12-07 2022-12-07 Linux内核模块执行进程的检测方法及装置 Active CN115795462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211567382.7A CN115795462B (zh) 2022-12-07 2022-12-07 Linux内核模块执行进程的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211567382.7A CN115795462B (zh) 2022-12-07 2022-12-07 Linux内核模块执行进程的检测方法及装置

Publications (2)

Publication Number Publication Date
CN115795462A CN115795462A (zh) 2023-03-14
CN115795462B true CN115795462B (zh) 2023-06-16

Family

ID=85418965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211567382.7A Active CN115795462B (zh) 2022-12-07 2022-12-07 Linux内核模块执行进程的检测方法及装置

Country Status (1)

Country Link
CN (1) CN115795462B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383827B (zh) * 2023-03-17 2024-06-14 中广核智能科技(深圳)有限责任公司 一种安全卸载可信功能机制方法、系统和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
CN106126291A (zh) * 2016-06-28 2016-11-16 北京金山安全软件有限公司 一种删除恶意文件的方法、装置及电子设备
CN107016283A (zh) * 2017-02-15 2017-08-04 中国科学院信息工程研究所 基于完整性验证的Android权限提升攻击安全防御方法和装置
CN113010885A (zh) * 2021-02-23 2021-06-22 安芯网盾(北京)科技有限公司 一种检测伪装起始地址的内核线程的方法及装置
CN114741695A (zh) * 2022-04-02 2022-07-12 安天科技集团股份有限公司 一种恶意代码监控方法、装置、电子设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101174751B1 (ko) * 2010-09-27 2012-08-17 한국인터넷진흥원 커널 콜백 매커니즘을 이용한 악성코드 자동 분석 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927484A (zh) * 2014-04-21 2014-07-16 西安电子科技大学宁波信息技术研究院 基于Qemu模拟器的恶意程序行为捕获方法
CN106126291A (zh) * 2016-06-28 2016-11-16 北京金山安全软件有限公司 一种删除恶意文件的方法、装置及电子设备
CN107016283A (zh) * 2017-02-15 2017-08-04 中国科学院信息工程研究所 基于完整性验证的Android权限提升攻击安全防御方法和装置
CN113010885A (zh) * 2021-02-23 2021-06-22 安芯网盾(北京)科技有限公司 一种检测伪装起始地址的内核线程的方法及装置
CN114741695A (zh) * 2022-04-02 2022-07-12 安天科技集团股份有限公司 一种恶意代码监控方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN115795462A (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
US8806640B2 (en) Program execution integrity verification for a computer system
US20160196428A1 (en) System and Method for Detecting Stack Pivot Programming Exploit
CN115795462B (zh) Linux内核模块执行进程的检测方法及装置
JP2009129451A (ja) 悪性コードによって挿入されたダイナミックリンクライブラリ検出装置及び方法
JP2011233125A (ja) 偽装仮想マシン情報を利用したインテリジェントボット対応方法及び装置
CN109643346B (zh) 控制流完整性
JP5225942B2 (ja) 解析システム、解析方法、及び解析プログラム
US10706180B2 (en) System and method for enabling a malware prevention module in response to a context switch within a certain process being executed by a processor
CN105678164A (zh) 检测恶意软件的方法及装置
CN114281431A (zh) 函数调用方法、装置、介质及嵌入式设备和操作系统
CN111949513A (zh) 一种配置文件加载方法、装置、电子设备和可读存储装置
CN105005526A (zh) 一种信息提醒方法及移动终端
US10318731B2 (en) Detection system and detection method
CN114153759A (zh) 一种内存取证方法、装置及电子设备
CN109472135B (zh) 一种检测进程注入的方法、装置及存储介质
CN114139154A (zh) 一种恶意代码检测方法、装置、计算机和可读存储介质
KR101982734B1 (ko) 악성 코드 탐지 장치 및 방법
CN112395593B (zh) 指令执行序列的监测方法及装置、存储介质、计算机设备
CN114896592B (zh) 一种wmi恶意代码的通用检测方法、装置、设备及存储介质
CN116028929B (zh) 基于Linux内核的无文件攻击的检测方法及装置
CN111831551B (zh) 一种非阻塞式嵌入式软件测试方法、装置及存储介质
CN110555307B (zh) 识别和处理伪装型系统动态库的方法、装置、设备及介质
CN108664253B (zh) 应用替换方法、装置、存储介质及电子设备
CN116796308B (zh) 一种基于Linux内核的伪装进程可执行程序检测方法及装置
CN116049817B (zh) 基于Linux内核的实时检测与阻断进程提权方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant