CN115033930A - 用户态文件完整性度量方法、装置、设备和介质 - Google Patents

用户态文件完整性度量方法、装置、设备和介质 Download PDF

Info

Publication number
CN115033930A
CN115033930A CN202210785359.9A CN202210785359A CN115033930A CN 115033930 A CN115033930 A CN 115033930A CN 202210785359 A CN202210785359 A CN 202210785359A CN 115033930 A CN115033930 A CN 115033930A
Authority
CN
China
Prior art keywords
file
integrity
event
integrity measurement
user
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.)
Pending
Application number
CN202210785359.9A
Other languages
English (en)
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.)
Zebred Network Technology Co Ltd
Original Assignee
Zebred Network 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 Zebred Network Technology Co Ltd filed Critical Zebred Network Technology Co Ltd
Priority to CN202210785359.9A priority Critical patent/CN115033930A/zh
Publication of CN115033930A publication Critical patent/CN115033930A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种用户态文件完整性度量方法、装置、设备和介质。该方法包括:当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;通过所述线程池中的工作线程对所述文件进行完整性度量;在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。本申请的方法能够保证完整性度量能够安全进行,且能够在闭源系统中使用。

Description

用户态文件完整性度量方法、装置、设备和介质
技术领域
本申请涉及文件检测技术领域,尤其涉及一种用户态文件完整性度量方法、装置、设备和介质。
背景技术
Linux(GNU/Linux)系统,是以网络为核心的一个性能稳定的多用户网络操作系统。
在Linux系统下进行文件操作的时候往往需要进行完整性度量,需要对被篡改文件的进行实时阻止操作,以保证文件的安全交互,而现在的完整性度量方法中一般都涉及对内核的侵入式修改或者以内核模块方式提供整体功能。
但是,如果需要针对三方未开发源码的系统(闭源系统)使能完整性度量机制,已有涉及内核修改的完整性度量方案就不适用。
发明内容
本申请提供一种用户态文件完整性度量方法、装置、设备和介质,用以解决现有技术对闭源系统不适用的问题。
第一方面,本申请提供一种用户态文件完整性度量方法,包括:
当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;
通过所述线程池中的工作线程对所述文件进行完整性度量;
在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。
在一种可能的实现方式中,所述向用户空间的完整性守护线程池发送事件通知,包括:
向所述用户空间的文件监控进程发送所述事件通知,所述文件监控进程将所述事件通知发送至所述完整性守护线程池;
所述通过所述线程池中的工作线程对所述文件进行完整性度量,包括:
通过所述工作线程判断待访问所述文件的进程是否为所述文件监控进程,其中,所述事件通知中携带待访问所述文件的进程的PID,所述工作线程根据所述PID确定待访问所述文件的进程是否为所述文件监控进程;
若否,则获取预先存储的所述文件的第一检验数据,根据所述第一检验数据对所述文件进行完整性度量。
在一种可能的实现方式中,所述根据所述第一检验数据对所述文件进行完整性度量,包括:
获取所述文件的元数据;
判断文件的元数据与预存的元数据是否匹配,若匹配,则根据所述文件的元数据获取第二检验数据;
判断所述第一检验数据和所述第二检验数据是否匹配;
若匹配,则确定所述文件满足完整性度量。
在一种可能的实现方式中,所述确定所述文件满足完整性度量之后,所述方法还包括:
对所述文件进行度量标记,所述度量标记用于指示所述文件满足完整性度量。
在一种可能的实现方式中,所述方法还包括:
开启进程隐藏功能,所述进程隐藏功能用于隐藏设置在用户空间的完整性守护线程池以及所述文件监控进程文件监控进程。
在一种可能的实现方式中,所述方法还包括:
获取访问所述文件监控进程的访问进程的PID;
判断所述访问进程的PID是否为所述文件监控进程的PID;
若否,则拒绝所述访问进程访问所述文件监控进程的PID目录。
在一种可能的实现方式中,所述方法还包括:
在初始化流程中,生成监控文件列表,所述监控文件列表中存储有待监控的文件;所述内核空间的fanotify机制用于监控所述监控文件列表中的文件是否发送变化。
第二方面,本申请提供一种用户态文件完整性度量装置,包括:
通知模块,用于当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;
处理模块,用于通过所述线程池中的工作线程对所述文件进行完整性度量;
响应模块,用于在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。
第三方面,本申请提供一种用户态文件完整性度量设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的用户态文件完整性度量方法。
第四方面,本申请提供一种计算机可读存储介质,其上储存有计算机程序,该计算机程序被处理器执行时实现如上述中任意一项所述的用户态文件完整性度量方法的步骤。
本申请提供的用户态文件完整性度量方法、装置、设备和介质,当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;通过所述线程池中的工作线程对所述文件进行完整性度量;在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。能够实现将处理完整性度量的工作交接给应用层完成,适用于闭源系统。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的用户态文件完整性度量的应用场景图;
图2为本发明实施例提供的一种用户态文件完整性度量方法的流程图一;
图3为本发明实施例提供的一种用户态文件完整性度量方法的度量示意图;
图4为本发明实施例提供的一种用户态文件完整性度量方法的流程图二;
图5为本发明实施例提供的一种用户态文件完整性度量方法的流程图三;
图6为本发明实施例提供的一种用户态文件完整性度量装置图;
图7为本发明实施例提供的用户态文件完整性度量设备的硬件示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中一般是在内核层进行完整性度量,例如,预先定义需要度量的文件,并对预先定义的文件进行挂载,在挂载过程中,指定文件的version选项,并以此选项为对比内容进行完整性度量;该version选项为Linux系统的内核层中inode节点的version信息,只能在内核层获取;
而涉及内核层侵入修改或者以内核模块方式的完整性度量,具有其局限性,无法适用于闭源系统。
本发明实施例中将提出新的完整性度量方式,以解决上述问题,提出一种可以适用于闭源系统的完整性度量方法。
图1为本发明实施例提供的用户态文件完整性度量的应用场景图。如图1所示,本发明实施例提供的系统包括Linux系统;其中,Linux系统包括应用层和内核层;该应用层包括应用程序等,该内核层可以进行资源管理,相当于应用层和硬件系统的中间层,该资源管理的单位称为文件,或者称之为进程,每一个进程都会在整个系统初始化的时候产生一个目录,例如/proc/PID目录,每一个初始化后的进程的/proc/PID目录都是唯一的。
用户可以打开应用程序并进行访问操作;
例如,用户点击电脑桌面的一个应用程序,该应用程序可以访问文件,以便于应用程序进行后续功能操作;在访问文件之前,需要对文件进行监控,即要确保文件是没有被篡改的或者是完整的,才能够允许应用程序打开该文件;在进行文件监控之前,可以通过内核层将该应用程序的访问请求送到硬件系统,并通过硬件系统查询该文件的目录并返回给内核层,内核层通知给应用层,在应用层进行文件监控,例如,在应用层预先建立包括可以用于对文件进行监控的完整性守护线程池;通过该线程池对所述文件进行完整性度量,如果该文件通过完整性度量,则允许应用程序打开该文件。
示例的,结合图1以一个简略的整体流程说明本发明实施例中的用户态文件完整性度量可以如何实现;
在应用层进行初始化,包括初始化内核层的fanotify机制和线程池;
通过应用程序给内核层发送打开文件的请求,该打开文件的请求可以作为一个事件通知发送给fanotify机制;
通过内核层的fanotify机制,将该事件通知转达给文件监控;
通过文件监控通知线程池,在线程池的工作线程中对该文件进行完整性度量;
以原路返回度量结果,通过fanotify机制将允许/禁止打开文件的命令转达给应用程序,以进行后续操作。
此过程中,还可以进行进程隐藏,该进程隐藏可以与fanotify机制和线程池交互;
其中,初始化、应用程序访问文件的事件、fanotify机制、进程隐藏、文件监控和线程池(包括工作线程)均可以理解为进程,还可以将进程理解为能够完成某个工作的功能过程,此处的还可以理解为并不是在限定上述进程的含义,而是为了方便解释本发明构思做出的通俗性阐述,本实施例对其不作特别限定。
下面结合图2具体说明用户态文件完整性度量中应用程序对文件的访问可以如何实现。
图2为本发明实施例提供的一种用户态文件完整性度量方法的流程图一。如图2所示,该方法包括:
S201、当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的。
fanotify机制处于Linux系统的内核层(内核空间),可以对文件变化的事件进行监控;换言之,fanotify机制可以理解为Linux系统下的一种对文件变化产生通知的机制。
可选的,所述内核空间的fanotify机制用于监控所述监控文件列表中的文件是否发送变化。
当内核空间的fanotify机制监控到文件变化的事件时,可以向应用层(用户空间)的完整性守护线程池发送事件通知,以让完整性守护线程池对该文件变化的事件进行完整性度量;该文件变化的事件可以是应用程序访问文件产生的事件。
例如,应用程序想要打开某个文件,就会产生一个事件,可以将该事件看成一个请求,即应用程序发出一个打开文件的请求,该请求能够通过内核层的fanotify机制监控到,并通过内核层的fanotify机制通知给应用层的完整性守护线程池,让应用层的完整性守护线程池来判断该请求能不能够被允许。
S202、通过所述线程池中的工作线程对所述文件进行完整性度量。
在应用层的完整性守护线程池中包括多个工作线程,当一项工作请求发送至该线程池时,可以通过该线程池中的某个工作线程来完成相关工作。
例如,本实施例步骤中需要应用层的工作线程完成的工作包括进行完整性度量。
S203、在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。
例如,当应用层的线程池中的工作线程完成对文件的完整性度量后,会产生度量结果;该度量结果可能是文件通过度量,通过度量时,可以将允许应用层的应用程序访问文件的事件反馈到内核层,再由内核层将允许响应反馈到应用层的应用程序,应用层可以访问文件;也可能是文件没有通过度量,没有通过度量时,可以将禁止应用层的应用程序访问文件的事件反馈到内核层,再由内核层将禁止响应反馈到应用层的应用程序,应用层无法访问文件。
本实施例中,当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;通过所述线程池中的工作线程对所述文件进行完整性度量;在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。上述方法中,将处理完整性度量的工作交接给应用层完成,能够适用于闭源系统。
下面结合图3和图4具体说明用户态文件完整性度量中完整性守护线程池的度量过程可以如何实现。
图3为本发明实施例提供的一种用户态文件完整性度量方法的度量示意图。如图3所示,该方法包括:
示例的,通过文件监控获取fanotify机制监控到的文件变化的事件,由线程池唤醒其内部的工作线程,通过工作线程进行文件完整性度量,将度量结果返回给线程池,再返回给文件监控。
图4为本发明实施例提供的一种用户态文件完整性度量方法的流程图二。如图4所示,该方法包括:
S401、向所述用户空间的文件监控进程发送所述事件通知,所述文件监控进程将所述事件通知发送至所述完整性守护线程池。
其中,完整性守护线程池包括工作线程;故线程池与工作线程在同一进程下,可以共享内存。
在进入度量之前,内核层的fanotify机制可以监控应用程序访问文件的事件,并将监控到的信息传递给应用层,在应用层进行完整性度量;应用层包括文件监控进程,该文件监控进程可以等待fanotify机制通知、读取fanotify机制通知,以及将事件通知发送至完整性守护线程池,进入度量。
在应用层的完整性守护线程池中包括多个工作线程,当一项工作请求发送至该线程池时,进入度量后,可以通过该线程池中的某个工作线程来完成相关工作。
S402、通过所述工作线程判断待访问所述文件的进程是否为所述文件监控进程;
若否,则执行S403;
其中,所述事件通知中携带待访问所述文件的进程的PID,所述工作线程根据所述PID确定待访问所述文件的进程是否为所述文件监控进程。
例如,在应用层进行完整性度量包括判断待访问文件的进程是否为文件监控进程;文件监控进程中包括监控待监控文件的进程,如果待访问文件的进程不是文件监控进程,说明待访问文件不是文件监控进程中监控的待监控文件,需要进行进一步度量处理;
如果待访问文件的进程是文件监控进程,说明待访问文件是文件监控进程中监控的待监控文件,是待监控文件说明待访问文件是在文件监控进程监控范围内的完整性文件,可以被访问,可以直接允许应用程序打开待访问文件。
进一步的,事件通知中携带待访问文件的进程的PID,该PID是进程的标识,每个进程的PID都是唯一的,一般情况下,获取到该PID就可以获取该PID对应进程信息;
例如,获取到待访问文件的进程的PID就可以得到待访问文件的进程中包括的待访问文件是什么(包括文件名称,其中可以将PID看作名称)以及带访问文件里有什么(包括文件大小、文件长度、文件内容);
又由于进程的PID是唯一的,得知待访问文件的进程的PID,就可以得知待访问文件是否在文件监控范围内,在监控范围内可以不用进行过多的计算和判定,不在监控范围内则需要进一步计算和判定。
示例的,在通过所述线程池中的工作线程对所述文件进行完整性度量之前可以进行初始化流程,包括:
在初始化流程中,生成监控文件列表,所述监控文件列表中存储有待监控的文件。
进行初始化流程之后,应用程序在访问文件的时候,可以度量待访问文件的进程是否在监控文件列表中,若否,则执行S403;若是,则可以直接允许应用程序打开待访问文件。
前面的说明中提到文件也可以称之为进程,也就是说应用程序可以访问某个进程,应用程序访问文件的进程可能是访问进程包括文件监控进程,还可能是访问进程包括线程池;当应用程序访问包括文件监控进程或线程池时,都可以理解为应用程序待访问文件为文件监控进程或线程池,而文件监控进程和线程池都是待监控文件,是可以被允许访问的文件。
S403、获取预先存储的所述文件的第一检验数据,根据所述第一检验数据对所述文件进行完整性度量。
在待访问文件的进程不是文件监控进程时,进一步对待访问文件进行完整性度量,可以获取一个用于和待访问文件中的数据对比的检验数据;
例如,在初始化流程中,还可以加载各种文件的检验数据,该检验数据包括第一检验数据,并存储下来,该第一检验数据用于和通过待访问文件计算出来的数据进行对比,如果两个数据一致,那么通过检验,允许应用程序访问文件。
S404、获取所述文件的元数据。
该元数据包括待访问文件的大小和待访问文件的长度等信息,利用这些文件信息可以进一步度量文件。
S405、判断文件的元数据与预存的元数据是否匹配;
若匹配,则执行S406。
示例的,文件的元数据可以和直接与预存的元数据进行匹配,如果匹配成功,再根据文件的元数据获取第二检验数据,进行后续完整性度量;如果匹配失败,直接禁止应用程序打开待访问文件。
该预存的元数据不同于第一检验数据,其包括多个数据,这些数据可以是文件的大小等信息,可以直接与待访问文件的元数据进行对比,如果待访问文件的元数据与预存的元数据相同,则进一步通过待访问文件的元数据获取第二检验数据并进一步进行检验数据的匹配,该第二检验数据的获取方式可以通过下面的步骤实现。
获取第一检验数据和计算第二检验数据之前,直接获取待访问文件的元数据和预存的元数据,并对比;如果对比结果相同,则获取第一检验数据和计算第二检验数据;如果对比结果不相同,则直接禁止应用程序打开待访问文件,无需再进行后续的计算。
该方法可能出现直接跳过计算阶段,在一定程度上可能会减少计算,在另一种可能的情况下,本方法的预存的元数据没有通过那么还需要继续对比第一检验数据和第二检验数据,也可能增加计算;故如何使用还需要依据实际情况,本发明在此不作特别限定。
S406、根据所述文件的元数据获取第二检验数据。
例如,根据元数据所包括的文件信息计算文件的哈希值,将该哈希值作为第二检验数据,用于和第一检验数据对比。
S407、判断所述第一检验数据和所述第二检验数据是否匹配;
若匹配,则执行S408。
将预先存储的第一检验数据和通过待访问文件计算得到的第二检验数据进行匹配,如果匹配,则执行S408;如果不匹配,则禁止应用程序打开待访问文件。
S408、确定所述文件满足完整性度量。
确定文件满足完整性度量,即待访问文件通过完整性度量,是完整性文件,可以进行访问,则允许应用程序打开待访问文件;避免误打开被篡改过的文件,以至于后续操作产生错误。
示例的,在完成度量后,如果待访问文件不是监控文件列表中的文件,且满足完整性度量,可以对该文件标记,避免重复度量;
对所述文件进行度量标记,所述度量标记用于指示所述文件满足完整性度量。
本实施例中,向所述用户空间的文件监控进程发送所述事件通知,所述文件监控进程将所述事件通知发送至所述完整性守护线程池;通过所述工作线程判断待访问所述文件的进程是否为所述文件监控进程;其中,所述事件通知中携带待访问所述文件的进程的PID,所述工作线程根据所述PID确定待访问所述文件的进程是否为所述文件监控进程;若否,则获取预先存储的所述文件的第一检验数据;获取所述文件的元数据;根据所述文件的元数据获取第二检验数据;判断所述第一检验数据和所述第二检验数据是否匹配;若匹配,则确定所述文件满足完整性度量。上述方法中,在内核层将事件通知给应用层,通过应用层将该事件通知给线程池,通过线程池的工作线程完成完整性度量,可以不用侵入内核或者利用内核方式对文件进行完整性度量,可以适用于闭源系统,并且从整个进程看来,该完整性度量的方式比对层次分明且并不复杂,不易产生资源浪费等问题。
下面结合图5具体说明用户态文件完整性度量中隐藏进程可以如何实现。
为了进程安全性,可以对进程进行隐藏。
可选的,开启进程隐藏功能,所述进程隐藏功能用于隐藏设置在用户空间的完整性守护线程池以及所述文件监控进程。
例如,由于本方明实施例中所提到的完整性度量方法是在应用层进行的,通过应用层的运维命令包括ps命令、top命令和proccrank命令可以轻易得到进程的PID,得到进程的PID也得到了文件监控进程下的信息,那么就有在应用层受到攻击软件的攻击,导致无法进行完整性度量的风险,所以可以将访问进程的PID进行隐藏,避免攻击软件获取进程信息。
图5为本发明实施例提供的一种用户态文件完整性度量方法的流程图三。如图5所示,该方法包括:
S501、获取访问所述文件监控进程的访问进程的PID。
无论是被允许的应用程序访问进程还是不被允许的攻击软件访问进程,都会有一个对应的PID,获取访问文件监控进程,后续进行匹配可以知道这些有访问意图的对象,产生的访问进程是否匹配。
S502、判断所述访问进程的PID是否为所述文件监控进程的PID;
若否,则执行S503。
将有访问意图的对象所产生的访问进程的PID与文件监控进程的PID进行匹配,如果匹配,说明有访问意图的对象所产生的访问进程是安全的,那么就可以允许让其进行打开操作;如果不匹配,则执行S503。
S503、拒绝所述访问进程访问所述文件监控进程的PID。
如果不匹配,说明有访问意图的对象所产生的访问进程是不安全的,那么就可以拒绝访问进程来访问文件监控进程的PID目录,上述的进程隐藏在这里指的是,不让攻击软件获取到PID下的进程信息,以保证进程安全。
本实施例中,开启进程隐藏功能,所述进程隐藏功能用于隐藏设置在用户空间的完整性守护线程池以及所述文件监控进程;获取访问所述文件监控进程的访问进程的PID;判断所述访问进程的PID是否为所述文件监控进程的PID;若否,则拒绝所述访问进程访问所述文件监控进程的PID目录。上述方法中,通过隐藏进程PID下的详细信息,避免进程收到攻击,增加了访问进程的安全性。
图6为本发明实施例提供的一种用户态文件完整性度量装置图。如图6所示,该装置包括:通知模块601、处理模块602和响应模块603;
通知模块601,用于当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的。
其中,内核空间的fanotify机制用于监控所述监控文件列表中的文件是否发送变化。
通知模块601,还用于向用户空间的完整性守护线程池发送事件通知,包括:
向所述用户空间的文件监控进程发送所述事件通知,所述文件监控进程将所述事件通知发送至所述完整性守护线程池;
通过所述线程池中的工作线程对所述文件进行完整性度量,包括:
通过所述工作线程判断待访问所述文件的进程是否为所述文件监控进程,其中,所述事件通知中携带待访问所述文件的进程的PID,所述工作线程根据所述PID确定待访问所述文件的进程是否为所述文件监控进程;
若否,则获取预先存储的所述文件的第一检验数据,根据所述第一检验数据对所述文件进行完整性度量。
处理模块602,用于通过所述线程池中的工作线程对所述文件进行完整性度量。
处理模块602,还用于根据所述第一检验数据对所述文件进行完整性度量,包括:
获取所述文件的元数据;
根据所述文件的元数据获取第二检验数据;
判断所述第一检验数据和所述第二检验数据是否匹配;
若匹配,则确定所述文件满足完整性度量。
处理模块602,还用于确定所述文件满足完整性度量之后,所述方法还包括:
对所述文件进行度量标记,所述度量标记用于指示所述文件满足完整性度量。
处理模块602,还用于开启进程隐藏功能,所述进程隐藏功能用于隐藏设置在用户空间的完整性守护线程池以及所述文件监控进程。
处理模块602,还用于获取访问所述文件监控进程的访问进程的PID;
判断所述访问进程的PID是否为所述文件监控进程的PID;
若否,则拒绝所述访问进程访问所述文件监控进程的PID目录。
处理模块602,还用于在初始化流程中,生成监控文件列表,所述监控文件列表中存储有待监控的文件。
响应模块603,用于在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。
本申请还提供一种用户态文件完整性度量设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行用户态文件完整性度量方法。
图7为本发明实施例提供的用户态文件完整性度量设备的硬件示意图。如图7所示,本实施例提供的用户态文件完整性度量设备70包括:至少一个处理器701和存储器702。该设备70还包括通信部件703。其中,处理器701、存储器702以及通信部件703通过总线704连接。
在具体实现过程中,至少一个处理器701执行所述存储器702存储的计算机执行指令,使得至少一个处理器701执行如上用户态文件完整性度量方法。
处理器701的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图7所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(Non-volatile Memory,NVM),例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的用户态文件完整性度量方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段,并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种用户态文件完整性度量方法,其特征在于,包括:
当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;
通过所述线程池中的工作线程对所述文件进行完整性度量;
在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。
2.根据权利要求1所述的方法,其特征在于,所述向用户空间的完整性守护线程池发送事件通知,包括:
向所述用户空间的文件监控进程发送所述事件通知,所述文件监控进程将所述事件通知发送至所述完整性守护线程池;
所述通过所述线程池中的工作线程对所述文件进行完整性度量,包括:
通过所述工作线程判断待访问所述文件的进程是否为所述文件监控进程,其中,所述事件通知中携带待访问所述文件的进程的PID,所述工作线程根据所述PID确定待访问所述文件的进程是否为所述文件监控进程;
若否,则获取预先存储的所述文件的第一检验数据,根据所述第一检验数据对所述文件进行完整性度量。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一检验数据对所述文件进行完整性度量,包括:
获取所述文件的元数据;
判断文件的元数据与预存的元数据是否匹配,若匹配,则根据所述文件的元数据获取第二检验数据;
判断所述第一检验数据和所述第二检验数据是否匹配;
若匹配,则确定所述文件满足完整性度量。
4.根据权利要求3所述的方法,其特征在于,所述确定所述文件满足完整性度量之后,所述方法还包括:
对所述文件进行度量标记,所述度量标记用于指示所述文件满足完整性度量。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
开启进程隐藏功能,所述进程隐藏功能用于隐藏设置在用户空间的完整性守护线程池以及所述文件监控进程。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取访问所述文件监控进程的访问进程的PID;
判断所述访问进程的PID是否为所述文件监控进程的PID;
若否,则拒绝所述访问进程访问所述文件监控进程的PID目录。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
在初始化流程中,生成监控文件列表,所述监控文件列表中存储有待监控的文件;所述内核空间的fanotify机制用于监控所述监控文件列表中的文件是否发送变化。
8.一种用户态文件完整性度量装置,其特征在于,包括:
通知模块,用于当通过内核空间的fanotify机制监控到文件变化的事件时,向用户空间的完整性守护线程池发送事件通知,其中,所述事件是通过应用程序访问所述文件产生的;
处理模块,用于通过所述线程池中的工作线程对所述文件进行完整性度量;
响应模块,用于在所述文件满足完整性度量后,向所述内核空间发送事件响应,所述事件响应用于指示所述应用程序可访问所述文件。
9.一种用户态文件完整性度量设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-7任一项所述的用户态文件完整性度量方法。
10.一种计算机可读存储介质,其上储存有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任意一项所述的用户态文件完整性度量方法的步骤。
CN202210785359.9A 2022-07-05 2022-07-05 用户态文件完整性度量方法、装置、设备和介质 Pending CN115033930A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210785359.9A CN115033930A (zh) 2022-07-05 2022-07-05 用户态文件完整性度量方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210785359.9A CN115033930A (zh) 2022-07-05 2022-07-05 用户态文件完整性度量方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN115033930A true CN115033930A (zh) 2022-09-09

