12.1 操作系统安全概述
操作系统安全是计算机系统安全的核心部分,旨在保护操作系统和其管理的硬件资源、应用程序和数据免受未经授权的访问、损坏和滥用。操作系统作为计算机系统的基础,它不仅要提供稳定的资源管理和高效的服务,还要确保操作系统本身不受各种安全威胁的影响。
1. 操作系统安全的目标
操作系统安全的核心目标是保障机密性、完整性、可用性和可控性。这四个目标通常被称为信息安全的“CIA三要素”(Confidentiality, Integrity, Availability)。
-
保密性 (Confidentiality):
- 保密性要求操作系统能够防止未授权的用户访问系统的敏感信息。
- 保护用户数据、系统配置和敏感文件不被泄露或被不当使用。
- 例如,加密文件系统和数据传输可以增强保密性。
-
完整性 (Integrity):
- 完整性确保数据和系统资源不会被未经授权的方式篡改。
- 确保文件和配置的正确性,防止恶意软件、非法修改或数据损坏。
- 例如,数字签名、校验和和数据哈希值常用于验证文件和程序的完整性。
-
可用性 (Availability):
- 可用性确保合法用户在需要时能够正常访问系统和数据。
- 防止拒绝服务攻击(DoS)和资源耗尽等问题,确保系统在合理时间内可用。
- 例如,负载均衡、冗余硬件和网络监控可以提高可用性。
-
可控性 (Accountability):
- 可控性要求能够追踪所有系统活动,确保能够记录用户行为和系统事件。
- 通过日志和审计工具,对系统的使用情况进行监控,提供安全事件的可追溯性。
- 审计日志帮助管理员识别潜在的安全威胁并采取及时的反应措施。
2. 操作系统安全的主要威胁
操作系统面临多种不同类型的安全威胁。以下是一些常见的威胁类型:
-
外部攻击:
- 由攻击者从外部入侵系统,如恶意软件(病毒、蠕虫、木马)、黑客攻击等。
- 攻击者可能通过未修补的漏洞、社交工程学或弱密码来攻击系统。
-
内部威胁:
- 来自系统内部的威胁,包括合法用户的恶意行为或不当使用。
- 例如,管理员滥用权限、用户共享密码或未经授权访问敏感数据。
-
未修补的漏洞:
- 零日漏洞(Zero-Day Vulnerabilities)指操作系统或应用程序中未公开或未修补的安全漏洞,攻击者可以利用这些漏洞发起攻击。
- 操作系统的安全性依赖于及时安装补丁和更新,以消除已知的漏洞。
-
社会工程学攻击:
- 攻击者通过欺骗手段获取敏感信息或系统访问权限,通常通过电话、邮件等手段进行“钓鱼”攻击。
- 例如,通过伪装成系统管理员,骗取用户密码或访问权限。
3. 操作系统安全模型
操作系统安全模型主要用于定义如何保护系统中的资源,规范对资源的访问控制。常见的安全模型有:
-
自主访问控制 (DAC, Discretionary Access Control):
- 在 DAC 模型中,资源的拥有者(通常是文件或目录的创建者)可以自主决定哪些用户或程序可以访问自己的资源。
- 访问权限基于文件所有者、用户组和其他用户。
- 典型的例子是 Linux 和 UNIX 系统中的文件权限模型。
- 优点:简单、灵活。
- 缺点:可能导致安全问题,如用户误设置权限,或者恶意用户滥用权限。
-
强制访问控制 (MAC, Mandatory Access Control):
- MAC 强调基于安全策略的控制,操作系统根据预定义的规则强制实施访问控制。
- 用户和程序无法改变或绕过这些规则。
- 典型的例子是 SELinux、AppArmor,它们可以基于策略控制程序的行为。
- 优点:加强了系统的安全性,避免了用户或程序绕过访问控制。
- 缺点:较为复杂,管理和配置较难。
-
基于角色的访问控制 (RBAC, Role-Based Access Control):
- RBAC 基于用户角色来管理权限,而不是单独地为每个用户设置权限。
- 用户被分配到特定角色,不同角色拥有不同的访问权限。例如,管理员、普通用户、访客等角色。
- 优点:便于管理,角色定义明确,符合最小权限原则。
- 缺点:配置不当时,角色权限可能会过于宽泛。
-
基于属性的访问控制 (ABAC, Attribute-Based Access Control):
- 在 ABAC 模型中,访问控制是基于对象、主体(用户或程序)和环境等属性来进行的。
- 例如,访问权限可能会根据用户的地理位置、时间、网络环境等动态调整。
- 优点:灵活、动态,适应更复杂的访问控制需求。
- 缺点:配置和管理复杂,计算开销较大。
4. 操作系统安全防护技术
为保护操作系统免受各种攻击和威胁,操作系统通常采用一系列的安全防护技术。以下是常见的几种技术: