OpenHarmony的SELinux介绍

SELinux(Security-Enhanced Linux)是由 NSA 开发的一个安全模块,最早用于 Linux 系统。它允许系统管理员细粒度地控制进程能访问哪些资源,而不是仅仅依赖传统的用户权限(UID/GID)。
在 OpenHarmony 中继承和扩展了 AOSP(Android)上的 SELinux 机制,通过强制访问控制(MAC, Mandatory Access Control),以增强系统的安全性,防止恶意程序访问敏感资源,以实现类似的安全控制能力

SELinux状态模式

SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态

模式 描述
Enforcing 强制执行策略,非法访问将被阻止
Permissive 仅记录违规访问日志,不阻止
Disabled SELinux 被禁用(开发阶段可能用)

如何修改SELinux的工作模式

通过命令修改SELinux权限

在系统中可以通过getenforce命令查询当前系统的SELinux状态。

#设置SElinux为Permissive模式
setenforce 0

#设置SElinux为Enforcing模式
setenforce 1

setenforce命令只能临时修改SELinux状态,当系统重启后,修改就会失效,SELinux恢复为原来默认状态

通过修改系统配置文件来修改SELinux权限

可以修改系统的system/etc/selinux/config文件来永久改变SELinux状态.
OpenHarmony的SELinux介绍_第1张图片
如将SELINUX=enforcing改为SELINUX=permissive,然后保存开机重启就好了

注意默认system/etc/selinux/config是只读文件,需要通过hdc来重新挂载/system分区为可读可写才能更改

在源码中修改SELinux状态

修改/base/security/selinux_adapter/selinux.gni
OpenHarmony的SELinux介绍_第2张图片

如将selinux_adapter_enforce = true改为selinux_adapter_enforce = false就会将SELinux从Enforcing模式改为Permissive模式
注意修改后需要重新编译和烧录系统

SELinux调试与分析

与Android系统相同,我们先通过dmesg | grep avc > /data/avc.log命令先将selinux日志存入文件中,然后通过audit2allow -i avc.log来得到修改方法.这里我们不再赘述

你可能感兴趣的:(Openharmony,鸿蒙,鸿蒙系统,安全)