CN114969712A - 一种基于lsm框架的可信程序动态度量方法及装置 - Google Patents
一种基于lsm框架的可信程序动态度量方法及装置 Download PDFInfo
- Publication number
- CN114969712A CN114969712A CN202210574800.9A CN202210574800A CN114969712A CN 114969712 A CN114969712 A CN 114969712A CN 202210574800 A CN202210574800 A CN 202210574800A CN 114969712 A CN114969712 A CN 114969712A
- Authority
- CN
- China
- Prior art keywords
- measurement
- called
- called process
- reference value
- lsm
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于LSM框架的可信程序动态度量方法及装置,当进程运行时被调用,如果进程不存在于dm_add_list缓存列表中,则被调用进程不需要被度量,被调用进程安全运行。如果存在,根据被调用进程的页表获取被调用进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到被调用进程的度量值。将被调用进程的度量值与度量基准值进行比较,如果相同,则被调用进程继续运行。如果不相同,则根据度量模式,对被调用进程进行处理。本发明对操作系统的运行产生最小的影响,实现进程的实时度量和验证,从而防止系统中出现越权操作、防止系统漏洞被攻击者利用。
Description
技术领域
本发明涉及一种基于LSM框架的可信程序动态度量方法及装置,属于网络安全技术领域。
背景技术
可信度量技术是解决计算环境不可信、网络安全缺乏深度保障等问题的重要手段之一,可信计算在运算的同时进行安全防护,能够为系统提供安全免疫能力。
传统的可信度量技术是程序等被度量实体在执行时刻或者事先约定的某个时刻被度量,然后在实施安全规则处进行验证,被称为静态度量。
但是,当程序启动后,在运行的过程中,进程空间内的数据被非法修改,此时度量时刻已经过去,我们无法防御这种入侵风险。
此外,从考虑度量系统的自身的安全性问题的角度出发,将度量系统融入到操作系统中,比如linux的内核中,但是,这种方法会在操作系统升级时,导致整个安全架构的失效,将度量系统融入到操作系统中缺乏灵活性。
因此,本领域技术人员急需要解决静态度量中遇到的进程空间内的数据被非法修改、将度量系统融入到操作系统中缺乏灵活性的问题。
发明内容
目的:为了克服现有技术中存在的不足,本发明提供一种基于LSM框架的可信程序动态度量方法及装置。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
第一方面,一种基于LSM框架的可信程序动态度量方法,包括如下步骤:
当进程运行时被调用,如果被调用进程不存在于度量系统函数的dm_add_list缓存列表中,则被调用进程不需要被度量,被调用进程安全运行。
当进程运行时被调用,如果被调用进程存在于度量系统函数的dm_add_list缓存列表中,根据被调用进程的页表获取被调用进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到被调用进程的度量值。
将被调用进程的度量值与dm_run_listt缓存列表中对应的度量基准值进行比较,如果相同,则被调用进程继续运行。如果不相同,则根据度量模式,对被调用进程进行处理。
作为优选方案,所述度量系统函数的dm_add_list缓存列表至少包括以下所述之一:需要度量的进程的进程名、度量模式和度量基准值。
作为优选方案,所述度量系统函数注册在LSM 内核安全模块的安全钩子函数处。
作为优选方案,所述度量基准值获取方法,包括:
需要度量的进程首次运行时,根据需要度量的进程的页表获取需要度量的进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到需要度量的进程的度量基准值。
作为优选方案,所述如果不相同,则根据度量模式,对被调用进程进行处理,包括:
如果不相同,且度量模式是强制模式,被调用进程被kill掉。
如果不相同,且度量模式是告警模式,形成告警日志,被调用进程继续运行。
作为优选方案,所述国密算法至少包括以下所述之一:SM2算法和SM3算法。
第二方面,一种基于LSM框架的可信程序动态度量装置,包括如下模块:
非度量模块:用于当进程运行时被调用,如果被调用进程不存在于度量系统函数的dm_add_list缓存列表中,则被调用进程不需要被度量,被调用进程安全运行。
度量模块:用于当进程运行时被调用,如果被调用进程存在于度量系统函数的dm_add_list缓存列表中,根据被调用进程的页表获取被调用进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到被调用进程的度量值。
将被调用进程的度量值与dm_run_listt缓存列表中对应的度量基准值进行比较,如果相同,则被调用进程继续运行。如果不相同,则根据度量模式,对被调用进程进行处理。
作为优选方案,所述非度量模块和度量模块中度量系统函数的dm_add_list缓存列表至少包括以下所述之一:需要度量的进程的进程名、度量模式和度量基准值。
作为优选方案,所述非度量模块和度量模块中度量系统函数注册在LSM 内核安全模块的安全钩子函数处。
作为优选方案,所述度量模块中度量基准值获取方法,包括:
需要度量的进程首次运行时,根据需要度量的进程的页表获取需要度量的进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到需要度量的进程的度量基准值。
作为优选方案,所述度量模块中如果不相同,则根据度量模式,对被调用进程进行处理,包括:
如果不相同,且度量模式是强制模式,被调用进程被kill掉。
如果不相同,且度量模式是告警模式,形成告警日志,被调用进程继续运行。
作为优选方案,所述度量模块中国密算法至少包括以下所述之一:SM2算法和SM3算法。
有益效果:本发明提供的一种基于LSM框架的可信程序动态度量方法及装置,基于LSM技术可以实现度量系统的安全加载,对操作系统的运行产生最小的影响,保证了操作系统的稳定性,并在进程运行的过程中,根据进程的页表获取待度量内存段对应的目标页地址,动态的计算进程内存区域的数据的哈希值,实现进程的实时度量和验证,从而防止系统中出现越权操作、防止系统漏洞被攻击者利用,保证信息系统运行安全。
附图说明
图1为本发明方法流程示意图。
图2为计算进程度量基准值方法图。
图3为LSM内核安全模块原理图。
图4为进程动态度量告警日志界面图。
具体实施方式
下面结合具体实施例对本发明作更进一步的说明。
如图1所示,第一方面,一种基于LSM框架的可信程序动态度量方法,包括如下步骤:
步骤一,在LSM 内核安全模块的安全钩子函数处注册度量系统函数。
步骤二,把需要度量的进程的进程名和度量模式(强制或者告警)添加到度量系统函数的dm_add_list缓存列表中。
步骤三,当某个进程运行时,LSM内核中的安全钩子函数被调用,判断该进程是否存在于dm_add_list缓存列表中,如果不存在,则不需要被度量,可以安全运行,如果存在,则需要度量进入步骤四。
步骤四,对该进程进行动态度量。
(1) 根据dm_run_list缓存列表中是否包含该进程度量基准值,来判断该进程是否首次度量,如果不包含该进程度量基准值,则认为是首次度量,进入第二步,如果是非首次度量,进入第三步。
(2) 根据进程的页表获取待度量进程内存段对应的目标页地址,如图2所示,利用SM3函数计算地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,计算公式如下:,作为进程度量基准值,并存储到dm_run_list缓存列表中。vman表示第n个线性内存区域中数据。
(3) 计算进程对应地址空间当前状态的度量值,并与dm_run_list中的度量基准值进行比较,度量值相同则进程继续运行。如果度量值不相同,则根据度量模式判断,如果是强制模式,进程被度量系统kill掉,如果是告警模式,只记录告警,进程继续运行。
如图3所示,动态程序度量基于LSM安全框架,它定义了很多钩子函数,安插在内核的关键路径上,当执行到这些关键路径时,调用安插在钩子进行安全检查。每个钩子上安装一个函数指针链,当调用钩子时,依次执行挂载在钩子上的函数,为linux实现的不同的安全模块实际上就是在这些钩子上安装函数。
可以根据用户选择的进程进行有目的度量,当不需要度量该进程时,可以从内核dm_run_list缓存列表中删除该进程。
对进程的虚拟地址进行计算的摘要算法是国密SM2和SM3算法,并且计算需要计算进程所有虚拟地址段的hash值。
使用界面配置需要度量的进程,并且可以控制度量开关的启停,配置度量模式,包括强制模式和告警模式,在强制模式下,当发现进程被非法修改时,需要终止该进程并触发告警,在告警模式下,只需要触发告警。
所述告警日志写入到告警日志文件中,可信计算客户端通过调用系统inotify接口,将告警日志文件加入到监视列表中,文件内容一旦发生变化,实时上报告警日志到可信管理中心,如图4所示,动态度量的进程日志包括:度量时间,进程IP,节点名称,审计类型,进程,文件地址,度量模式等。
一种基于LSM框架的可信程序动态度量装置,包括如下步骤:
非度量模块:用于当进程运行时被调用,如果被调用进程不存在于度量系统函数的dm_add_list缓存列表中,则被调用进程不需要被度量,被调用进程安全运行。
度量模块:用于当进程运行时被调用,如果被调用进程存在于度量系统函数的dm_add_list缓存列表中,根据被调用进程的页表获取被调用进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到被调用进程的度量值。
将被调用进程的度量值与dm_run_listt缓存列表中对应的度量基准值进行比较,如果相同,则被调用进程继续运行。如果不相同,则根据度量模式,对被调用进程进行处理。
作为优选方案,所述非度量模块和度量模块中度量系统函数的dm_add_list缓存列表至少包括以下所述之一:需要度量的进程的进程名、度量模式和度量基准值。
作为优选方案,所述非度量模块和度量模块中度量系统函数注册在LSM 内核安全模块的安全钩子函数处。
作为优选方案,所述度量模块中度量基准值获取方法,包括:
需要度量的进程首次运行时,根据需要度量的进程的页表获取需要度量的进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到需要度量的进程的度量基准值。
作为优选方案,所述度量模块中如果不相同,则根据度量模式,对被调用进程进行处理,包括:
如果不相同,且度量模式是强制模式,被调用进程被kill掉。
如果不相同,且度量模式是告警模式,形成告警日志,被调用进程继续运行。
作为优选方案,所述度量模块中国密算法至少包括以下所述之一:SM2算法和SM3算法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种基于LSM框架的可信程序动态度量方法,其特征在于:包括如下步骤:
当进程运行时被调用,如果被调用进程不存在于度量系统函数的dm_add_list缓存列表中,则被调用进程不需要被度量,被调用进程安全运行;
当进程运行时被调用,如果被调用进程存在于度量系统函数的dm_add_list缓存列表中,根据被调用进程的页表获取被调用进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到被调用进程的度量值;
将被调用进程的度量值与dm_run_listt缓存列表中对应的度量基准值进行比较,如果相同,则被调用进程继续运行;如果不相同,则根据度量模式,对被调用进程进行处理。
2.根据权利要求1所述的一种基于LSM框架的可信程序动态度量方法,其特征在于:所述度量系统函数的dm_add_list缓存列表至少包括以下所述之一:需要度量的进程的进程名、度量模式和度量基准值。
3.根据权利要求1所述的一种基于LSM框架的可信程序动态度量方法,其特征在于:所述度量系统函数注册在LSM 内核安全模块的安全钩子函数处。
4.根据权利要求1所述的一种基于LSM框架的可信程序动态度量方法,其特征在于:所述度量基准值获取方法,包括:
需要度量的进程首次运行时,根据需要度量的进程的页表获取需要度量的进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到需要度量的进程的度量基准值。
5.根据权利要求1所述的一种基于LSM框架的可信程序动态度量方法,其特征在于:所述如果不相同,则根据度量模式,对被调用进程进行处理,包括:
如果不相同,且度量模式是强制模式,被调用进程被kill掉;
如果不相同,且度量模式是告警模式,形成告警日志,被调用进程继续运行。
6.根据权利要求1所述的一种基于LSM框架的可信程序动态度量方法,其特征在于:所述国密算法至少包括以下所述之一:SM2算法和SM3算法。
7.一种基于LSM框架的可信程序动态度量装置,其特征在于:包括如下模块:
非度量模块:用于当进程运行时被调用,如果被调用进程不存在于度量系统函数的dm_add_list缓存列表中,则被调用进程不需要被度量,被调用进程安全运行;
度量模块:用于当进程运行时被调用,如果被调用进程存在于度量系统函数的dm_add_list缓存列表中,根据被调用进程的页表获取被调用进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到被调用进程的度量值;
将被调用进程的度量值与dm_run_listt缓存列表中对应的度量基准值进行比较,如果相同,则被调用进程继续运行;如果不相同,则根据度量模式,对被调用进程进行处理。
8.根据权利要求7所述的一种基于LSM框架的可信程序动态度量装置,其特征在于:所述非度量模块和度量模块中度量系统函数的dm_add_list缓存列表至少包括以下所述之一:需要度量的进程的进程名、度量模式和度量基准值。
9.根据权利要求7所述的一种基于LSM框架的可信程序动态度量装置,其特征在于:所述非度量模块和度量模块中度量系统函数注册在LSM 内核安全模块的安全钩子函数处。
10.根据权利要求7所述的一种基于LSM框架的可信程序动态度量装置,其特征在于:所述度量模块中度量基准值获取方法,包括:
需要度量的进程首次运行时,根据需要度量的进程的页表获取需要度量的进程的内存段对应的目标页地址,利用国密算法计算目标页地址空间内每个线性内存区域中数据的哈希值,并将哈希值求和,得到需要度量的进程的度量基准值。
11.根据权利要求7所述的一种基于LSM框架的可信程序动态度量装置,其特征在于:所述度量模块中如果不相同,则根据度量模式,对被调用进程进行处理,包括:
如果不相同,且度量模式是强制模式,被调用进程被kill掉;
如果不相同,且度量模式是告警模式,形成告警日志,被调用进程继续运行。
12.根据权利要求7所述的一种基于LSM框架的可信程序动态度量装置,其特征在于:所述度量模块中国密算法至少包括以下所述之一:SM2算法和SM3算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210574800.9A CN114969712A (zh) | 2022-05-25 | 2022-05-25 | 一种基于lsm框架的可信程序动态度量方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210574800.9A CN114969712A (zh) | 2022-05-25 | 2022-05-25 | 一种基于lsm框架的可信程序动态度量方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969712A true CN114969712A (zh) | 2022-08-30 |
Family
ID=82955192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210574800.9A Pending CN114969712A (zh) | 2022-05-25 | 2022-05-25 | 一种基于lsm框架的可信程序动态度量方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969712A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561811A (zh) * | 2023-07-11 | 2023-08-08 | 北京智芯微电子科技有限公司 | 文件可信防篡改方法、装置及电子设备 |
CN117786668A (zh) * | 2023-12-28 | 2024-03-29 | 北京长扬软件有限公司 | 一种应用程序动态完整性度量方法和系统 |
-
2022
- 2022-05-25 CN CN202210574800.9A patent/CN114969712A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561811A (zh) * | 2023-07-11 | 2023-08-08 | 北京智芯微电子科技有限公司 | 文件可信防篡改方法、装置及电子设备 |
CN117786668A (zh) * | 2023-12-28 | 2024-03-29 | 北京长扬软件有限公司 | 一种应用程序动态完整性度量方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8364973B2 (en) | Dynamic generation of integrity manifest for run-time verification of software program | |
US11714910B2 (en) | Measuring integrity of computing system | |
US8601273B2 (en) | Signed manifest for run-time verification of software program identity and integrity | |
CN114969712A (zh) | 一种基于lsm框架的可信程序动态度量方法及装置 | |
CN108351938B (zh) | 校验针对程序代码的一部分所计算的安全值的装置、系统和方法 | |
CN105608386A (zh) | 一种可信计算终端完整性度量、证明方法及装置 | |
CN110334515B (zh) | 一种基于可信计算平台生成度量报告的方法及装置 | |
US20180218153A1 (en) | Comparing structural information of a snapshot of system memory | |
CN103905461A (zh) | 一种基于可信第三方的云服务行为可信证明方法和系统 | |
US11809571B2 (en) | Vulnerability analysis using continuous application attestation | |
CN109784061A (zh) | 控制服务器可信启动的方法及装置 | |
CN111737081A (zh) | 云服务器监控方法、装置、设备及存储介质 | |
US9104863B2 (en) | Method and apparatus to harden a software execution in random access memory | |
CN113127873A (zh) | 堡垒机的可信度量系统及电子设备 | |
CN117272286A (zh) | 基于tee的进程动态完整性度量方法及系统 | |
CN115357908B (zh) | 一种网络设备内核可信度量与自动修复方法 | |
JP2016010031A (ja) | 遠隔完全性検証システム、方法及びプログラム | |
CN116737526A (zh) | 一种代码段动态度量方法、装置及电子设备 | |
CN114386047A (zh) | 应用漏洞检测方法、装置、电子设备及存储介质 | |
CN110334514B (zh) | 一种基于可信计算平台验证度量报告的方法及装置 | |
CN109977665B (zh) | 基于tpcm的云服务器启动过程防窃取和防篡改方法 | |
US20220342984A1 (en) | Integrity monitor | |
CN106778286A (zh) | 一种用于检测服务器硬件是否被攻击的系统及方法 | |
CN112269996A (zh) | 一种面向区块链主节点的主动免疫可信计算平台的动态度量方法 | |
KR101893504B1 (ko) | 리눅스 환경에서 파일 무결성 검증 장치 및 방법 |
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 |