一种基于IMA保护Linux操作系统安全的系统和方法与流程

文档序号:17235068发布日期:2019-03-30 08:18阅读:578来源:国知局
一种基于IMA保护Linux操作系统安全的系统和方法与流程

本发明涉及linux操作系统安全领域,一种基于ima保护linux操作系统安全的系统和方法。



背景技术:

随着计算机技术的发展和网络应用的普及,信息安全越来越收到人们的重视。计算机操作系统不仅是各种应用程序运行的基础,更是各种应用的载体。目前,保护linux操作系统的安全主要由防火墙和杀毒软件进行防护。防火墙主要阻止网络攻击和网络渗透,杀毒软件主要依靠病毒库和病毒行为特征进行告警和拦截。防火墙和杀毒软件大都是被动的检测网络攻击和病毒行为,而不太关注linux操作系统本身的安全,比如系统动态链接库被攻击时,传统的安全防护软件大都无法进行有效防护。



技术实现要素:

针对以上缺点,本发明提出了一种基于ima保护linux操作系统安全的系统和方法,可以保护linux操作系统核心系统文件的完整性,增强了linux操作系统的安全性。

本发明实施例提供了一种基于ima保护linux操作系统安全的系统和方法,该系统包括:

安全管理中心节点单元和被保护节点单元;

安全管理中心节点单元:用于统一的策略配置和安全状态判断;

被保护节点单元:负责安全策略保存,ima完整性度量和上报度量值;所述被保护节点单元为被保护linux操作系统安全的节点。

进一步的,所述安全管理中心节点单元包括安全策略配置模块、基准值收集模块和安全状态判断模块;

安全策略配置模块:用于下发基础文件到被保护节点节点单元、同时设置安全管理中心节点单元的工作模式;所述工作模式包括r模式和a模式;所述r模式为基准值收集模式;所述a模式为安全状态监控模式;

基准值收集模块:用于安全管理中心节点单元的工作模式为r模式时,收集安全策略配置模块对应的基础文件的基准值;所述基准值收集模块应用的场景包括第一次部署基础文件到被保护节点单元、更新基础文件到被保护节点单元和被保护节点单元系统升级;

安全状态判断模块:用于安全管理中心节点单元的工作模式为a模式时,判断所述被保护节点单元的安全状态;所述安全状态判断模块应用的场景为实时监控被保护节点单元的安全状态。

进一步的,所述被保护节点单元包括安全策略保存模块、ima完整性度量模块和度量值上报模块;

安全策略保存模块:用于接受并保存安全策略对应的基础文件到ima配置文件;

ima完整性度量模块:用于计算所述被保护节点单元上基础文件的度量值;

度量值上报模块:用于上报基础文件的度量值给安全管理中心节点单元。

进一步的,所述基础文件为需要保护的系统文件,所述基础文件包括系统可执行文件、系统动态链接库、系统配置文件和指定某类文件。

一种基于ima保护linux操作系统安全的方法,是在一种基于ima保护linux操作系统安全的系统实现的,包括以下步骤:

s1:安全管理中心节点单元的安全策略配置模块下发基础文件列表给被保护节点单元,同时设置安全管理中心节点单元工作模式为r模式;

s2:被保护节点单元的安全策略保存模块接收安全管理中心节点单元下发的基础文件列表,存储到ima配置文件ima_policy中;

s3:被保护节点单元的ima完整性度量模块根据ima_policy中的配置文件,度量基础文件列表,记录到度量列表ml中,得到第一度量值,同时逐个迭代扩展到被保护节点单元的tpm芯片pcr10寄存器中,得到第一寄存值;

s4:被保护节点单元的度量值上报模块检测到度量列表ml发生变化,读取度量列表ml以及第一寄存值,利用tpm芯片的rsa私钥对pcr10值进行签名得到第一签名值;

s5:被保护节点单元的度量值上报模块把第一签名值、度量列表ml和rsa公钥发送给安全管理中心节点单元;

s6:安全管理中心节点单元的基准值收集模块接收上报的第一签名值、第一度量值和rsa公钥,利用rsa公钥验证第一签名值,验证完成后,比对第一度量值是否与第一寄存值相同,如果相同表明传输过程未被篡改,则把第一度量值作为基准值,与被保护节点单元和基础文件保存到数据库中;

s7:安全管理中心节点单元的安全策略配置模块设置安全管理中心节点工作模式为a模式;

s8:当基础文件被篡改后,基础文件被加载到linux操作系统时,ima完整性度量模块进行完整性度量,记录度量值到度量列表ml中,为第二度量值,同时扩展到tpm芯片的pcr10寄存器中,得到第二寄存值;

s9:被保护节点单元的度量值上报模块检测到度量列表ml发生变化,读取度量列表ml以及第二寄存值,利用tpm芯片的rsa私钥对pcr10值进行签名得到第二签名值;

s10:被保护节点单元的度量值上报模块把第二签名值、度量列表ml和rsa公钥发送给安全管理中心节点单元;

