赞
踩
★第8章 安全操作系统基础
◎ 安全操作系统的基本概念、实现机制
◎ 安全模型以及安全体系结构
◎ 操作系统安全的36条基本配置原则
★第9章 密码学与信息加密
◎ 密码学的基本概念
◎ DES加密和RSA加密
◎ 加密工具PGP
◎ 数字签名的原理,数字水印的基本概念
◎ PKI信任模型
第8章 安全操作系统基础
内容提要
◎ 介绍安全操作系统的基本概念、实现机制、安全模型以及安全体系结构
◎ 操作系统的安全将决定网络的安全,从保护级别上分成安全初级篇、中级篇和高级篇,共36条基本配置原则
8.1 常用操作系统概述
目前服务器常用的操作系统有四类:FreeBSD、UNIX、Linux和Windows NT/2000/2003 Server。这些操作系统都是符合C2级安全级别的操作系统,但是都存在不少漏洞,如果对这些漏洞不了解,不采取相应的安全措施,就会使操作系统完全暴露给入侵者。
8.1.1 UNIX操作系统
UNIX操作系统是由美国贝尔实验室开发的一种多用户、多任务的通用操作系统。它从一个实验室的产品发展成为当前使用普遍、影响深远的主流操作系统。
UNIX诞生于20世纪60年代末期,贝尔实验室的研究人员于1969年开始在GE645计算机上实现一种分时操作系统的雏形,后来该系统被移植到DEC的PDP-7小型机上。1970年系统正式取名为UNIX操作系统。到1973年,UNIX系统的绝大部分源代码都用C语言重新编写过,大大提高了UNIX系统的可移植性,也为提高系统软件的开发效率创造了条件。
随后,出现了各种版本的UNIX系统,比较有影响的版本包括:SUN公司的SUN OS操作系统,Microsoft和SCO公司的XENIX操作系统,Interactive公司的UNIX 386/x操作系统,DEC公司ULTRIX操作系统,IBM公司的AIX操作系统,HP公司HP-UX操作系统,SCO公司的UNIX和ODT操作系统,以及SUN公司的Solaris操作系统。UNIX操作系统经过20多年的发展,已经成为一种成熟的主流操作系统
8.1.1 UNIX操作系统
主要特色包括5个方面。
(1)可靠性高。许多UNIX主机和服务器在国内许多企业每天24小时、每年365天不间断运行,并保持着良好的状态,这是Windows系列操作系统所不能比拟的。整个HP公司的所有信息处理工作都采用UNIX操作系统来承担。
(2)极强的伸缩性。UNIX操作系统可以在笔记本计算机、个人计算机、小型机和大型机上运行。此外,由于采用了对称多处理器技术、大规模并行处理器和簇等技术,使商品化的UNIX操作系统支持的CPU数量达到了32个,这就使UNIX平台的扩展能力大大加强了。强大的可伸缩性是企业级操作系统的重要特征。
(3)网络功能强。强大的网络功能是UNIX操作系统最重要的特色之一,特别是作为Internet技术基础的TCP/IP协议就是在UNIX操作系统上开发出来的,几乎所有的UNIX操作系统都支持TCP/IP协议。
(4)强大的数据库支持功能。由于UNIX操作系统支持各种数据库,特别是对关系型数据库管理系统(Relationship Database Management System,RDBMS)提供强大的支持,许多数据库厂商将UNIX操作系统作为首选的操作系统,比如:Oracle,Informix和Sybase等。
(5)开放性好。开放系统的概念已经被计算机业界普遍接受,而且成为发展的主要趋势。所有的计算机软件厂商都声称自己的产品是开发系统,但是程度上有明显的差别。
Linux系统
Linux是一套可以免费使用和自由传播的类Unix操作系统,主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。
目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统。这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能。
Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。
它是在共用许可证GPL(General Public License)保护下的自由软件,也有好几种版本,如Red Hat Linux、Slackware,以及国内的Xteam Linux、红旗Linux等等。Linux的流行是因为它具有许多优点,典型的优点有7个。
Linux典型的优点有7个。
(1)完全免费
(2)完全兼容POSIX 1.0标准
(3)多用户、多任务
(4)良好的界面
(5)丰富的网络功能
(6)可靠的安全、稳定性能
(7)支持多种平台
Windows系统
Windows NT(New Technology)是微软公司第一个真正意义上的网络操作系统,发展经过NT3.0、NT40、NT5.0(Windows 2000)和NT6.0(Windows 2003)等众多版本,并逐步占据了广大的中小网络操作系统的市场。
Windows NT众多版本的操作系统使用了与Windows 9X完全一致的用户界面和完全相同的操作方法,使用户使用起来比较方便。与Windows 9X相比,Windows NT的网络功能更加强大并且安全。
Windows NT系列操作系统
Windows NT系列操作系统具有以下三方面的优点。
(1)支持多种网络协议
由于在网络中可能存在多种客户机,如Windows 95/98、Apple Macintosh、Unix、OS/2等等,而这些客户机可能使用了不同的网络协议,如TCP/IP协议、IPX/SPX等。Windows NT系列操作支持几乎所有常见的网络协议。
(2)内置Internet功能
随着Internet的流行和TCP/IP协议组的标准化,Windows NT内置了IIS(Internet Information Server),可以使网络管理员轻松的配置WWW和FTP等服务。
(3)支持NTFS文件系统
Windows 9X所使用的文件系统是FAT,在NT中内置同时支持FAT和NTFS的磁盘分区格式。使用NTFS的好处主要是可以提高文件管理的安全性,用户可以对NTFS系统中的任何文件、目录设置权限,这样当多用户同时访问系统的时候,可以增加文件的安全性。
8.2 安全操作系统的研究发展
Multics是开发安全操作系统最早期的尝试。1965年美国贝尔实验室和麻省理工学院的MAC课题组等一起联合开发一个称为Multics的新操作系统,其目标是要向大的用户团体提供对计算机的并发访问,支持强大的计算能力和数据存储,并具有很高的安全性。贝尔实验室中后来参加UNIX早期研究的许多人当时都参加了Multics的开发工作。由于Multics项目目标的理想性和开发中所遇到的远超预期的复杂性使得结果不是很理想。事实上连他们自己也不清楚什么时候,开发到什么程度才算达到设计的目标。虽然Multics未能成功,但它在安全操作系统的研究方面迈出了重要的第一步,Multics为后来的安全操作系统研究积累了大量的经验,其中Mitre公司的Bell和La Padula合作设计的BLP安全模型首次成功地用于Multics,BLP安全模型后来一直都作为安全操作系统开发所采用的基础安全模型。
8.2 安全操作系统的研究发展
Adept-50是一个分时安全操作系统,可以实际投入使用,1969年C.Weissman发表了有关Adept-50的安全控制的研究成果。安全Adept-50运行于IBM/360硬件平台,它以一个形式化的安全模型——高水印模型(High-Water-Mark Model)为基础,实现了美国的一个军事安全系统模型,为给定的安全问题提供了一个比较形式化的解决方案。在该系统中可以为客体标上敏感级别(Sensitivity Level)属性。系统支持的基本安全条件是,对于读操作不允许信息的敏感级别高于用户的安全级别(Clearance);在授权情况下,对于写操作允许信息从高敏感级别移向低敏感级别。
8.2 安全操作系统的研究发展
Adept-50是一个分时安全操作系统,可以实际投入使用,1969年C.Weissman发表了有关Adept-50的安全控制的研究成果。安全Adept-50运行于IBM/360硬件平台,它以一个形式化的安全模型——高水印模型(High-Water-Mark Model)为基础,实现了美国的一个军事安全系统模型,为给定的安全问题提供了一个比较形式化的解决方案。在该系统中可以为客体标上敏感级别(Sensitivity Level)属性。系统支持的基本安全条件是,对于读操作不允许信息的敏感级别高于用户的安全级别(Clearance);在授权情况下,对于写操作允许信息从高敏感级别移向低敏感级别。
1969年B.W.Lampson通过形式化表示方法运用主体(Subject)、客体(Object)和访问矩阵(Access Matrix)的思想第一次对访问控制问题进行了抽象。主体是访问操作中的主动实体,客体是访问操作中被动实体,主体对客体进行访问。访问矩阵以主体为行索引、以客体为列索引,矩阵中的每一个元素表示一组访问方式,是若干访问方式的集合。矩阵中第i行第j列的元素Mij记录着第i个主体Si可以执行的对第j个客体Oj的访问方式,比如Mij={Read,Write}表示Si可以对Oj进行读和写操作。
8.2 安全操作系统的研究发展
1972年,J.P.Anderson在一份研究报告中提出了访问监控器(Reference Monitor)、引用验证机制(Reference Validation Mechanism)、安全内核(Security Kernel)和安全建模等重要思想。J.P.Anderson指出,要开发安全系统,首先必须建立系统的安全模型,完成安全系统的建模之后,再进行安全内核的设计与实现。
1973年,B.W.Lampson提出了隐蔽通道的概念,他发现两个被限制通信的实体之间如果共享某种资源,那么它们可以利用隐蔽通道传递信息。同年,D.E.Bell和L.J.LaPadula提出了第一个可证明的安全系统的数学模型,即BLP模型。1976年Bell和LaPadula完成的研究报告给出了BLP模型的最完整表述,其中包含模型的形式化描述和非形式化说明,以及模型在Multics系统中实现的解释。
8.2 安全操作系统的研究发展
PSOS(Provably Secure Operating System)提供了一个层次结构化的基于权能的安全操作系统设计,1975年前后开始开发。PSOS采用了层次式开发方法,通过形式化技术实现对安全操作系统的描述和验证,设计中的每一个层次管理一个特定类型的对象,系统中的每一个对象通过该对象的权能表示进行访问。
KSOS(Kernelized Secure operating System)是美国国防部研究计划局1977年发起的一个安全操作系统研制项目,由Ford太空通讯公司承担。KSOS采用了形式化说明与验证的方法,目标是高安全可信性。
UCLA Secure Unix也是美国国防部研究计划局于1978年前后发起的一个安全操作系统研制项目,由加里福尼亚大学承担。UCLA Secure Unix的系统设计方法及目标几乎与KSOS相同。
8.2 安全操作系统的研究发展
LINVS Ⅳ是1984年开发的基于UNIX的一个实验安全操作系统,系统的安全性可达到美国国防部橘皮书的B2级。它以4.1BSD Unix为原型,实现了身份鉴别、自主访问控制、强制访问控制、安全审计、特权用户权限分隔等安全功能。
Secure Xenix是IBM公司于1986年在SCO Xenix的基础上开发的一个安全操作系统,它最初是在IBM PC/AT平台上实现的。Secure Xenix对Xenix进行了大量的改造开发,并采用了一些形式化说明与验证技术。它的目标是TCSEC的B2到A1级。IBM公司的V.D.Gligor等在发表Secure Xenix系统的设计与开发成果中,把Unix类的安全操作系统开发方法划分成仿真法和改造/增强法两种方式。Secure Xenix系统采用的是改造/增强法。另外值得指出的是Secure Xenix系统基于安全注意键(SAK,Secure Attention Key)实现了可信通路(Trusted Path),并在安全保证方面重点考虑了3个目标:⑴系统设计与BLP模型之间的一致性;⑵实现的安全功能的测试;⑶软件配置管理工具的开发。
8.2 安全操作系统的研究发展
1987年,美国Trusted Information Systems公司以Mach操作系统为基础开发了B3级的Tmach(Trusted Mach)操作系统。除了进行用户标识和鉴别及命名客体的存取控制外,它将BLP模型加以改进,运用到对MACH核心的端口、存储对象等的管理当中。通过对端口间的消息传送进行控制和对端口、存储对象、任务等的安全标识来加强微核心的安全机制。
1989年,加拿大多伦多大学开发了与UNIX兼容的安全TUNIS操作系统。在实现中安全TUNIS改进了BLP模型,并用Turing Plus语言(而不是C)重新实现了Unix内核,模块性相当好。Turing Plus是一种强类型高级语言,其大部分语句都具有用于正确性证明的形式语义。在发表安全TUNIS设计开发成果中,Gernier等指出,如果不进行系统的重新设计,以传统Unix系统为原型,很难开发出高于TCSEC标准的B2级安全操作系统,这一方面是因为用于编写Unix系统的C语言是一个非安全的语言,另一方面是因为Unix系统内部的模块化程度不够。安全TUNIS系统的设计目标是B3-A1级,支持这个目标的关键也在于:第一其采用了Turing Plus语言,第二其采用了安全策略与安全机制相分离的方法,并提供了一个简单而结构规范的TCB,从而简化了TCB的验证工作。
8.2 安全操作系统的研究发展
ASOS(Army Secure Operating System)是针对美军的战术需要而设计的军用安全操作系统,由TRW公司1990年发布完成。ASOS由两类系统组成,其中一类是多级安全操作系统,设计目标是TCSEC的A1级;另一类是专用安全操作系统,设计目标是TCSEC的C2级。两类系统都支持Ada语言编写的实时战术应用程序,都能根据不同的战术应用需求进行配置,都可以很容易地在不同硬件平台间移植,两类系统还提供了一致的用户界面。从具体实现上来看,ASOS操作系统还具有5个主要特点:⑴ASOS操作系统本身也主要是用Ada语言实现的;⑵ASOS采用访问控制列表(Access Control List,ACL)实现了细粒度的自主访问控制;⑶ASOS依据BLP模型实现了防止信息泄露的强制访问控制,依据Biba模型实现了确保数据完整性的强制访问控制;⑷ASOS在形式化验证中建立了两个层次的规范和证明,一个层次用于抽象的安全模型,另一个层次用于形式化顶层规范;⑸用于证明系统安全性的主要工具是Gypsy验证环境(GVE),ASOS开发了一个在GVE中工作的流分析工具,用于分析系统设计中潜在的隐蔽通道。
8.2 安全操作系统的研究发展
OSF/1是开放软件基金会于1990年推出的一个安全操作系统,被美国国家计算机安全中心(NCSC)认可为符合TCSEC的B1级,其主要安全性表现4个方面:⑴系统标识;⑵口令管理;⑶强制存取控制和自主存取控制;⑷审计。
UNIX SVR4.1ES是UI(UNIX国际组织)于1991年推出的一个安全操作系统,被美国国家计算机安全中心(NCSC)认可为符合TCSEC的B2级,除OSF/1外的安全性主要表现在4个方面:⑴更全面的存取控制;⑵最小特权管理;⑶可信通路;⑷隐蔽通道分析和处理。
1991年,在欧洲共同体的赞助下,英、德、法、荷四国制定了拟为欧共体成员国使用的共同标准——信息技术安全评定标准(ITSEC)。随着各种标准的推出和安全技术产品的发展,美国和同加拿大及欧共体国家一起制定通用安全评价准则(Common Criteria for IT Security Evaluation,CC),1996年1月发布了CC的1.0版。CC标准的2.0版已于1997年8月颁布,并于1999年7月通过国际标准组织认可,确立为国际标准,即ISO/IEC 15408。
8.2 安全操作系统的研究发展
在1992到1993年之间,美国国家安全局(NSA)和安全计算公司(SCC)的研究人员在TMach项目和LOCK项目的基础上,共同设计和实现了分布式可信Mach系统(Distributed Trusted Mach,DTMach)。DTMach项目的后继项目是分布式可信操作系统(Distributed Trusted Operating System,DTOS)。DTOS项目改良了早期的设计和实现工作,产生了一些供大学研究的原型系统,例如Secure Transactional Resources、DX等。此外DTOS项目产生了一些学术报告、系统形式化的需求说明书、安全策略和特性的分析、组合技术的研究和对多种微内核系统安全和保证的研究。当DTOS项目快要完成的时候,NSA、SCC和犹他州大学的Flux项目组联合将DTOS安全结构移植到Fluke操作系统研究中去。在将结构移植到Fluke的过程中,他们改良了结构以更好地支持动态安全策略。这个改良后的结构就叫Flask。一些Flask的接口和组件就是从Fluke到OSKit中的接口和组件中继承下来的。
8.2 安全操作系统的研究发展
2001年,Flask由NSA在Linux操作系统上实现,并且不同寻常地向开放源码社区发布了一个安全性增强型版本的Linux(SELinux)--包括代码和所有文档。
与传统的基于TCSEC标准的开发方法不同,1997年美国国家安全局和安全计算公司完成的DTOS安全操作系统采用了基于安全威胁的开发方法。设计目标包括3个方面:
(1)策略灵活性:DTOS内核应该能够支持一系列的安全策略,包括诸如国防部的强制存取控制多级安全策略;
(2)与Mach兼容,现有的Mach应用应能在不做任何改变的情况下运行;
(3)性能应与Mach接近。
8.2 安全操作系统的研究发展
SELinux以Flask安全体系结构为指导,通过安全判定与安全实施的分离实现了安全策略的独立性,借助访问向量缓存(AVC)实现了对动态策略的支持。SELinux定义了一个类型实施(TE)策略,基于角色的访问控制(RBAC)策略和多级安全(MLS)策略组合的安全策略,其中TE和RBAC策略总是系统实现的安全策略的有机组成。
EROS(Extremely Reliable Operating System)是一种基于权能(Capability,权能)的高性能微内核实时安全操作系统,是GNOSIS(后命名为KeyKOS)体系结构的第三代实现。EROS最初由美国宾西法尼亚大学开发,此项目现已转入约翰-霍普金斯大学。目前,EROS仍处在研究开发阶段,只支持Intel 486以上的系列芯片。第一个EROS内核已在1999年完成,现在开发的版本是EROS 2.0,不久就会发布。EROS的源代码遵守GPL规范,可在其网站(http://www.eros-os.org)获得。
8.2.2 国内安全操作系统的发展
国内也进行了许多有关安全操作系统的开发研制工作,并取得了一些研究成果。1990年前后,海军计算技术研究所和解放军电子技术学院分别开始了安全操作系统技术方面的探讨,他们都是参照美国TCSEC标准的B2级安全要求,基于UNIX System V3.2进行安全操作系统的研究与开发。
1993年,海军计算技术研究所继续按照美国TCSEC标准的B2级安全要求,围绕Unix SVR4.2/SE,实现了国产自主的安全增强包。
1995年,在国家“八五”科技攻关项目――“COSA国产系统软件平台”中,围绕UNIX类国产操作系统COSIX V2.0的安全子系统的设计与实现,中国计算机软件与技术服务总公司、海军计算技术研究所和中国科学院软件研究所一起参与了研究工作。COSIX V2.0安全子系统的设计目标是介于美国TCSEC的B1和B2级安全要求之间,当时定义为B1+,主要实现的安全功能包括安全登录、自主访问控制、强制访问控制、特权管理、安全审计和可信通路等。
8.2.2 国内安全操作系统的发展
1996年,由中国国防科学技术工业委员会发布了军用计算机安全评估准则GJB2646-96(一般简称为军标),它与美国TCSEC基本一致。
1998年,电子工业部十五所基于UnixWare V2.1按照美国TCSEC标准的B1级安全要求,对Unix操作系统的内核进行了安全性增强。
1999年10月19日,我国国家技术监督局发布了国家标准GB17859-1999《计算机信息系统安全保护等级划分准则》,为计算机信息系统安全保护能力划分了等级。该标准已于2001年起强制执行。Linux自由软件的广泛流行对我国安全操作系统的研究与开发具有积极的推进作用。2001年前后,我国安全操作系统研究人员相继推出了一批基于Linux的安全操作系统开发成果。这包括:
8.2.2 国内安全操作系统的发展
中国科学院信息安全技术工程研究中心基于Linux资源,开发完成了符合我国GB17859-1999第三级(相当于美国TCSEC B1)安全要求的安全操作系统SecLinux。SecLinux系统提供了身份标识与鉴别、自主访问控制、强制访问控制、最小特权管理、安全审计、可信通路、密码服务、网络安全服务等方面的安全功能。
依托南京大学的江苏南大苏富特软件股份有限公司开发完成了基于Linux的安全操作系统SoftOS,实现的安全功能包括:强制访问控制、审计、禁止客体重用、入侵检测等。
信息产业部30所控股的三零盛安公司推出的强林Linux安全操作系统,达到了我国GB17859-1999第三级的安全要求。
中国科学院软件所开放系统与中文处理中心基于红旗Linux操作系统,实现了符合我国GB17859-1999第三级要求的安全功能。中国计算机软件与技术服务总公司以美国TCSEC标准的B1级为安全目标,对其COSIX V2.0进行了安全性增强改造。
8.3 安全操作系统的基本概念
安全操作系统涉及很多概念:
主体和客体
安全策略和安全模型
访问监控器
安全内核
可信计算基。
8.3.1 主体和客体
操作系统中的每一个实体组件都必须是主体或者是客体,或者既是主体又是客体。主体是一个主动的实体,它包括用户、用户组、进程等。系统中最基本的主体应该是用户(包括一般用户和系统管理员、系统安全员、系统审计员等特殊用户)。每个进入系统的用户必须是惟一标识的,并经过鉴别确定为真实的。系统中的所有事件要求,几乎全是由用户激发的。进程是系统中最活跃的实体,用户的所有事件要求都要通过进程的运行来处理。在这里,进程作为用户的客体,同时又是其访问对象的主体。
客体是一个被动的实体。在操作系统中,客体可以是按照一定格式存储在一定记录介质上的数据信息(通常以文件系统格式存储数据),也可以是操作系统中的进程。操作系统中的进程(包括用户进程和系统进程)一般有着双重身份。当一个进程运行时,它必定为某一用户服务——直接或间接的处理该用户的事件要求。于是,该进程成为该用户的客体,或为另一进程的客体(这时另一进程则是该用户的客体)。依此类推,操作系统中运行的任一进程,总是直接或间接为某一用户服务。这种服务关系可以构成一个服务链。服务者是要求者的客体,要求者是服务者的主体,而最原始的主体是用户,最终的客体是一定记录介质上的信息。
8.3.2 安全策略和安全模型
安全策略与安全模型是计算机安全理论中容易相互混淆的两个概念。安全策略是指有关管理、保护和发布敏感信息的法律、规定和实施细则。例如,可以将安全策略定为:系统中的用户和信息被划分为不同的层次,一些级别比另一些级别高;而且如果主体能读访问客体,当且仅当主体的级别高于或等于客体的级别;如果主体能写访问客体,当且仅当主体的级别低于或等于客体的级别。
说一个操作系统是安全的,是指它满足某一给定的安全策略。同样进行安全操作系统的设计和开发时,也要围绕一个给定的安全策略进行。安全策略由一整套严密的规则组成,这些确定授权存取的规则是决定存取控制的基础。许多系统的安全控制遭到失败,主要不是因为程序错误,而是没有明确的安全策略。
安全模型则是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略和安全策略实现机制的关联提供了一种框架。安全模型描述了对某个安全策略需要用哪种机制来满足;而模型的实现则描述了如何把特定的机制应用于系统中,从而实现某一特定安全策略所需的安全保护。
8.3.3 访问监控器和安全内核
访问控制机制的理论基础是访问监控器(Reference Monitor),由J.P.Anderson首次提出。访问监控器是一个抽象概念,它表现的是一种思想。J.P.Anderson把访问监控器的具体实现称为引用验证机制,它是实现访问监控器思想的硬件和软件的组合
8.3.3 访问监控器和安全内核
安全策略所要求的存取判定以抽象存取访问控制数据库中的信息为依据,存取判定是安全策略的具体表现。访问控制数据库包含有关由主体存取的客体及其存取方式的信息。数据库是动态的,它随着主体和客体的产生或删除及其权限的修改而改变。访问监控器的关键需求是控制从主体到客体的每一次存取,并将重要的安全事件存入审计文件之中。引用验证机制需要同时满足以下三个原则:
(1)必须具有自我保护能力;
(2)必须总是处于活跃状态;
(3)必须设计得足够小,以利于分析和测试,从而能够证明它的实现是正确的。
8.3.3 访问监控器和安全内核
在访问监控器思想的基础上,J.P.Anderson定义了安全内核的概念。安全内核是指系统中与安全性实现有关的部分,包括引用验证机制、访问控制机制、授权机制和授权管理机制等部分。因此一般情况下人们趋向于把访问监控器的概念和安全内核方法等同起来。
安全内核是实现访问监控器概念的一种技术,在一个大型操作系统中,只有其中的一小部分软件用于安全目的是它的理论依据。所以在重新生成操作系统过程中,可用其中安全相关的软件来构成操作系统的一个可信内核,称之为安全内核。安全内核必须予以适当的保护,不能篡改。同时绝不能有任何绕过安全内核存取控制检查的存取行为存在。此外安全内核必须尽可能地小,便于进行正确性验证。安全内核由硬件和介于硬件和操作系统之间的一层软件组成
操作系统安全内核
8.3.4 可信计算基
操作系统的安全依赖于一些具体实施安全策略的可信的软件和硬件。这些软件、硬件和负责系统安全管理的人员一起组成了系统的可信计算基(Trusted Computing Base,TCB)。具体来说可信计算基由以下7个部分组成:
1. 操作系统的安全内核。
2. 具有特权的程序和命令。
3. 处理敏感信息的程序,如系统管理命令等。
4. 与TCB实施安全策略有关的文件。
5. 其它有关的固件、硬件和设备。
6. 负责系统管理的人员。
7. 保障固件和硬件正确的程序和诊断软件。
8.4 安全操作系统的机制
安全操作系统的机制包括:硬件安全机制,操作系统的安全标识与鉴别,访问控制、最小特权管理、可信通路和安全审计。
8.4.1 硬件安全机制
绝大多数实现操作系统安全的硬件机制也是传统操作系统所要求的,优秀的硬件保护性能是高效、可靠的操作系统的基础。计算机硬件安全的目标是,保证其自身的可靠性和为系统提供基本安全机制。其中基本安全机制包括
存储保护
运行保护
I/O保护等。
8.4.2 标识与鉴别
标识与鉴别是涉及系统和用户的一个过程。标识就是系统要标识用户的身份,并为每个用户取一个系统可以识别的内部名称——用户标识符。用户标识符必须是惟一的且不能被伪造,防止一个用户冒充另一个用户。将用户标识符与用户联系的过程称为鉴别,鉴别过程主要用以识别用户的真实身份,鉴别操作总是要求用户具有能够证明他的身份的特殊信息,并且这个信息是秘密的,任何其他用户都不能拥有它。
在操作系统中,鉴别一般是在用户登录时发生的,系统提示用户输入口令,然后判断用户输入的口令是否与系统中存在的该用户的口令一致。这种口令机制是简便易行的鉴别手段,但比较脆弱,许多计算机用户常常使用自己的姓名、配偶的姓名、宠物的名字或者生日作为口令,这种口令很不安全,因为这种口令很难经得住常见的字典攻击的。较安全的口令应是不小于6个字符并同时含有数字和字母的口令,并且限定一个口令的生存周期。另外生物技术是一种比较有前途的鉴别用户身份的方法,如利用指纹、视网膜等,目前这种技术已取得了长足进展,逐步进入了应用阶段。
8.4.3 访问控制
在安全操作系统领域中,访问控制一般都涉及
自主访问控制(Discretionary Access Control,DAC)
强制访问控制(Mandatory Access Control,MAC)两种形式
8.4.4 最小特权管理
为使系统能够正常地运行,系统中的某些进程需具有一些可违反系统安全策略的操作能力,这些进程一般是系统管理员/操作员进程。一般定义一个特权就是可违反系统安全策略的一个操作的能力。
在现有一般多用户操作系统(如UNIX、Linux等)的版本中,超级用户具有所有特权,普通用户不具有任何特权。一个进程要么具有所有特权(超级用户进程),要么不具有任何特权(非超级用户进程)。这种特权管理方式便于系统维护和配置,但不利于系统的安全性。一旦超级用户的口令丢失或超级用户被冒充,将会对系统造成极大的损失。另外超级用户的误操作也是系统极大的潜在安全隐患。因此必须实行最小特权管理机制。
最小特权管理的思想是系统不应给用户超过执行任务所需特权以外的特权,如将超级用户的特权划分为一组细粒度的特权,分别授予不同的系统操作员/管理员,使各种系统操作员/管理员只具有完成其任务所需的特权,从而减少由于特权用户口令丢失或错误软件、恶意软件、误操作所引起的损失。比如可在系统中定义5个特权管理职责,任何一个用户都不能获取足够的权力破坏系统的安全策略。
8.4.5可信通路
在计算机系统中,用户是通过不可信的中间应用层和操作系统相互作用的。但用户登录,定义用户的安全属性,改变文件的安全级等操作,用户必须确实与安全核心通信,而不是与一个特洛伊木马打交道。系统必须防止特洛伊木马模仿登录过程,窃取用户的口令。特权用户在进行特权操作时,也要有办法证实从终端上输出的信息是正确的,而不是来自于特洛伊木马。这些都需要一个机制保障用户和内核的通信,这种机制就是由可信通路提供的。
8.4.6安全审计
一个系统的安全审计就是对系统中有关安全的活动进行记录、检查及审核。它的主要目的就是检测和阻止非法用户对计算机系统的入侵,并显示合法用户的误操作。审计作为一种事后追查的手段来保证系统的安全,它对涉及系统安全的操作做一个完整的记录。审计为系统进行事故原因的查询、定位,事故发生前的预测、报警以及事故发生之后的实时处理提供详细、可靠的依据和支持,以备有违反系统安全规则的事件发生后能够有效地追查事件发生的地点和过程以及责任人。
8.5 代表性的安全模型
安全模型就是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略和它的实现机制之间的关联提供了一种框架。安全模型描述了对某个安全策略需要用哪种机制来满足;而模型的实现则描述了如何把特定的机制应用于系统中,从而实现某一特定安全策略所需的安全保护。
8.5.1 安全模型的特点
能否成功地获得高安全级别的系统,取决于对安全控制机制的设计和实施投入多少精力。但是如果对系统的安全需求了解的不清楚,即使运用最好的软件技术,投入最大的精力,也很难达到安全要求的目的。安全模型的目的就在于明确地表达这些需求,为设计开发安全系统提供方针。安全模型有以下4个特点:
它是精确的、无歧义的;
它是简易和抽象的,所以容易理解;
它是一般性的:只涉及安全性质,而不过度地牵扯系统的功能或其实现;
它是安全策略的明显表现。
安全模型一般分为两种:形式化的安全模型和非形式化的安全模型。非形式化安全模型仅模拟系统的安全功能;形式化安全模型则使用数学模型,精确地描述安全性及其在系统中使用的情况。
8.5.2 主要安全模型介绍
主要介绍具有代表性的
BLP机密性安全模型
Biba完整性安全模型
Clark-Wilson完整性安全模型
信息流模型
RBAC安全模型
DTE安全模型
无干扰安全模型等。
1. Bell-LaPadula(BLP)模型
Bell-LaPadula模型(简称BLP模型)是D. Elliott Bell和Leonard J. LaPadula于1973年提出的一种适用于军事安全策略的计算机操作系统安全模型,它是最早、也是最常用的一种计算机多级安全模型之一。
在BLP模型中将主体定义为能够发起行为的实体,如进程;将客体定义为被动的主体行为承担者,如数据,文件等;将主体对客体的访问分为r(只读),w(读写),a(只写),e(执行),以及c(控制)等几种访问模式,其中c(控制)是指该主体用来授予或撤销另一主体对某一客体的访问权限的能力。BLP模型的安全策略包括两部分:自主安全策略和强制安全策略。自主安全策略使用一个访问矩阵表示,访问矩阵第i行第j列的元素Mij表示主体Si对客体Oj的所有允许的访问模式,主体只能按照在访问矩阵中被授予的对客体的访问权限对客体进行相应的访问。强制安全策略包括简单安全特性和*特性,系统对所有的主体和客体都分配一个访问类属性,包括主体和客体的密级和范畴,系统通过比较主体与客体的访问类属性控制主体对客体的访问。
2. Biba模型
BLP模型通过防止非授权信息的扩散保证系统的安全,但它不能防止非授权修改系统信息。于是Biba等人在1977年提出了第一个完整性安全模型——Biba模型,其主要应用是保护信息的完整性,而BLP模型是保护信息机密性。Biba模型也是基于主体、客体以及它们的级别的概念的。模型中主体和客体的概念与BLP模型相同,对系统中的每个主体和每个客体均分配一个级别,称为完整级别。
3. Clark-Wilson完整性模型
在商务环境中,1987年David Clark和David Wilson所提出的完整性模型具有里程碑的意义,它是完整意义上的完整性目标、策略和机制的起源,在他们的论文中,为了体现用户完整性,他们提出了职责隔离目标;为了保证数据完整性,他们提出了应用相关的完整性验证进程;为了建立过程完整性,他们定义了对于转换过程的应用相关验证;为了约束用户、进程和数据之间的关联,他们使用了一个三元组结构。
Clark-Wilson模型的核心在于以良构事务(well-formal transaction)为基础来实现在商务环境中所需的完整性策略。良构事务的概念是指一个用户不能任意操作数据,只能用一种能够确保数据完整性的受控方式来操作数据。为了确保数据项(data items)仅仅只能被良构事务来操作,首先得确认一个数据项仅仅只能被一组特定的程序来操纵,而且这些程序都能被验证是经过适当构造,并且被正确安装和修改。
4. 信息流模型
许多信息泄露问题(如隐蔽通道)并非存取控制机制不完善,而是由于缺乏对信息流的必要保护。例如遵守BLP模型的系统,应当遵守“下读上写”的规则,即低安全进程程不能读高安全级文件,高安全级进程不能写低安全级文件。然而在实际系统中,尽管不一定能直接为主体所见,许多客体(包括缓冲池、定额变量、全程计数器等等)还是可以被所有不同安全级的主体更改和读取,这样入侵者就可能利用这些客体间接地传递信息。要建立高级别的安全操作系统,必须在建立完善的存取控制机制的同时,依据适当的信息流模型实现对信息流的分析和控制。
5. 基于角色的访问控制模型
基于角色的访问控制模型(Role-Based Access Control,RBAC)提供了一种强制访问控制机制。在一个采用RBAC作为授权访问控制的系统中,根据公司或组织的业务特征或管理需求,一般要求在系统内设置若干个称之为“角色”的客体,用以支撑RBAC授权存取控制机制的实现。角色,就是业务系统中的岗位、职位或者分工。例如在一个公司内,财会主管、会计、出纳、核算员等每一种岗位都可以设置多个职员具体从事该岗位的工作,因此它们都可以视为角色。
6. DTE模型
DTE模型最初由Boebert和Kain提出,经修改后在LOCK系统中得到实现。与其它访问控制机制一样,DTE将系统视为一个主动实体(主体)的集合和一个被动实体(客体)的集合。每个主体有一个属性──域,每个客体有一个属性──类型,这样所有的主体被划分到若干个域中,所有的客体被划分到若干个类型中。DTE再建立一个表“域定义表”(Domain Definition Table),描述各个域对不同类型客体的操作权限。同时建立另一张表“域交互表”(Domain Interaction Table),描述各个域之间的许可访问模式(如创建、发信号、切换)。系统运行时,依据访问的主体域和客体类型,查找域定义表,决定是否允许访问。
7. 无干扰模型
Goguen与Meseguer在1982年提出了一种基于自动机理论和域隔离的安全系统事项方法,这个方法分为4个阶段:
(1)判定一给定机构的安全需求;
(2)用正式/形式化的安全策略表示这些需求;
(3)把机构正在(或将要)使用的系统模型化;
(4)验证此模型满足策略的需求。
Goguen与Meseguer把安全策略与安全模型明确地区分开来。一般来说安全策略是非常简单的,而且很容易用适当的形式化方法表示出来。他们提出了一种非常简单的用来表达安全策略的需求语言,该语言是基于无干扰概念的:
8.6 操作系统安全体系结构
建立一个计算机系统往往需要满足许多要求,如安全性要求,性能要求,可扩展性要求,容量要求,使用的方便性要求和成本要求等,这些要求往往是有冲突的,为了把它们协调地纳入到一个系统中并有效实现,对所有的要求都予以最大可能满足通常是很困难的,有时也是不可能的。因此系统对各种要求的满足程度必须在各种要求之间进行全局性地折衷考虑,并通过恰当的实现方式表达出这些考虑,使系统在实现时各项要求有轻重之分,这就是体系结构要完成的主要任务。
8.6.1 安全体系结构的含义
一个计算机系统(特别是安全操作系统)的安全体系结构,主要包含如下4方面的内容:
1. 详细描述系统中安全相关的所有方面。这包括系统可能提供的所有安全服务及保护系统自身安全的所有安全措施,描述方式可以用自然语言,也可以用形式语言。
2. 在一定的抽象层次上描述各个安全相关模块之间的关系。这可以用逻辑框图来表达,主要用以在抽象层次上按满足安全需求的方式来描述系统关键元素之间的关系。
3. 提出指导设计的基本原理。根据系统设计的要求及工程设计的理论和方法,明确系统设计的各方面的基本原则。
4. 提出开发过程的基本框架及对应于该框架体系的层次结构。它描述确保系统忠实于安全需求的整个开发过程的所有方面。为达到此目的,安全体系总是按一定的层次结构进行描述
8.6.2 安全体系结构的类型
在美国国防部的“目标安全体系”中,把安全体系划分为四种类型:
1. 抽象体系(Abstract Architecture)。抽象体系从描述需求开始,定义执行这些需求的功能函数。之后定义指导如何选用这些功能函数及如何把这些功能有机组织成为一个整体的原理及相关的基本概念。
2. 通用体系(Generic Architecture)。通用体系的开发是基于抽象体系的决策来进行的。它定义了系统分量的通用类型(general type)及使用相关行业标准的情况,它也明确规定系统应用中必要的指导原则。通用安全体系是在已有的安全功能和相关安全服务配置的基础上,定义系统分量类型及可得到的实现这些安全功能的有关安全机制。
3. 逻辑体系(Logical Architecture)。逻辑体系就是满足某个假设的需求集合的一个设计,它显示了把一个通用体系应用于具体环境时的基本情况。逻辑体系与下面将描述的特殊体系的仅有的不同之处在于:特殊体系是使用系统的实际体系,而逻辑体系是假想的体系,是为理解或者其它目的而提出的。
4. 特殊体系(Specific Architecture)。特殊安全体系要表达系统分量、接口、标准、性能和开销,它表明如何把所有被选择的信息安全分量和机制结合起来以满足我们正在考虑的特殊系统的安全需求。这里信息安全分量和机制包括基本原则及支持安全管理的分量等。
8.6.3 Flask安全体系结构
Flask原型由一个基于微内核的操作系统来实现,支持硬件强行对进程地址空间的分离。但也有一些最近的努力已经展示了软件强行进程分离的效果。对Flask结构而言,这种区别是基本不相关的。它认为所提供的进程分离的形式才是主要的,但Flask结构并没有强制要某一种机制。Flask结构为达到其他系统常见的可适应性,将通过采用DTOS结构在SPIN中的安全框架具体证明。进一步来讲,Flask结构也可以适用于除操作系统之外的其它软件,例如中间件或分布式系统,但此时由底层操作系统的不安全性所导致的弱点仍保留。
8.6.4 权能体系结构
权能体系是较早用于实现安全内核的结构体系,尽管它存在一些不足,但是作为实现访问控制的一种通用的、可塑性良好的方法,目前仍然是人们实现安全比较偏爱的方法之一。权能体系的优点包括2个方面:
(1)权能为访问客体和保护客体提供了一个统一的方法,权能的应用对统筹设计及简化证明过程有重要的影响。
(2)权能与层次设计方法是非常协调的,从权能机制很自然可导致使用扩展型对象来提供抽象和保护的层次。尽管对权能提供的保护及权能的创建是集中式的,但是由权能实现的保护是可适当分配的,也就是说,权能具有传递能力。这样一来,权能促进了机制与策略的分离。
安全配置方案初级篇
安全配置方案初级篇主要介绍常规的操作系统安全配置,包括十二条基本配置原则:
物理安全、停止Guest帐号、限制用户数量
创建多个管理员帐号、管理员帐号改名
陷阱帐号、更改默认权限、设置安全密码
屏幕保护密码、使用NTFS分区
运行防毒软件和确保备份盘安全。
1、物理安全
服务器应该安放在安装了监视器的隔离房间内,并且监视器要保留15天以上的摄像记录。
另外,机箱,键盘,电脑桌抽屉要上锁,以确保旁人即使进入房间也无法使用电脑,钥匙要放在安全的地方。
2、停止Guest帐号
在计算机管理的用户里面把Guest帐号停用,任何时候都不允许Guest帐号登陆系统。
为了保险起见,最好给Guest 加一个复杂的密码,可以打开记事本,在里面输入一串包含特殊字符,数字,字母的长字符串。
用它作为Guest帐号的密码。并且修改Guest帐号的属性,设置拒绝远程访问,如图7-1所示。
3 限制用户数量
去掉所有的测试帐户、共享帐号和普通部门帐号等等。用户组策略设置相应权限,并且经常检查系统的帐户,删除已经不使用的帐户。
帐户很多是黑客们入侵系统的突破口,系统的帐户越多,黑客们得到合法用户的权限可能性一般也就越大。
对于Windows NT/2000主机,如果系统帐户超过10个,一般能找出一两个弱口令帐户,所以帐户数量不要大于10个。
4 多个管理员帐号
虽然这点看上去和上面有些矛盾,但事实上是服从上面规则的。创建一个一般用户权限帐号用来处理电子邮件以及处理一些日常事物,另一个拥有Administrator权限的帐户只在需要的时候使用。
因为只要登录系统以后,密码就存储再WinLogon进程中,当有其他用户入侵计算机的时候就可以得到登录用户的密码,尽量减少Administrator登录的次数和时间。
5 管理员帐号改名
Windows 2000中的Administrator帐号是不能被停用的,这意味着别人可以一遍又一边的尝试这个帐户的密码。把Administrator帐户改名可以有效的防止这一点。
不要使用Admin之类的名字,改了等于没改,尽量把它伪装成普通用户,比如改成:guestone。具体操作的时候只要选中帐户名改名就可以了,如图7-2所示。
6 陷阱帐号
所谓的陷阱帐号是创建一个名为“Administrator”的本地帐户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。
这样可以让那些企图入侵者忙上一段时间了,并且可以借此发现它们的入侵企图。可以将该用户隶属的组修改成Guests组,如图7-3所示。
7 更改默认权限
共享文件的权限从“Everyone”组改成“授权用户”。“Everyone”在Windows 2000中意味着任何有权进入你的网络的用户都能够获得这些共享资料。
任何时候不要把共享文件的用户设置成“Everyone”组。包括打印共享,默认的属性就是“Everyone”组的,一定不要忘了改。设置某文件夹共享默认设置如图7-4所示。
8安全密码
好的密码对于一个网络是非常重要的,但是也是最容易被忽略的。
一些网络管理员创建帐号的时候往往用公司名,计算机名,或者一些别的一猜就到的字符做用户名,然后又把这些帐户的密码设置得比较简单,比如:“welcome”、“iloveyou”、“letmein”或者和用户名相同的密码等。这样的帐户应该要求用户首此登陆的时候更改成复杂的密码,还要注意经常更改密码。
这里给好密码下了个定义:安全期内无法破解出来的密码就是好密码,也就是说,如果得到了密码文档,必须花43天或者更长的时间才能破解出来,密码策略是42天必须改密码。
9屏幕保护密码
设置屏幕保护密码是防止内部人员破坏服务器的一个屏障。注意不要使用OpenGL和一些复杂的屏幕保护程序,浪费系统资源,黑屏就可以了。
还有一点,所有系统用户所使用的机器也最好加上屏幕保护密码。
将屏幕保护的选项“密码保护”选中就可以了,并将等待时间设置为最短时间“1秒”,如图7-5所示。
10 NTFS分区
把服务器的所有分区都改成NTFS格式。NTFS文件系统要比FAT、FAT32的文件系统安全得多。
11防毒软件
Windows 2000/NT服务器一般都没有安装防毒软件的,一些好的杀毒软件不仅能杀掉一些著名的病毒,还能查杀大量木马和后门程序。
设置了放毒软件,“黑客”们使用的那些有名的木马就毫无用武之地了,并且要经常升级病毒库。
12备份盘的安全
一旦系统资料被黑客破坏,备份盘将是恢复资料的唯一途径。备份完资料后,把备份盘防在安全的地方。
不能把资料备份在同一台服务器上,这样的话还不如不要备份。
安全配置方案中级篇
安全配置方案中级篇主要介绍操作系统的安全策略配置,包括十条基本配置原则:
操作系统安全策略、关闭不必要的服务
关闭不必要的端口、开启审核策略
开启密码策略、开启帐户策略、备份敏感文件
不显示上次登陆名、禁止建立空连接和下载最新的补丁
1 操作系统安全策略
利用Windows 2000的安全配置工具来配置安全策略,微软提供了一套的基于管理控制台的安全配置和分析工具,可以配置服务器的安全策略。
在管理工具中可以找到“本地安全策略”,主界面如图7-6所示。
可以配置四类安全策略:帐户策略、本地策略、公钥策略和IP安全策略。在默认的情况下,这些策略都是没有开启的。
2 关闭不必要的服务
Windows 2000的Terminal Services(终端服务)和IIS(Internet 信息服务)等都可能给系统带来安全漏洞。
为了能够在远程方便的管理服务器,很多机器的终端服务都是开着的,如果开了,要确认已经正确的配置了终端服务。
有些恶意的程序也能以服务方式悄悄的运行服务器上的终端服务。要留意服务器上开启的所有服务并每天检查。
Windows 2000作为服务器可禁用的服务及其相关说明如表7-1所示。
Windows2000可禁用的服务
3 关闭不必要的端口
关闭端口意味着减少功能,如果服务器安装在防火墙的后面,被入侵的机会就会少一些,但是不可以认为高枕无忧了。
用端口扫描器扫描系统所开放的端口,在Winnt\system32\drivers\etc\services文件中有知名端口和服务的对照表可供参考。该文件用记事本打开如图7-7所示。
设置本机开放的端口和服务,在IP地址设置窗口中点击按钮“高级”,如图7-8所示。
在出现的对话框中选择选项卡“选项”,选中“TCP/IP筛选”,点击按钮“属性”,如图7-9所示。
设置端口界面如图7-10所示。
一台Web服务器只允许TCP的80端口通过就可以了。TCP/IP筛选器是Windows自带的防火墙,功能比较强大,可以替代防火墙的部分功能。
4 开启审核策略
安全审核是Windows 2000最基本的入侵检测方法。当有人尝试对系统进行某种方式(如尝试用户密码,改变帐户策略和未经许可的文件访问等等)入侵的时候,都会被安全审核记录下来。
很多的管理员在系统被入侵了几个月都不知道,直到系统遭到破坏。表7-2的这些审核是必须开启的,其他的可以根据需要增加。
审核策略默认设置
审核策略在默认的情况下都是没有开启的,如图7-11所示。
双击审核列表的某一项,出现设置对话框,将复选框“成功”和“失败”都选中,如图7-12所示。
5 开启密码策略
密码对系统安全非常重要。本地安全设置中的密码策略在默认的情况下都没有开启。需要开启的密码策略如表7-3所示
设置选项如图7-13所示。
6 开启帐户策略
开启帐户策略可以有效的防止字典式攻击,设置如表7-4所示。
设置帐户策略
设置的结果如图7-14所示。
7 备份敏感文件
把敏感文件存放在另外的文件服务器中,虽然服务器的硬盘容量都很大,但是还是应该考虑把一些重要的用户数据(文件,数据表和项目文件等)存放在另外一个安全的服务器中,并且经常备份它们
8 不显示上次登录名
默认情况下,终端服务接入服务器时,登陆对话框中会显示上次登陆的帐户名,本地的登陆对话框也是一样。黑客们可以得到系统的一些用户名,进而做密码猜测。
修改注册表禁止显示上次登录名,在HKEY_LOCAL_MACHINE主键下修改子键:
Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\DontDisplayLastUserName,将键值改成1,如图7-15所示。
9 禁止建立空连接
默认情况下,任何用户通过空连接连上服务器,进而可以枚举出帐号,猜测密码。
可以通过修改注册表来禁止建立空连接。在HKEY_LOCAL_MACHINE主键下修改子键:
System\CurrentControlSet\Control\LSA\RestrictAnonymous,将键值改成“1”即可。如图7-16所示。
10 下载最新的补丁
很多网络管理员没有访问安全站点的习惯,以至于一些漏洞都出了很久了,还放着服务器的漏洞不补给人家当靶子用。
谁也不敢保证数百万行以上代码的Windows 2000不出一点安全漏洞。
经常访问微软和一些安全站点,下载最新的Service Pack和漏洞补丁,是保障服务器长久安全的唯一方法。
安全配置方案高级篇
高级篇介绍操作系统安全信息通信配置,包括十四条配置原则:
关闭DirectDraw、关闭默认共享
禁用Dump File、文件加密系统
加密Temp文件夹、锁住注册表、关机时清除文件
禁止软盘光盘启动、使用智能卡、使用IPSec
禁止判断主机类型、抵抗DDOS
禁止Guest访问日志和数据恢复软件
1 关闭DirectDraw
C2级安全标准对视频卡和内存有要求。关闭DirectDraw可能对一些需要用到DirectX的程序有影响(比如游戏),但是对于绝大多数的商业站点都是没有影响的。
在HKEY_LOCAL_MACHINE主键下修改子键:
SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI\Timeout,将键值改为“0”即可,如图7-17所示。
2 关闭默认共享
Windows 2000安装以后,系统会创建一些隐藏的共享,可以在DOS提示符下输入命令Net Share 查看,如图7-18所示。
停止默认共享
禁止这些共享,打开管理工具>计算机管理>共享文件夹>共享,在相应的共享文件夹上按右键,点停止共享即可,如图7-19所示。
3 禁用Dump文件
在系统崩溃和蓝屏的时候,Dump文件是一份很有用资料,可以帮助查找问题。然而,也能够给黑客提供一些敏感信息,比如一些应用程序的密码等
需要禁止它,打开控制面板>系统属性>高级>启动和故障恢复,把写入调试信息改成无,如图7-20所示。
4 文件加密系统
Windows2000强大的加密系统能够给磁盘,文件夹,文件加上一层安全保护。这样可以防止别人把你的硬盘挂到别的机器上以读出里面的数据。
微软公司为了弥补Windows NT 4.0的不足,在Windows 2000中,提供了一种基于新一代NTFS:NTFS V5(第5版本)的加密文件系统(Encrypted File System,简称EFS)。
EFS实现的是一种基于公共密钥的数据加密方式,利用了Windows 2000中的CryptoAPI结构。
5 加密Temp文件夹
一些应用程序在安装和升级的时候,会把一些东西拷贝到Temp文件夹,但是当程序升级完毕或关闭的时候,并不会自己清除Temp文件夹的内容。
所以,给Temp文件夹加密可以给你的文件多一层保护。
6 锁住注册表
在Windows2000中,只有Administrators和Backup Operators才有从网络上访问注册表的权限。当帐号的密码泄漏以后,黑客也可以在远程访问注册表,当服务器放到网络上的时候,一般需要锁定注册表。修改Hkey_current_user下的子键
Software\microsoft\windows\currentversion\Policies\system
把DisableRegistryTools的值该为0,类型为DWORD,如图7-21所示。
7 关机时清除文件
页面文件也就是调度文件,是Windows 2000用来存储没有装入内存的程序和数据文件部分的隐藏文件。
一些第三方的程序可以把一些没有的加密的密码存在内存中,页面文件中可能含有另外一些敏感的资料。要在关机的时候清楚页面文件,可以编辑注册表 修改主键HKEY_LOCAL_MACHINE下的子键:
SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
把ClearPageFileAtShutdown的值设置成1,如图7-22所示。
8 禁止软盘光盘启动
一些第三方的工具能通过引导系统来绕过原有的安全机制。比如一些管理员工具,从软盘上或者光盘上引导系统以后,就可以修改硬盘上操作系统的管理员密码。
如果服务器对安全要求非常高,可以考虑使用可移动软盘和光驱,把机箱锁起来仍然不失为一个好方法。
9 使用智能卡
对于密码,总是使安全管理员进退两难,容易受到一些工具的攻击,如果密码太复杂,用户把为了记住密码,会把密码到处乱写。
如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。
10 使用IPSec
正如其名字的含义,IPSec提供IP数据包的安全性。
IPSec提供身份验证、完整性和可选择的机密性。发送方计算机在传输之前加密数据,而接收方计算机在收到数据之后解密数据。
利用IPSec可以使得系统的安全性能大大增强。
11 禁止判断主机类型
黑客利用TTL(Time-To-Live,活动时间)值可以鉴别操作系统的类型,通过Ping指令能判断目标主机类型。Ping的用处是检测目标主机是否连通。
许多入侵者首先会Ping一下主机,因为攻击某一台计算机需要根据对方的操作系统,是Windows还是Unix。如过TTL值为128就可以认为你的系统为Windows 2000,如图7-23所示。
从图中可以看出,TTL值为128,说明改主机的操作系统是Windows 2000操作系统。表7-6给出了一些常见操作系统的对照值。
修改TTL的值,入侵者就无法入侵电脑了。比如将操作系统的TTL值改为111,修改主键HKEY_LOCAL_MACHINE的子键:
SYSTEM\CURRENT_CONTROLSET\SERVICES\TCPIP\PARAMETERS
新建一个双字节项,如图7-24所示。
在键的名称中输入“defaultTTL”,然后双击改键名,选择单选框“十进制”,在文本框中输入111,如图7-25所示。
设置完毕重新启动计算机,再用Ping指令,发现TTL的值已经被改成111了,如图7-26所示。
12 抵抗DDOS
添加注册表的一些键值,可以有效的抵抗DDOS的攻击。在键值
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters]下增加响应的键及其说明如表7-7所示。
13 禁止Guest访问日志
在默认安装的Windows NT和Windows 2000中,Guest帐号和匿名用户可以查看系统的事件日志,可能导致许多重要信息的泄漏,修改注册表来禁止Guest访问事件日志。
禁止Guest访问应用日志
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application 下添加键值名称为:RestrictGuestAccess ,类型为:DWORD,将值设置为1。
系统日志:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\System下添加键值名称为:RestrictGuestAccess,类型为:DWORD,将值设置为1。
安全日志
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security下添加键值名称为:RestrictGuestAccess,类型为:DWORD,将值设置为1。
14 数据恢复软件
当数据被病毒或者入侵者破坏后,可以利用数据恢复软件可以找回部分被删除的数据,在恢复软件中一个著名的软件是Easy Recovery。软件功能强大,可以恢复被误删除的文件、丢失的硬盘分区等等。软件的主界面如图7-26所示。
比如原来在E盘上有一些数据文件,被黑客删除了,选择左边栏目“Data Recovery”,然后选择左边的按钮“Advanced Recovery”,如图7-28所示。
进入Advanced Recovery对话框后,软件自动扫描出目前硬盘分区的情况,分区信息是直接从分区表中读取出来的,如图7-29所示。
现在要恢复E盘上的文件,所以选择E盘,点击按钮“Next”,如图7-30所示。
软件开始自动扫描该盘上曾经有哪些被删除了文件,根据硬盘的大小,需要一段比较长的时间,如图7-31所示。
扫描完成以后,将该盘上所有的文件以及文件夹显示出来,包括曾经被删除文件和文件夹,如图7-32所示。
选中某个文件夹或者文件前面的复选框,然后点击按钮“Next”,就可以恢复了。如图7-33所示。
在恢复的对话框中选择一个本地的文件夹,将文件保存到该文件夹中,如图7-34所示。
选择一个文件夹后,电击按钮“Next”,就出现了恢复的进度对话框,如图7-35所示。
本章总结
本章介绍了常用的几种操作系统,重点介绍了安全系统的研究发展、安全操作系统的基本概念、安全机制、安全模型以及常用的安全体系。
分成3部分介绍Windows的安全配置,共介绍安全配置36项,如果每一条都能得到很好实施的话,该服务器无论是在局域网还是广域网,即使没有网络防火墙,也已经比较安全了。需要重点理解3大部分中的每一项设置,并掌握如何设置。
本章习题
一、选择题
1. ___________是一套可以免费使用和自由传播的类UNIX操作系统,主要用于基于Intel x86系列CPU的计算机上。
A. Solaris B. Linux
C. XENIX D. FreeBSD
2. 操作系统中的每一个实体组件不可能是___________。
A. 主体 B. 客体
C. 既是主体又是客体 D. 既不是主体又不是客体
3. ___________是指有关管理、保护和发布敏感信息的法律、规定和实施细则。
A. 安全策略 B. 安全模型
C. 安全框架 D. 安全原则
4. 操作系统的安全依赖于一些具体实施安全策略的可信的软件和硬件。这些软件、硬件和负责系统安全管理的人员一起组成了系统的___________。
A. 可信计算平台 B. 可信计算基
C. 可信计算模块 D. 可信计算框架
5. ___________是最常用的一类访问控制机制,用来决定一个用户是否有权访问一些特定客体的一种访问约束机制。
A. 强制访问控制 B. 访问控制列表
C. 自主访问控制 D. 访问控制矩阵
本章习题
二、填空题
1. ___________的安全性在计算机信息系统的整体安全性中具有至关重要的作用,没有它的安全性,信息系统的安全性是没有基础的。
2. ___________是开发安全操作系统最早期的尝试。
3. 1969年B.W.Lampson通过形式化表示方法运用___________、___________和___________的思想第一次对访问控制问题进行了抽象。
4. 访问控制机制的理论基础是___________,由J.P.Anderson首次提出
5. 计算机硬件安全的目标是,保证其自身的可靠性和为系统提供基本安全机制。其中基本安全机制包括存储保护、___________、I/O保护等。
6. ___________模型主要应用是保护信息的完整性,而___________模型是保护信息机密性。
本章习题
三、简答题
1. 简述操作系统账号密码的重要性,有几种方法可以保护密码不被破解或者被盗取?
2. 简述审核策略、密码策略和账户策略的含义,以及这些策略如何保护操作系统不被入侵。
3. 如何关闭不需要的端口和服务?
4. 编写程序实现本章所有注册表的操作。(上机完成)
5. 以报告的形式编写Windows 2000 Server/Advanced Server或者Windows 2003的安全配置方案。
6. 简述BLP模型和Biba模型功能以及特点。
7. 简述Flash安全体系结构的优点。
8. 简述安全操作系统的机制。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。