第19章 操作系统安全保护

19.1 操作系统安全概述

  操作系统负责计算机系统的资源管理,支撑和控制各种应用程序运行,为用户提供计算机系统管理接口。操作系统是构成网络信息系统的核心关键组件,其安全可靠程度决定了计算机系统的安全性和可靠性。本节主要阐述操作系统安全的概念,分析操作系统的安全需求和安全机制,并给出操作系统常见的安全技术。

19.1.1 操作系统安全概念

  一般来说,操作系统的安全指满足安全策略要求,具有相应的安全机制及安全功能,符合特定的安全标准,在一定约束条件下,能够抵御常见的网络安全威胁,保障自身的安全运行及资源安全。国家标准《信息安全技术 操作系统安全技术要求(GB/T 20272-2019)》根据安全功能和安全保障要求,将操作系统分成五个安全等级,即用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级、访问验证保护级。
  操作系统的安全可控目标分为两个层面:第一个层面,是指给定一个操作系统,用户能够实现对操作系统的可理解、可修改、可检测、可修复、可保护;第二个层面,商业用户能够自己主导操作系统的产品化,不受恶意的商业利益绑架或遭受知识产权专利陷阱,操作系统不能被利用危及国家安全。

19.1.2 操作系统安全需求

  通常来说,操作系统的安全需求主要包括如下几个方面:
  (1)标识和鉴别。能够唯一标识系统中的用户,并进行身份真实性鉴别。
  (2) 访问控制。按照系统安全策略,对用户的操作进行资源访问控制,防止用户对计算机资源的非法访问(窃取、篡改和破坏)。
  (3)系统资源安全。能够保护系统中信息及数据的完整性、保密性、可用性。
  (4)网络安全。能够进行网络访问控制,保证网络通信数据安全及网络服务的可用性。
  (5)抗攻击。具有系统运行监督机制,防御恶意代码攻击。
  (6)自身安全。操作系统具有自身安全保护机制。确保系统安全和完整性,具有可信恢复能力。

19.1.3 操作系统安全机制

  操作系统的安全保障集成多种安全机制,主要包括硬件安全、标识与鉴别、访问控制、最小特权管理、安全审计、可信路径、系统安全增强等。下面分别进行讲述。
  1. 硬件安全
  2. 标识与鉴别
  标识与鉴别又称为论证机制,用于操作系统的用户及相关活动主体的身份标识,并给用户和相应的活动主体分配唯一的标识符,能够防止伪造。而鉴别则指证实用户或活动主体的真实身份的过程。
  3. 访问控制
  4. 最小特权管理
  5. 可信路径
  可信路径是指操作系统的本地用户和远程用户进行初始登录或鉴别时,操作系统安全系统与用户之间建立的安全通信路径。可信路径保护通信数据免遭修改、泄露,防止特洛伊木马模仿登录过程,窃取用户的口令。
  6. 安全审计
  安全审计就是操作系统对系统中有关安全的活动进行记录、检查及审核,其主要目的就是核实系统安全策略执行的合规性,以追踪违反安全策略的用户及活动主体,确认系统安全故障。
  7. 系统安全增强
  系统安全增强又称为安全加固,通过优化操作系统的配置或增加安全组件,以提升操作系统的抗攻击能力。

19.1.4 操作系统安全技术

  操作系统是复杂的系统软件,其安全机制的实现综合集成了多种安全技术,主要包括硬件容灾备份技术、可信计算技术、身份认证技术、访问控制技术、加密技术、安全审计和监测技术、系统安全增强技术、特权管理技术、形式化分析技术、安全渗透技术、隐蔽信道分析、安全补丁、防火墙、入侵检测、安全沙箱、攻击欺骗、地址空间随机化和系统恢复等技术,这些技术不同程度地应用在操作系统的安全机制构建、安全功能实现、安全保障、安全测评以及安全运行等各个方面。

19.2 Windows操作系统安全分析与防护

  Windows操作系统是应用普遍的操作系统,其安全性影响广泛。本节主要阐述Windows操作系统的架构,分析了其安全机制及常见的安全问题,并给出Windows操作系统安全增强技术方法和参考实例。

19.2.1 Windows系统架构

  下面以Windows XP为例,分析其架构。Windows XP的结构是层次结构和客户机/服务器结构的混合体,系统划分为三层。其中,最底层是硬件抽象层,它为上面的一层提供硬件结构的接口,有了这一层就可以使系统方便地移植;第二层是内核层,它为低层提供执行、中断、异常处理和同步的支持;第三层是由一系列实现实现基本系统服务的模块组成的,例如虚拟内存管理、对象管理、进程和线程管理、I/O管理、进程间通信和安全参考监督器。
  Windows 2000系统在安全设计上有专门的安全子系统,安全子系统主要由本地安全授权(LSA)、安全帐户管理(SAM)和安全参考监视器(SRM)等组成。其中,本地安全授权部分提供了许多服务程序,保障用户获得存取系统的许可权。

