CN114035886B - 一种针对内核数据的容器安全加固系统及方法 - Google Patents

一种针对内核数据的容器安全加固系统及方法 Download PDF

Info

Publication number
CN114035886B
CN114035886B CN202111144132.8A CN202111144132A CN114035886B CN 114035886 B CN114035886 B CN 114035886B CN 202111144132 A CN202111144132 A CN 202111144132A CN 114035886 B CN114035886 B CN 114035886B
Authority
CN
China
Prior art keywords
data
kernel
execution environment
security
area
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
CN202111144132.8A
Other languages
English (en)
Other versions
CN114035886A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN202111144132.8A priority Critical patent/CN114035886B/zh
Publication of CN114035886A publication Critical patent/CN114035886A/zh
Application granted granted Critical
Publication of CN114035886B publication Critical patent/CN114035886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

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

Abstract

本发明公开了一种针对内核数据的容器安全加固系统及方法。本方法为:1)根据容器采用的内核安全机制,确定出关键内核数据并将其存储至安全区;其中所述安全区为系统内存中划分出的一块内存区域,该块内存区域设置为普通执行环境只读不可写、可信执行环境可读可写;2)当内核在普通执行环境更新该安全区的数据时,因其不具有写权限而产生页表异常,异常处理函数中解析产生异常的指令,得到该内核更新操作所更新的数据地址以及需写入的数据内容并传入可信执行环境;3)在可信执行环境内的数据更新模块基于设定的安全策略和传入的数据,允许或拒绝对安全区数据的更新操作。本发明能够抵御因内核漏洞造成的提权及逃逸攻击。

Description

