CN106453413A - 在多系统中应用SELinux安全策略的方法及装置 - Google Patents

在多系统中应用SELinux安全策略的方法及装置 Download PDF

Info

Publication number
CN106453413A
CN106453413A CN201611075613.7A CN201611075613A CN106453413A CN 106453413 A CN106453413 A CN 106453413A CN 201611075613 A CN201611075613 A CN 201611075613A CN 106453413 A CN106453413 A CN 106453413A
Authority
CN
China
Prior art keywords
selinux
subsystem
java
policy
system kernel
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.)
Granted
Application number
CN201611075613.7A
Other languages
English (en)
Other versions
CN106453413B (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.)
Yuanxin Information Technology Group Co ltd
Original Assignee
Yuanxin 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 Yuanxin Technology filed Critical Yuanxin Technology
Priority to CN201611075613.7A priority Critical patent/CN106453413B/zh
Publication of CN106453413A publication Critical patent/CN106453413A/zh
Application granted granted Critical
Publication of CN106453413B publication Critical patent/CN106453413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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
    • 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
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种在多系统中应用SELinux安全策略的方法及装置,应用于包括一个主控系统和至少一个子系统的终端设备运行环境中,该方法包括:启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件;启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件。本发明的技术方案解决了如何在多系统中应用SELinux安全策略的问题。通过本发明实施例提供的方案加固了多系统的安全性,从而为用户创造了良好的终端设备体验环境。

Description