19.2.2 Windows安全机制

  1. Windows认证机制
  以Windows 2000为例,系统提供两种基本认证类型,即本地认证和网络认证。其中,本地认证是根据用户的本地计算机或Active Directory帐户确认用户的身份。而网络认证,则根据此用户试图访问的任何网络服务确认用户的身份。为提供这种类型的身份验证,Windows 2000安全系统集成三种不同的身份验证技术:Kerberos V5、公钥证书和NTLM。
  2. Windows访问控制机制
  Windows NT/XP的安全性达到了橘皮书C2级,实现了用户级自主控制。
  为了实现进程间的安全访问,Windows NT/XP中的对象采用了安全性描述符(Security Descriptor)。安全性描述符主要由用户SID(Owner)工作组SID(Group)、自由访问控制列表(DACL)和系统访问控制列表(SACL)组成。
  3. Windows审计/日志机制
  日志文件是Windwos系统中一个比较特殊的文件,它记录Windows系统的运行状况,如各种系统服务的启动、运行、关闭等信息。Windows日志有三种类型:系统日志、应用程序日志和安全日志,它们对应的文件名为SysEvent.evt、AppEvent.evt和SecEvent.evt。这些日志文件通常存放在操作系统安装的区域“system32\config”目录下。
  4. Windows协议过滤和防火墙
  针对来自网络上的威胁,Windows NT 4.0、Windows 2000则提供了包过滤机制,通过过滤机制可以限制网络包进入用户计算机。而Windows XP则自带了防火墙,该防火墙能够监控和限制用户计算机的网络通信。
  5. Windows 文件加密系统
  6. 抗攻击机制
  针对常见的缓冲区溢出、恶意代码等攻击,微软公司的新版本操作系统Windows 7、Windows 10增加抗攻击安全机制,集成了内存保护机制,主要包括堆栈保护(Stack Protection)、安全结构例外处理SafeSEH(Safe Structured Exception Handling)、数据执行保护DEP(Data Execution Prevention)、地址随机化ASLR(Address Space Layout Randomization)、补丁保护PachGuard、驱动程序签名(Driver Signing)等保护机制。Windows 10提供减少攻击面规则配置。

19.2.3 Windows系统安全分析

  目前,Windows系统承受着各种各样的攻击,下面分析Windows系统的安全问题。
  1. Windows 口令
  2. Windows恶意代码
  3. Windows应用软件漏洞
  4. Windows系统程序的漏洞
  5. Windows注册表安全
  6. Windows文件共享安全
  7. Windows物理临近攻击

19.2.4 Windows系统安全增强技术方法与流程

  Windows系统的安全增强是指通过一些安全措施来提高系统的安全防护能力。目前,常见的系统安全增强方法有下面几种:
  (1)安全漏洞打补丁(Patch)。
  (2)停止服务和卸载软件。
  (3)升级或更换程序。
  (4)修改配置权限。
  (5)去除特洛伊等恶意程序。
  (6)安装专用的安全工具软件。
  Windows系统安全增强是一件烦琐的事情,其基本步骤如下。
  1. 确认系统安全增强的安全目标和系统的业务用途
  2. 安装最小化的操作系统
  安装最小化的操作系统要求如下:

  • 尽量使用英文版Windows操作系统;
  • 不要安装不需要的网络协议;
  • 使用NTFS分区;
  • 删除不必要的服务和组件。

  3. 安装最新系统补丁
  4. 配置安装的系统服务
  5. 配置安全策略
  6. 禁用NetBIOS
  7. 帐户安全配置
  8. 文件系统安全配置
  9. 配置TCP/IP筛选和ICF
  10. 禁用光盘或软盘启动
  11. 使用屏幕保护口令
  12. 设置应用软件安全
  13. 安装第三方防护软件

19.2.5 Windows 2000系统安全增强实例

  1. 系统启动安全增强
  2. 帐号与口令管理安全增强
  3. 安装最新系统补丁
  4. 网络安全增强
  1)禁止建立空连接
  2)关闭默认共享
  3)关闭不必要的网络服务和网络端口
  5. 安装第三方防护软件

19.2.6 Windows系统典型安全工具与参考规范

  Windows系统是应用非常普遍的操作系统,其受到安全威胁较为频繁。Windows典型安全工具如下:

  • 远程安全登录管理工具OpenSSH(开源);
  • 系统身份认证增强工具Kerberos(开源)等;
  • 恶意代码查杀工具ClamAV(开源)、360杀毒、火绒剑等;
  • 系统安全检查工具Nmap(开源)、Fport、Sysinternals(工具集成)等;
  • 系统安全监测工具Netstat(系统自带)、WinDump(开源)等。

  针对Windows系统进行安全管理问题,国内外安全组织制定了安全标准规范,以作为Windows操作系统配置的安全基线。目前,可供参考的基准线有CIS(Center for Internet Security)、SANS TOP 20、NIST SP 800-70、《信息安全技术 政务计算机终端核心配置规范》(GB/T 30278-2013)等。
  此外,安全公司为了便于操作系统的安全配置管理,研发了安全配置核查管理系统。