一种针对内核数据的容器安全加固系统及方法
技术领域
本发明涉及一种针对内核数据的容器安全加固系统及方法,属于虚拟化技术安全领域。
背景技术
近些年来,容器技术席卷全球,颠覆了应用的开发、交付和运行模式,在云计算、互联网等领域得到了广泛应用。容器作为一种先进的虚拟化技术,已然成为了构建各种云服务的标准基础设施,并发展出了从容器镜像构建,容器运行时到各种容器应用的编排部署等一系列的生态环境。容器技术作为一种轻量级的操作系统级虚拟化技术,通过操作系统本身的安全机制隔离出一个应用执行沙箱,使运行其上的应用感觉自己拥有整个系统,本质上,依旧是所有容器共享Linux内核,只是每个容器独占一份由Linux的Namespace和Cgroups机制隔离出来的内核资源。Linux内核由于其代码量巨大,软件漏洞在所难免。一旦Linux内核的安全性无法保证,基于其上的安全机制亦无法有效的发挥作用。容器共享内核的安全弱势,依靠内核机制软件实现的弱隔离性,不仅会对已部署的应用造成威胁,也会制约容器技术更广泛的产业应用。
现有的容器加固方法大都借助Linux原生内核安全机制来限制容器进程对内核的访问,其安全性不容乐观。一旦内核被攻破,这些安全加固机制也就形同虚设。因此本发明选择同样应用广泛的可信执行环境技术,防止因内核漏洞篡改内核数据而导致的容器隔离失效。
可信执行环境(Trusted Execution Environment,简称TEE),是处理器上的一个安全区域,可以确保其加载的代码和数据的机密性和完整性。相对于普通执行环境(RichExecution Environment,简称REE)而言,可信执行环境拥有更高的安全级别。
本发明使用可信执行环境技术保护内核中容器安全机制相关的数据,能在兼顾容器快速部署、高效移植、低开销特点的同时,增强容器的隔离性,抵御潜在的因内核漏洞导致的容器安全问题,对容器进行安全加固。
发明内容
本发明所解决的问题:对于容器技术因共享内核带来的安全弱势,提供一种针对内核数据的容器安全加固系统及方法,抵御因内核漏洞造成的提权及逃逸攻击。
本发明的技术解决方案:一种针对内核数据的容器安全加固系统及方法,具体包含如下两个方面:
方面一,一种针对内核数据的容器安全加固系统,其特征在于,包括:数据分析模块、数据集中模块、数据监测模块、数据更新模块和策略模块。其中:
数据分析模块,负责分析实现容器的内核安全机制,如资源隔离的namespaces机制,权限控制的capability、selinux、seccomp机制,资源限制的cgroup机制等所使用的关键内核数据,即上述机制根据哪些关键内核数据进行策略判定,从而确定关键内核数据的内容。
数据集中模块,负责从系统内存中划分出一块内存区域,将该区域设置为普通执行环境只读不可写,可信执行环境可读可写。该内存区域称之为安全区。将影响容器安全性的关键内核数据分配至安全区,并提供给内核继续使用。
数据监测模块,该模块基于内核本身的异常机制。当内核更新安全区数据时,因其不具有写权限,立即产生页表异常,在异常处理函数中解析产生异常的指令,得到该更新操作更新的数据地址以及需写入的数据内容并传入可信执行环境,后续由数据更新模块完成更新操作。由此数据监测模块能实现实时监测对安全区容器数据的更新,并进一步转发该更新进入可信执行环境。
数据更新模块,该模块位于可信执行环境内,不受潜在的内核漏洞影响且具有安全区的写权限。基于策略模块的策略,允许或拒绝对安全区数据的更新操作,抵御恶意的提权及逃逸攻击。
策略模块,负责依据现有容器使用的内核安全机制的策略,如capability机制中容器capability不多于14个,以及其他机制中类似的策略,制定在可信环境中数据的更新策略,例如capability数据更新的阈值等。
方面二,一种针对内核数据的容器安全加固方法,包括以下步骤:
(1)分析容器采用的内核安全机制,确定安全机制相关的关键内核数据。
(2)划分一块系统内存区域,在普通执行环境中利用MMU设置该区域页表属性为只读不可写,在可信执行环境中利用TZASC硬件设置该区域访问属性为普通执行环境中只读不可写,可信执行环境中可读可写。这块区域称之为安全区。
(3)将步骤1中确定的所有数据集中分配至步骤2中建立的安全区,管理数据的初始化,更新,销毁。
(4)步骤1中数据在普通执行环境的更新违反步骤2中安全区的内存访问属性,产生异常,经过异常处理函数进入可信执行环境。
(5)在可信执行环境内,可对安全区数据进行更新,同时基于一定的策略对步骤4的更新操作进行相应的访问控制。
(6)步骤5中的策略基于容器在普通执行环境内采用的内核安全机制制定。
与现有技术相比,本发明的积极效果为:
本发明的针对内核数据的容器安全加固系统,能够保证在容器恶意及内核存在软件漏洞的情况下均不能通过修改内核数据,破坏容器的隔离性,进行容器逃逸。本发明通过更新容器关键内核数据产生的异常进行实时监测,利用可信执行环境保证数据不受潜在的内核攻击影响。具有强安全性,通用性且对现有部署容器透明等优点。
附图说明
图1为本发明提供的一种针对内核数据的容器安全加固系统的技术结构框图。
图2为本发明提供的一种针对内核数据的容器安全加固方法的执行流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进,这些都属于本发明的保护范围。
请参阅图1,本发明实例提供针对内核数据的容器安全加固系统,包括:数据分析模块、数据集中模块、数据监测模块、数据更新模块、策略模块。其中:
数据分析模块,负责分析实现容器的内核安全机制,如资源隔离的namespaces机制,权限控制的capability、selinux、seccomp机制,资源限制的cgroup机制等所使用的关键内核数据,即上述机制根据哪些关键内核数据进行策略判定。
数据集中模块,负责在普通世界内通过设置页表属性为只读,在可信执行环境内设置为普通世界只读,安全世界可读可写,实现划分一块系统内存为安全区,将影响容器安全性的关键内核数据分配至安全区,并提供给内核继续使用。
数据监测模块,该模块基于内核本身的异常机制。当内核更新安全区数据时,因其不具有写权限,立即产生页表异常,在异常处理函数中解析产生异常的指令,转移进入可信执行环境内处理,从而实现实时监测对安全区容器数据的更新。当内核需要读取安全区数据时,为防止伪造攻击,即在可读写区域伪造安全区数据并修改指向安全区数据的指针指向该伪造区域,采用“使用时赋值”的思想,将指向安全区数据的指针值修改为使用时会产生异常的值,在异常处理函数中将指针值修改为记录在安全区的正确值。以安全区数据中包含的进程nsproxy结构体为例,具体实施方式为:
1.创建进程时,同步在安全区内记录该进程使用的关键内核数据在安全区内的地址,如进程的task_struct结构体内指向nsproxy的成员即task->nsproxy的值。该记录与进程一一对应。
2.将task->nsproxy的值修改为1024,因此当获取nsproxy值时将产生异常,在异常处理函数中获取步骤1中记录的nsproxy地址值,更新task_struct结构体内指向nsproxy的成员的值。
3.步骤2的过程在进程被切换出去时task->nsproxy值修改为1024,进程切换进来重新运行时检查task->nsproxy值是否为1024。后续使用task->nsproxy值时会产生异常,在异常处理函数中修改为安全区内记录的正确的task->nsproxy值。
由此指向安全区数据的指针始终使用安全区内记录的值,从而抵御伪造攻击。
数据更新模块,该模块位于可信执行环境内,不受潜在的内核漏洞影响且具有安全区的写权限。基于策略模块的策略,允许或拒绝对安全区数据的更新操作。
策略模块,负责基于现有的容器对关键内核数据的更新策略制定安全区内数据的更新策略,例如容器进程的capability应不大于14个。同时,策略包含检查更新操作在普通执行环境的发起地址是否始终不变,通过读取异常返回地址寄存器的值判断。由此抵御潜在恶意的并非由数据监测模块发起的更新操作。
请参阅图2,本发明实例提供一种针对内核数据的容器安全加固方法,包括以下步骤:
(1)分析容器采用的内核安全机制,确定安全机制相关的关键内核数据。
(2)利用MMU和TZASC硬件设置一块系统内存区域访问属性为普通执行环境中只读不可写,可信执行环境中可读可写,称之为安全区。
(3)将步骤1中确定的所有数据集中分配至步骤2中建立的安全区,管理数据的初始化,更新,销毁。
(4)步骤1中数据在普通执行环境的更新违反步骤2中安全区的内存访问属性,产生异常,经过异常处理函数进入可信执行环境。
(5)在可信执行环境内,可对安全区数据进行更新,同时基于一定的策略对步骤4的更新操作进行相应的访问控制。
(6)步骤5中的策略基于容器在普通执行环境内采用的内核安全机制的策略制定。
以上所述仅为本发明的一个实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (3)