Family

ID=83128104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210785359.9A Pending CN115033930A (zh) 2022-07-05 2022-07-05 用户态文件完整性度量方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN115033930A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827311A (zh) * 2023-02-13 2023-03-21 北京天维信通科技有限公司 利用纠错编码在普通文件系统中保护核心文件的方法
CN115840938A (zh) * 2023-02-21 2023-03-24 山东捷讯通信技术有限公司 一种文件监控的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827311A (zh) * 2023-02-13 2023-03-21 北京天维信通科技有限公司 利用纠错编码在普通文件系统中保护核心文件的方法
CN115840938A (zh) * 2023-02-21 2023-03-24 山东捷讯通信技术有限公司 一种文件监控的方法及装置

Similar Documents

Publication Publication Date Title
EP2754085B1 (en) Verifying firmware integrity of a device
TWI559166B (zh) 應用程式的威脅程度評估
CN115033930A (zh) 用户态文件完整性度量方法、装置、设备和介质
US20150052610A1 (en) Global platform health management
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US10776493B2 (en) Secure management and execution of computing code including firmware
CN104217139A (zh) 处理系统
KR20170056876A (ko) 로그 분석을 기반으로 하는 보안 모니터링 방법, 장치 및 시스템
US10162963B2 (en) Malware detection and identification using deviations in one or more operating parameters
CN111177703B (zh) 操作系统数据完整性的确定方法及装置
EP4184367A1 (en) Integrity measurement method and integrity measurement device
CN112292679A (zh) 密码模块和用于密码模块的运行方法
CN114641769A (zh) 一种处理器的安全度量装置及方法
US20180226136A1 (en) System management mode test operations
US11620129B1 (en) Agent-based detection of fuzzing activity associated with a target program
JP2019003275A (ja) 確認システム、制御装置及び確認方法
KR102102085B1 (ko) 보안 os 이미지를 관리하는 인터넷 서버
JP2018147444A (ja) 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法
CN115935328A (zh) 资源访问控制方法、装置、设备及存储介质
CN111177726A (zh) 一种系统漏洞检测方法、装置、设备及介质
CN111625784B (zh) 一种应用的反调试方法、相关装置及存储介质
US20230208883A1 (en) Security setting device, method of setting per-process security policy, and computer program stored in recording medium
CN115774864B (zh) 基于git hook脚本的代码外泄保护方法和装置
US20220366035A1 (en) Execution control system, execution control method, and program
CN117688551A (zh) 启动路径白名单更新方法、装置、电子设备及存储介质

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