19.3 UNIX/Linux操作系统安全分析与防护

  本节主要阐述了UNIX/Linux操作系统的架构,分析了其安全机制、常见的安全问题,给出UNIX/Linux操作系统增强的技术方法和参考实例。

19.3.1 UNIX/Linux系统架构

  一般的UNIX/Linux操作系统分为三层:硬件层、系统内核和应用层。

19.3.2 UNIX/Linux安全机制

  UNIX/Linux是一种多用户、多任务的操作系统,因而,UNIX/Linux操作系统基本的安全功能需求就是不同用户之间避免相互干扰,禁止非授权访问系统资源。下面介绍UNIX/Linux系统的主要安全机制。
  1. UNIX/Linux认证
  目前,UNUX/Linux常用的认证方式有如下几种。
  1)基于口令的认证方式
  2)终端认证
  3)主机信任机制
  4)第三方认证
  2. UNIX/Linux访问控制
  普通的UNIX/Linux系统一般通过文件访问控制列表ACL来实现系统资源的控制,也就是常说的通过“9bit”位来实现。
  3. UNIX/Linux审计机制
  常见日志文件如下:

  • lastlog:记录用户最近成功登录的时间;
  • loginlog:不良的登录尝试记录;
  • messages:记录输出到系统主控台以及由syslog系统服务程序产生的消息;
  • utmp:记录当前登录的每个用户;
  • utmpx:扩展的utmp;
  • wtmp:记录每一次用户登录和注销的历史信息;
  • wtmpx:扩展的wtmp;
  • vold.log:记录使用外部介质出现的错误;
  • xferkig:记录ftp的存取情况;
  • sulog:记录su命令的使用情况;
  • acct:记录每个用户使用过的命令。

19.3.3 UNIX/Linux系统安全分析

  1. UNIX/Linux口令/帐号安全
  2. UNIX/Linux可信主机文件安全
  3. UNIX/Linux应用软件漏洞
  4. UNIX/Linux的SUID文件安全
  5. UNIX/Linux的恶意代码
  6. UNIX/Linux文件系统安全
  7. UNIX/Linux网络服务安全
  8. UNIX/Linux系统程序漏洞

19.3.4 UNIX/Linux系统安全增强方法和流程

  1. UNIX/Linux系统安全增强方法
  同Windows系统的安全增强一样,目前,UNIX/Linux系统的安全增强方法常见的有下面几种:

  • 给安全漏洞打补丁;
  • 停止不必要的服务;
  • 升级或更换软件包;
  • 修改系统配置
  • 安装专用的安全工具软件。

  2. UNIX/Linux系统安全增强基本流程
  UNIX/Linux系统安全增强是一件烦琐的事情,安全加固的步骤如下:
  第一步,确认系统的安全目标。
  第二步,安装最小化UNIX/Linux系统。
  第三步,利用UNIX/Linux系统自身的安全机制,配置安全策略,主要有用户及口令、主机信任、文件访问、网络服务、系统审计等。
  第四步,在UNIX/Linux系统自身的安全机制不行的情况下,利用第三方软件包来增强系统安全。例如,用SSH来替换Telnet。
  第五步,利用系统安全测试工具,检查UNIX/Linux系统的安全策略的有效性或系统的安全隐患。这些常用的安全工具有端口扫描Nmap、文件安全配置检查COPS、口令检查工具Crack等。
  第六步,根据系统安全测试,重新调整安全策略或安全措施。
  第七步,在系统安全检查通过后,UNIX/Linux系统就开始正常运行。

19.3.5 UNIX/Linux系统安全增强技术

  1. 安装系统补丁软件包
  2. 最小化系统网络服务
  3. 设置系统开机保护口令
  4. 弱口令检查
  5. 禁用默认帐号
  6. 用SSH增强网络服务安全
  7. 利用tcp_wrapper增强访问控制
  8. 构筑UNIX/Linux主机防火墙
  9. 使用Tripwire或MD5Sum完整性检查工具
  10. 检测LKM后门
  11. 系统安全监测

19.4 国产操作系统安全分析与防护

19.4.1 国产操作系统概况

  国产操作系统一般是指由国家自主研发力量研制的操作系统,具有较强的可控性和安全性。国产操作系统厂商在开源操作系统Linux等的基础上,经过长期研发,能够对开源操作系统进行深度分析以及安全增强,具有安全漏洞挖掘分析和修补能力。

19.4.2 国产操作系统安全分析

  国产操作系统主要面临的安全风险分析如下。
  1. Linux内核的安全风险
  2. 自主研发系统组件的安全
  3. 依赖第三方系统组件的安全
  4. 系统安全配置的安全
  5. 硬件的安全