国产平台之OKT507-C开发板Android 安全策略漫谈
12-03 165人看过平台:OKT507-C开发板
系统:Android10.0
OKT507-C开发板Android系统版本为Android10.0,默认开启了SELinux。基于MAC访问控制模型的SElinux,可以更好地保护我们的Android系统, 比如限制系统服务的访问权限、控制应用对数据和系统日志的访问等措施,这样就降低了恶意软件的影响,并且可以防止因代码存在的缺陷而产生的对系统安全的影响。
从系统安全方面考虑,SELinux是保护神,但是从软件开发方面,SELinux就是一道牵绊,这是一把双刃剑。
访问控制模型DAC,MAC
自主访问控制(DAC: Discretionary Access Control)系统识别用户,根据被操作对象的权限的设置,来决定该用户对其拥有的操作权限,read、write、exec。拥有这个对象权限的用户,又可以将该权限分配给其他用户,此谓之“Discretionary”。缺陷就是对权限控制比较分散,不便于管理,比如无法简单地将一组文件设置统一的权限开放给指定的一群用户。
强制访问控制(MAC: Mandatory Access Control)MAC是为了弥补DAC权限控制过于分散的问题而诞生的。在MAC这种模型里,管理员管理访问控制。管理员制定策略,用户不能改变它。策略定义了哪个主体能访问哪个对象。这种访问控制模型可以增加安全级别,因为它基于策略,任何没有被显式授权的操作都不能执行。MAC被开发和实现在最重视保密的系统中,如军事系统。主体获得清楚的标记,对象得到分类标记,或称安全级别。
基于MAC的SElinux
-
参考链接:
-
https://source.android.google.cn/security/selinux
软件通常情况下必须以Root用户帐号的身份运行,才能向原始块设备写入数据。在基于DAC的传统Linux环境中,如果Root用户遭到入侵,攻击者便可以利用该用户身份向每个原始块设备写入数据。从Android4.3 起,SELinux开始为传统的自主访问控制 (DAC)环境提供强制访问控制(MAC)保护功能。
作为Android安全模型的一部分,Android使用安全增强型 Linux(SELinux) 对所有进程强制执行强制访问控制 (MAC),甚至包括以Root/超级用户权限运行的进程(Linux 功能)。例如可以使用SELinux为这些设备添加标签,以便被分配了 Root 权限的进程只能向相关政策中指定的设备写入数据。这样一来,该进程便无法重写特定原始块设备之外的数据和系统设置。