在多系统中应用SELinux安全策略的方法及装置
技术领域
本发明涉及终端设备技术领域,具体而言,本发明涉及一种在多系统中应用SELinux安全策略的方法以及一种在多系统中应用SELinux安全策略的装置。
背景技术
SELinux是一种基于域-类型(Domain-Type)模型的强制访问控制(MAC)安全系统,它由美国国家安全局(NationalSecurityAgency,NSA)进行设计,并设计成将安全模块放入系统内核中的系统形式,SELinux还包括相应的安全策略,上层系统可以基于安全策略来进行相应的安全运行操作。另外,一些安全相关应用也可以被打上与SELinux相关的补丁,以提高安全相关应用的安全等级。在普通的Linux系统中,任何应用程序对其资源享有完全的控制权,某个应用程序若将含有潜在重要信息的文件存储于临时文件目录下,该操作在普通的Linux系统中是被允许的。然而,在SELinux中,上述操作是被禁止的,因为SELinux应用的是强制访问控制(Mandatory Access Control,MAC)机制。
在强制访问控制机制中,用户、进程或者文件操作的权限是由基于安全策略决定的。例如,可以设定如下的安全策略:不允许将用户A创建的文件C授予用户B访问,基于上述安全策略的强制访问控制机制下,无论用户A对文件C的操作权限进行何种形式的修改,用户B永远无法对文件C进行访问,但是在普通的Linux系统环境下通过用户A对文件C的操作权限进行适当的修改操作可以使得用户B对文件C进行访问,因此,SELinux提供的强制访问控制机制可以强有力地保护系统的安全和可靠性。
在另一方面,随着技术的高速发展,智能终端已经成为必不可少的通信产品,功能强大、用户体验丰富的智能终端为人们的生活带来了极大的便利。现有的单操作系统的智能终端已经不能满足人们的需要,多操作系统的智能终端已经应运而生,现有技术中存在多种针对单操作系统的安全控制方案如SELinux安全控制策略,但是针对多系统的安全控制方案少之又少。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的一个实施例提出了一种在多系统中应用SELinux安全策略的方法,应用于包括一个主控系统和至少一个子系统的终端设备运行环境中,包括:
启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件;
启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件。
优选地,将SELinux安全策略基础文件导入系统内核,包括:
在启动主控系统的初始化进程中挂载SELinuxfs文件系统;
在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核。
优选地,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,包括:
通过主控系统的启动进程来启动至少一个子系统,并通过启动中的各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。
可选地,该方法还包括:
获取待更新的与至少一个子系统相应的SELinux安全策略文件;
其中,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,包括:
启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。
可选地,该方法还包括:
基于已加载与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统。
本发明的另一实施例提出了一种在多系统中应用SELinux安全策略的装置,应用于包括一个主控系统和至少一个子系统的终端设备运行环境中,包括:
第一加载模块,用于启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件;
第二加载模块,用于启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件。
优选地,第一加载模块包括:
系统挂载单元,用于在启动主控系统的初始化进程中挂载SELinuxfs文件系统;
文件导入单元,用于在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核。
优选地,第二加载模块用于通过主控系统的启动进程来启动至少一个子系统,并通过启动中的各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。
可选地,该装置还包括:
获取模块,用于获取待更新的与至少一个子系统相应的SELinux安全策略文件;
其中,启动至少一个子系统时,第二加载模块具体用于启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。
可选地,该装置还包括:
运行模块,用于基于已加载与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统。
本发明的技术方案解决了如何在多系统中应用SELinux安全策略的问题。其中,启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件,在将SELinux安全策略基础文件导入系统内核中时,才可以保证后续导入的与各个子系统相应的SELinux安全策略文件能被正确的识别;接着,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,通过该步骤可以将针对各个子系统进行的安全策略设定的规则分别应用于与其相应的子系统中,使得各个子系统单独应用各自的安全策略。通过本发明实施例提供的方案加固了多系统的安全性,从而为用户创造了良好的终端设备体验环境。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一个实施例的在多系统中应用SELinux安全策略的方法的流程示意图;
图2为本发明一个优选实施例的在多系统中应用SELinux安全策略的方法的流程示意图;
图3为本发明另一优选实施例的在多系统中应用SELinux安全策略的方法的流程示意图;
图4为本发明另一实施例的在多系统中应用SELinux安全策略的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
需要说明的是,本发明实施例提供的在多系统中应用SELinux安全策略的方法及装置适用于包括一个主控系统和至少一个子系统的终端设备运行环境中。其中,主控系统和子系统都是基于相同的系统内核,如Linux系统内核来实现的。
其中,本发明实施例中的子系统,可以是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统、Ubuntu系统或FireFox系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的容器系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。
优选地,主控系统可以是上述传统的操作系统,也可以是对传统的kernel进行改进和/或在kernel之外(例如框架层和应用层)增加功能模块之后,得到的操作系统。
主控系统主要用于对多个子(容器)系统进行前后台管理,与各子系统进行交互等。
主控系统用于对多个子系统进行控制管理,并且还用于辅助各个子系统完成各个子系统的各自的功能,主控系统本身可以不提供具体应用功能,例如通话、短信息、运行应用程序等功能。优选地,主控系统可以通过预定义的通道与子系统进行通信。同理,子系统之间可以通过容器通道进行通信。其中,预定义的通道可以是socket(套接字)通道。
图1为本发明一个实施例的在多系统中应用SELinux安全策略的方法的流程示意图。
步骤S110:启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件。
需要说明的是,在触发终端设备的启动操作时,系统内核会进行相应的控制操作,以启动主控系统,在主控系统的启动过程中,需要将SELinux安全策略基础文件导入系统内核。
优选地,将SELinux安全策略基础文件导入系统内核的步骤包括步骤S111和步骤S112:步骤S111:在启动主控系统的初始化进程中挂载SELinuxfs文件系统;步骤S112:在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核。如图2所示,是本发明一个优选实施例的在多系统中应用SELinux安全策略的方法的流程示意图。
首先,在启动主控系统的初始化进程中挂载SELinuxfs文件系统。具体地,可以在启动主控系统的初始化进程中通过调用预定的函数如selinuxfs mount()挂载SELinuxfs文件系统。
接着,在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核。具体地,通过已挂载的SELinuxfs文件系统,系统内核才能对SELinux安全策略基础文件进行相应的识别操作,因此,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核可以使得系统内核成功加载SELinux策略基础文件。需要说明的是,可以通过mmap导入方式,将SELinux安全策略基础文件导入系统内核,其中,mmap是通过将文件或者对象映射入系统内核实现导入操作的。
另外,SELinux策略基础文件如sepolicy文件是能够正确识别、应用与各个子系统相应的SELinux安全策略文件的基础保障,如果不能正确在系统内核中加载SELinux策略基础文件,则与各个子系统相应的SELinux安全策略也不能生效。
步骤S120:启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件。
优选地,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核的步骤具体包括:通过主控系统的启动进程来启动至少一个子系统,并通过启动中的各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。如图3所示,是本发明另一优选实施例的在多系统中应用SELinux安全策略的方法的流程示意图。
具体地,可以通过主控系统的Lotusd进程来启动至少一个子系统,其中,Lotusd进程是用于启动多容器子系统的进程;接着,在启动至少一个子系统过程中,会调用启动各个子系统的初始化进程如init,init进程可以执行子系统初始化的任务,此时,可以通过启动各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。只有当SELinux安全策略文件成功导入系统内核时,SELinux强制访问控制机制才能生效,从而子系统的安全性能才会相应地被加固。
可选地,本发明实施例提供的方法还包括步骤S130:获取待更新的与至少一个子系统相应的SELinux安全策略文件;其中,步骤S120具体包括:启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。
具体地,可以通过预定的策略修改工具对SELinux安全策略文件进行修改,并将修改后的SELinux安全策略文件作为待更新的与至少一个子系统相应的SELinux安全策略文件;接着,子系统可以获取待更新的与至少一个子系统相应的SELinux安全策略文件;最后,启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。在具体应用场景中,若子系统是Android系统,在该系统的external/sepolicy目录下提供了m4、checkpolicy等策略修改工具,可以通过这些工具进行对SELinux安全策略文件的修改。
当然,除了上述通过预定的策略修改工具在本地对SELinux安全策略文件进行修改,并获取待更新的与至少一个子系统相应的SELinux安全策略文件之外,子系统还可以直接获取服务器发送的待更新的与至少一个子系统相应的SELinux安全策略文件,对此本发明不做限定。
可选地,本发明实施例提供的方法还包括步骤S140:基于已加载与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统。
需要说明的是,SELinux定义了系统中各个用户、进程、应用和文件的访问权限,它通过安全策略来控制用户、进程、应用和文件之间的交互操作,其中,安全策略可以根据实际需要设置为严格的或宽松的,它指定了如何严格地或宽松地对用户、进程、应用和文件的访问权限进行鉴权操作。SELinux对系统普通用户是透明的,只有系统管理员需要考虑在终端设备中如何制定安全策略。只有同时满足Linux标准的访问控制条件和SELinux安全访问控制条件时,某一主体才能访问某一客体。
在SELinux中存在一关键性的概念如安全上下文,安全上下文由用户、角色、类型、安全级别四部分组成,SELinux中所有访问控制都是以关联的客体和主体的特定类型的访问控制属性为基础的,上述访问控制属性即为安全上下文。因此,当每一个进程和文件都被与其相应的安全上下文标识后,系统管理员就可以基于安全上下文制定安全策略,从而安全策略可以用来规定具有特定属性的进程可以访问具有特定属性的文件。
在本发明实施例中,不同子系统所需的安全等级不尽相同,故而在不同子系统中可以定义不同的SELinux安全策略。例如,一台终端设备运行两个子系统,分别为Android1和Android2,其中,Android1搭载的应用服务需要更高、更可靠的安全性,因此设定Android1运行的安全等级为高级。从而,设定与Android1相应的安全策略是:在不影响预定的进程外,禁止运行预定的进程外的所有进程。在定义安全上下文时,对Android1的专属资源进行严格地保护,进而可以通过严格的保护来禁止预定的进程外的进程调用相关资源以进行运行。在另一方面,可以设定Android2运行的安全等级为普通等级,与Android2相应的安全策略是:在不影响所有进程的运行的情况下,保证Android2的安全性。
在设置好与各个子系统相应的SELinux安全策略文件后,在终端设备启动过程中,可以通过启动主控系统和子系统的初始化进程分别将与各个子系统相应的SELinux安全策略文件导入系统内核,系统内核加载与各个子系统相应的SELinux安全策略文件,最后,基于已加载的与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统,使得各个子系统可以运行与其预设的安全等级相应的安全策略。
本发明的技术方案解决了如何在多系统中应用SELinux安全策略的问题。其中,启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件,在将SELinux安全策略基础文件导入系统内核中时,才可以保证后续导入的与各个子系统相应的SELinux安全策略文件能被正确识别;接着,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,通过该步骤可以将针对各个子系统进行的安全策略设定的规则分别应用于与其相应的子系统中,使得各个子系统单独应用各自的安全策略。通过本发明实施例提供的方案加固了多系统的安全性,从而为用户创造了良好的终端设备体验环境。
图4为本发明另一实施例的在多系统中应用SELinux安全策略的装置的结构示意图。
第一加载模块410启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件。
需要说明的是,在触发终端设备的启动操作时,系统内核会进行相应的控制操作,以启动主控系统,在主控系统的启动过程中,需要将SELinux安全策略基础文件导入系统内核。
优选地,第一加载模块410包括系统挂载单元和文件导入单元:系统挂载单元在启动主控系统的初始化进程中挂载SELinuxfs文件系统;文件导入单元在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核。
首先,在启动主控系统的初始化进程中挂载SELinuxfs文件系统。具体地,可以在启动主控系统的初始化进程中通过调用预定的函数如selinuxfs mount()挂载SELinuxfs文件系统。
接着,在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核。具体地,通过已挂载的SELinuxfs文件系统,系统内核才能对SELinux安全策略基础文件进行相应的识别操作,因此,通过已挂载的SELinuxfs文件系统将SELinux安全策略基础文件导入系统内核可以使得系统内核成功加载SELinux策略基础文件。需要说明的是,可以通过mmap导入方式,将SELinux安全策略基础文件导入系统内核,其中,mmap是通过将文件或者对象映射入系统内核实现导入操作的。
另外,SELinux策略基础文件如sepolicy文件是能够正确识别、应用与各个子系统相应的SELinux安全策略文件的基础保障,如果不能正确在系统内核中加载SELinux策略基础文件,则与各个子系统相应的SELinux安全策略也不能生效。
第二加载模块420启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件。
优选地,第二加载模块420具体用于通过主控系统的启动进程来启动至少一个子系统,并通过启动中的各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。
具体地,可以通过主控系统的Lotusd进程来启动至少一个子系统,其中,Lotusd进程是用于启动多容器子系统的进程;接着,在启动至少一个子系统过程中,会调用启动各个子系统的初始化进程如init,init进程可以执行子系统初始化的任务,此时,可以通过启动各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。只有当SELinux安全策略文件成功导入系统内核时,SELinux强制访问控制机制才能生效,从而子系统的安全性能才会相应地被加固。
可选地,本发明实施例提供的装置还包括获取模块:获取模块获取待更新的与至少一个子系统相应的SELinux安全策略文件;其中,第二加载模块420具体用于启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。
具体地,可以通过预定的策略修改工具对SELinux安全策略文件进行修改,并将修改后的SELinux安全策略文件作为待更新的与至少一个子系统相应的SELinux安全策略文件;接着,子系统可以获取待更新的与至少一个子系统相应的SELinux安全策略文件;最后,启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。在具体应用场景中,若子系统是Android系统,在该系统的external/sepolicy目录下提供了m4、checkpolicy等策略修改工具,可以通过这些工具进行对SELinux安全策略文件的修改。
当然,除了上述通过预定的策略修改工具在本地对SELinux安全策略文件进行修改,并获取待更新的与至少一个子系统相应的SELinux安全策略文件之外,子系统还可以直接获取服务器发送的待更新的与至少一个子系统相应的SELinux安全策略文件,对此本发明不做限定。
可选地,本发明实施例提供的装置还包括运行模块:运行模块基于已加载与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统。
需要说明的是,SELinux定义了系统中各个用户、进程、应用和文件的访问权限,它通过安全策略来控制用户、进程、应用和文件之间的交互操作,其中,安全策略可以根据实际需要设置为严格的或宽松的,它指定了如何严格地或宽松地对用户、进程、应用和文件的访问权限进行鉴权操作。SELinux对系统普通用户是透明的,只有系统管理员需要考虑在终端设备中如何制安全策略。只有同时满足Linux标准的访问控制条件和SELinux安全访问控制条件时,某一主体才能访问某一客体。
在SELinux中存在一关键性的概念如安全上下文,安全上下文由用户、角色、类型、安全级别四部分组成,SELinux中所有访问控制都是以关联的客体和主体的特定类型的访问控制属性为基础的,上述访问控制属性即为安全上下文。因此,当每一个进程和文件都被与其相应的安全上下文标识后,系统管理员就可以基于安全上下文制定安全策略,从而安全策略可以用来规定具有特定属性的进程可以访问具有特定属性的文件。
在本发明实施例中,不同子系统所需的安全等级不尽相同,故而在不同子系统中可以定义不同的SELinux安全策略。例如,一台终端设备运行两个子系统,分别为Android1和Android2,其中,Android1搭载的应用服务需要更高、更可靠的安全性,因此设定Android1运行的安全等级为高级。从而,设定与Android1相应的安全策略是:在不影响预定的进程外,禁止运行预定的进程外的所有进程。在定义安全上下文时,对Android1的专属资源进行严格地保护,进而可以通过严格的保护来禁止预定的进程外的进程调用相关资源以进行运行。在另一方面,可以设定Android2运行的安全等级为普通等级,与Android2相应的安全策略是:在不影响所有进程的运行的情况下,保证Android2的安全性。
在设置好与各个子系统相应的SELinux安全策略文件后,在终端设备启动过程中,可以通过启动主控系统和子系统的初始化进程分别将与各个子系统相应的SELinux安全策略文件导入系统内核,系统内核加载与各个子系统相应的SELinux安全策略文件,最后,基于已加载的与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统,使得各个子系统可以运行与其预设的安全等级相应的安全策略。
本发明的技术方案解决了如何在多系统中应用SELinux安全策略的问题。其中,启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载SELinux策略基础文件,在将SELinux安全策略基础文件导入系统内核中时,才可以保证后续导入的与各个子系统相应的SELinux安全策略文件能被正确识别;接着,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载SELinux安全策略文件,通过该步骤可以将针对各个子系统进行的安全策略设定的规则分别应用于与其相应的子系统中,使得各个子系统单独应用各自的安全策略。通过本发明实施例提供的方案加固了多系统的安全性,从而为用户创造了良好的终端设备体验环境。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种在多系统中应用SELinux安全策略的方法,应用于包括一个主控系统和至少一个子系统的终端设备运行环境中,其特征在于,包括:
启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载所述SELinux策略基础文件;
启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载所述SELinux安全策略文件。
2.根据权利要求1所述的方法,其特征在于,将SELinux安全策略基础文件导入系统内核,包括:
在启动主控系统的初始化进程中挂载SELinuxfs文件系统;
在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将所述SELinux安全策略基础文件导入系统内核。
3.根据权利要求1所述的方法,其特征在于,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,包括:
通过主控系统的启动进程来启动至少一个子系统,并通过启动中的各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待更新的与至少一个子系统相应的SELinux安全策略文件;
其中,启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载所述SELinux安全策略文件,包括:
启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载所述SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于已加载与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统。
6.一种在多系统中应用SELinux安全策略的装置,应用于包括一个主控系统和至少一个子系统的终端设备运行环境中,其特征在于,包括:
第一加载模块,用于启动主控系统时,将SELinux安全策略基础文件导入系统内核,并在系统内核中加载所述SELinux策略基础文件;
第二加载模块,用于启动至少一个子系统时,将与各个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载所述SELinux安全策略文件。
7.根据权利要求6所述的装置,其特征在于,所述第一加载模块包括:
系统挂载单元,用于在启动主控系统的初始化进程中挂载SELinuxfs文件系统;
文件导入单元,用于在启动主控系统的初始化进程中,通过已挂载的SELinuxfs文件系统将所述SELinux安全策略基础文件导入系统内核。
8.根据权利要求6所述的装置,其特征在于,所述第二加载模块用于通过主控系统的启动进程来启动至少一个子系统,并通过启动中的各个子系统的初始化进程将与其相应的SELinux安全策略文件导入系统内核。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取待更新的与至少一个子系统相应的SELinux安全策略文件;
其中,启动至少一个子系统时,所述第二加载模块具体用于启动至少一个子系统时,将待更新的与至少一个子系统相应的SELinux安全策略文件分别导入系统内核,并在系统内核中分别加载所述SELinux安全策略文件,以用于更新系统内核中与至少一个子系统相应的SELinux安全策略文件。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
运行模块,用于基于已加载与各个子系统相应的SELinux安全策略文件的系统内核,来运行各个子系统。
CN201611075613.7A 2016-11-29 2016-11-29 在多系统中应用SELinux安全策略的方法及装置 Active CN106453413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611075613.7A CN106453413B (zh) 2016-11-29 2016-11-29 在多系统中应用SELinux安全策略的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611075613.7A CN106453413B (zh) 2016-11-29 2016-11-29 在多系统中应用SELinux安全策略的方法及装置

