harmony 鸿蒙OpenHarmony SELinux概述

  • 2025-06-16
  • 浏览 (7)

OpenHarmony SELinux概述

简介

OpenHarmony结合系统架构特点,基于安全增强式Linux(Security-Enhanced Linux ,以下简称SELinux)对OpenHarmony操作系统内文件、参数、SA、HDF等系统资源提供强制访问控制保护能力。本文基于SELinux访问控制模型,提供OpenHarmony SELinux功能的开发指导。

OpenHarmony SELinux支持以下功能:

  1. 支持访问参数、SA、HDF管控。
  2. 支持设置应用标签。
  3. 支持策略编译与加载。
  4. 支持contexts编译与加载。
  5. 支持编译时策略合理性检查。

基本概念

  • 安全上下文

安全上下文,也通常称为SELinux标签。OpenHarmony SELinux安全上下文的结构是user:role:type:sensitivity[:category,...]- sensitivity [:category,...]: - user:用户类型,比如user u roles { r },定义user为u的用户,它属于role r。 - role:角色标识符,角色限制了进程在进程上下文中基于角色标识符可转换的类型,其中文件、参数、SA服务、HDF服务等资源的用户类型使用object_r,进程的用户类型使用r。 - type:SELinux类型,在SELinux规则语句中,使用类型定义规则。 - sensitivity:分层安全级别,不同安全级别不能相互访问,目前OpenHarmony SELinux仅支持一层安全级别s0。 - category:对特定sensitivity划分不分层的分类,目前OpenHarmony SELinux已经定义的分类为c0-c1023,目前的OpenHarmony SELinux策略上未对category进行区分。

  • 主体

表示访问方,主体可以是一个用户、一个进程、一个服务或其他SELinux类型,OpenHarmony SELinux对进程主体分为四大类:Native进程、应用进程、SA进程、HDF进程。

  • 客体

表示被访问方,客体一般是文件、目录、参数、SA服务、HDF服务等系统资源。

  • sid

安全标识符(Security ID),用于标识进程、文件或其他SELinux对象的唯一标识符。

  • AVC

访问矢量缓存(Access Vector Cache),用于跟踪和缓存有关访问控制决策的信息,以提高系统的性能和安全性。

  • TE

类型强制(Type Enforcement),SELinux策略是由多条类型强制规则构成的。

  • 运行模式

OpenHarmony SELinux支持两种运行模式: + Enforcing,强制模式,拦截未授权行为并打印avc告警。 + Permissive,宽容模式,放行未授权行为并打印avc告警。

实现原理

OpenHarmony SELinux通过主体和客体的安全上下文表示主体是否有权限访问客体,在内核态拦截未授权行为。

图1 OpenHarmony SELinux分层架构图

selinux_architect

你可能感兴趣的鸿蒙文章

harmony 鸿蒙子系统开发

harmony 鸿蒙AI框架开发指导

harmony 鸿蒙Neural Network Runtime设备接入指导

harmony 鸿蒙应用特权配置指南

harmony 鸿蒙开发实例

harmony 鸿蒙搭建环境

harmony 鸿蒙开发指导

harmony 鸿蒙概述

harmony 鸿蒙ArkCompiler开发指导

harmony 鸿蒙窗口标题栏定制开发指导(ArkTS)

0  赞