本文介绍 TencentOS Server 的安全架构设计理念、核心安全特性和安全防护体系,帮助您理解系统的安全能力并合理配置。适用于 TencentOS Server 3 与 TencentOS Server 4,其中部分安全特性(如可信度量、TPCM/TCM 硬件可信根)依赖硬件与固件配合,云服务器虚拟化环境下部分特性可能不可用,具体以实际环境为准。
安全架构设计
信息安全基本要素
信息安全的基本要素包括:
机密性(Confidentiality):保证数据不被未经授权的客体访问。操作系统中对应的机制包括 UGO(User/Group/Others)权限机制、ACL(Access Control List)访问控制列表、SELinux 强制访问控制等。
完整性(Integrity):保证数据不被破坏或篡改。对应的操作系统安全机制包括 IMA/EVM 完整性度量架构等。
可用性(Availability):在保证数据机密性和完整性的基础上,确保对应的服务和资源是可用的。
此外,信息安全还包含可控性和不可否认性两个扩展要素。例如,安全审计机制可归入不可否认性中 — 当安全事件发生后,可以通过审计日志追溯相关操作记录。
安全框架设计原则
TencentOS Server 安全框架设计遵循以下原则:
覆盖基础安全特性:包括强制访问控制(SELinux)、自主访问控制(ACL)、安全审计等。
满足安全认证需求:包括 Biba 完整性模型、国密算法支持等安全特性。
适配行业合规需求:包括动态度量、安全启动等特性。
安全框架的总体设计原则是安全透明:在运行安全模块时,性能感知度越小越好、用户参与度越低越好、系统耦合度越松越好。安全机制或安全特性都有对应的开关,用户可以根据实际需求自主决定是否启用。
安全特性详解
TencentOS Server 的核心安全机制包括:基于 ACL 的自主访问控制机制、基于标记的强制访问控制机制、基于 IMA/EVM 的完整性保护机制、基于可信计算模块(TPCM/TCM)的完整性保护机制、基于 SAK(Secure Attention Key)的可信路径机制。以下章节分别介绍各安全特性的设计与实现。
内核安全
TencentOS Server 对内核编译参数和引导参数进行了安全加固,提供更安全的内核配置。例如,开启 KASAN(Kernel Address Sanitizer)等安全机制,从根本提升操作系统安全性。
身份鉴别
TencentOS Server 支持多种身份鉴别机制:
用户名与 UID 一致性:确保用户名与 UID 的对应关系不被篡改。
强化口令管理:通过 PAM 模块配置密码复杂度、过期策略等。
多鉴别机制:支持多种认证方式的组合。
会话管理:限制并发会话量、超时断开、鉴别失败锁定等。
访问控制机制
TencentOS Server 提供多种访问控制机制,构建合理的访问控制框架,从整体上管理用户和各种资源,提供细粒度的访问控制。
所有主体对客体的访问都需要通过访问监控器,保证访问控制机制不可被绕过或规避。
自主访问控制(DAC)
系统中常用的 user/group/others 机制属于自主访问控制,由资源所有者决定权限分配。ACL(Access Control List)是在 UGO 基础上的扩展,提供更细粒度的权限分配能力。通过 ACL 机制,可以为特定用户或组设置不同于 UGO 的访问权限。
标记与强制访问控制(MAC)
SELinux 是 TencentOS Server 中强制访问控制的核心实现。SELinux 子系统包括 AVC(Access Vector Cache)、Security Server、策略强制组件和 selinuxfs 等模块。SELinux 的开关和部分策略编译在用户态进行。
SELinux 实现了 BLP(Bell-LaPadula)机密性模型。此外,内核安全框架中还挂载了 Biba 完整性模型模块。Biba 模型新增了完整性标记,包括检查点设计、判断逻辑设计、策略设计及相关工具设计,以及对应的用户态编译工具和命令。
审计与自动响应机制
TencentOS Server 提供完整的系统审计机制,便于您在安全事件发生后进行日志审计,为及时发现系统安全问题提供重要参考。
审计日志基础功能:审计系统记录系统中的安全策略违规事件,日志存储在
/var/log/audit/audit.log 中,可通过 ausearch 和 aureport 工具查询和生成报告。审计自动响应:传统的审计日志仅提供查询功能。TencentOS Server 在此基础上实现了审计日志的自动响应机制:当日志不停写入审计文件时,系统会进行审计日志规则的模板匹配。当匹配成功时,触发自动响应动作,例如终止对应进程(kill)或发送预警邮件到指定邮箱。
数据完整性
操作系统中的完整性保护包括:
强制访问控制中的完整性模型:如 Biba 完整性模型。
系统完整性度量与可信启动:通过 IMA/EVM 机制度量文件完整性,确保启动链可信。
数据完整性检查:通过
fsck 检查文件系统一致性,通过 AIDE(Advanced Intrusion Detection Environment)进行文件完整性检查和入侵检测。数据保密性
数据加密通过以下方式实现:
文件级加密:使用 GPG(GNU Privacy Guard)对文件进行加密和签名。
块设备加密:使用 LUKS(Linux Unified Key Setup)对磁盘分区进行全盘加密。
客体重用
客体重用是安全操作系统的重要特性。当指定的内存区域被重新分配做其他用途时,系统会清除上一次使用时该内存对应的结构体数据,保证待分配的内存或结构体不带原有的数据信息,防止信息泄露。
可信度量
可信度量分为静态度量与动态度量:
静态度量:系统加电后,CRTM(Core Root of Trust for Measurement)度量 BIOS 的完整性,BIOS 度量 Bootloader 的完整性,Bootloader 度量 OS Kernel,然后度量上层应用程序,构建完整的可信链(Trust Chain),扩展可信边界。
动态度量:在系统运行期间对关键组件进行周期性或事件触发的完整性度量,覆盖静态度量无法触及的运行时篡改场景(如内存中代码被篡改、运行时加载的模块与文件被替换)。典型机制包括基于 IMA 的运行时文件度量与基于远程证明的周期性校验,与静态度量互补,实现从"启动可信"到"运行可信"的延伸。
可信路径与可信信道:可信路径用于保证用户与系统通信路径的可信;可信信道保证网络上端到端通信的可信。通过可信特性的组合,从单点可信到端到端可信,最终构建整体可信网络。
常见问题与总结
SELinux 权限问题排查
在日常使用 SELinux 时,经常会遇到权限 denied 的问题。排查步骤如下(前提:SELinux 已启用——若
getenforce 输出 Disabled,说明 SELinux 未启用,权限问题与 SELinux 无关;TencentOS Server 云上镜像默认可能为 Disabled 状态,启用方法请参考相关配置文档):步骤 1:确认是否为 SELinux 策略问题
在 permissive 模式和 enforcing 模式下分别执行特定操作。如果 permissive 模式下正常,而 enforcing 模式下出现 permission denied,一般是由 SELinux 策略导致。
# 切换到 permissive 模式setenforce 0# 执行操作测试...# 切换回 enforcing 模式setenforce 1
步骤 2:提取审计日志
# 清空审计日志后重新操作,然后提取日志ausearch -m AVC,USER_AVC,SELINUX_ERR -ts recent# 也可通过 journalctl 或 dmesg 提取journalctl -t setroubleshootdmesg | grep -i -e type=1300 -e type=1400
步骤 3:处理无日志输出的情况
如果没有日志被提取出来,可能是 dontaudit 规则导致鉴权数据不被记录。临时禁用 dontaudit 规则:
# 临时禁用 dontaudit 规则,允许记录所有拒绝信息semodule -DB# 重新操作后再查看审计日志ausearch -m AVC,USER_AVC -ts recent
步骤 4:自动生成策略并加载
# 将鉴权失败的审计日志导出,自动生成策略audit2allow -M mypolicy < /var/log/audit/audit.log# 安装生成的策略模块semodule -i mypolicy.pp
注意:
audit2allow 生成的策略会放行所有被拒绝的操作,可能包含越权行为。请您在加载前审查 .te 策略源文件的内容,确认仅放行业务必需的权限,避免引入安全缺口。重复 2-3 次该过程,确认策略生效。如果手动调整策略,
audit2allow 会生成 .pp(编译后策略)和 .te(策略源文件)两个文件。可直接编辑 .te 文件后编译加载。步骤 5:恢复 dontaudit 规则
# 重新启用 dontaudit 规则semodule -B
总结
TencentOS Server 的安全框架基于 Linux 内核,构建各种基础的安全任务和安全机制,符合结构化设计要求。操作系统中主体对客体的访问都经过访问仲裁,实现完全仲裁,保证不可被绕过或规避。
从安全角度,TencentOS Server 定义了可信计算基(TCB),包括内核态和用户态的基础组件以及核心安全机制。完整性保护确保所装载的内核和 TCB 其他关键部分不被篡改。
未来,TencentOS Server 将持续验证安全模型设计与实现的统一性,与安全社区合作进行安全策略模型的验证工作,不断完善安全防护体系。