Publications (2)

Publication Number Publication Date
CN106453413A true CN106453413A (zh) 2017-02-22
CN106453413B CN106453413B (zh) 2019-06-25

Family

ID=58222932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611075613.7A Active CN106453413B (zh) 2016-11-29 2016-11-29 在多系统中应用SELinux安全策略的方法及装置

Country Status (1)

Country Link
CN (1) CN106453413B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775903A (zh) * 2017-02-24 2017-05-31 北京小米移动软件有限公司 安全策略文件更新方法及装置
CN109964227A (zh) * 2017-10-30 2019-07-02 华为技术有限公司 更新SELinux安全策略的方法及终端
CN110673849A (zh) * 2019-08-14 2020-01-10 惠州市德赛西威智能交通技术研究院有限公司 一种批量预设置文件安全上下文的方法及装置
CN112861118A (zh) * 2021-04-26 2021-05-28 湖北亿咖通科技有限公司 双系统的容器间安全策略隔离方法、电子设备及存储介质
US11775643B2 (en) 2020-10-16 2023-10-03 Industrial Technology Research Institute Method and system for labeling object and generating security policy of operating system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102592092A (zh) * 2012-01-09 2012-07-18 中标软件有限公司 一种基于SELinux安全子系统的策略适配系统及方法
CN105184153A (zh) * 2015-08-26 2015-12-23 北京元心科技有限公司 智能终端及其基于多级容器的应用程序运行方法
CN105511879A (zh) * 2015-12-11 2016-04-20 北京元心科技有限公司 基于定时器的多系统启动方法和智能终端
CN106096418A (zh) * 2016-06-02 2016-11-09 北京元心科技有限公司 基于SELinux的开机安全等级选择方法、装置及终端设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102592092A (zh) * 2012-01-09 2012-07-18 中标软件有限公司 一种基于SELinux安全子系统的策略适配系统及方法
CN105184153A (zh) * 2015-08-26 2015-12-23 北京元心科技有限公司 智能终端及其基于多级容器的应用程序运行方法
CN105511879A (zh) * 2015-12-11 2016-04-20 北京元心科技有限公司 基于定时器的多系统启动方法和智能终端
CN106096418A (zh) * 2016-06-02 2016-11-09 北京元心科技有限公司 基于SELinux的开机安全等级选择方法、装置及终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张涛 等: "基于SELinux强制访问控制的进程权限控制技术研究与实现", 《技术研究》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775903A (zh) * 2017-02-24 2017-05-31 北京小米移动软件有限公司 安全策略文件更新方法及装置
CN109964227A (zh) * 2017-10-30 2019-07-02 华为技术有限公司 更新SELinux安全策略的方法及终端
CN113791813A (zh) * 2017-10-30 2021-12-14 华为技术有限公司 更新SELinux安全策略的方法及终端
US11222118B2 (en) 2017-10-30 2022-01-11 Huawei Technologies Co., Ltd. Method for updating selinux security policy and terminal
CN110673849A (zh) * 2019-08-14 2020-01-10 惠州市德赛西威智能交通技术研究院有限公司 一种批量预设置文件安全上下文的方法及装置
US11775643B2 (en) 2020-10-16 2023-10-03 Industrial Technology Research Institute Method and system for labeling object and generating security policy of operating system
CN112861118A (zh) * 2021-04-26 2021-05-28 湖北亿咖通科技有限公司 双系统的容器间安全策略隔离方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN106453413B (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN106453413A (zh) 在多系统中应用SELinux安全策略的方法及装置
CN101755271B (zh) 用于在连接受限设备配置和开放服务网关联盟环境中管理访问特权的方法和装置
CN105630615A (zh) 跨系统的应用控制方法和智能终端
CN106778291B (zh) 应用程序的隔离方法及隔离装置
CN105046156B (zh) 智能终端及其设备访问权限控制方法
CN106878292A (zh) 控制方法,控制装置、车载设备和交通运输工具
CN101403973B (zh) 提高嵌入式Linux内核安全性的应用程序启动方法和系统
CN106534148A (zh) 应用的访问管控方法及装置
US20110247013A1 (en) Method for Communicating Between Applications on an External Device and Vehicle Systems
EP1849066B1 (fr) Chargement dynamique sécurisé
CN103067392B (zh) 一种基于Android终端的安全访问控制方法
CN106330984A (zh) 访问控制策略的动态更新方法及装置
US10075443B2 (en) System, apparatus and method for stateful application of control data in a device
CN105184153B (zh) 智能终端及其基于多级容器的应用程序运行方法
CN102246144A (zh) 用于在计算机平台上安装程序的方法和装置
US20100306393A1 (en) External access and partner delegation
CN103460186A (zh) 用于更新数据载体的方法
CN100375033C (zh) 一种用于在操作系统分区环境中使用细粒度特权模型管理进程活动的方法和设备
CN106055968B (zh) 一种权限设置方法、装置及电子设备
CN103092645B (zh) 一种基于微内核技术的地理空间信息应用系统及其实现方法
CN107871062A (zh) 一种应用权限控制方法、装置及终端
CN110209416A (zh) 应用软件更新方法、装置、终端及存储介质
CN102938043A (zh) 授权应用对安全资源的访问
CN106776013A (zh) 多系统的资源调度方法及装置
CN106487811A (zh) 多容器间通信的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210129

Address after: 101300 room 153, 1 / F, building 17, 16 Caixiang East Road, Nancai Town, Shunyi District, Beijing

Patentee after: Yuanxin Information Technology Group Co.,Ltd.

Address before: 100176 room 2222, building D, building 33, 99 Kechuang 14th Street, Beijing Economic and Technological Development Zone, Beijing

Patentee before: BEIJING YUANXIN SCIENCE & TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20170222

Assignee: Beijing Yuanxin Junsheng Technology Co.,Ltd.

Assignor: Yuanxin Information Technology Group Co.,Ltd.

Contract record no.: X2021110000018

Denomination of invention: Method and device of applying SELinux security policy in multi system

Granted publication date: 20190625

License type: Common License

Record date: 20210531

EE01 Entry into force of recordation of patent licensing contract