1.一种针对内核数据的容器安全加固方法,其步骤包括:
1)根据容器采用的内核安全机制,确定出关键内核数据并将其存储至安全区;其中所述安全区为系统内存中划分出的一块内存区域,在普通执行环境中利用MMU设置该块内存区域的页表属性为只读不可写,在可信执行环境中利用TZASC硬件设置该块内存区域的访问属性为普通执行环境中只读不可写,可信执行环境中可读可写;
2)当内核在普通执行环境更新该安全区的数据时,因其不具有写权限而产生页表异常,异常处理函数中解析产生异常的指令,得到该内核更新操作所更新的数据地址以及需写入的数据内容并传入可信执行环境;
3)在可信执行环境内的数据更新模块基于设定的安全策略和传入的数据,允许或拒绝对安全区数据的更新操作;基于容器在普通执行环境内采用的内核安全机制制定所述安全策略;所述安全策略还包括检查更新操作在普通执行环境的发起地址是否始终不变,用于抵御潜在恶意的并非由数据监测模块发起的更新操作;其中通过读取异常返回地址寄存器的值判断更新操作在普通执行环境的发起地址是否变化;
4)当内核需要读取安全区数据时,将指向安全区数据的指针值修改为解引用会产生异常的值;然后在异常处理函数中将指针值修改为记录在安全区的正确值,用于抵御伪造攻击。
2.一种针对内核数据的容器安全加固系统,其特征在于,包括数据分析模块、数据集中模块、数据监测模块、数据更新模块和策略模块;其中,
数据分析模块,用于确定关键内核数据,即将容器所采用的内核安全机制进行策略判定时所使用的内核数据,作为关键内核数据;
数据集中模块,用于从系统内存中划分出一块内存区域,在普通执行环境中利用MMU设置该块内存区域的页表属性为只读不可写,在可信执行环境中利用TZASC硬件设置该块内存区域的访问属性为普通执行环境中只读不可写,可信执行环境中可读可写,将该块内存区域称为安全区;将所述关键内核数据分配至该安全区,并提供给内核继续使用;
数据监测模块,用于当内核更新该安全区的数据时,因其不具有写权限而产生页表异常,异常处理函数中解析产生异常的指令,得到该内核更新操作所更新的数据地址以及需写入的数据内容并传入可信执行环境;以及当内核需要读取安全区数据时,将指向安全区数据的指针值修改为解引用会产生异常的值,然后在异常处理函数中将指针值修改为记录在安全区的正确值,用于抵御伪造攻击;
数据更新模块,位于可信执行环境内,基于策略模块中的安全策略和数据监测模块传入的数据,允许或拒绝对安全区数据的更新操作;
策略模块,用于保存在可信环境中数据的安全策略;基于容器在普通执行环境内采用的内核安全机制制定所述安全策略;所述安全策略还包括检查更新操作在普通执行环境的发起地址是否始终不变,用于抵御潜在恶意的并非由数据监测模块发起的更新操作;其中
通过读取异常返回地址寄存器的值判断更新操作在普通执行环境的发起地址是否变化。
3.如权利要求2所述的系统,其特征在于,所述内核安全机制包括用于资源隔离的namespaces机制,用于权限控制的capability、selinux、seccomp机制,用于资源限制的cgroup机制。
CN202111144132.8A 2021-09-28 2021-09-28 一种针对内核数据的容器安全加固系统及方法 Active CN114035886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111144132.8A CN114035886B (zh) 2021-09-28 2021-09-28 一种针对内核数据的容器安全加固系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111144132.8A CN114035886B (zh) 2021-09-28 2021-09-28 一种针对内核数据的容器安全加固系统及方法