s11:安全状态判断模块接收上报的第二签名值、度量列表ml和rsa公钥,利用rsa公钥验证第二签名值,验签完成后,比对第二度量值是否与第二寄存值相同,如果相同表明传输过程未被篡改;则比较第二度量值与第一度量值,如果不相同,说明被保护节点单元linux操作系统不安全。

进一步的,所述度量基础文件列表为对基础文件列表进行哈希运算。

进一步的,所述tpm芯片pcr10寄存器用于存储可执行文件的度量扩展值。

进一步的,所述逐个迭代扩展到被保护节点单元的tpm芯片pcr10寄存器中,得到第一寄存值的方法为:

pcr10[k]=hash(pcr10[k-1]||hash(file_k));

所述pcr10[k]为当度量列表中第k个文件需要扩展时,需要保存到pcr10的值;

所述pcr10[k-1]为当度量列表中第k个文件需要扩展前,原有pcr10中的值;

所述||为将两个字符串拼接成一个字符串;

所述hash(file_k)为第k个文件的度量值;

所述hash为采用哈希运算sha1。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明提出了一种基于ima保护linux操作系统安全的系统和方法,该系统包括安全管理中心节点单元和被保护节点单元。首先,安全管理中心节点单元配置保护策略给被保护节点单元,其次,当被保护节点单元上系统可执行文件、系统动态链接库、系统配置文件等需要运行、加载到linux操作系统时,被保护节点单元利用完整性度量架构ima技术度量该客体得到度量值,然后,上报度量值给安全管理中心节点单元,最后,安全管理中心节点单元解析并确认被保护节点单元的身份信息后,比较上传的度量值与事先收集的基准值是否相同,来判断被保护客体是否被篡改,从而来保护被保护节点单元上linux操作系统的安全。本发明是一种基于ima保护linux操作系统安全的系统和方法,通过自定义安全策略,被保护的系统文件,利用ima完整性度量架构,实时发现linux操作系统下被保护系统文件的非法篡改,保护了linux操作系统核心系统文件的完整性,增强了linux操作系统的安全性,并且保护周期会伴随着整个操作系统运行阶段。

附图说明

图1是本发明实施例1一种基于ima保护linux操作系统安全的系统架构图;

图2是本发明实施例1一种基于ima保护linux操作系统安全的方法流程图;

图3是基于本发明实施例1的可执行文件在ima的执行过程;

图4是基于本发明实施例1的度量列表的示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

实施例1

本发明实施例1提供了一种基于ima保护linux操作系统安全的系统和方法。如图1所示为本发明实施例1一种基于ima保护linux操作系统安全的系统架构图。该系统包括安全管理中心节点单元和被保护节点单元。

安全管理中心节点单元,用于统一的策略配置和安全状态判断,主要包括安全策略配置模块、基准值收集模块和安全状态判断模块。

安全策略配置模块,负责安全的配置和下发,用于下发基础文件到被保护节点节点单元。同时设置安全管理中心节点单元的工作模式;安全管理中心节点单元的工作模式分为两种,r模式和a模式。其中r模式为基准值收集模式,代表收集此时被保护节点单元的基准值,a模式为安全状态监控模式,代表监控此时被保护节点的安全状态。基础文件为需要保护的系统文件,包括系统可执行文件、系统动态链接库、系统配置文件和指定某类文件等。

基准值收集模块,用于安全管理中心节点单元的工作模式为r模式时,收集安全策略配置模块对应的基础文件的基准值,基准值收集模块应用的场景包括第一次部署基础文件到被保护节点单元、更新基础文件到被保护节点单元和被保护节点单元系统升级。

安全状态判断模块,用于安全管理中心节点单元的工作模式为a模式时,判断所述被保护节点单元的安全状态,安全状态判断模块应用的场景为实时监控被保护节点单元的安全状态。

ima完整性度量需要在ima配置文件中指定要度量的对象,即要保护的系统文件为基础文件,基础文件包括系统可执行文件,系统动态链接库,系统配置文件和指定某类文件。安全管理中心节点单元的安全策略配置模块负责基础文件的配置和下发,通过安全策略配置模块,用户可以选择某个系统目录,或者指定系统目录下的某类文件,要保护的系统文件实例如下表所示:

根据上表选择好要保护的系统文件后,安全策略配置模块可以通过网络下发给指定的被保护节点单元,从而完成安全策略的配置和下发。

当安全管理中心节点单元工作模式为r模式时,且被保护节点单元上传基础文件的度量值到安全管理中心节点单元,安全管理中心节点单元的基准值收集模块就可以收集基础文件的基准值了。基准值收集模块把此时的度量值作为基准值,与被保护节点单元、基础文件一起保存到数据库中。

当安全管理中心节点单元工作模式为a模式,且被保护节点单元上传基础文件的度量值到安全管理中心节点单元时,安全管理中心节点单元的安全状态判断模块进行工作。它首先从数据库中查找被保护节点单元、基础文件对应的基准值,然后与此时该被保护节点单元上传上来的基础文件对应的度量值进行比对,当该保护节点单元下所有的基础文件的度量值与基准值相同,则表明该被保护节点单元此时linux操作系统是安全的,否则该被保护节点单元的linux操作系统是不安全的。不安全的原因是这些度量值与基准值不相同的系统文件造成的。

