CN111125793B - 一种访问控制中客体内存可信验证方法及系统 - Google Patents

一种访问控制中客体内存可信验证方法及系统 Download PDF

Info

Publication number
CN111125793B
CN111125793B CN201911340046.7A CN201911340046A CN111125793B CN 111125793 B CN111125793 B CN 111125793B CN 201911340046 A CN201911340046 A CN 201911340046A CN 111125793 B CN111125793 B CN 111125793B
Authority
CN
China
Prior art keywords
memory
verification
data
shared memory
ipc
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
CN201911340046.7A
Other languages
English (en)
Other versions
CN111125793A (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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201911340046.7A priority Critical patent/CN111125793B/zh
Publication of CN111125793A publication Critical patent/CN111125793A/zh
Application granted granted Critical
Publication of CN111125793B publication Critical patent/CN111125793B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供的一种访问控制中客体内存可信验证方法及系统,该方法包括:获取访问控制过程中的客体内存,并将所述客体内存划分为客体进程内存和IPC对象共享内存;分别对客体进程内存和IPC对象共享内存进行可信验证。本发明实施例提供的访问控制中客体内存可信验证方法及系统,通过将客体内存数据分为充当主体服务对象的客体进程内存以及充当进程间通信的IPC对象共享内存,并分别对两种客体内存分别进行可信验证,实现了对被现有方案所忽略的不定客体数据的可信校验,保证了应用程序在运行过程中的动态可信。

Description

一种访问控制中客体内存可信验证方法及系统
技术领域
本发明涉及信息安全技术领域,尤其涉及一种访问控制中客体内存可信验证方法及系统。
背景技术
随着互联网的迅速发展,计算机网络的应用逐渐深入到人们生活的方方面面,导致对于构建可信网络系统的需求也愈发强烈。尤其随着以资源动态分配、按需服务为设计理念的“云计算”技术的成熟,其所面临的攻击手段和工具也愈发的多元化,云安全问题也成为制约这一新兴技术发展的瓶颈。随着可信计算技术的兴起,可信操作系统逐渐成为研究热点,可信性的建立不仅需要对操作系统自身以及可能降低系统可信性的执行代码进行一致性度量、对用户登录进行可信验证、对登录的内部合法用户的行为进行监管,而且需要对操作系统中的客体内容的可信性进行检查监督。
目前,关于客体内容的可信验证,在现有技术中也存在相关的研究:
周明天等人在《基于可信计算平台的静态客体可信验证系统的设计与实现》一文中,通过对访问控制中静态客体的分析与总结,提出了基于TPM的静态客体可信验证系统。但其方案不足之处在于:1、以TPM为可信锚点,缺乏国密算法包的支持;2、验证系统过于繁琐及流于表面,即只通过相关静态客体的属主身份、创建时间等建立静态客体的映像文件来进行可信验证。
谭良等人在《基于可信计算平台的可信动态客体监管系统的设计与实现》一文中,通过对访问控制中客体进行分类,将客体分为文件、目录、设备及系统控制数据等静态客体,进程及进程间通信等动态客体两大类。提出了可信动态客体的概念并提出了相应的动态客体可信验证方案。但该方案的不足之处在于:1、依旧是通过对主体、客体身份进行鉴别及TPM进行动态客体信息进行加密的方式来进行可信验证,具有相当大的局限性;2、没有对可信动态客体的具体信息进行分类处理,可信性不高。
专利公开号为CN 106295319的专利文件中,公开了一种根据主体和客体信任状态做控制的方式来对操作系统做安全防护的方案,但是客体的分类主要是针对静态文件类别,忽略了重要的动态客体,即进程、进程间通信等,安全防护能力并不突出。
专利公开号为CN 109992992A的专利提出了一种将敏感数据包含可信应用静态分配的.data段、.bss段,以及动态分配的栈段、堆段分配到受可信芯片保护的内部随机存取存储器的安全域,将代码及非敏感数据加载到动态随机存取存储器的安全域的方式来实现对应用数据的可信保护,但是该方案只是提出利用所谓“安全域”来保护敏感数据,而缺乏对相关敏感数据的可信动态验证,一旦“安全域”被攻击者所攻破,应用程序数据不存在可信而言。
综上所述,现有的可信运行方案在处理客体可信验证的时候,没有对客体的类型进行分类,而且所提出的对客体的可信验证需求均针对的是只能作为主体行为的受体的“静态客体”,例如文件、目录、设备等。而缺乏对诸如进程、进程间通信等动态客体的可信验证。不能有效的保证客体的可信性,因此,不能保证上层应用的可信运行。
发明内容
有鉴于此,本发明实施例提供一种访问控制中客体内存可信验证方法及其系统,用以解决目前对于动态客体的内存进行安全可信保护不全面的缺陷。
第一方面,本发明实施例提供一种访问控制中客体内存可信验证方法,包括:获取访问控制过程中的客体内存,并将客体内存划分为客体进程内存和IPC对象共享内存;对客体进程内存进行可信验证;对IPC对象共享内存进行可信验证。
进一步地,上述对客体进程内存进行可信验证,包括:
获取与客体进程内存相对应的物理内存数据的第一度量值;获取与客体进程内存相关的可执行文件;获取可执行文件的代码段及常量数据段数据,并对代码段及常量数据段数据进行完整性度量,获取第二度量值;将第二度量值与第一度量值以及第一标准基准值进行对比,完成对客体进程内存的可信验证。
进一步地,上述获取与客体进程内存相对应的物理内存数据的第一度量值,包括:根据客体进程内存的进程号,获取与客体进程内存相对应的内存映射文件;对内存映射文件的内存片段信息进行解析,获取物理内存数据;调用国密算法包对物理内存数据进行完整性度量,获取第一度量值。
进一步地,在上述获取与客体进程内存向对应的物理内存数据的第一度量值之前,还包括:根据客体进程内存的敏感类型,利用内存数据控制块设置敏感标签位对客体进程内存进行敏感度分类;根据敏感度分类,设置度量间隔时间。
进一步地,上述对IPC对象共享内存进行可信验证,包括:对创建IPC对象共享内存的写进程进行可信验证;若写进程的验证通过,则允许主体进程创建IPC对象共享内存,并生成共享内存标识符;根据共享内存标识符,获取IPC对象共享内存在写进程完成之后的内存区域数据;对内存区域数据进行完整性度量,获取第三度量值;将第三度量值与第二标准基准值进行对比,完成对内存区域数据的可信验证;对创建IPC对象共享内存的读进程进行可信验证。
进一步地,在上述对创建IPC对象共享内存的写进程进行可信验证之前,还包括:在IPC对象共享内存中设置写标志位,以使写进程独享IPC对象共享内存;在对读进程进行可信验证之前,将写标志位更换为读标志位,以使读进程独享IPC对象共享内存。
进一步地,在上述对读进程进行可信验证之后,还包括:确定读进程的验证通过,则显式删除IPC对象共享内存的内存区域数据。
进一步地,在上述对内存区域数据进行完整性度量,获取第三度量值之前,还包括:利用内存数据控制块设置敏感标签位对IPC对象共享内存进行敏感度分类;根据敏感度分类,设置度量间隔时间。
进一步地,在上述对创建IPC对象共享内存的写进程进行可信验证之后,还包括:若写进程的验证通过,且写进程为第一次写数据,则将获取的完整性度量值初始化为第二标准基准值。
第二方面,本发明实施例提供一种访问控制中客体内存可信验证系统,包括:客体内存辨识模块、客体进程内存可信验证模块和IPC对象共享内存信验证模块,其中:
客体内存辨识模块,用于获取访问控制过程中的客体内存,并将客体内存划分为客体进程内存和IPC对象共享内存;客体进程内存可信验证模块,用于对客体进程内存进行可信验证;IPC对象共享内存信验证模块,用于对IPC对象共享内存进行可信验证。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的访问控制中客体内存可信验证方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面任一项所述的访问控制中客体内存可信验证方法的步骤。
本发明实施例提供的访问控制中客体内存可信验证方法及系统,通过将客体内存数据分为充当主体服务对象的客体进程内存以及充当进程间通信的IPC对象共享内存,并分别对两种客体内存分别进行可信验证,实现了对被现有方案所忽略的不定客体数据的可信校验,保证了应用程序在运行过程中的动态可信。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种访问控制中客体内存可信验证方法的流程示意图;
图2为本发明实施例提供的对客体进程内存进行可信验证的流程示意图;
图3为本发明实施例提供的对IPC对象共享内存进行可信验证的结构示意图;
图4为本发明实施例中共享内存构架示意图;
图5本发明实施例提供的一种访问控制中客体内存可信验证系统的结构示意图;
图6为本发明实施例提供的另一种访问控制中客体内存可信验证方法的方案构架示意图;
图7为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可信计算技术对网络安全有如下提升:
1、操作系统安全升级,如防范UEFI中插入rootkit、防范OS中插入rootkit、以及防范病毒和攻击驱动注入等。
2、应用完整性保障,如防范在应用中插入木马。
3、安全策略强制实现,如防范安全策略被绕过/篡改、强制应用只能在某个计算机上用、强制数据只能有某几种操作等。
可信验证主要是通过度量和验证的技术手段来实现。其中,度量就是采集所检测的应用或数据的状态;验证是将度量结果和标准度量值(参考值)进行比对,如果一致表示验证通过,如果不一致则表示验证失败。
度量分为静态度量和动态度量两种,静态度量通常指在运行环境初装或重启时对其镜像的度量。度量是逐级的,通常先启动的软件对后一级启动的软件进行度量,度量值验证成功则标志着可信链从前一级软件向后一级的成功传递。以操作系统启动为例,可信操作系统启动时基于硬件的可信启动链,对启动链上的UEFI、loader、OS的image进行静态度量,静态度量的结果通过云上可信管理服务来验证,以判断系统是否被改动。
动态度量和验证则是指在系统运行时,动态获取其运行特征,根据规则或模型分析判断系统是否运行正常。
由于客体构成成分相较于主体来说更为复杂,其不仅包括位于磁盘的静态文件,还包括一些充当主体行为承担者的客体进程、用于进程间传递数据的IPC对象等不定客体数据。当前,应用程序的安全存在着诸多不定因素,较为常规的威胁常见于可执行程序的静态文件被反编译获取相关代码及数据段信息;然后,利用第三方工具恶意修改或者截取内存数据,导致应用程序安全性不可控。
当前现有的大多技术方案多致力于解决静态客体磁盘文件的数据保护问题,而忽略了动态客体的内存数据的安全可信验证及防护,因此对于客体内存数据的可信验证是极其具有必要性的。
有鉴于此,本发明实施例提供一种访问控制中客体内存可信验证方法,如图1所示,包括但不限于以下步骤:
步骤S1:获取访问控制过程中的客体内存,并将客体内存划分为客体进程内存和IPC对象共享内存;步骤S21:对客体进程内存进行可信验证;步骤S22:对IPC对象共享内存进行可信验证。
其中,步骤S21和步骤S22没有先后之分。
由于云环境中,在保证整个物理或虚拟系统平台可信的基础上,还需要对运行在可信系统之上的应用程序进行访问控制,以期达到应用程序可信运行的目的。其中,应用程序的可信运行不仅需要对应用程序本身的执行代码进行可信度量;同时,保证被访问客体的完整性及可信性更是应用程序可信运行的重要基础。本发明实施例提供的访问控制中客体内存的可信验证方法,结合可信控制平台对进程、共享内存等动态客体的内存进行安全可信保护,从而全面提高应用程序运行过程的可信性。
进一步地,在当前的计算机体系结构中,物理内存是所有可执行程序执行并运行的硬件基础,而内存的容量相对于硬盘等磁介质存储器来说比较小,分析的速度相对来说更快。对内存有关进程及进程间通信相关数据进行可信验证能够高效且有效的保证不定客体的可信性。
在本发明实施例中,首先,结合国家等级保护标准中提出的要对应用程序的所有执行环节进行动态可信验证的要求,通过对常见客体进行分类,将访问控制过程中的客体内存数据划分为两个组成部分,其一为:充当主体服务对象的客体进程内存相关数据,例如.text段、常量数据段;其二为:充当进程间通信的IPC对象共享内存的相关数据。
进一步地,分别对划分出的客体进程内存和IPC对象共享内存进行可信验证。
在访问控制中,客体通常充当主体行为的承担者,一般意义上的客体通常包括文件、目录、共享内存、消息、信号量、管道等。鉴于客体关乎应用程序在可信系统中安全运行之重要性,需要对客体的可信性作出判定。本实施例将在逻辑上只能作为主体行为对象的客体称为静态客体,即这类客体只能被动“承受”主体的行为,其数据一般不会发生变化,且通常保存在磁盘上,该类客体主要体现为文件、目录、设备、系统控制数据等。另外,本实施例将既能作为主体又能充当主体对象的客体称之为不定客体,这类客体一般包括:向主体进程提供服务的进程内存,即客体进程内存;还包括,进程间通信功能的IPC对象共享内存。静态客体的相关数据保存在磁盘上,其可信性通过简单的完整性度量即可保证,保证可信系统中客体的可信性重点在于如何保证相关不定客体的可信性。
其中对于客体进程内存进行可信验证可以通过进程可信验证来实现,对IPC对象共享内存进行的可信验证,则可以通过进程间通信对象——共享内存可信验证实现。
本发明实施例提供的访问控制中客体内存可信验证方法,通过将客体内存数据分为充当主体服务对象的客体进程内存以及充当进程间通信的IPC对象共享内存,并分别对两种客体内存分别进行可信验证,实现了对被现有方案所忽略的不定客体数据的可信校验,保证了应用程序在运行过程中的动态可信。
基于上述实施例的内容,作为一种可选实施例,上述对客体进程内存进行可信验证,包括但不限于以下步骤:
S211:获取与所述客体进程内存相对应的物理内存数据的第一度量值;
S212:获取与所述客体进程内存相关的可执行文件;
S213:获取所述可执行文件的代码段及常量数据段数据,并对所述代码段及常量数据段数据进行完整性度量,获取第二度量值;
S214:将所述第二度量值与所述第一度量值以及第一标准基准值进行对比,完成对所述客体进程内存的可信验证。
其中,步骤S211可以通过以下步骤进行获取:
根据客体进程内存的进程号,获取与客体进程内存相对应的内存映射文件;对内存映射文件的内存片段信息进行解析,获取物理内存数据;调用国密算法包对物理内存数据进行完整性度量,获取第一度量值。
进一步地,在步骤S211所述获取与客体进程内存向对应的物理内存数据的第一度量值之前,还可以包括:
S201:根据客体进程内存的敏感类型,利用内存数据控制块设置敏感标签位对客体进程内存进行敏感度分类;
S202:根据敏感度分类,设置度量间隔时间。
具体地,在操作系统中,一个进程在为另外一个作为主体的进程提供服务或者协作进行时,此时,该进程也属于客体。此时,要想保证客体进程内存数据的可信,需要对该客体进程位于内存中的代码段及常量数据段进行完整性度量并验证。
首先,在客体进程内存为其他进程充当服务客体时,仅需要确定其在充当服务进程客体期间位于内存中的代码段、常量数据段的数据信息的完整性。
具体地,如图2所示,本发明实施例提供一种客体进程内存进行可信验证方法,包括但不限于以下步骤:
第一步:通过相关的系统调用函数将物理内存中代码段、常量数据段的数据读取出来并调用国密算法包进行完整性计算,得到度量值value1。
第二步:分析客体进程的相关可执行程序,并将代码段及常量数据段的数据提取并进行完整性度量,得到度量值value2。
第三步:将value1、value2与存储在基准库中的代码段及常量数据段的基准值作对比,进而验证客体进程是否可信。
进一步地,本发明实施例在对客体进程内存进行可信验证之前,即在执行步骤S211之前,可以先利用内存数据控制块设置敏感标签位,根据不同客体进程内存的操作敏感类型,通过对客体进程内存进行敏感度分类的方式来设置不同的度量间隔时间,以合理的利用cpu计算相关资源。
其中,操作敏感类型主要变现在:读敏感操作和写敏感操作,则可以将对应的敏感标签位分别设置为S=1和S=2。
例如,当确定所述客体进程是提供相关读敏感操作时,设置该进程敏感标签位S=1;此时设置进程两次完整性的度量间隔时间为一个预设时间,例如10s。当确定所述客体进程是提供相关写敏感操作时,设置该进程敏感标签位S=2;此时可以利用随机数发生器设置度量间隔时间,其中随机数发生器的时间阈值可以设置为1~10s。
进一步地,在步骤S21中,根据步骤S201-步骤S202中确定的度量间隔时间,对客体进程内存进行可信验证。
本发明实施例还提供一种具体地实施例,包括但不限于以下步骤:
第一步,通过客体进程内存的进程号pid,对Linux系统下的进程目录/proc/pid进行遍历,直至获取与客体进程内存相对应的内存映射文件。
第二步,对获取的内存映射文件的内存片段信息进行解析,获取物理内存数据,具体包括代码段及常量数据段的起始地址和结束地址。
第三步,利用系统调用函数ptrace,根据起始地址及结束地址读取物理内存段的数据,并调用国密算法对物理内存段的数据进行完整性度量。分别将代码段的度量值记为:Hashtext,常量数据段的度量值记为:Hashdata,即上述第一度量值真实的包括Hashtext和Hashdata两个部分。
其中,国密算法是指国家密码局认定的国产密码算法,主要有SM1,SM2,SM3,SM4,密钥长度和分组长度均为128位。其中,SM1为对称加密。其加密强度与AES相当。调用该算法时,需要通过加密芯片的接口进行调用。SM2为非对称加密,由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC256位(SM2采用的就是ECC256位的一种)安全强度比RSA2048位高,但运算速度快于RSA。SM3为消息摘要,可以用MD5作为对比理解,该算法校验结果为256位。SM4为无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。在本发明实施例中可以根据客体进程内存的验证需要选择适合的国密算法,对此本实施例不作具体地限定。
第四步,分析该进程的elf格式可执行文件,并获取相应的代码段、常量数据段部分并进行完整性度量。按照上述实施例记载的方法,获取第二度量值,即将可执行文件的代码段的度量值记为:ProHashtext,将常量数据段的度量值记为:ProHashdata
第五步,分别计算(Hashtext&ProHashtext)、(Hashdata&ProHashdata)是否均为真;其中运算符&两边的表达式的结果都为true(真)时,整个运算结果才为true(真),否则,只要有一方为false(假),则结果为false(假)。
具体地,只有当Hashtext与ProHashtext相同,并且Hashdata且ProHashdata相同时,则认为计算结果为真。
第六步,若第五步计算为真,则将上获得的代码段、常量数据段的完整性度量值与基准库中的代码段、常量数据段的第一基准值做对比,并根据最终结果判断该客体进程是否可信。即将Hashtext、ProHashtext、Hashdata以及ProHashdata均与第一基准值进行比较,以完成对于客体进程内存的可信验证。
基于上述实施例的内容,作为一种可选实施例,步骤S22所述的对IPC对象共享内存进行可信验证,包括但不限于以下步骤:
步骤S221:对创建IPC对象共享内存的写进程进行可信验证;
步骤S222:若写进程的验证通过,则允许主体进程创建所述IPC对象共享内存,并生成共享内存标识符;
步骤S223:根据所述共享内存标识符,获取所述IPC对象共享内存在完成写进程后的内存区域数据;
步骤S224:对所述内存区域数据进行完整性度量,获取第三度量值;
步骤S225:将所述第三度量值与第二标准基准值进行对比,完成对所述内存区域数据的可信验证;
步骤S226:对创建所述IPC对象共享内存的读进程进行可信验证。
进一步地,在执行步骤S221之前,还可以包括以下步骤:在IPC对象共享内存中设置写标志位,以使写进程独享所述IPC对象共享内存。
进一步地,在执行步骤S226之前,还可以包括以下步骤:将写标志位更换为读标志位,以使读进程独享IPC对象共享内存。
其中,在执行完成步骤S22之后,还可以包括:确定读进程的验证通过,则显式删除IPC对象共享内存的内存区域数据。
进一步地,在执行步骤S224之前,还可以包括:利用内存数据控制块设置敏感标签位对IPC对象共享内存进行敏感度分类;根据敏感度分类,设置度量间隔时间。
进一步地,在执行完成步骤S221之后,还可以执行以下步骤:若写进程的验证通过,且写进程为第一次写数据,则将获取的完整性度量值初始化为所述第二标准基准值。
图3是本发明实施例提供的对IPC对象共享内存进行可信验证的结构示意图,如图3所示,对IPC对象共享内存进行可信验证,可以包括但不限于以下几步:
第一步:通过对创建IPC对象共享内存的写进程进行可信验证,并在往共享内存位置写数据时候锁定该内存段,不允许其他进程对该内存段进行数据读操作;
第二步:在每次写进程执行完毕后将共享内存数据进行完整性度量并进行可信校验;
第三步:将新写入或追加至共享内存区域的数据做完整性度量,并将新的度量值更新至基准库中以备进行可信验证;
第四步:在验证过可信的读进程读取数据时锁定内存段,不允许写进程对共享内存段的可读取数据进行修改。
Linux下的进程间通信机制包括信号量、共享内存、消息队列等。如图4所示,IPC对象存在于内核,在其被创建之后,是否还存在内核与整个进程是否运行没有关系,而只与有没有被显式删除有关系。共享内存是进程间通信机制中效率最高的一种,当多个进程需要共享、传递大量数据时候,往往会采用共享内存通信机制,而进程间通信的主要目的无非是数据传输、数据共享等。因此进程间通信的可信验证主要可以从共享内存进行分析即可。
如图4所示,当有多个进程需要共享或者传递大量数据时候,写进程和读进程分别会将本身的逻辑内存与创建的位于物理内存中的“共享内存”映射起来。此时,不仅需要对共享内存中的相关数据进行完整性保护以达到对进程的可信保护的目的;同时,也需要对IPC对象的创建及读取过程进行可信验证。
综上所述,当进程被装载进内存中运行时,出于数据共享及数据传输的需要,进程会主动创建共享内存并建立映射满足需求,此时共享内存中数据的安全可信也即是不定客体内存数据的安全可信。同时共享内存是随内核持续的,即使所有访问共享内存的进程都已经正常终止,共享内存区仍然存在(除非显式删除共享内存),在内核重新引导之前,对该共享内存区域的任何改写操作都将一直保留。
有鉴于此,本发明实施例提供一种对IPC对象共享内存进行可信验证的具体方法,包括但不限于以下步骤:
第一步:首先,在创建IPC对象共享内存作为进程间通信对象之前,需要对创建共享内存的主体进程进行可信验证。
由于,此时上述主体进程是要创建并对共享内存进行写敏感操作,包括:
若该进程的敏感标签位S≠2(即上述实施例中给予的定义S=2为敏感标签位为写敏感),则设置该进程敏感标签位S=2,并利用随机数产生器设置度量间隔时间,其中随机数发生器的时间阈值可以设置为1~10s。
若该进程的敏感度标签位S=2,则无视度量间隔时间,直接开始进行可信度量,后续进程运行过程再根据随机数产生器设置的度量间隔时间进行可信度量校验。
进一步地,当上述作为主体的写进程的可信验证通过,则允许该主体进程创建IPC对象共享内存,并将其映射到进程本身的逻辑地址空间。
第二步:当创建IPC对象的写进程本身的可信验证通过后,主体进程(写进程)调用系统调用函数shmget()创建一块1024个字节的共享内存,同时返回创建的共享内存标识符;
第三步:在共享内存中设置一个写标志位U,其中当U为1时,共享内存区域被写进程独占,不允许读;若U为0时,共享内存区域被读进程独占,则此时,能够通过可信度量来保证共享内存区域数据的完整及可信。
第四步:在内核设置相应的Hook函数(钩子函数),当系统调用函数shmdt()第一次被触发,用以取消一个进程的地址空间到一块共享内存块的映射时,该Hook函数被触发。此时,设置标志位U=1,阻止其它进程对IPC对象共享内存的块数据进行读取。
同时,可以设置共享内存块的敏感度标签位S=2,同时利用随机数产生器设置度量间隔时间,其中随机数发生器的时间阈值可以设置为5~10s。在内存数据控制块的作用下,根据IPC对象共享内存的敏感标签位判断是否进行度量。
进一步地的,若所述写进程的验证通过,且上述写进程为第一次写数据,则将获取的完整性度量值初始化为所述第二标准基准值,并初始化到基准库中;若上述写进程不是第一次写数据,则将获取的完整性度量值与基准库中预先存储的第二标准基准值进行比对,以完后才能对内存区域数据的可信验证。
第五步:若共享内存区域数据的验证通过后,再对读进程进行可信验证,包括:设置客体读进程的敏感度标签位S=1,其度量间隔时间可以设置为10s。当共享内存块数据及读进程的可信验证都通过后,此时设置标志位U=0,只允许读进程对该共享内存区域的数据进程读取。
第六步:当独占共享内存的读进程对共享内存区域操作完毕之后,可以显式删除该共享内存区域。
本发明实施例还提供一种访问控制中客体内存可信验证系统,如图5所示,包括但不限于:客体内存辨识模块1、客体内存辨识模块21以及IPC对象共享内存信验证模块22,其中:
客体内存辨识模块1用于获取访问控制过程中的客体内存,并将客体内存划分为客体进程内存和IPC对象共享内存;客体进程内存可信验证模块21用于对客体进程内存进行可信验证;IPC对象共享内存信验证模块22用于对IPC对象共享内存进行可信验证。
本发明实施例所提供的访问控制中客体内存可信验证系统,具体在运行时实现如图6所示的方案构架:
具体地,在本发明实施例中,客体内存辨识模块21以及IPC对象共享内存信验证模块22可以是一组度量模块和判定模块的集合,其中度量模块可以从可信基准库中抽取相应的标准基准值。
其中,客体内存辨识模块1可以视为内存数据控制块的一部分,主要用于获取访问控制过程中的客体内存,同时将客体内存划分为客体进程内存和IPC对象共享内存。并进一步地,基于哈希算法对客体进程内存和IPC对象共享内存进行分别度量,获取与客体进程内存进程以及IPC对象共享内存进程相对应的度量值。
其中,内存数据控制块在进行度量值的运算时,可以进行系统调用,以获取位于应用层的进程数据,该进程数据包括客体进程内存进程数据以及IPC对象共享内存进程数据。
本发明实施例提供的访问控制中客体内存可信验证系统,通过将客体内存数据分为充当主体服务对象的客体进程内存以及充当进程间通信的IPC对象共享内存,并分别对两种客体内存分别进行可信验证,实现了对被现有方案所忽略的不定客体数据的可信校验,保证了应用程序在运行过程中的动态可信。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行如下步骤:包括初始化阶段和权限审核阶段;其中,初始化阶段包括:获取访问控制过程中的客体内存,并将客体内存划分为客体进程内存和IPC对象共享内存;对客体进程内存进行可信验证;对IPC对象共享内存进行可信验证。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括以下步骤:获取访问控制过程中的客体内存,并将客体内存划分为客体进程内存和IPC对象共享内存;对客体进程内存进行可信验证;对IPC对象共享内存进行可信验证。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种访问控制中客体内存可信验证方法,其特征在于,包括:
获取访问控制过程中的客体内存,并将所述客体内存划分为客体进程内存和IPC对象共享内存;
所述客体进程内存是充当主体服务对象的内存,所述IPC对象共享内存为充当进程间通信的内存;
对所述客体进程内存进行可信验证;
对所述IPC对象共享内存进行可信验证;
其中,所述对所述客体进程内存进行可信验证,包括:
获取与所述客体进程内存相对应的物理内存数据的第一度量值;
获取与所述客体进程内存相关的可执行文件;
获取所述可执行文件的代码段及常量数据段数据,并对所述代码段及常量数据段数据进行完整性度量,获取第二度量值;
将所述第二度量值与所述第一度量值以及第一标准基准值进行对比,完成对所述客体进程内存的可信验证;
其中,所述对所述IPC对象共享内存进行可信验证,包括:
对创建所述IPC对象共享内存的写进程进行可信验证;
若所述写进程的验证通过,则允许主体进程创建所述IPC对象共享内存,并生成共享内存标识符;
根据所述共享内存标识符,获取所述IPC对象共享内存在完成写进程后的内存区域数据;
对所述内存区域数据进行完整性度量,获取第三度量值;
将所述第三度量值与第二标准基准值进行对比,完成对所述内存区域数据的可信验证;
对读进程进行可信验证。
2.根据权利要求1所述的访问控制中客体内存可信验证方法,其特征在于,所述获取与所述客体进程内存相对应的物理内存数据的第一度量值,包括:
根据所述客体进程内存的进程号,获取与所述客体进程内存相对应的内存映射文件;
对所述内存映射文件的内存片段信息进行解析,获取物理内存数据;
调用国密算法包对所述物理内存数据进行完整性度量,获取所述第一度量值。
3.根据权利要求2所述的访问控制中客体内存可信验证方法,其特征在于,在所述获取与所述客体进程内存向对应的物理内存数据的第一度量值之前,还包括:
根据所述客体进程内存的敏感类型,利用内存数据控制块设置敏感标签位对所述客体进程内存进行敏感度分类;
根据所述敏感度分类,设置度量间隔时间。
4.根据权利要求1所述的访问控制中客体内存可信验证方法,其特征在于,在所述对读进程进行可信验证之前,还包括:
在所述IPC对象共享内存中设置写标志位,以使写进程独享所述IPC对象共享内存;
在所述对读进程进行可信验证之前,还包括:
将所述写标志位更换为读标志位,以使所述读进程独享所述IPC对象共享内存。
5.根据权利要求1所述的访问控制中客体内存可信验证方法,其特征在于,在所述对创建所述IPC对象共享内存的读进程进行可信验证之后,还包括:
确定所述读进程的验证通过,则显式删除所述IPC对象共享内存的内存区域数据。
6.根据权利要求1所述的访问控制中客体内存可信验证方法,其特征在于,在所述对所述内存区域数据进行完整性度量,获取第三度量值之前,还包括:
利用内存数据控制块设置敏感标签位对所述IPC对象共享内存进行敏感度分类;
根据所述敏感度分类,设置度量间隔时间。
7.根据权利要求1所述的访问控制中客体内存可信验证方法,其特征在于,在所述对创建所述IPC对象共享内存的写进程进行可信验证之后,还包括:
若所述写进程的验证通过,且所述写进程为第一次写数据,则将获取的完整性度量值初始化为所述第二标准基准值。
8.一种访问控制中客体内存可信验证系统,其特征在于,包括:
客体内存辨识模块,用于获取访问控制过程中的客体内存,并将所述客体内存划分为客体进程内存和IPC对象共享内存;
所述客体进程内存是充当主体服务对象的内存,所述IPC对象共享内存IPC对象共享内存为充当进程间通信的内存;
客体进程内存可信验证模块,用于对所述客体进程内存进行可信验证;
IPC对象共享内存信验证模块,用于对所述IPC对象共享内存进行可信验证;
其中,对所述客体进程内存进行可信验证,包括:
获取与所述客体进程内存相对应的物理内存数据的第一度量值;
获取与所述客体进程内存相关的可执行文件;
获取所述可执行文件的代码段及常量数据段数据,并对所述代码段及常量数据段数据进行完整性度量,获取第二度量值;
将所述第二度量值与所述第一度量值以及第一标准基准值进行对比,完成对所述客体进程内存的可信验证;
对所述IPC对象共享内存进行可信验证,包括:
对创建所述IPC对象共享内存的写进程进行可信验证;
若所述写进程的验证通过,则允许主体进程创建所述IPC对象共享内存,并生成共享内存标识符;
根据所述共享内存标识符,获取所述IPC对象共享内存在完成写进程后的内存区域数据;
对所述内存区域数据进行完整性度量,获取第三度量值;
将所述第三度量值与第二标准基准值进行对比,完成对所述内存区域数据的可信验证;
对读进程进行可信验证。
CN201911340046.7A 2019-12-23 2019-12-23 一种访问控制中客体内存可信验证方法及系统 Active CN111125793B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911340046.7A CN111125793B (zh) 2019-12-23 2019-12-23 一种访问控制中客体内存可信验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911340046.7A CN111125793B (zh) 2019-12-23 2019-12-23 一种访问控制中客体内存可信验证方法及系统

Publications (2)

Publication Number Publication Date
CN111125793A CN111125793A (zh) 2020-05-08
CN111125793B true CN111125793B (zh) 2022-03-11

Family

ID=70501325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911340046.7A Active CN111125793B (zh) 2019-12-23 2019-12-23 一种访问控制中客体内存可信验证方法及系统

Country Status (1)

Country Link
CN (1) CN111125793B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111639307B (zh) * 2020-05-28 2023-09-19 全球能源互联网研究院有限公司 可信资源授权系统、软件可信认证系统及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202296A (zh) * 2014-07-30 2014-12-10 中国电子科技集团公司第三十研究所 一种国产操作系统可信安全增强方法
CN105184167A (zh) * 2015-07-21 2015-12-23 电子科技大学 基于TPM细粒度权限的Android系统安全增强系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062780B2 (en) * 1999-10-14 2006-06-13 Hewlett-Packard Development Company, L.P. Granular access control of inter-process communications in a compartment mode workstation labeled environment
CN100489728C (zh) * 2004-12-02 2009-05-20 联想(北京)有限公司 一种建立计算机中可信任运行环境的方法
CN100498816C (zh) * 2007-11-19 2009-06-10 南京大学 一种高安全等级操作系统的参照监视器实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202296A (zh) * 2014-07-30 2014-12-10 中国电子科技集团公司第三十研究所 一种国产操作系统可信安全增强方法
CN105184167A (zh) * 2015-07-21 2015-12-23 电子科技大学 基于TPM细粒度权限的Android系统安全增强系统及方法

Also Published As

Publication number Publication date
CN111125793A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
US20200082081A1 (en) Systems and methods for threat and information protection through file classification
US9197662B2 (en) Systems and methods for optimizing scans of pre-installed applications
US20160253491A1 (en) Secure system for allowing the execution of authorized computer program code
US20130282951A1 (en) System and method for secure booting and debugging of soc devices
US9270467B1 (en) Systems and methods for trust propagation of signed files across devices
US10929537B2 (en) Systems and methods of protecting data from malware processes
CA2915068C (en) Systems and methods for directing application updates
CN111159762B (zh) 一种强制访问控制下的主体可信验证方法及系统
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
US20180026986A1 (en) Data loss prevention system and data loss prevention method
US11886350B2 (en) System memory context determination for integrity monitoring and related techniques
TW201939337A (zh) 行為識別、數據處理方法及裝置
CN109997138A (zh) 用于检测计算设备上的恶意进程的系统和方法
US20170279819A1 (en) Systems and methods for obtaining information about security threats on endpoint devices
US9219728B1 (en) Systems and methods for protecting services
CN111125793B (zh) 一种访问控制中客体内存可信验证方法及系统
US10169584B1 (en) Systems and methods for identifying non-malicious files on computing devices within organizations
US8844024B1 (en) Systems and methods for using tiered signing certificates to manage the behavior of executables
US10706167B1 (en) Systems and methods for enforcing privacy in cloud security
EP3535681B1 (en) System and method for detecting and for alerting of exploits in computerized systems
US9560028B1 (en) Systems and methods for filtering interprocess communications
US20220129593A1 (en) Limited introspection for trusted execution environments
CN113515779A (zh) 文件的完整性校验方法、装置、设备及存储介质
CN116842505B (zh) 基于windows操作系统进程可信域构建方法、装置及存储介质
US20240323226A1 (en) Snapshot phishing detection and threat analysis

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