先讲系统安全为什么是"地基":
第5篇讲了硬件安全------但硬件只是第一道门。攻击者一旦进了系统(哪怕是通过合法接口),他面对的就是操作系统本身。如果系统没有访问控制,拿到 root 就等于拿到一切。系统安全就是管住"进入系统之后"的一切。
1、系统账号管控:先砍掉"多余的入口"
系统安全的第一件事,跟硬件安全一样------砍接口。只不过这次砍的是"账号":
TBOX项目的做法:
-
除 root 外,所有系统账号通过修改命令解释器,使其均无法进行登录操作
-
为什么不能直接删?因为系统账户(如daemon、nobody等)要为各组件模块运行提供权限控制,删了会导致服务起不来
-
所以做法是"锁住"而不是"删除"------把 shell 改掉,让这些账号无法登录,但服务还能跑
对比第5篇的接口管控逻辑 :硬件砍调试口、系统砍登录账号,思路完全一致------最小化暴露面。
2、SELinux:系统访问控制的"主战场"
账号管住了,接下来是更细粒度的控制------进程能访问什么文件。这就轮到 SELinux 出场。
2.1 先理解概念
SELinux(安全增强型Linux)的核心思想:给每个进程和文件都打上一个安全上下文标签,通过标签实现主体(进程)对客体(文件)的访问控制。
- DAC(自主访问控制):传统的 rwx 权限,root 可以绕过
- MAC(强制访问控制):SELinux 的策略,root 也不能绕过------这是 SELinux 最大的价值
SELinux 有两种模式:
- Permissive(宽容模式):违规操作只记录日志,不阻止------调试阶段用
- Enforcing(强制模式):违规操作直接拒绝------量产必须用
2.2 标签体系:TBOX项目的五类标签

TBOX项目的SELinux方案定义了五类标签,把进程和文件分得清清楚楚:
| 标签 | 类型 | 权限设计 |
|---|---|---|
| 业务进程标签 | 进程 | 拥有全部业务标签,支持读写、链接、挂载所有文件 |
| 第三方进程标签 | 进程 | 拥有与业务进程的通信权限 + 对第三方/共享文件的全部权限 |
| 业务文件标签 | 文件 | 本身不具备任何权限,用于限制其他权限者访问;仅业务进程拥有完全权限,第三方进程无权访问 |
| 第三方文件标签 | 文件 | 本身无权限;业务进程和第三方进程都有权限 |
| 共享文件标签 | 文件 | 本身无权限;业务/第三方进程共享 |
设计要点:
- 业务文件只给业务进程------第三方应用碰不到你的核心数据
- 标签本身"零权限"------文件标签只是"身份",权限全在策略规则里定义
- root 也被管------SELinux的MAC模式下,root访问业务文件也要过策略
2.3 策略文件怎么组织
TBOX项目的SELinux策略(脱敏)按功能拆分:
| 策略文件 | 作用 |
|---|---|
| 业务进程策略文件 | 拥有业务进程标签的访问控制策略 |
| 业务文件策略文件 | 业务文件的访问权限策略 |
| 第三方策略文件 | 第三方应用的访问控制策略 |
| 宽容模式控制文件 | 设置宽容模式的控制策略 |
2.4 启动脚本改造(关键细节)
为了让SELinux真正生效,启动脚本必须改造:
# 改造前:直接运行
sh /oemapp/sirun_start.sh &
# 改造后:指定安全上下文运行
runcon u:r:业务进程标签:s0 sh /oemapp/sirun_start.sh &
为什么必须改? 如果不用 runcon 指定标签,脚本会以默认的 shell 标签运行------而 shell 标签的策略无法控制 shell 命令直接访问 /oemdata 目录。改造成本极低,但决定了SELinux能否管住你的业务。
2.5 AVC日志:排错的"眼睛"
SELinux拒绝访问时会记录 AVC(Access Vector Cache)日志,这是排错的关键:
apps_init.sh (u:r:shell:s0) 对于 u:object_r:业务文件标签:s0 的文件(certManager)
没有 execute 权限
排错三步法:
- 看 AVC 日志,确认谁(进程标签)访问什么(文件标签)被拒
- 判断是"策略写错"还是"确实不该访问"
- 该放行的加策略,不该放行的保持拒绝(同时把日志重导向到业务目录,方便回溯)
03 系统安全日志与安全事件
系统安全不只是"管住访问",还要"看得见异常"。TBOX项目的做法:
日志三层:
- SELinux层:记录非授权访问(AVC日志)
- 应用层:各功能业务模块记录业务操作及失败日志
- 系统层:记录安全启动、root登录等系统安全日志 + 系统异常行为(存储不足、内存占用异常)
安全事件上报:检测到安全事件后,调用 IDS 接口传递安全事件信息,有完整的错误码体系(脱敏):
- 证书校验失败(双向认证失败)
- 消息完整性校验失败(AES128-CMAC 指令验签失败)
- 车控非授权访问
- 蓝牙关键指令校验失败
- 敏感信息非法读取(如经纬度文件读取)
这套错误码体系的价值 :安全事件不是"发现了就完",而是要上报、记录、可追溯------这也是 GB 44495 要求的"安全日志留存"的落地实现。
04 应用安全:代码级防护
系统安全还包括应用代码本身。TBOX项目的做法:
- 静态分析工具:按 MISRA C: 2023 标准对代码进行扫描
- 扫描结果在软件单元测试报告中展示和证明------这是给客户评审的证据链
MISRA C 是汽车行业C代码的"军规",尤其适合TBOX这类跑在安全芯片/MCU上的代码。静态分析 + 单元测试报告 = 可追溯的代码安全证据。
05 数据分类分级:先分清楚,再谈保护
数据安全的第一步不是加密,而是分类分级------你连哪些数据是敏感的都不知道,怎么保护?
某合资品牌《数据分类分级及安全要求》规范(脱敏)提供了完整框架:
5.1 法规依据
数据安全不是拍脑袋,而是有法可依:
- 《数据安全法》
- 《个人信息保护法》
- 《汽车数据安全管理若干规定(试行)》
- GB 44495-2024《汽车整车信息安全技术要求》
5.2 分类分级:C1 vs C2

