CN112214769B - 基于SGX架构的Windows系统的主动度量系统 - Google Patents
基于SGX架构的Windows系统的主动度量系统 Download PDFInfo
- Publication number
- CN112214769B CN112214769B CN202011194557.5A CN202011194557A CN112214769B CN 112214769 B CN112214769 B CN 112214769B CN 202011194557 A CN202011194557 A CN 202011194557A CN 112214769 B CN112214769 B CN 112214769B
- Authority
- CN
- China
- Prior art keywords
- measurement
- static
- metric
- function
- file
- 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
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了基于SGX架构的Windows系统的主动度量系统,包括:度量采集模块,静态度量处理引擎以及动态度量处理引擎;所述度量采集模块用于采集系统中进程的第一度量信息以及文件的第二度量信息;所述静态度量处理引擎用于根据数字签名技术对所述第二度量信息进行静态度量验证;所述动态度量处理引擎用于根据本地策略对所述第一度量信息进行动态度量。通过本申请中的技术方案,针对Windows系统使用内嵌TPCM和SGX芯片作为信任原点,将进程和文件对象分类为静态和动态度量对象。使用文件微过滤驱动比较系统文件内容和对比基准库与进程镜像的数据和代码段两种方式实现对Windows系统的主动度量。
Description
技术领域
本申请涉及电力系统的技术领域,具体而言,涉及基于SGX架构的Windows系统的主动度量系统。
背景技术
根据国家电网有限公司信息通信分公司成为支撑世界一流能源互联网企业的核心专业力量的战略定位,紧密围绕信息通信生产运行和公司运营管理,实现“业务支撑便捷化、分析决策智能化”的数字信通。重点把握安全生产主线的运行监控工作,关注“安全态势应用场景”,利用移动互联、人工智能等技术,实现对电力行业用户与服务器终端的管理。
用户安全风险大多来自针对主机的攻击与主机自身的安全问题。例如:利用操作系统漏洞实现远程控制;通过伪造或仿冒泛终端节点,监听用户信息,发布虚假消息;对终端自身系统的访问行为进行拦截、篡改,使得用户无法正常开展业务等。
目前信息终端的存在薄弱点,导致存在各类安全风险:一是病毒木马程序植入对主机造成破坏、隐蔽性较强的高级持续威胁手段,如:海莲花(APT32),污水(MuddyWater),Group123(APT37)等;二是勒索软件等恶意程序泛滥为入侵提供便利,如:支付勒索Defray恶意加密文件,通过中断Windows系统的任务管理和浏览器程序并使用GUI监控,向用户提出缴纳赎金条件来恢复加密文件;三是内部员工误操作,例如:点击攻击者提供的恶意程序安装包,导致主机误中恶意程序。
现有技术中,针对系统启动后对进程和文件的动态可信度量存在以下两个问题:1)主机的监控效率不高,TPM/TPCM在运行时需要和策略库进行数据交互,容易引起数据泄露。2)目前微软提出的TPM或者目前国内流行的TPCM架构,其主要用于系统和应用程序的静态完整性度量,无法确保运行态的安全。
发明内容
本申请的目的在于:提出一种基于SGX架构的Windows系统的主动度量系统,针对Windows系统使用内嵌TPCM和SGX芯片作为信任原点,将进程和文件对象分类为静态和动态度量对象。使用文件微过滤驱动比较系统文件内容和对比基准库与进程镜像的数据和代码段两种方式实现对Windows系统的主动度量。
本申请的技术方案是:提供了基于SGX架构的Windows系统的主动度量系统,包括:度量采集模块,静态度量处理引擎以及动态度量处理引擎;度量采集模块用于采集系统中进程的第一度量信息以及文件的第二度量信息;静态度量处理引擎用于根据数字签名技术对第二度量信息进行静态度量验证;动态度量处理引擎用于根据本地策略对第一度量信息进行动态度量。
上述任一项技术方案中,进一步地,第一度量信息包括与进行相关的静态度量对象以及动态度量对象,度量采集模块采集第一度量信息的方法,具体包括:提取结构体中进程控制块的对象,并将对象作为参数传入获得进程ID函数中,通过获得进程ID函数获得的返回值,确定进程ID号;根据进程ID号,通过检索ID获得进程镜像函数的子函数进程名称提取函数,根据子函数进程名称提取函数,确定进程ID号对应的进程名称;通过回调函数机制,记录进程ID号、进程名称和系统进程文件的绝对路径,并记作与进行相关的静态度量对象。
上述任一项技术方案中,进一步地,第一度量信息包括与进行相关的静态度量对象以及动态度量对象,度量采集模块采集第一度量信息的方法,具体包括:通过枚举进程模块函数,列举进程控制块所属的结构体的模块;查询结构体中的变量虚拟地址描述符根节点,确定内存虚拟地址描述符的首地址和末地址,将进程页目录的基地址、内存虚拟地址描述符的首地址和末地址,记作与进行相关的动态度量对象;将静态度量对象、与动态度量对象进行打包,记作系统中进程的第一度量信息。
上述任一项技术方案中,进一步地,度量采集模块采集第二度量信息的方法,具体包括:捕获目标监控文件的全路径和被访问目录;利用系统函数中的获得文件名信息函数,对回调结构体的I/O操作进行解析,获取文件信息结构体;从文件信息结构体中提取被操作的文件路径;利用系统函数中的解析文件名信息函数,提取文件信息结构体中的名称参数Name,以获取第二度量信息。
上述任一项技术方案中,进一步地,静态度量处理引擎包括:可信平台控制模块TPCM,系统还包括:度量控制模块,度量基准库,可信第三方CA;度量控制模块用于向度量基准库发送随机数random,生成查询时间戳t1,并连同平台控制寄存器PCR索引n的值,发送到度量基准库;度量基准库用于根据随机数random、查询时间戳t1以及平台控制寄存器PCR索引n的值,生成函数请求,以查询可信平台控制模块TPCM中的平台控制寄存器PCR[n]的值,其中,函数请求中包括密钥对象;可信平台控制模块TPCM用于根据收到的函数请求,计算静态签名,并结合TPCM查询时间戳t2,生成并发送第一消息序列至度量基准库;度量基准库还用于根据第一消息序列中的查询时间戳t2,提取第一消息序列中平台控制寄存器PCR[n]的值,生成并发送第二消息序列至度量控制模块;度量控制模块还用于根据接收到的第二消息序列,向可信第三方CA发送验证AIK证书的合法性的验证请求;可信第三方CA用于当判定第二消息序列的AIK证书合法时,验证第二消息序列中静态签名的签名完整性,若判定静态签名完整,且查询时间戳t1和TPCM查询时间戳t2的差值在预设范围内时,完成系统文件的静态度量。
上述任一项技术方案中,进一步地,系统还包括:本地策略管理模块;本地策略管理模块用于当判定静态度量处理引擎完成系统文件的静态度量时,根据静态度量结果,更新本地策略。
上述任一项技术方案中,进一步地,动态度量处理引擎中包括Enclave-TK内核模块;本地策略管理模块还用于获取更新后的本地策略,并加入系统时间t3,计算第一本地策略数字签名,形成第一消息;度量控制模块用于获取第一消息和第一本地策略数字签名中的随机数n3,并提取第一消息中的系统时间t3,通过验证数字签名,判断第一消息是否完整,如果完整,则计算第一当前时间t4,并根据第一当前时间t4和系统时间t3,计算第一时间差,如果第一时间差在第一预定时间阈值范围内,则计算第二本地策略数字签名,形成第二消息,并使用函数接口“飞地-发送函数”,发送加密的本地策略P1和第二消息至Enclave-TK内核模块;Enclave-TK内核模块用于通过验证数字签名,计算第二消息中的哈希值,并与第二本地策略数字签名做对比,如果一致,则计算第二当前时间t5,并根据第二当前时间t5和第二消息中包含的第一当前时间t4,计算第二时间差,如果第二时间差在第二预定时间阈值范围内,则判定本地策略P1为真实策略,完成对系统中进程的第一度量信息的动态度量。
本申请的有益效果是:
本申请中的技术方案通过设置度量采集模块采集进程的第一信息和文件的第二信息,实现全面收集操作系统启动和运行时的各类关键信息,为静态度量模块和动态度量模块提供基础数据支撑。
将静态度量模块作为静态度量的主体,使用TPCM作为信任原点,仅在系统启动时对BIOS固件和启动文件进行度量,以及度量策略文件的完整性,保证静态度量的效率和可靠性。
本申请中的动态度量模块主要为提供感知Windows系统恶意程序的系统,通过基于SGX架构技术,主动度量内核上下文,以实现进一步提高Windows系统的安全性。
最后对系统原型进行实现,通过性能测试对该系统的度量效率和度量精度进行了验证。
附图说明
本申请的上述和/或附加方面的优点在结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本申请的一个实施例的基于SGX架构的Windows系统的主动度量系统的示意框图;
图2是根据本申请的一个实施例的文件扩展名的解析过程的示意流程图;
图3是根据本申请的一个实施例的静态度量过程示意图;
图4是根据本申请的一个实施例的动态度量过程示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。
在下面的描述中,阐述了很多具体细节以便于充分理解本申请,但是,本申请还可以采用其他不同于在此描述的其他方式来实施,因此,本申请的保护范围并不受下面公开的具体实施例的限制。
如图1所示,本实施例提供了基于SGX架构的Windows系统的主动度量系统,包括:静态度量处理引擎20和动态度量处理引擎30,其中,静态度量处理引擎20基于TPCM技术实现,而动态度量处理引擎30则基于Enclave-TK技术实现,两个处理引擎的结构基本相同,可以进行功能模块的复用,以节省硬件资源。具体的,该主动度量系统中还包括度量控制模块40、度量基准库50、可信第三方CA 60和本地策略管理模块70等。
该主动度量系统中还包括度量采集模块10,度量采集模块10用于采集系统中进程的第一度量信息以及文件的第二度量信息,其中,所述第一度量信息包括与所述进行相关的静态度量对象以及动态度量对象。
静态度量对象通常是结构化数据,是可以被完整性标识所标注的对象,分为BIOS启动前的原始配置文件、进程加载到操作系统前所依赖的文件,如:进程号、进程名称和进程可执行文件全路径等。
动态度量对象通常是非结构化数据,是不具备完整性标识所标注的对象,如:内核函数表、全局描述符表、进程的静态数据和代码段等内容。这些对象的完整性需要由修改它的运行状态的进程所决定,这些运行态的进程包含程序执行过程中的主进程、子进程,包括进程在内存中映射的基地址,bss段、data段等静态数据段和代码区的内容。
经过方案研究发现,在64位的Windows7操作系统内核中存在PatchGuard组件,原始设计的驱动程序需要Windows7数字证书才能运行,而传统的基于Hook SSDT的32位的Windows7操作系统监控技术已不能使用。
为兼容64位和32位的Windows7操作系统,本实施例通过ObRegisterCallbacks函数注册回调钩子完成进程信息的采集。
本实施例提供一种度量采集模块10采集系统中进程的第一度量信息的方式,具体包括:
提取OperationInformation结构体中进程控制块EPROCESS的Object对象,作为参数传入获得进程ID函数PsGetProcessId中,通过获得进程ID函数PsGetProcessId获得的返回值,确定进程ID号;
根据进程ID号,通过检索ID获得进程镜像GetProcessImageNameByProcessID函数的子函数进程名称提取函数PsGetProcessImageFileName,确定所述进程ID号对应的进程名称;
通过CallBack回调函数机制,记录Windows系统进程ID号、进程名称和系统进程文件的绝对路径,记作与所述进行相关的静态度量对象;
通过枚举进程模块函数EnumProcessModulesEx,列举进程控制块EPROCESS结构体的模块,获得结构体中第一个参数,即进程控制模块(Process Control Block),包含了描述进程的页表等内存地址信息,进程的页表至少包含两级结构,目录页表和二级页表,目录页表DirectoryTable为进程的页表的目录页表的基地址;
查询进程控制块EPROCESS结构体中的变量虚拟地址描述符根节点VAD-ROOT(Virtual Address Descriptor Root),VAD-ROOT是一个32位的指针,指向了VAD树的根节点地址,确定内存虚拟地址描述符的首地址和末地址,将进程页目录的基地址、内存虚拟地址描述符的首地址和末地址,记作与所述进行相关的动态度量对象;
将与所述进行相关的静态度量对象、与所述进行相关的动态度量对象进行打包,记作系统中进程的第一度量信息,第一度量信息包括:进程页目录的基地址、内存虚拟地址描述符的首地址和末地址、Windows系统进程ID号、进程名称、系统进程文件的绝对路径。
本实施例提供一种度量采集模块10采集系统中文件的第二度量信息的方式,具体包括:
捕获目标监控文件的全路径和被访问目录;
具体的,通过文件过滤驱动框架中自带的回调函数结构体FLT_CALLBACK_DATA,获得文件全路径。
利用系统函数中的获得文件名信息函数FltGetFileNameInformation,对回调结构体FLT_CALLBACK_DATA的I/O操作进行解析,获取文件信息结构体FLT_FILE_NAME_INFORMATION;
从文件信息结构体FLT_FILE_NAME_INFORMATION中提取被操作的文件路径;
利用系统函数中的解析文件名信息函数FltParseFileNameInformation,提取文件信息结构体FLT_FILE_NAME_INFORMATION中的名称参数Name,以获取文件名、父目录、磁盘信息等字段,记作第二度量信息。
需要说明的是,该函数同时会自动填充文件信息结构体FLT_FILE_NAME_INFORMATION中的其他元素,诸如:容器符号Volume、最终组件FinalComponent、父目录信息ParentDir等,其中,包含Extension为文件扩展名,文件扩展名的解析过程如图2所示。
该系统中的静态度量处理引擎20用于根据数字签名技术对所述第二度量信息进行静态度量验证,其功能主要包括数据初始化、度量基准库50与内核层之间的交互。
由度量采集模块10获取系统中文件的第二度量信息,作为静态度量对象,并将静态度量对象的信息SM传递给静态度量列表SML中。
由度量控制模块40根据索引值n依次检索可信平台控制模块TPCM21的平台控制寄存器PCR[n]中的值,并和静态度量列表SML的值作比较,决定是否启动BIOS或Windows内核。
即如果控制寄存器PCR[n]中的值和静态度量列表SML中的值相同,则继续比较所有静态度量列表SML中的值,如果某次比较中发现控制寄存器PCR[n]的值和静态度量列表SML中的值不相同,则此次静态度量失败,静态度量引擎返回错误信息。
在获得了进程和文件的度量信息后,则下一步需要在系统启动前对关键信息进行静态度量,并在系统运行时对信息进行动态度量,保证系统的预期行为是可信的,分别设置静态度量处理引擎20和动态度量处理引擎30,作为系统的可信度量处理引擎。
本实施例中,设定静态度量处理引擎20采用的可信平台控制模块TPCM 21版本包含了TPM 1.2以及以上版本的功能,支持PCA和DAA度量方式。设定采用的SGX芯片为2.7版本。
为了完成系统的可信启动,静态度量处理引擎20中设置度量控制模块40、度量基准库50、可信第三方CA 60,通过三者间的交互,对系统中文件进行静态度量,以完成可信度量处理引擎的验证。
当终端需要进行身份验证时,利用身份证书的身份认证权威、可信第三方CA 60建立认证信道,即可信平台控制模块TPCM 21向可信第三方CA 60申请AIK证书,AIK证书通常包含TPCM的公钥和私钥对。
三者间的交互过程依赖哈希和数字签名技术,最终通过隐私通道,可信第三方CA60获得了TPCM提供的公钥,并制造了包含公钥PKAIK的身份证书CertAIK。
静态度量的交互过程如图3所示,静态度量处理引擎20与度量采集模块10、度量基准库50、度量控制模块40、静态度量列表SML和动态度量列表DML均拥有身份证书CertAIK,对于TPCM来说为合法用户。
静态度量是在Windows操作系统启动时,通过静态度量列表(Static MeasurementList)对BIOS启动阶段和操作系统启动阶段的数据进行度量的过程。
本实施例中,从平台控制寄存器PCR中读取数据的完性证明过程,即系统文件的静态度量过程如下:
度量控制模块40,发送给所述度量基准库50随机数random,生成度量控制模块40的查询时间戳t1,并连同所述度量控制模块40需要的平台控制寄存器PCR索引n的值发送到所述度量基准库50。
度量基准库50,根据所述随机数random、所述查询时间戳t1以及所述平台控制寄存器PCR索引n的值,使用函数请求TPCM_Quota(AIK,random+t1,n),以查询可信平台控制模块TPCM 21中的平台控制寄存器PCR[n]的值,其中,AIK为密钥对象,random+t1为随机数加索引值。
可信平台控制模块TPCM 21,根据收到的函数请求TPCM_Quota,使用AIK的私钥,计算静态签名Sign_Res=SKaik(PCR[n],random+t1),并生成TPCM查询时间戳t2。
之后,可信平台控制模块TPCM 21结合静态签名Sign_Res、TPCM查询时间戳t2,生成第一消息序列(Sign_Res,random+t2),并将其发送给度量基准库50。
度量基准库50根据可信平台控制模块TPCM 21发送的第一消息序列,查询其包含的TPCM查询时间戳t2,以提取静态签名Sign_Res中的平台控制寄存器PCR[n]的值,并更新自己的基准值,做好日志记录。
度量基准库50根据第一消息序列、提取到的平台控制寄存器PCR[n]的值、身份证书CertAIK,生成第二消息序列(CertAIK,Sign_Res,random+t2,PCR[n]),并将其发送给度量控制模块40。
度量控制模块40接收到的第二消息序列,向可信第三方CA 60验证AIK证书的合法性。
当可信第三方CA 60判定第二消息序列的AIK证书(身份证书CertAIK)合法时,继续验证第二消息序列中静态签名Sign_Res的签名的完整性,即利用公钥PKAIK,确定索引值PCR[n]的完整性,并且保证查询时间戳t1和TPCM查询时间戳t2两个值之差在合理的预设阈值范围内。
当判定第二消息序列中静态签名Sign_Res的签名完整,且查询时间戳t1和TPCM查询时间戳t2的差值在预设范围内时,完成系统文件的静态度量。
进一步的,所述系统中还包括本地策略管理模块70,其内部设置有本地策略库,所述本地策略管理模块70用于当判定所述静态度量处理引擎20完成系统文件的静态度量后,根据静态度量结果,更新本地策略。
在Windows操作系统启动前,静态度量列表SML优先度量BIOS启动阶段和操作系统启动阶段的数据,包括:BIOS启动代码,度量工具代码,操作系统加载代码,系统内核代码。
在Windows启动后,动态度量列表DML结合SGX芯片,开始代码的动态度量,也就是说动态度量列表DML度量的起点是在静态度量列表SML度量之后,确保了动态度量列表DML开始度量时,整个环境的可信性。
随后的过程按照静态度量列表SML和动态度量列表DML各自的模块内部逻辑运转。
该系统中还包括动态度量处理引擎30,所述动态度量处理引擎30用于根据本地策略对所述第一度量信息进行动态度量。
本实施例以基于SGX芯片对系统运行态进行动态度量为例,对动态度量进行说明。
利用动态度量处理引擎30托管以下组件:SGX芯片提供的可信内核,可为处理引擎和可信度量提供动态运行环境,以及其它安全特征。
需要说明的是,在进行动态度量时,首先需要对动态度量处理引擎30进行初始化,并将度量采集模块10采集到的第一度量信息的信息DM传递给动态度量列表DML中。
在初始化过程中,设定可信进程:度量控制模块40、度量采集模块10发起的进程。不可信进程:包含一个函数调用的接口,它支持对应用层数据和部分浅内核函数的调用权限,包括动态链接库的查询和调用,日志记录和存储管理等,例如:调用Windows窗口,计算器,或者其他预设好的组件,但需保证不可信的进程无法访问敏感数据。
Enclave-TK内核模块31初始化,启动SGX芯片存储代码和数据,实现强制隔离。启动预置内存(PRM)组件中的页面缓存。启动内存加密引擎加密和验证输出到内存的Enclave数据。启动在EPC内存中默克尔树型结构(Merkle-Tree)来保证数据的完整性和数据的实时性。
在本实施例中设定当前不支持同时调用不可信进程的函数和可信进程的函数,以避免同时调用存在的安全隐患。
如图4所示,动态度量处理引擎30中包括Enclave-TK内核模块31,动态度量处理引擎30对进程的第一度量信息进行动态度量的过程具体包括:
动态度量处理引擎30获取所述第一度量信息,并将所述第一度量信息的信息DM传递给动态度量列表DML中。
需要说明的是,动态度量对象包含两类信息:第一类为进程在内存中相关的动态信息(内核函数表、全局描述符表、进程的静态数据和代码段等内容);第二类为文件在内存中的动态信息,包括:文件类型的I/O请求包(IRP)消息,文件内容的修改,文件的操作请求,如:打开、复制、剪切和重命名等。
本地策略管理模块70获取/读取更新后的本地策略P1,作为动态度量的依据,并加入系统时间(TimeStamp)t3,计算第一本地策略数字签名Sign_P1=Hash(P1,t3,n3),形成第一消息(P1,t3,Sign_P1),其中,n3为随机数。
度量控制模块40收到本地策略管理模块70的第一消息(P1,t3,Sign_P1),根据第一消息(P1,t3,Sign_P1)和第一本地策略数字签名中的随机数n3,提取第一消息中的系统时间t3,通过验证数字签名,判断第一消息是否完整,如果不完整,则丢弃该第一消息,如果完整,则计算第一当前时间t4,并根据第一当前时间t4和提取出的系统时间t3,计算第一时间差,如果第一时间差超过第一预定时间阈值范围,则丢弃该第一消息,否则,计算第二本地策略数字签名Sign_P1’=Hash(P1,t4,n4),形成第二消息(P1,t4,Sign_P1’),n4为随机数。
度量控制模块40使用函数接口“飞地-发送函数”发送加密的本地策略以及第二消息,移交给Enclave-TK内核模块31。
Enclave-TK内核模块31通过验证数字签名,即计算收到的第二消息中更新后的本地策略P1、第一当前时间t4、随机数n4的哈希值Hash(P1,t4,n4),与第二本地策略数字签名Sign_P1’做对比,如果不一致,则丢弃通过“飞地-发送函数”发送加密的本地策略P1,如果一致,则计算第二当前时间t5,并根据第二当前时间t5和从第二消息中提出去的第一当前时间t4,计算第二时间差,如果第二时间差超过第二预定时间阈值范围,则丢弃该消息,否则,判定收到的本地策略P1为真实的策略,完成对系统中进程的第一度量信息的动态度量。
在Enclave-TK内核模块31中,采用最小特权原则提供可信度量处理引擎所需的最少服务。主要是安全内存和安全线程的管理,使用“飞地-比较函数”对可信的度量策略P1与DML中的参数做策略比较,确保机密性和完整性。
本实施例中在动态度量时设置Enclave-TK内核模块31有如下四个特点:
1、线程控制权的安全转移:SGX保护在Enclave-TK飞地模式下的主机线程状态的安全机制。开发人员将部分飞地内存保留给线程控制结构(TCS)数组。当线程进入或退出Enclave飞地时,SGX使用TCS结构保存和还原主机线程的上下文。根据SGX的信号要求。当线程进入Enclave中,可信内核为Enclave内存中的每个线程分配一个堆栈,然后将控制权转移到应用程序。确保主机无法观察或篡改线程的状态。
2、线程池实现高并发:Enclave-TK线程模型类似于线程池的概念。当主机函数调用Enclave-TK飞地中的内容时,Enclave-TK可信内核会“悬挂”主机线程,并切换到一个未使用的飞地线程。当此次调用完成(或发生异常)时,Enclave-TK可信内核回收Enclave飞地线程,并继续执行主机线程。因此,即在Enclave-TK飞地创建过程中所定义线程池的大小,确定最大并发程度。
3、线程本地存储:可信内核支持线程本地存储(TLS),可信度量处理引擎广泛使用它来高效访问对性能至关重要的数据,诸如对策略的读/写集的结构。但是,上述线程模型会导致TLS的语义的变化。可信内核不保证TLS在来自同一主机线程的多次调用中得以保留。在多个调用中保留TLS将要求内核信任主机分配的线程标识符,从而引入了新的攻击媒介。这种变化自从引擎已经在每个条目上从堆重新建立TLS进入引擎,除非是重新进入,即嵌套调用引擎。
4、重入回调保持TLS状态:Enclave-TK可信度量处理引擎组件使用重入(通过回调)获取进程的状态并假设在重新调用中保留了TLS。通过修改可信度量处理引擎在Enclave-TK飞地退出前保存在堆上的TLS,同时在二次调用时恢复TLS状态。
Enclave-TK内核模块31比对Hash(P1)和DML列表中的度量对象,如果返回匹配,则为可信的对象,进程可执行,文件可打开或删除,否则,任何度量对象不能执行。
以上结合附图详细说明了本申请的技术方案,本申请提出了基于SGX架构的Windows系统的主动度量系统,包括:度量采集模块10,静态度量处理引擎20以及动态度量处理引擎30;所述度量采集模块10用于采集系统中进程的第一度量信息以及文件的第二度量信息;所述静态度量处理引擎20用于根据数字签名技术对所述第二度量信息进行静态度量验证;所述动态度量处理引擎30用于根据本地策略对所述第一度量信息进行动态度量。通过本申请中的技术方案,针对Windows系统使用内嵌TPCM和SGX芯片作为信任原点,将进程和文件对象分类为静态和动态度量对象。使用文件微过滤驱动比较系统文件内容和对比基准库与进程镜像的数据和代码段两种方式实现对Windows系统的主动度量。
本申请中的步骤可根据实际需求进行顺序调整、合并和删减。
本申请装置中的单元可根据实际需求进行合并、划分和删减。
尽管参考附图详地公开了本申请,但应理解的是,这些描述仅仅是示例性的,并非用来限制本申请的应用。本申请的保护范围由附加权利要求限定,并可包括在不脱离本申请保护范围和精神的情况下针对发明所作的各种变型、改型及等效方案。
Claims (6)
1.基于SGX架构的Windows系统的主动度量系统,其特征在于,所述系统包括:度量采集模块,静态度量处理引擎以及动态度量处理引擎;
所述度量采集模块用于采集系统中进程的第一度量信息以及文件的第二度量信息;
所述静态度量处理引擎用于根据数字签名技术对所述第二度量信息进行静态度量验证;
所述动态度量处理引擎用于根据本地策略对所述第一度量信息进行动态度量,所述动态度量处理引擎中包括Enclave-TK内核模块;所述静态度量处理引擎包括:可信平台控制模块TPCM,所述系统还包括:度量控制模块,度量基准库,可信第三方CA;
所述度量控制模块用于向所述度量基准库发送随机数random,生成查询时间戳t1,并连同平台控制寄存器PCR索引n的值,发送到所述度量基准库;
所述度量基准库用于根据所述随机数random、所述查询时间戳t1以及所述平台控制寄存器PCR索引n的值,生成函数请求,以查询所述可信平台控制模块TPCM中的平台控制寄存器PCR[n]的值,其中,所述函数请求中包括密钥对象;
所述可信平台控制模块TPCM用于根据收到的所述函数请求,计算静态签名,并结合TPCM查询时间戳t2,生成并发送第一消息序列至所述度量基准库;
所述度量基准库还用于根据所述第一消息序列中的TPCM查询时间戳t2,提取所述第一消息序列中所述平台控制寄存器PCR[n]的值,生成并发送第二消息序列至所述度量控制模块;
所述度量控制模块还用于根据接收到的第二消息序列,向所述可信第三方CA发送验证AIK证书的合法性的验证请求;
所述可信第三方CA用于当判定第二消息序列的AIK证书合法时,验证第二消息序列中静态签名的签名完整性,若判定所述静态签名完整,且查询时间戳t1和TPCM查询时间戳t2的差值在预设范围内时,完成系统文件的静态度量。
2.如权利要求1所述的基于SGX架构的Windows系统的主动度量系统,其特征在于,所述第一度量信息包括与所述进程相关的静态度量对象以及动态度量对象,所述度量采集模块采集所述第一度量信息的方法,具体包括:
提取结构体中进程控制块的对象,并将所述对象作为参数传入获得进程ID函数中,通过所述获得进程ID函数获得的返回值,确定进程ID号;
根据所述进程ID号,通过检索ID获得进程镜像函数的子函数进程名称提取函数,根据所述子函数进程名称提取函数,确定所述进程ID号对应的进程名称;
通过回调函数机制,记录所述进程ID号、所述进程名称和系统进程文件的绝对路径,并记作与所述进程相关的所述静态度量对象。
3.如权利要求2所述的基于SGX架构的Windows系统的主动度量系统,其特征在于,所述第一度量信息包括与所述进程相关的静态度量对象以及动态度量对象,所述度量采集模块采集所述第一度量信息的方法,具体包括:
通过枚举进程模块函数,列举所述进程控制块所属的结构体的模块;
查询所述结构体中的变量虚拟地址描述符根节点,确定内存虚拟地址描述符的首地址和末地址,将进程页目录的基地址、内存虚拟地址描述符的首地址和末地址,记作与所述进程相关的所述动态度量对象;
将所述静态度量对象、与所述动态度量对象进行打包,记作系统中进程的第一度量信息。
4.如权利要求1所述的基于SGX架构的Windows系统的主动度量系统,其特征在于,所述度量采集模块采集所述第二度量信息的方法,具体包括:
捕获目标监控文件的全路径和被访问目录;
利用系统函数中的获得文件名信息函数,对回调结构体的I/O操作进行解析,获取文件信息结构体;
从所述文件信息结构体中提取被操作的文件路径;
利用系统函数中的解析文件名信息函数,提取所述文件信息结构体中的名称参数Name,以获取所述第二度量信息。
5.如权利要求1所述的基于SGX架构的Windows系统的主动度量系统,其特征在于,所述系统还包括:本地策略管理模块;所述本地策略管理模块用于当判定所述静态度量处理引擎完成系统文件的静态度量时,根据静态度量结果,更新本地策略。
6.如权利要求5所述的基于SGX架构的Windows系统的主动度量系统,其特征在于,
所述本地策略管理模块还用于获取更新后的本地策略,并加入系统时间t3,计算第一本地策略数字签名, 形成第一消息;
所述度量控制模块用于获取所述第一消息和所述第一本地策略数字签名中的随机数n3,并提取所述第一消息中的系统时间t3,通过验证数字签名,判断所述第一消息是否完整,如果完整,则计算第一当前时间t4,并根据所述第一当前时间t4和所述系统时间t3,计算第一时间差,如果所述第一时间差在第一预定时间阈值范围内,则计算第二本地策略数字签名,形成第二消息,并使用函数接口“飞地-发送函数”,发送加密的本地策略P1和所述第二消息至所述Enclave-TK内核模块;
所述Enclave-TK内核模块用于通过验证数字签名,计算所述第二消息中的哈希值,并与所述第二本地策略数字签名做对比,如果一致,则计算第二当前时间t5,并根据所述第二当前时间t5和所述第二消息中包含的第一当前时间t4,计算第二时间差,如果所述第二时间差在第二预定时间阈值范围内,则判定所述本地策略P1为真实策略,完成对系统中进程的第一度量信息的动态度量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011194557.5A CN112214769B (zh) | 2020-10-30 | 2020-10-30 | 基于SGX架构的Windows系统的主动度量系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011194557.5A CN112214769B (zh) | 2020-10-30 | 2020-10-30 | 基于SGX架构的Windows系统的主动度量系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214769A CN112214769A (zh) | 2021-01-12 |
CN112214769B true CN112214769B (zh) | 2023-05-26 |
Family
ID=74057791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011194557.5A Active CN112214769B (zh) | 2020-10-30 | 2020-10-30 | 基于SGX架构的Windows系统的主动度量系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214769B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149439B (zh) * | 2023-10-23 | 2024-01-30 | 西安热工研究院有限公司 | 一种降低可信计算静态度量频率和频次的方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077522A (zh) * | 2014-06-30 | 2014-10-01 | 江苏华大天益电力科技有限公司 | 一种操作系统进程完整性检测方法 |
CN105468978A (zh) * | 2015-11-16 | 2016-04-06 | 国网智能电网研究院 | 一种适用于电力系统通用计算平台的可信计算密码平台 |
CN108205615A (zh) * | 2016-12-20 | 2018-06-26 | 中标软件有限公司 | 一种优化可信基础组件的实现系统及其实现方法 |
CN109871694A (zh) * | 2019-03-14 | 2019-06-11 | 沈昌祥 | 一种基于双体系结构可信计算平台的静态度量方法 |
CN110334512A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 基于双体系架构的可信计算平台的静态度量方法和装置 |
CN110414235A (zh) * | 2019-07-08 | 2019-11-05 | 北京可信华泰信息技术有限公司 | 一种基于ARM TrustZone的主动免疫的双体系结构系统 |
CN111177752A (zh) * | 2019-12-20 | 2020-05-19 | 全球能源互联网研究院有限公司 | 一种基于静态度量的可信文件存储方法、装置及设备 |
CN111475813A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种可信虚拟化平台管理系统与方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111259401B (zh) * | 2018-11-30 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 可信度量方法、装置、系统、存储介质及计算机设备 |
-
2020
- 2020-10-30 CN CN202011194557.5A patent/CN112214769B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077522A (zh) * | 2014-06-30 | 2014-10-01 | 江苏华大天益电力科技有限公司 | 一种操作系统进程完整性检测方法 |
CN105468978A (zh) * | 2015-11-16 | 2016-04-06 | 国网智能电网研究院 | 一种适用于电力系统通用计算平台的可信计算密码平台 |
CN108205615A (zh) * | 2016-12-20 | 2018-06-26 | 中标软件有限公司 | 一种优化可信基础组件的实现系统及其实现方法 |
CN109871694A (zh) * | 2019-03-14 | 2019-06-11 | 沈昌祥 | 一种基于双体系结构可信计算平台的静态度量方法 |
CN110334512A (zh) * | 2019-07-08 | 2019-10-15 | 北京可信华泰信息技术有限公司 | 基于双体系架构的可信计算平台的静态度量方法和装置 |
CN110414235A (zh) * | 2019-07-08 | 2019-11-05 | 北京可信华泰信息技术有限公司 | 一种基于ARM TrustZone的主动免疫的双体系结构系统 |
CN111177752A (zh) * | 2019-12-20 | 2020-05-19 | 全球能源互联网研究院有限公司 | 一种基于静态度量的可信文件存储方法、装置及设备 |
CN111475813A (zh) * | 2020-03-08 | 2020-07-31 | 苏州浪潮智能科技有限公司 | 一种可信虚拟化平台管理系统与方法 |
Non-Patent Citations (1)
Title |
---|
可信软件基与操作系统的隔离/交互机制;宋元 等;;吉林大学学报(工学版);50(04);第1465-1471页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112214769A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108810006B (zh) | 资源访问方法、装置、设备及存储介质 | |
CN110414268B (zh) | 访问控制方法、装置、设备及存储介质 | |
US8572692B2 (en) | Method and system for a platform-based trust verifying service for multi-party verification | |
US7836299B2 (en) | Virtualization of software configuration registers of the TPM cryptographic processor | |
US20190394221A1 (en) | Detecting repackaged applications based on file format fingerprints | |
WO2015096695A1 (zh) | 一种应用程序的安装控制方法、系统及装置 | |
US9270467B1 (en) | Systems and methods for trust propagation of signed files across devices | |
US20090158385A1 (en) | Apparatus and method for automatically generating SELinux security policy based on selt | |
CN104506487B (zh) | 云环境下隐私策略的可信执行方法 | |
KR20160114037A (ko) | 멀웨어의 자동화된 런타임 검출 | |
CN110555293A (zh) | 用于保护数据的方法、装置、电子设备和计算机可读介质 | |
CN113179271A (zh) | 一种内网安全策略检测方法及装置 | |
CN108027856B (zh) | 使用可信平台模块来建立攻击信息的实时指示器 | |
WO2022095518A1 (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
US20070234330A1 (en) | Prevention of executable code modification | |
WO2024021577A1 (zh) | 防篡改的数据保护方法及系统 | |
WO2014075504A1 (zh) | 一种运行应用程序的安全控制方法和装置 | |
CN112214769B (zh) | 基于SGX架构的Windows系统的主动度量系统 | |
CN110443039A (zh) | 插件安全性的检测方法、装置以及电子设备 | |
US11095666B1 (en) | Systems and methods for detecting covert channels structured in internet protocol transactions | |
CN106919844A (zh) | 一种Android系统应用程序漏洞检测方法 | |
US20050010752A1 (en) | Method and system for operating system anti-tampering | |
CN110602051A (zh) | 基于共识协议的信息处理方法及相关装置 | |
CN115758356A (zh) | 一种对Android应用实施可信静态度量的方法、存储介质及设备 | |
US11671422B1 (en) | Systems and methods for securing authentication procedures |
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 |