# 02 - 系统OS

# 2.1 安全开发

# 2.1.1 去除敏感调试信息

系统组件日志应不含敏感信息。

# 2.1.2 接口权限认证

系统组件对外提供的接口,应增加权限校验,禁止无权限的应用直接调用。

# 2.2 安全配置

# 2.2.1 服务和端口最小化

系统应关闭SSH、Telnet、FTP等高危服务及其端口,列表可参考百度《高危服务和端口列表》。如的确有调试需求如ADB调试,应通过服务端下发调试证书的方式,在本地安装后进行安全调试。

# 2.2.2 特权功能接口

系统应关闭可直接进入设备系统的特权能力或接口,如工厂模式、未公开功能接口、调试后门等。如的确有业务需要,应加入鉴权机制。对于设备公共使用场景如酒店智能音箱应隐藏开发者选项入口,关闭未知来源安装,禁止通过浏览器安装应用。

# 2.2.3 强制访问控制

系统应开启SELinux,缓解漏洞利用。

# 2.2.4 文件系统权限

系统关键分区(system,vendor,boot等)需设置文件访问权限,限制非系统组件外的应用对关键分区进行读写,防止恶意应用读取修改关键数据。

# 2.2.5 启动验证

系统应开启启动验证(Verify Boot),在启动阶段验证Boot分区和其他分区(system,vendor等)的合法性,且涉及到的所有密钥均不能使用默认密钥。

# 2.2.6 Bootloader锁

系统Bootloader锁需处于锁定状态,并禁止用户解锁。

# 2.2.7 漏洞缓解措施

系统应开启各种漏洞缓解措施,以缓解漏洞对系统造成的危害。

安全选项 要求
KASLR(内核地址随机化) 必须开启
Canary(栈溢出检测) 必须开启
PAN(禁止内核访问用户态数据) 必须开启
PXN(禁止内核执行用户态代码) 必须开启
UAO(用户访问覆盖) 必须开启
KCFI(内核控制流完整性) 必须开启
dmesg_restrict(限制普通用户查看dmesg信息) 必须开启
kptr_restrict(限制Root和普通用户查看内核符号地址) 必须开启

# 2.3 系统更新

# 2.3.1 系统OTA

系统应具备OTA机制,能远程对系统进行升级,及时修复安全问题。

# 2.3.2 OTA包加密

系统OTA升级包需加密,防止攻击者逆向破解。

# 2.4 安全管理

# 2.4.1 系统版本

Android系统版本应选用当年可用的最新版本。

# 2.4.2 安全评估

系统需通过安全准出评估,所有高危漏洞修复后才能上线发布。

# 2.4.3 安全补丁

系统应及时修复高危安全漏洞,已通告的高危安全漏洞不应存在6个月以上。

# 2.4.4 安全助手

系统应集成小度系统安全助手,能对安装的应用进行黄反、病毒检测,且对设备进行异常安全状态检测。

# 2.5 可信执行环境

# 2.5.1 TEEOS

系统应集成TEEOS。

# 2.5.2 安全存储

系统应提供安全存储服务。

# 2.5.3 设备认证

系统应提供基于TEE的设备认证服务。