| 级别 | 定义 | 典型数据 | 保护要求 |
|---|---|---|---|
| C1 | 一般个人信息 | 联系方式、账户信息、车辆基础配置 | 告知+同意、基础安全保护、加密传输 |
| C2 | 敏感个人信息 | 行踪轨迹、音频、车内视频图像、生物识别特征 | 告知+单独同意 、显著标识、加密存储+访问控制、终止收集按钮 |
TBOX里最典型的数据就是C2------行踪轨迹(定位数据)!所以TBOX的定位数据必须加密存储、访问控制、单独同意采集------这就是第5篇里"位置数据 AES-128-CBC 加密"的法规来源。
5.3 数据采集的合规要求(C2重点)
采集敏感个人信息(C2)的要求远严于C1:
| 要求 | 说明 |
|---|---|
| 告知 | 隐私政策完整告知收集目的、方式、类型;敏感信息显著标识(加粗/高亮) |
| 单独同意 | C2采集前必须征得用户单独同意,不使用"好的""我知道了"等默认同意 |
| 状态提示 | 持续收集语音/定位等敏感信息时,设置显示面板图标或提示灯 |
| 终止收集 | 提供终止收集按钮(默认关闭),用户选择停止后麦克风/摄像头同步关闭 |
| 权限管理 | 触发式申请权限,申请前明确告知目的;未告知且未授权不应自启动应用 |
| 第三方SDK | 隐私政策中告知SDK名称、机构、收集信息类型、目的、第三方隐私政策链接 |
| 重新同意 | 处理目的变化/同意期限届满后,重新征得用户同意 |
对TBOX的含义 :如果你的TBOX采集定位、音频(车内通话)等数据,这些合规要求必须落到产品设计里------不是法务的事,是产品/开发的事。
6、数据存储加密:敏感数据不能裸奔
分类分级之后,就是"分级保护"。TBOX项目的存储加密实践:
加密清单:
| 数据 | 加密方式 |
|---|---|
| 日志中的定位数据 | AES-128-CBC (PKCS7填充)加密本地存储 |
| 国标实时数据(含定位) | AES-128-CBC 加密本地存储 |
| 证书/私钥 | 私钥存安全芯片不可读区域,永不离开安全芯片 |
| 设备证书/签名证书 | 保存在HSM |
| CA根证书链 | 存放于TEE |
| PKI平台账号密码 | 混淆方式管控 |
注意分层 :定位数据用 AES-128-CBC(软件加密,够用);私钥用安全芯片不可读区域 (硬件保护,最安全);证书链分层存放(根证书在TEE,业务证书在HSM)。不同敏感度的数据,用不同强度的保护------这就是"分级保护"的实践。
7、系统数据安全方案总结
| 需求(法规/客户规范) | 对应解决方案 |
|---|---|
| 系统账户管理(客户需求4.3.2/4.3.3) | 除root外全部锁定登录 |
| 访问控制(GB 44495 7.2.9区域隔离) | SELinux标签体系(业务/第三方隔离) |
| 日志留存(GB 44495 7.1.2.3,≥6个月) | 三层日志+安全事件错误码上报 |
| 敏感数据防泄露(GB 44495 7.4.2) | 定位数据AES-128-CBC加密 |
| 密钥安全(GB 44495 7.4.1) | 私钥存安全芯片不可读区域 |
| 个人信息保护(《个保法》) | C1/C2分级+单独同意+终止收集 |
| 代码安全(客户需求12.3) | MISRA C:2023静态扫描 |
8、给TBOX工程师的5条实战建议
- 系统安全 = 账号管控 + 访问控制 + 日志监控 三件套,缺一不可
- SELinux别只开Permissive:调试用宽容模式,量产必须Enforcing------这是客户评审红线
- 标签体系要"最小权限":业务文件只给业务进程,第三方碰不到核心数据;文件标签本身零权限
- 数据先分级再保护:定位/音频/视频/生物特征都是C2敏感数据,加密+访问控制+单独同意缺一不可
- 安全事件要能上报:建立错误码体系,安全事件→IDS上报→可追溯------这是GB 44495"日志留存"的落地