Publications (2)

Publication Number Publication Date
CN114035886A CN114035886A (zh) 2022-02-11
CN114035886B true CN114035886B (zh) 2023-10-03

Family

ID=80140401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111144132.8A Active CN114035886B (zh) 2021-09-28 2021-09-28 一种针对内核数据的容器安全加固系统及方法

Country Status (1)

Country Link
CN (1) CN114035886B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033302A (zh) * 2022-05-27 2022-09-09 天翼云科技有限公司 一种安全加固方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
CN108154032A (zh) * 2017-11-16 2018-06-12 中国科学院软件研究所 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
KR20180102439A (ko) * 2017-03-07 2018-09-17 한국과학기술원 범용성 및 트러스트존 기능 연동을 보장하는 모바일 기기상의 안전한 실행 환경 생성 방법 및 장치
CN108733455A (zh) * 2018-05-31 2018-11-02 上海交通大学 基于ARM TrustZone的容器隔离性增强系统
CN111400702A (zh) * 2020-03-24 2020-07-10 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10650138B2 (en) * 2017-01-27 2020-05-12 Hewlett Packard Enterprise Development Lp System call policies for containers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038128A (zh) * 2016-02-03 2017-08-11 华为技术有限公司 一种执行环境的虚拟化、虚拟执行环境的访问方法及装置
KR20180102439A (ko) * 2017-03-07 2018-09-17 한국과학기술원 범용성 및 트러스트존 기능 연동을 보장하는 모바일 기기상의 안전한 실행 환경 생성 방법 및 장치
CN108154032A (zh) * 2017-11-16 2018-06-12 中国科学院软件研究所 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
CN108733455A (zh) * 2018-05-31 2018-11-02 上海交通大学 基于ARM TrustZone的容器隔离性增强系统
CN111400702A (zh) * 2020-03-24 2020-07-10 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法

Also Published As

Publication number Publication date
CN114035886A (zh) 2022-02-11

Similar Documents

Publication Publication Date Title
RU2615664C2 (ru) Способы, системы и машиночитаемый носитель для активного контроля, защиты памяти и проверки целостности целевых устройств
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
JP4629332B2 (ja) 状態参照モニタ
US20210124824A1 (en) Securing secret data embedded in code against compromised interrupt and exception handlers
CN103124975B (zh) 用于在计算机系统中实行资源访问控制的方法
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
CN111400702B (zh) 一种虚拟化的操作系统内核保护方法
CN108154032B (zh) 具有内存完整性保障功能的计算机系统信任根构建方法
CN103907101A (zh) 用于管理器环境中的内核rootkit防护的系统和方法
US10380336B2 (en) Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
US20070234330A1 (en) Prevention of executable code modification
CN107480524A (zh) 一种安全沙箱及其构建方法
CN114035886B (zh) 一种针对内核数据的容器安全加固系统及方法
US20230289465A1 (en) Data Protection Method and Apparatus, Storage Medium, and Computer Device
Bousquet et al. Mandatory access control for the android dalvik virtual machine
CN111949995B (zh) 安全管理硬件资源的主机cpu架构系统和方法
WO2022093186A1 (en) Code execution using trusted code record
CN117688552B (zh) 栈空间防护方法、电子设备、存储介质及计算机程序产品
US20240134720A1 (en) Apparatus, and method
Yao et al. Proactive Firmware Security Development
Kuzuno et al. Protection Mechanism of Kernel Data Using Memory Protection Key
Hui et al. A runtime security monitoring architecture for embedded hypervisors
Sullivan et al. ISP—Hardware Enforcement of Security Policies
Zhu et al. Investigating TrustZone: A Comprehensive 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