OKT507-C开发板 Android系统版本为Android10,SELinux默认开启,即使获得了该系统的root权限,也只能向相关策略中指定的设备写入数据,从而更好地保护和限制系统服务,保障系统和数据的安全。
标签、规则和域
SELinux 依靠标签来匹配操作和策略。标签用于决定允许的事项。套接字、文件和进程在 SELinux 中都有标签。SELinux 在做决定时需参照两点:一是为这些对象分配的标签,二是定义这些对象如何交互的策略。
在 SELinux 中,标签采用以下形式:usertype:mls_level,其中 type 是访问决定的主要组成部分,可通过构成标签的其他组成部分进行修改。对象会映射到类,对每个类的不同访问类型由权限表示。
策略规则采用以下形式:allow domains types:classes permissions;,其中:
-
Domain - 一个进程或一组进程的标签。也称为域类型,因为它只是指进程的类型。
-
Type - 一个对象(例如,文件、套接字)或一组对象的标签。
-
Class - 要访问的对象(例如,文件、套接字)的类型。
-
Permission - 要执行的操作(例如,读取、写入)。
策略配置源文件
1、external/sepolicy这是独立于设备的配置,一般不能针对设备进行修改2、device/
以OKT507-C开发板为例,OKT507-C开发板策略文件的路径如下:
-
OKT507-android-source/android$ ls device/softwinner/common/sepolicy/
-
private vendor
Type Enforcement (TE) 配置文件
.te 文件中保存了对应对象的域和类型定义、规则。通常每个域一个 .te 文件,例如installd.te。在 device.te、file.te 中声明了设备和文件类型。在某些文件(例如domain.te、app.te)中则存储着共享规则。
以OKT507-C开发板为例,T507 system_app的TE文件的路径如下:
-
OKT507-android-source/android$ ls device/softwinner/common/sepolicy/vendor/system_app.te
-
device/softwinner/common/sepolicy/vendor/system_app.te
标签配置文件
1、filecontexts:文件安全上下文
2、propertycontexts:属性安全上下文
SEAndroid app分类
SELinux(或SEAndroid)将app划分为主要三种类型(根据user不同,也有其他的domain类型):
3)system_app 有android平台签名和system权限
从上面划分,权限等级,理论上:untrustedapp < platformapp < system_app
-
console:/ # ps -Z
-
usystem_app:s0 system 15712 1861 1050628 110868 SyS_epoll_wait 0 S forlinx.example.app
-
uuntrusted_app_27c512,c768 u0_a62 30259 1861 1052120 114132 SyS_epoll_wait 0 S com.forlinx.changelogo
当前运行的两个APP,forlinx.example.app的type就是systemapp,com.forlinx.changelogo的type就是untrustedapp。
OKT507-C开发板自定义system_app的安全策略
以OKT507-C开发板中的Systemmix服务为例,我们为其添加执行脚本的权限:
-
OKT507-android-source/android$ vi device/softwinner/common/sepolicy/vendor/systemmix.te
-
...
-
allow systemmix vendor_shell_exec:file { getattr open read execute execute_no_trans };
-
allow systemmix shell_exec:file { getattr open read execute execute_no_trans };
-
allow systemmix shell:file { getattr open read execute execute_no_trans };
-
...
最近浏览过的用户(0) 查看全部
为你推荐
-
用智慧照亮生活—FET1046A-C核心板打造智慧灯杆方案2022-05-21 09:24
-
干货分享 | Debian系统移植USBWiFi RTL8192EU驱动并设置开机自启2022-05-21 09:24
作者:donatello1996来源:电子发烧友题图:飞凌嵌入式原文标题:【飞凌嵌入式OKMX8MP-C开发板试用体验】移植USBWIFIRTL8192EU驱动并设置开机自启动我(笔者)在飞凌OKMX8MP-C开发板上移植了自行搭建的Debian系统之后,发现板卡原有的WiFi模块无法使用,在内核里面添加了支持项也没用,后面跟飞凌的技术支持工程师王工沟通,了驱动器 5人看过 -
iMX6ULL动态评测-老将新甲 29*40mm的iMX6ULL 够小2022-05-05 11:58
-
iMX6ULL功能介绍|框架图|功耗|核心板硬件设计说明|原理图2022-04-30 09:55
-
赋能安防监控智能化升级 | 由嵌入式板卡实现的NVR方案2022-04-29 09:53
随着网络技术的不断发展,通过网络对视频数据进行存储的需求越来越多,这直接推动了DVR(硬盘录像机)发展为具有网络功能的NVR(网络视频录像机)。NVR是NetVideoRecorder的缩写,主要负责网络视音频信号的接入和存储、转发、解码、预览等功能。纵观视频监控系统的技术变革,从第一代的模拟监控到第二代的数字监控,再到现在盛行的网络监控,视频监控系统已成功嵌入式 24人看过 -
先睹为快! FETMX6ULL-C核心板开箱2022-04-21 11:25
飞凌嵌入式于4月11日发布了一款新品FETMX6ULL-C核心板。作为飞凌基于NXPi.MX6U系处理器所开发的第三款核心板,它有什么独特优势?让我们通过视频一睹为快!钩沉新生匠心可见FETMX6ULL-C核心板基于NXPi.MX6ULL处理器设计开发,ARMCortex-A7架构,在保持低功耗的同时主频高达800MHz。FETMX6ULL-C核心板接口资源核心板 44人看过 -
一篇读懂!嵌入式ARM处理器与持续火热的3D打印技术有何关联2022-04-21 11:24
-
医疗方案 | 基于FETMX6ULL-S实现的核酸自动提取仪2022-04-15 16:16
核酸自动提取仪基于FETMX6ULL-S设计研发核酸自动提取仪又名核酸自动纯化仪,是应用配套的核酸提取试剂,来自动完成样本核酸提取工作的仪器。广泛应用在疾病控制中心、临床疾病诊断、输血安全、法医学鉴定、环境微生物检测、食品安全检测、畜牧业和分子生物学研究等多种领域。分类01根据仪器型号大小不同划分自动液体工作站:自动液体工作站是功能非常强大的设备,液体分液、仪器 22人看过 -
新品预告丨强芯传承 FETMX6ULL-C核心板闪耀登场(文末福利)2022-04-13 11:25
“性价比高,功能接口丰富,资料齐全,稳定性强”这是许多用户对飞凌FETMX6ULL-S核心板的评价。作为NXP公司一颗经典的MPU,i.MX6ULL的市场认可度无需多言。而作为NXP公司的金牌合作伙伴,飞凌不负美誉,基于i.MX6ULL匠心打造的FETMX6ULL-S核心板一经问世便好评不断,且已有数百家来自工业、医疗、电力、物联网等行业的用户采用此款核心板核心板 37人看过
-
基于A40i平台在RTK接收机上的应用-RTK接收机解决方案-飞凌嵌入式2021-10-28 10:33
RTK接收机是一款通过无线通信设备接收单基站或者网络 RTK 播发的北斗/GNSS 载波相位实时动态差分数据,自主进行实时解算,提供高精度定位结果的终端设备。本文介绍了一款基于国产A40i设计RTK接收机的应用方案RTK 87人看过 -
激光喷码机-基于ARM+FPGA的控制系统设计方案-飞凌嵌入式2021-10-28 10:11
激光喷码机-基于ARM+FPGA的控制系统设计方案。激光喷码机是通过高能量的激光直接聚焦到物体表面,使之发生物理化学变化而形成的,并随着激光束的焦点在打标物体表面上有规律地移动,同时控制激光的有无,就在物体表面形成了指定的打标图案。 激光打标具有非接触式标记,标记速度快,污染小,无耗材损失和标识清晰、永久等优点,具有强大的竞争能力,正在逐渐地取代传统的油墨喷码机62人看过 -
一种基于ARM核心板设计的无线示教器解决方案-飞凌嵌入式2021-10-28 10:04
目前机器人示教器通过摇杆;按键;旋钮等方式对机器人的运动做出控制,结合示教器内部的系统软件,将数据发送至机器人控制系统,以此达到示教器的输入目的,当机器人运动时,其运动状态等信息需要展示给用户,则机器人系统将数据传输到示教器,示教器对机器人运动状态进行相关的显示,以此达到人际交互的目的。60人看过 -
ARM核心板在3D打印机中的解决方案推荐-飞凌嵌入式2021-10-28 10:01
3D打印机通常是采用数字技术材料打印机来实现的。常在模具制造、工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造,在珠宝、鞋类、工业设计、建筑、工程和施工(AEC)、汽车,航空航天、牙科和医疗产业、教育、地理信息系统、土木工程、枪支以及其他领域都有所应用。3D打印机 63人看过 -
环保数采仪|环保监测数采仪|生态环境监测数据采集器解决方案-飞凌嵌入式2021-10-27 17:27
环保数采仪采用高性能ARM高端处理器,嵌入式Linux操作系统和嵌入式实时数据库。飞凌嵌入式推出ARM核心板广泛应用于环保数采仪|环保监测数采仪|生态环境监测数据采集器,为环保监测提供硬件解决方案78人看过 -
ARM核心板应用于在线水质检测仪器解决方案2021-10-27 17:08
-
特高压输电线路在线监测系统方案-A40i 核心板 应用解析-飞凌嵌入式2021-10-27 16:45
本文中介绍的特高压输电线路在线监测系统,不仅能提高输电线路运行的可靠性,还能实现数据的融合共享,因此成为了输电线路中必不可少的一部分。基于特高压输电线在线监测系统的原理及系统组成,推荐飞凌嵌入式基于全志A40i设计的FETA40i-C核心板,首先是国产工业级的稳定性,再加上成本上的优势,让其在众多产品中脱颖而出33人看过 -
卡车高级驾驶辅助系统 (ADAS) 解决方案 -飞凌嵌入式2021-10-27 16:31
-
解决方案:核心板在自助加油机上的应用 - 飞凌嵌入式2021-10-27 15:51
加油站的智能化解决方案。 加油站是多元的,应用场景也简单明了,给车加油。加油站的智能化方案中自助加油系统的广泛性和便利性,使得其应用越来越多地受到青睐。飞凌嵌入式为您提供智慧自助加油机显控终端主控板,智能加油机解决方案37人看过 -
车联网车载T-BOX系统解决方案_汽车TBOX 嵌入式arm应用-飞凌嵌入式2021-10-27 15:31
车联网车载T-BOX系统解决方案_嵌入式arm在汽车TBOX 中的应用,飞凌嵌入式推出基于嵌入式arm技术的核心板在T-Box的解决方案中得到广泛应用,为用户缩短研发周期、提升产品整体竞争力提供有效的保证。435人看过
-
RK3568核心板-飞凌嵌入式2022-03-16 18:23
产品型号:RK3568 CPU:RK3568 架构:Cortex-A55 主频:2.0GHz 内存:2GB/4GB/8GB DDR4(标配2GB) ROM:16GB eMMC -
RK3568开发板-飞凌嵌入式2022-03-16 18:17
产品型号:RK3568 CPU:RK3568 架构:Cortex-A55 主频:2.0GHz 内存:2GB/4GB/8GB DDR4(标配2GB) ROM:16GB eMMC -
iMX6ULL开发板-飞凌嵌入式2021-10-23 15:55
产品型号:OKMX6ULL-S开发板 CPU:i.MX6ULL 架构:Cortex-A7 主频:800MHz 内存:256MB DDR3,512MB DDR3 存储:256MB NandFlash,4GB eMMC -
iMX8M Plus 开发板-飞凌嵌入式2021-08-20 14:00
产品型号:i.MX8MPlus CPU:i.MX8M Plus 架构:4*Cortex-A53+Cortex-M7 主频:1.6GHz 内存:4GB LPDDR4 ROM:16GB eMMC -
全志国产工业级A40i开发板-飞凌嵌入式2021-08-16 13:44
产品型号:A40i CPU:A40i 架构:Cortex-A7 主频:1.2GHz 内存:1GB DDR3,2GB DDR3 ROM:8GB eMMC -
全志系列-T507开发板-飞凌嵌入式2021-08-16 12:03
产品型号:T507 CPU:T507 架构:Cortex-A53 主频:1.5GHz 内存:2GB DDR3L ROM:8GB eMMC -
iMX8MQ开发板-飞凌嵌入式2021-08-16 11:44
产品型号:iMX8MQ CPU:iMX8MQ 架构:四核Cortex-A53+Cortex-M4 主频:1.3GHz 内存:2GB DDR4 ROM:8GB eMMC -
LS1028A开发板-飞凌嵌入式2021-08-12 14:08
产品型号:LS1028A CPU:LS1028A 架构:Cortex-A72 主频:1.5GHz 内存:2GB DDR4 ROM:8GB eMMC