被保护节点单元包括安全策略保存模块、ima完整性度量模块和度量值上报模块。

安全策略保存模块,用于接受并保存安全策略对应的基础文件到ima配置文件;

ima完整性度量模块,用于计算所述被保护节点单元上基础文件的度量值;

度量值上报模块,用于上报基础文件的度量值给安全管理中心节点单元。

被保护节点单元上的安全策略保存模块首先从网络上接受安全管理中心节点单元安全策略配置模块下发的基础文件列表,然后保存到ima的配置文件/etc/ima_policy中;

ima完整性度量模块读取ima的配置文件/etc/ima_policy,得到ima基础文件,利用ima完整性度量,对基础文件进行度量,度量值记录到度量列表ml中,同时把度量值扩展到pcr10中;

当有新的度量记录产生时,度量值上报模块读取度量列表ml,以及tpm中的pcr10的值,然后利用tpm中存放的rsa私钥对pcr10进行签名,连同度量列表ml和rsa公钥一起发送给安全管理中心节点单元。

如图2所示为本发明实施例1一种基于ima保护linux操作系统安全的方法流程图。

在步骤s201中,安全管理中心节点单元的安全策略配置模块下发基础文件列表给被保护节点单元,同时设置安全管理中心节点单元工作模式为r模式,r模式即为基准值收集模式。

在步骤s202中,被保护节点单元的安全策略保存模块接收安全管理中心节点单元下发的基础文件列表,存储到ima配置文件ima_policy中。

在步骤s203中,被保护节点单元的ima完整性度量模块根据ima_policy中的配置文件,度量基础文件列表,记录到度量列表ml中,得到第一度量值,同时逐个迭代扩展到被保护节点单元的tpm芯片pcr10寄存器中,得到第一寄存值。其中度量基础文件列表为对基础文件列表进行哈希运算。tpm芯片pcr10寄存器用于存储可执行文件的度量扩展值。

逐个迭代扩展到被保护节点单元的tpm芯片pcr10寄存器的方法为,

pcr10[k]=hash(pcr10[k-1]||hash(file_k));

所述pcr10[k]为当度量列表中第k个文件需要扩展时,需要保存到pcr10的值;

所述pcr10[k-1]为当度量列表中第k个文件需要扩展前,原有pcr10中的值;

所述||为将两个字符串拼接成一个字符串;

所述hash(file_k)为第k个文件的度量值;

所述hash为采用哈希运算sha1。

如图3所示为可执行文件在ima的执行过程。首先,linux操作系统接收到需要执行文件的指令,此处以/bin/bash为例;其次,对可执行文件进行sha1哈希运算,得到20字节的度量值,并将此度量值扩展到pcr10中,同时,将此度量值写入内核维护的度量列表中。如图4所示为度量列表的示意图。

最后,可执行文件被映射入内存,文件开始执行。

通过上述流程可知,ima完整性度量在可执行文件映射入内存之前,先对该可执行文件进行sha1哈希,并将此度量值到度量列表中,同时按照上述度量扩展值保存到pcr10的方法,保存到pcr10寄存器中。由于linux操作系统每使用一次可执行文件,都会对可执行文件进行度量,并将度量值扩展到pcr10中。因此,pcr10的内容为度量列表的最终迭代度量值,此迭代度量值反映了linux操作系统此时的运行状态,也表征了内核维护的度量列表的安全性信息。

在步骤s204中,被保护节点单元的度量值上报模块检测到度量列表ml发生变化,读取度量列表ml以及第一寄存值,利用tpm芯片的rsa私钥对pcr10值进行签名得到第一签名值。

在步骤s205中,被保护节点单元的度量值上报模块把第一签名值、度量列表ml和rsa公钥发送给安全管理中心节点单元。

在步骤s206中,安全管理中心节点单元的基准值收集模块接收上报第一签名值、第一度量值和rsa公钥,利用rsa公钥验证第一签名值,验证完成后,比对第一度量值是否与第一寄存值相同,如果相同表明传输过程未被篡改,则把第一度量值作为基准值,与被保护节点单元和基础文件保存到数据库中。

在步骤s207中,安全管理中心节点单元的安全策略配置模块设置安全管理中心节点单元工作模式为a模式。

在步骤s208中,当基础文件被篡改后,基础文件被加载到linux操作系统时,ima完整性度量模块进行完整性度量,记录度量值到度量列表ml中,为第二度量值,同时扩展到tpm芯片的pcr10寄存器中,得到第二寄存值。

在步骤s209中,被保护节点单元的度量值上报模块检测到度量列表ml发生变化,读取ml以及第二寄存值,利用tpm芯片的rsa私钥对pcr10值进行签名得到第二签名值。

在步骤s210中,被保护节点单元的度量值上报模块把第二签名值、度量列表ml和rsa公钥发送给安全管理中心节点单元。

在步骤s211中,安全状态判断模块接收上报的信息,利用rsa公钥验证第二签名值,验签完成后,比对第二度量值是否与第二寄存值相同,如果相同表明传输过程未被篡改;则比较第二度量值与第一度量值,如果不相同,说明被保护节点单元linux操作系统不安全。

尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1