• 沒有找到結果。

电子商务安全与支付 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "电子商务安全与支付 - 万水书苑-出版资源网"

Copied!
28
0
0

加載中.... (立即查看全文)

全文

(1)第 4 章 操作系统的安全 电子商务是一种基于网络的商务活动。网络是由各个不同的计算机系统组成的,而每个 计算机系统的核心是操作系统。所以,计算机操作系统的安全是网络安全的基础,因而也是电 子商务安全的一个重要组成部分。本节首先简要介绍涉及操作系统平台安全的一般性问题和原 则,然后具体讨论目前几种最常用操作系统的安全特性,包括 UNIX/Linux 系统、Windows NT/2003 系统的一些安全问题。. 4.1. 操作系统安全性概述. 操作系统作为计算机系统的基础软件是用来管理计算机资源的,它直接利用计算机硬件 并为用户提供使用和编程接口。各种应用软件均建立在操作系统提供的系统软件平台之上,上 层的应用软件要想获得运行的高可靠性和信息的完整性、保密性,必须依赖于操作系统提供的 系统软件基础。在网络环境中,网络系统的安全性依赖于网络中各主机系统的安全性,而主机 系统的安全性正是由其操作系统的安全性所决定的,没有安全的操作系统的支持,网络安全也 毫无根基可言。所以操作系统安全是计算机网络系统安全的基础。 在安全层次模型中,操作系统的安全性属于系统级安全的范畴。操作系统为文件、目录、 网络等提供底层的安全保障平台。操作系统中的安全缺陷和安全漏洞往往会造成严重的后果。 因此,安全机制是操作系统的一个重要组成部分;平台的安全级别是对其性能进行评估的一个 重要指标。本节简要地介绍一下操作系统安全服务的主要内容、安全性设计的主要原则,以及 操作系统安全级别的划分。 4.1.1 操作系统安全性设计的原则 在操作系统平台的安全性设计方面,Saltzer 和 Schroeder 提出了一些基本原则: (1)操作系统设计必须公开。认为入侵者由于不知道系统的工作原理而会减少入侵可能 性的想法是错误的,这样只能迷惑管理者。 (2)默认情况应是拒绝访问。合法访问被拒绝的情况比未授权访问被允许的情况更容易 获知。 (3)检查操作的当前授权信息。系统不应只检查访问是否允许,然后只根据第一次的检 查结果而不理会后续的操作。 (4)为每个进程赋予可能的最小权限。每个进程只应当具备完成其特定功能的最小权限。 (5)保护机制必须简单、一致,并建立到系统底层。系统的安全性和系统的正确性一样, 不应当是一种附加特性,必须建立到系统底层而成为系统固有的特性。 (6)方案必须是心理上可接受的。如果用户觉得为保护自己的文件而必须做这做那的话, 用户就会有厌烦心理,并且可能因侥幸心理而不会利用所提供的方案保护数据。 4.1.2 操作系统的安全服务 操作系统的安全机制主要体现在身份认证和访问控制两个方面。身份认证要保证合法的.

(2) 第 4 章 操作系统的安全. 49. 用户使用系统,防止非法侵入;访问控制则是要保证授权和受控地访问、使用系统资源。下面 介绍操作系统安全服务的两个主要方面。 1.用户管理的安全性 (1)用户账号的管理。通常对用户账号进行分组管理,并且这种分组管理应该是针对安 全性问题而考虑的分组。也就是说,应该根据不同的安全级别将用户分为若干等级,每一等级 的用户只能访问与其等级相对应的系统资源和数据,执行指定范围的程序。 (2)用户口令的加密机制。用户口令的加密算法必须有足够的安全强度,用户的口令存 放必须安全,不能被轻易窃取。 (3)认证机制。身份认证必须强有力,即在用户登录时,与系统的交互过程必须有安全 保护,不会被第三方干扰或截取。认证机制是用户安全管理的重点。用户身份认证通常采用账 号/密码的方案。用户提供正确的账号和密码后,系统才能确认他的合法身份。不同的系统内 部采用的认证机制和过程一般是不同的。 账号/密码的认证方案普遍存在着安全隐患和不足之处:  认证过程的安全保护不够健壮,登录的步骤没有做集成和封装,暴露在外,容易受到 恶意入侵者或系统内特洛伊木马的干扰或截取。  密码的存放与访问没有严格的安全保护。比如,Linux 系统中全部用户信息,包括加 密后的口令信息一般保存于/etc/passwd 文件中,而该文件的默认访问许可是任何用户 均可读。因此,任何可能访问该文件副本的人,就有可能获得系统所有用户的列表, 进而破译其密码。  认证机制与访问控制机制不能很好地相互配合和衔接,使得通过认证的合法用户进行 有意或无意的非法操作的机会大大增加。例如能够物理上访问 Windows NT 机器的任 何人,可能利用 NT Recover、Winternal Software 的 NT Locksmith 等工具程序来获得 Administrator 级别的访问权。 为此,Windows 2003 对身份认证机制做了重大的改进,引入了新的认证协议。Windows 2003 除了为向下兼容提供了对 NTLM 验证协议的支持以外(作为桌面平台使用时),还增加 了 Kerberos V5 和 TLS 作为分布式的安全性协议,它支持对 Smart cards 的使用,这提供了在 密码基础之上的一种交互式的登录。Smart cards 支持密码系统和对私有密钥及证书的安全存 储。Kerberos 客户端的运行时刻是通过一个基于 SSPI 的安全性接口来实现的,客户 Kerberos 验证过程的初始化集成到了 WinLogon 单一登录的结构中。 2.访问控制 访问控制是计算机保护中极其重要的一环,它是在身份识别的基础上,根据身份对提出 的资源访问请求加以控制。在访问控制中,对其访问必须进行控制的资源称为客体,同理,必 须控制它对客体的访问的活动资源称为主体。主体即访问的发起者,通常为进程、程序或用户。 客体包括各种资源,如文件、设备、信号量等。访问控制中第三个元素是保护规则,它定义了 主体与客体可能的相互作用途径。 访问控制实质上是对资源使用的限制,它决定主体是否被授权对客体执行某种操作。它 通过鉴别使主体合法化,并将组成员关系和特权与主体联系起来。只有经授权的用户才允许访 问特定的网络资源。 用户访问系统资源或执行程序时,系统应该先进行合法性检查,没有得到授权的用户访 问或执行请求将被拒绝。系统还要对访问或执行的过程进行监控,防止用户越权。 程序的执行也应该受到监控。程序执行应遵循“最小”特权原则,程序不能越权调用执.

(3) 电子商务安全与支付. 50. 行另外一些与本程序执行无关的程序,特别是某些重要的系统调用;也不能越权访问无关的重 要资源。 系统中的访问控制通常通过定义对象保护域来实现。保护域是指一组(对象、权限)对, 每个(对象、权限)对指定了一个对象以及能够在这个对象上执行的操作子集。保护域可以相 互交叉。保护域规定了进程可以访问的资源。每一域定义了一组客体及可以对客体采取的操作。 可对客体操作的能力称为访问权(Access Right),访问权定义为有序对的形式。一个域是访 问权的集合。如域 X 有访问权,那在域 X 下运行的进程可对文件 A 执行读写,但不能执行 任何其他的操作。 保护域并不是彼此独立的,它们可以有交叉,即它们可以共享权限。进程在执行过程中, 可以根据情况在不同的保护域中切换,不同的系统对切换规则的定义不同。如图 4.1 所示,域 X 和域 Y 对打印机都有写的权限,发生访问权交叉。 保护域 X. 保护域 Y. <文件 A,{读,写}> <文件 B,{执行}>. <文件 C,{读}> <打印机,{写}>. 图 4.1 有重叠的保护域. 一般客体的保护机制有两种:自主访问控制(Discretionary Access Control)和强制访问控 制(Mandatory Access Control)。 所谓的自主访问控制是一种最为普遍的访问控制手段,用户可以按自己的意愿对系统的 参数做适当修改以决定哪些用户可以访问他们的文件,亦即一个用户可以有选择地与其他用户 共享他的文件。用户有自主的决定权。 所谓强制访问控制是指用户与文件都有一个固定的安全属性,系统用该安全属性来决定 一个用户是否可以访问某个文件。安全属性是强制性的规定,它是由安全管理员或操作系统根 据限定的规则确定的,用户或用户的程序不能加以修改。如果系统认为具有某一个安全属性的 用户不适于访问某个文件,那么任何人(包括文件的拥有者)都无法使该用户具有访问该文件 的权利。下面将分别介绍自主访问控制和强制访问控制。 (1)自主访问控制。一个安全的操作系统需要具备访问控制机制,它基于对主体及主体 所属的主体组的识别来限制对客体的访问,还要校验主体对客体的访问请求是否符合存取控制 规定来决定对客体访问的执行与否。这里所谓的自主访问控制,是指主体可以自主地 (也可 能是单位方式)将访问权或访问权的某个子集授予其他主体。 为了实现完备的自主访问控制系统,由访问控制矩阵提供的信息必须以某种形式存放在 系统中。访问矩阵中的每行表示一个主体,每一列则表示一个受保护的客体,而矩阵中的元素 则表示主体可以对客体的访问模式。目前,在系统中访问控制矩阵本身都不是完整地存储起来, 因为矩阵中的许多元素常常为空。空元素将会造成存储空间的浪费,而且查找某个元素会耗费 很多时间。实际上常常是基于矩阵的行或列来表达访问控制信息。 (2)强制访问控制。自主访问控制是保护系统资源不被非法访问的一种有效手段,但是 由于它的控制是自主的,所以也带来了问题。于是,人们又提出了一种更强有力的访问控制手.

(4) 第 4 章 操作系统的安全. 51. 段,这就是强制访问控制。 在自主访问控制方式中,某一合法用户可以任意运行一程序来修改他拥有的文件存取控制 信息,而操作系统无法区分这种修改是用户自己的操作还是恶意攻击的特洛伊木马的非法操作。 通过强加一些不可逾越的访问限制,系统可以防止某一些类型的特洛伊木马的攻击。在 强制访问控制方式中,系统对主体和客体都分配一个特殊的安全属性,而且这一属性一般不能 更改。系统通过比较主体和客体的安全属性来决定一个主体是否能够访问某个客体。用户的程 序不能改变他自己及任何其他客体的安全属性。强制访问控制还可以阻止某个进程共享文件, 并阻止通过一个共享文件向其他进程传递信息。 强制访问控制施加给用户自己客体的严格的限制,也使用户受到自己的限制。但是,系 统为了防范特洛伊木马,必须要这么做。即便是不存在特洛伊木马,强制访问控制也有用,它 可以防止在用户无意或不负责任的操作时,泄露机密信息。强制访问控制对专用的或简单的系 统是有效的,但对通用、大型系统并不那么有效。一般强制访问控制采用以下几种方法: 1)限制访问控制。自主控制方式允许用户程序来修改他拥有文件的存取控制表,这为非 法者带来可乘之机。因而,系统可以不提供这一方便。在这类系统中,用户要修改存取控制表 的唯一途径是请求一个特权系统调用。该调用的功能是依据用户终端输入的信息,而不是靠另 一个程序提供的信息来修改存取控制信息。 2)过程控制。在通常的计算机系统中,只要系统允许用户自己编程,就没办法杜绝特洛 伊木马。但可以对其过程采取某些措施,这种方法称为过程控制。例如,警告用户不要运行系 统目录以外的任何程序;提醒用户注意,如果偶然调用一个其他目录的文件时,不要做任何动 作等。需要说明的一点是,这些限制取决于用户本身执行与否,因而自愿的限制很容易变成实 际上没有限制。 3)系统限制。显然,实施的限制最好是由系统自动完成。要对系统的功能实施一些限制, 比如限制共享文件,但共享文件是计算机系统的优点,所以是不可能加以完全限制的。再者, 就是限制用户编程。事实上,有许多不需编程的系统都是这样做的。 不过这种做法只适用于某些专用系统。在大型的通用系统中,编程能力是不可能去除的; 在网络中也不行,在网络中一个没有编程能力的系统可能会接收另一个具有编程能力的系统发 出的程序。有编程能力的网络系统可以对进入系统的所有路径进行分析,并采取一定措施,这 样就可以增加特洛伊木马攻击的难度。 4.1.3 操作系统安全级别的划分 信息安全产品和信息系统固有的敏感性及特殊性,直接影响着国家的安全利益和经济利 益。因此,各国政府纷纷采取颁布标准、实行测评和认证制度等方式,对信息技术和安全产品 的研制、生产、销售、使用及进出口实行严格、有效的管理与控制,并建立了与自身的信息化 发展相适应的测评认证体系。 国外从 20 世纪 70 年代起就开展了建立安全保密准则的工作。美国国防部于 1983 年提出 并于 1985 年批准的“可信任计算机标准评估准则”(TCSEC)为计算机安全产品的评测提供 了测试准则和方法,指导信息安全产品的制造和应用,并做出了关于网络系统、数据库等的安 全解释。由于 Internet 技术的广泛应用,信息系统的安全问题日益严重,新的问题也不断涌现。 1992 年 12 月,美国颁布了新的联邦评测准则(K)来替代 80 年代颁布的 TCSEC 准则。 FC 中引入了“保护轮廓”(PP)这一重要概念,分级方式与 TCSEC 不同,每个轮廓都包括功 能部分、开发保证部分和评测部分。.

(5) 电子商务安全与支付. 52. TCSEC 将计算机系统的安全可信性分为 7 个级别: (l)D:最低安全性。 (2)C1:自主存取控制。 (3)C2:较完善的自主存取控制(DAC)、审计。 (4)Bl:强制存取控制(MAC)。 (5)B2:良好的结构化设计、形式化安全模型。 (6)B3:全面的访问控制、可信恢复。 (7)Al:形式化认证。 FC 充分突出“保护轮廓”,将评估过程分为“功能”和“保证”两部分,并将评估等级 分为 EAL1~EAL7 共 7 级。每一级均需要评估 7 个功能类,即配置管理、分发和操作、开发 过程、指导文献、生命期的技术支持、测试、脆弱性评估。 就 TCSEC 评估来说,达到 B 级标准的操作系统即称为安全操作系统。在 B 级的安全计算 机系统中,安全级这个概念包含级别和类别两方面。安全级的级别之间具有可比性,如同 2 级大于 1 级一样;而安全级的类别如同所属的部门,就像某人所属的单位,这个单位可大到整 个跨国公司,也可小到所属的最小团体,甚至就是他本人。这样一种安全级定义,在计算机系 统中就可以将一个用户定义成“属于哪几个部门的、级别为几的用户”,这就是该用户的安全 级,凡是该用户运行的进程均具有这个安全级。同样,在计算机系统中也可以将一个文件(主 页)定义成“属于哪几个部门的、级别为几的文件(主页)”,这就是该文件的安全级。 当 用户的安全级与文件(主页)的安全级满足一定的存取控制规则时,该用户才可以对该文件(主 页)进行相应的读写操作。这样,便实现了在计算机系统中对用户和文件(主页)的层次化分 类管理。 目前,较流行的几种操作系统的安全性比较如表 4.1 所示。 表 4.1 几种操作系统的安全性比较 操作系统类型. 安全级别. DOS. D. UNIX Ware2.1/ES. B2. Windows NT 4.0. C2. Windows 2000. C2. Solaris. C2. 4.2. UNIX 系统的安全性. UNIX 是一种适用于多种硬件平台的多用户、多任务操作系统。最初的 UNIX 操作系统 是 1969 年由美国 AT&T 公司贝尔实验开发出来的。从 1969 年至今,它经历了一个从开发、 发展、不断演变和获得广泛应用,以至逐渐成为网络服务器和工作站的最重要的操作系统平台 的过程。由于 Linux 是一种与 UNIX 安全兼容的操作系统,所以下面我们所讨论的 UNIX 系统 的一般安全性问题基本上也适用于目前广泛流行的 Linux 系统。 4.2.1 口令与账号安全 用户账号和口令是系统安全的第一道防线。对入侵者来说,进入系统最直接的方法就是.

(6) 第 4 章 操作系统的安全. 53. 获取用户账号和口令。由于有些用户账号和口令安全性差、比较脆弱,很容易被猜中,这给入 侵者提供了可乘之机。本节主要阐述设置安全口令和账号的一些要点。 1.UNIX 登录认证机制 UNIX 的用户身份认证采用账号/口令的方案。用户提供正确的账号和口令后,系统才能 确认他的合法身份。一般来说,通过终端登录 UNIX 系统的过程可描述如下: (1)init 确保为每个终端连接(或虚拟终端)运行一个 getty 程序。 (2)getty 监听对应的终端并等待用户准备登录。 (3)getty 输出一条欢迎信息(保存在/etc/issue 中),并提示用户输入用户名,最后运行 login 程序。 (4)login 以用户作为参数,提示用户输入口令。 (5)如果用户名和口令相匹配,则 login 程序为该用户启动 shell;否则,login 程序退出, 进程终止。 (6)init 程序注意到 login 进程已终止,则会再次为该终端启动 getty。 在上述过程中,唯一的新进程是 init 利用 fork 系统调用建立的过程,而 getty 和 login 仅 仅利用 exec 系统调用替换了正在运行的进程。 由于其后建立的进程均是由 shell 建立的子进程, 这些子进程将继承 shell 的安全性属性,包括 uid 和 gid。 UNIX 在文本文件/etc/passwd(口令文件)中保存基本的用户数据库,其中列出了系统中 的所有用户及其相关信息。在默认情况下,系统在该文件中保存加密后的口令。/etc/passwd 文件是 UNIX 安全的关键文件之一,该文件就用于在上述用户登录过程中校验用户的口令,它 列出所有有效用户名及其相关信息。文件的每个用户一行,每行的一般格式为“LOG-NAME: PASSWORD:UID:GID:USERINFO:HOME:SHELL”,即每行包括用“:”分隔开 7 个域,其中每个域的含义如下:用户名、加密格式的口令、用户 ID、用户所在组的 ID、全名 或账户的其他说明、用户主(home)目录、用户登录使用的 shell(登录时运行的程序)。 因为系统中的任何用户均可以读取/etc/passwd 文件的内容,因此所有人均可以读取任意一 个用户的口令字段,即 passwd 文件每行的第二个字段。尽管口令是加密保存的,但是在现有 黑客技术条件下,这种加密后的口令并不难以被黑客破译,尤其是简单的口令,更可以不花大 量时间就可以破译。 为了加强安全,许多 UNIX 系统利用影像口令以避免在口令文件中保存加密的口令。它 们将口令保存在单独的/etc/shadow 文件中,只有 root 才能读取该文件,而/etc/passwd 文件只 在第二个字段中包含特殊的标记。 2.口令安全 口令是账号安全最关键的部分。如果入侵者获得一个用户的口令,他就可以轻易地登录 到系统上,并且拥有这个用户的所有权限。如果超级用户的口令被窃取,后果将不堪设想:入 侵者控制了整个系统,他可以为所欲为,可以获取系统上的任何信息,还可以将系统随时摧毁。 因此,选择一个安全的口令是非常必要的。 (1)选择安全的口令。一个好的口令应当至少有 6 个字符长,最好是大小写字母混合, 并且口令中最好有一些非字母(如数字、标点符号、控制字符等),还要好记一些。选择口 令的一个好方法是将两个不相关的词用一个数字或控制字符相连,并截断为 8 个字符。当然, 如果你能记住 8 位乱码自然更好。另外,系统管理员一定要用 8 位口令,而且有~、!、@、 #、$、%、<、>、*、&、?、:、”、{、}等符号。下面列出使用安全口令应该避免的几种 情况:.

(7) 54. 电子商务安全与支付. 1)使用用户名(账号)作为口令。 尽管这种方法在便于记忆上有着相当的优势,可是 在安全上几乎不堪一击。几乎所有以破解口令为手段的黑客软件,都首先会将用户名作为口令 的突破口,而破解这种口令几乎不需要时间。在一个用户数超过 1000 的计算机网络中,一般 可以找到 10~20 个这样的用户。 2)使用用户名(账号)的变换形式作为口令。将用户名颠倒或者加前后缀作为口令,既 容易记忆又可以防止许多黑客软件。不错,对于这种方法的确是有相当一部分黑客软件无用武 之地,不过那只是一些初级的软件。 比如说著名的黑客软件 John,如果你的用户名是 fool, 那么它在尝试使用 fool 作为口令之后,还会试着使用诸如 fool123、fooll、loof、loof123、lofo 等作为口令。只要是你想得到的变换方法,John 也会想得到,它破解这种口令,几乎也不需 要时间。 3)使用自己或亲友的生日作为口令。这种口令有着很大的欺骗性,因为这样往往可以得 到一个 6 位或 8 位的口令,但实际上可能的表达方式只有 100×12×31=37200 种,即使再考 虑到年月日三者共有 6 种排列顺序,一共也只有 37200×6=223200 种。 4)使用常用的英文单词作为口令。这种方法比前几种方法要安全一些。如果你选用的单 词是十分偏僻的,那么黑客软件就可能无能为力了。不过黑客多有一个很大的字典库,一般包 含 10 万到 20 万的英文单词以及相应的组合。如果你不是研究英语的专家,那么你选择的英文 单词恐怕十之八九可以在黑客的字典库中找到。如果是那样的话,以 20 万单词的字典库计算, 再考虑到一些 DES(数据加密算法)的加密运算,每秒 1800 个的搜索速度也不过只需要 110 秒。 5)使用 5 位或 5 位以下的字符作为口令。从理论上来说,一个系统包括大小写、控制符 等可以作为口令的一共有 95 个,5 位就是 7737809375 种可能性。使用 P200 破解虽说要多花 些时间,但最多也只需要 53 个小时,可见 5 位的口令是很不可靠的。而 6 位口令也不过将破 解的时间延长到一周左右。 (2)口令安全使用策略。选择安全的口令是非常必要的,但仅有这一点还远远不够。为 进一步提高口令的安全性,还必须要求用户采用正确的使用策略。下面是安全使用口令需要注 意的一些要点: 1)口令不能写在笔记本或书上,也不能存放在计算机上的某个文件中。因为无论是记在 纸上还是存到文件中,它们的安全性都大大降低。所以把口令记在脑里才是最可靠、最安全的。 2)为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边。 3)用户口令必须经常更换。一般来说,一个月或更短时间就必须更换一次口令,几个月 甚至半年、一年都不换口令的用户是严重缺乏安全意识的。系统管理员应该定期通知、严格要 求用户及时更改口令,以保证口令安全。 4)不应在不同机器中使用同一个口令,特别是在不同级别的用户上使用同一口令会引起 全盘崩溃。 3.账号安全 攻击都是从在系统中获得一个账号开始的。所以,设置安全账号、安全使用账号,是保 证 UNIX 系统安全任务中最重要的一项工作。一般而言,保证账号安全要注意以下几个问题: (1)谨慎使用 root 账号。root 用户在系统上拥有至高无上的权利,它可以读、写任何文件, 运行任何程序。由于 root 用户可以完全控制整个系统,所以获得 root 用户的访问权限是“黑客” 们的最高愿望。系统管理员应该记住:不要滥用 root 账号,只在必须的时候才使用 root 账号, 而一般情况下应该使用普通用户账号。经常以 root 身份运行容易给入侵者带来可乘之机。.

(8) 第 4 章 操作系统的安全. 55. (2)经常更换账号口令。再安全的口令在经过一段时间后也会变得不安全,经常更换口 令可以加强系统的安全性。然而,用户一般都很少更换口令,为此可以采用强制周期性更换口 令的办法,防止因某一口令长期使用而引起的安全隐患。 (3)不要保留旧账号。一些规模庞大的 UNIX 系统可能具有许多旧账号,这些旧账号的 用户可能已离开该组织或已搬迁到别的地方,账号长期没人使用,所以这类账号便成为了不安 全的因素。为此,创建的账号应设置截止日期,若发现有超过截止日期的账号,可以同该用户 联系,确定是否删除它。 (4)注意账号有效期。在拥有大量用户的系统中,经常有一些长期无人使用的账号。这 些账号是系统潜在的安全漏洞,入侵者往往可以通过这些账号的不安全口令来攻击系统,而且 由于账号长期无人使用,使得入侵者的攻击行为不易被及时发现。因此,系统管理员必须给每 个账号设置使用期限。这个期限应该长短合适,既要能禁止废弃账号的使用,又要避免给用户 带来不方便。账号期限可以在 passwd 文件中设置,然后可以使用 shell 脚本程序定期地检查每 个账号的有效期。 对于临时出差、休假的用户,可暂时将他的账号禁用(用“*”号替换 passwd 文件中该 账号的加密口令即可)。这样就可以防止其他人使用该账号,等该用户回来后,再把账号恢复。 (5)删除默认账号。许多 UNIX 系统中都设置默认账号,有时甚至存在默认口令或者没 有口令的账号。所以,在刚安装完系统时,对这些默认账号要及时设置或更改口令或者直接删 除。同时,不要随便设置组和组账号。 (6)guest 账号。为了方便外单位的临时用户,很多系统都提供了一个 guest 账号。 guest 账号是为短期使用系统的用户提供的,一般情况下很少使用。最安全的处理方法是,只在需要 时才建立 guest 账号,等账号不再需要时,就立即把它从系统中删掉。不能把 guest 账号的口 令设置得太简单,如 guest、visitor 等。 4.2.2 文件系统安全 1.UNIX 文件系统概述 UNIX 文件系统是 UNIX 系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁 盘空间划分为每 1024 个字节一组,称为 block(也有用 512 字节为一块的,如 SCOXENIX)。 编号从 0 到整个磁盘的最大块数,全部块可划分为 4 个部分。块 0 称为引导块,文件系统不用 该块;块 1 称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其他两部分的大小; 从块 2 开始是 i 节点表,i 节点表中含有 i 节点,表的块数是可变的(后面将进行讨论);i 节 点表之后是空闲存储块(数据存储块),可用于存放文件内容。 文件的逻辑结构和物理结构是十分不同的,逻辑结构是用户敲入 cat 命令后所看到的文件, 用户可得到表示文件内容的字符流;物理结构是文件实际上如何存放在磁盘上的存储格式。用 户认为自己的文件是边界的字符流,但实际上文件可能并不是以边界的方式存放在磁盘上的, 长于 1 块的文件通常将分散地存放在盘上。然而当用户存取文件时,UNIX 文件系统将以正确 的顺序取各块,给用户提供文件的逻辑结构。 当然,在 UNIX 系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑 结构。这就涉及 i 节点了。i 节点是一个 64 字节长的表,含有有关一个文件的信息,其中有文 件大小、文件所有者、文件存取许可方式,以及文件为普通文件、目录文件还是特别文件等。 在 i 节点中最重要的一项是磁盘地址表。该表中有 13 个块号,前 10 个块号是文件前 10 块的 存放地址。这 10 个块号能给出一个至多 10 块长的文件的逻辑结构,文件将以块号在磁盘地址.

(9) 56. 电子商务安全与支付. 表中出现的顺序依次取相应的块。当文件长于 10 块时又怎样呢?磁盘地址表中的第 11 项给出 一个块号,这个块号指出的块中含有 256 个块号,至此,这种方法满足了至多长于 266 块的文 件(272384 字节)。如果文件大于 266 块,磁盘地址表的第 12 项给出一个块号,这个块号指 出的块中含有 256 个块号,这 256 个块号的每一个块号又指出一块,块中含 256 个块号,这些 块号才用于取得文件的内容。磁盘地址中和第 13 项索引寻址方式与第 12 项类似,只是多一级 间接索引。这样,在 UNIX 系统中,文件的最大长度是 16842762 块,即 17246988288 字节。 有幸的是 UNIX 系统对文件的最大长度(一般为 1~2MB)加了更实际的限制,使用户不会无 意中建立一个用完整个磁盘所有块的文件。 文件系统将文件名转换为 i 节点的方法实际上相当简单。一个目录实际上是一个含有目录 表的文件,对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件 相应的 i 节点号。当用户敲入 cat xxx 时,文件系统就在当前目录表中查找名为 xxx 的入口项, 得到与文件 xxx 相应的 i 节点号,然后开始取含有文件 xxx 内容的块。 2.文件许可权 文件属性决定了文件的被访问权限,即准能存取或执行该文件。用 ls-1 可以列出详细的 文件信息,包括了文件许可、文件联结数、文件所有者名、文件相关组名、文件长度、上次存 取日期和文件名。其中文件许可分为 3 部分,第一个 rwx 表示文件属主的访问权限;第二个 rwx 表示文件同组用户的访问权限;第三个 rwx 表示其他用户的访问权限。若某种许可被限制 则相应的字母换为。 在许可权限的执行许可位置上,可能是其他字母,如 s、S、t、T。s 和 S 可出现在所有者 和同组用户许可模式位置上,与特殊的许可有关;t 和 T 可出现在其他用户的许可模式位置上, 与“粘贴位”有关而与安全无关。小写字母(x、s、t)表示执行许可为允许,负号或大写字 母(-、S 或 T)表示执行许可为不允许。 改变许可方式可使用 chmod 命令,并以新许可方式和该文件名为参数。新许可方式以 3 位八进制数给出,r 为 4,w 为 2,x 为 1。如 rwxr-xr-为 754。 改变文件的属主和组员可用 chown 和 chgrp,但修改后原属主和组员就无法修改回来了。 3.目录许可权 在 UNIX 系统中,目录也是一个文件,用 ls-1 列出时,目录文件的属性前面带一个 d。目 录许可也类似于文件许可,用 ls 列目录要有读许可,在目录中增删文件要有写许可,进入目 录或将该目录作为路径分量时要有执行许可,故要使用任意一个文件,必须有该文件及找到该 文件的路径上所有目录分量的相应许可。仅当要打开一个文件时,文件的许可才开始起作用, 而 rm、mv 只要有目录的搜索和写许可,不需要文件的许可,这一点应注意。 4.设备文件的安全考虑 UNIX 系统与系统上各种设备之间的通信通过特别文件即设备文件来实现。就程序而言, 磁盘是文件,Modem 是文件,甚至内存也是文件。所有连接到系统上的设备都在/dev 目录中 有一个文件与其对应。当在这些文件上执行 I/O 操作时,由 UNIX 系统将 I/O 操作转换成实际 设备的动作。将设备处理成文件,使得 UNIX 程序独立于设备,即程序不必一定要了解正在使 用的设备的任何特性,存取设备也不需要记录长度、块大小、传输速度、网络协议等这样一些 信息,所有烦人的细节由设备驱动程序去关心考虑。要存取设备,程序只需打开设备文件,然 后作为普通的 UNIX 文件来使用。 从安全的角度来看,上述处理方法很好,因为在任何设备上进行的 I/O 操作只经过了少量 的渠道(即设备文件)。用户不能直接地存取设备,所以如果正确地设置了磁盘分区的存取许.

(10) 第 4 章 操作系统的安全. 57. 可,用户就只能通过 UNIX 文件系统存取磁盘。文件系统有内部安全机制(文件许可)。 不幸的是,如果磁盘分区设置得不正确,任何用户都能够写一个程序读磁盘分区中的每 个文件。其做法很简单:读 i 节点,然后以磁盘地址表中块号出现的顺序依次读这些块号指出 的存有文件内容的块。故除了 root 以外,绝不要使磁盘分区对任何人可写。因为像所有者、 文件存取许可方式这样一些信息存放于 i 节点中,任何人只要具有已安装分区的写许可,就能 设置任何文件的 SUID 许可,而不管文件的所有者是谁,也不必用 chmod()命令,还可避过系 统建立的安全检查。 以上所述对内存文件 mem、kmem 和交换文件 swap 也是一样的,这些文件含有用户信息, 一个精心设计的程序可以将用户信息提取出来。要避免磁盘分区(以及其他设备)可读可写, 应当在建立设备文件前先用 umask 命令设置文件,建立屏蔽值。不允许除 root 外的任何用户 读或写盘分区的原则有一个例外,即一些程序(通常是数据库系统)要求对磁盘分区直接存取。 解决这个问题的经验是磁盘分区应当由这种程序专用(不安装文件系统),而且应当告知使用 这种程序的用户,文件安全保护将由程序自己而不是 UNIX 文件系统完成。 5.安装和拆卸文件系统 UNIX 文件系统是可安装的,这意味着每个文件系统都可以连接到整个目录树的任意节点 上(根目录总是被安装上的)。安装文件系统的目录称为安装点。/etc/mount 命令用于安装文 件系统,用这条命令可将文件系统安装在现有目录结构的任意处。 安装文件系统时,安装点的文件和目录都是不可存取的,因此未安装文件系统时,不要 将文件存入安装点目录。文件系统安装后,安装点的存取许可方式和所有者将改变为所安装的 文件根目录的许可方式和所有者。 从安全的角度来讲,可安装系统的危险来自用户可能请求系统管理员为其安装用户自己 的文件系统。如果安装了用户的文件系统,则应在允许用户存取文件系统前先扫描用户的文件 系统,搜索 SUID/SGID 程序和设备文件。在除了 root 外,任何人不能执行目录中安装的文件 系统,用 find 命令列出可疑文件,删除不属于用户所有的文件的 SUID/SGID 许可。用户的文 件系统用完后,可用 umount 命令卸下文件系统,仅将安装点目录的所有者改回 root,存取许 可改为 755。 6.文件系统安全性检查 定期对文件系统安全性进行检查是保证系统安全的一个重要措施。检查内容包括:是否 存在普通用户可以随意修改的文件、被授予过多权限的文件以及可以被入侵者访问的文件;是 否出现一些陌生的新文件;配置文件是否被未授权用户修改等。 对文件系统安全性进行检查的一个常用工具是 find。该命令可以用文件名称、类型、存取 权限、所有者、修改时间等选项来查找特定属性的文件。find 命令将搜索结果输出到屏幕或文 件中。 4.2.3 系统管理员的安全策略 1.加强系统管理员的安全意识 (1)保持系统管理员个人的登录安全。若系统管理员的登录口令泄密了,则窃密者离窃 取 root 只有一步之遥。因为系统管理员经常作为 root 运行程序,如果窃密者非法进入到系统 管理员的账户,将用特洛伊木马替换系统管理员的某些程序,毫不知情的系统管理员就会将这 些已被替换的程序作为 root 运行。正是因为这个原因,在 UNIX 系统中,管理员的账户最容 易受到攻击。系统管理员作为 root 运行程序时应当特别小心。下列一些指导规则可使系统管.

(11) 58. 电子商务安全与支付. 理员保持个人登录安全: 1)不要作为 root 或以自己的登录账户运行其他用户的程序,首先用 su 命令进入用户的 账户。 2)绝不要把当前工作目录放在 PATH 路径表的前边,那样实际是招引特洛伊木马。当系 统管理员用 su 命令进入 root 时,他的 PATH 将会改变,就让 PATH 保持原样,以避免特洛伊 木马的侵入。 3)敲入/bin/su 执行 su 命令。若有 su 源码,将其改成必须用全路径名运行(即 su 要确认 argv[0]的头一个字符是“/”才运行)。随着时间的推移,用户和管理员将养成敲入/bin/su 的习惯。 4)不要未注销账户就离开终端,特别是作为 root 用户时更不能这样。当系统管理员作为 root 用户时,命令提示符是“#”,这个提示符对某些人来说可能是个红灯标志。 5)不允许 root 在除控制台外的任何终端登录(这是 login 编译时的选项),如果有 login 源码,就将登录名 root 改成别的名,使破坏者不能在 root 登录名下猜测各种可能的口令,从 而非法进入 root 的账户。 6)经常改变 root 的口令。 7)确认 su 命令记下的企图运行 su 的记录/usr/adm/sulog,该记录文件的许可方式是 600, 并属 root 所有。这是非法者喜欢选择来替换成特洛伊木马的文件。 8)不要让某人作为 root 运行,哪怕是几分钟,即使有系统管理员在一旁注视着也不行。 (2)保持整个系统的安全。 1)保持账号安全。记录本系统的用户及其授权使用的系统;查出久未使用的登录户,并 取消该账户;确保没有无口令的登录账户。 2)保持口令安全。 3)设置口令时效。如果能存取 UNIX 的源码,将加密口令和信息移到仅对 root 可读的文 件中,并修改系统的口令处理子程序,这样可增加口令的安全性。修改 passwd,使 passwd 能 删去口令打头和末尾的数字,然后根据 spell 词典和/etc/passwd 中用户的个人信息检查用户的 新口令,也检查用户新口令中子串等于登录名的情况。如果新口令是 spell 词典中的单词,或 /etc/passwd 中的入口项的某项值,或是登录名的子串,passwd 将不允许用户改变口令。 4)保持文件系统安全。检查所有系统文件的存取许可,任何具有 SUID 许可的程序都是 非法者想偷换的选择对象;要特别注意设备文件的存取许可;要审查用户目录中具有系统 ID/ 系统小组的 SUID/SGID 许可的文件;在未检查用户的文件系统的 SUID/SGID 程序和设备文件 之前,不要安装用户的文件系统;将磁盘的备份存放在安全的地方。 5)启动记账系统。 6)查出不寻常的系统使用情况,如大量地占用磁盘、大量地使用 CPU 时间、大量的进程、 大量地使用 su 的企图、大量无效的登录、大量的到某一系统的网络传输、奇怪的 uucp 请求等。 7)修改 Shell,使其等待了一定时间而无任务时终止运行。 8)修改 login,使其打印出用户登录的最后时间,三次无效登录后,将通信线挂起,以便 系统管理员能检查出是否有人试图非法进入系统。确保 login 不让 root 在除控制台外的任何地 方登录。 9)修改 su,使得只有 root 能通过 su 进入某一户头。 10)当安装来源不可靠的软件时,要检查源码和 makefile 文件,查看特殊的子程序调用 或命令。.

(12) 第 4 章 操作系统的安全. 59. 2.加强用户安全意识 UNIX 系统管理员的职责之一是保证用户安全,这其中一部分工作是由用户的管理部门来 完成的,但是系统管理员作为系统运行的主要负责人,有责任发现和报告系统的安全问题。避 免系统安全事故的方法是预防性的。当用户登录时,其 shell 在给出提示前先执行/etc/profile 文件,要确保该文件中的 PATH 指定最后搜索当前工作目录,这样将减少用户运行特洛伊木 马的机会。 将文件建立屏蔽值的设置放在该文件中也是很合适的,可将其值设置成至少将防止用户 无意中建立任何人都能写的文件。要小心选择此值,如果限制太严,用户很可能会在自己 的.profile 中重新调用 umask 以抵制系统管理员的意愿。如果用户大量使用小组权限共享文件, 系统管理员就一定要设置限制小组存取权限的屏蔽值。 系统管理员可每星期随机抽选一个用户,将读用户的安全检查结果(用户的登录情况简 报、SUlD/SGID 文件列表等)发送给他的管理部门和他本人。这样做,主要有 4 个目的: (1)大多数用户会收到至少有一个文件检查情况的邮件,这将引起用户考虑安全问题(虽 然并不意味着用户们会采取加强安全的行动)。 (2)有大量可写文件的用户将一星期得到一次邮件,直到他们取消可写文件的写许可为 止。冗长的邮件信息也许足以促使这些用户采取措施,删除文件的写许可。 (3)邮件将列出用户的 SUID 程序,引起用户注意自己有 SUID 程序,使用户知道是否 有不是自己建立的 SUID 程序。 (4)送安全检查表可供用户管理自己的文件,并使用户知道对文件的管理关系到数据安 全。如果系统管理员打算这样做,应事先让用户知道,以便他们了解安全检查邮件的目的。发 送邮件是让用户具有安全意识,不要抱怨发送邮件。 管理意识是提高安全性的另一个重要因素。如果用户的管理部门对安全要求不强烈,系 统管理员也可能忘记强化安全规则。最好让管理部门建立一套每个人都必须遵守的安全标准, 如果系统管理员在此基础上再建立自己的安全规则就进一步强化。加强用户意识,让用户明确 信息是有价值的资产。 系统管理员应当使安全保护方法对用户尽可能地简单,提供一些提高安全的工具,如公 布锁终端的 lock 程序,让用户自己运行 secure 程序,将 pwexp(检查用户口令信息的程序) 放入/etc/profile 中,使用户知道自己的口令时间。多教给用户一些关于系统安全的知识,确保 用户知道自己的许可权限和 umask 命令的设置值。如果注意到用户在做错事,就给他们一些 应当怎样做才对的提示。用户知道的关于安全的知识越多,系统管理员在保护用户利益方面做 的事就越少。. 4.3. Windows 系统的安全性. 4.3.1 Windows NT 的安全性 1.Windows NT 的安全模型 在 Windows NT 最初的设计规格书中,安全性就已经包括并渗透在整个操作系统中了。在 用户能对 Windows NT 的任一资源进行访问前,他们必须首先登录并被 Windows NT 所确认, 且在工作站和服务器层次中都要求有确认机制工作。获得最初级的资源保护并不要求和 Windows NT 服务器连接,Windows NT 能提供这种本地安全性是因为每一台机器都有一个服.

(13) 电子商务安全与支付. 60. 务器的账户和安全策略数据库的副本。这种安全机制包括控制谁能访问哪些对象(如文件和共 享打印机),决定某人针对某一对象能做什么和什么事件被审计。 Windows NT 4.0 于 1999 年 11 月通过了美国国防部 TCSEC C2 级安全认证,它具有身份 鉴别、自主访问控制、客体共享和安全审计等安全特性。为了支持这些安全特性,Windows NT 开发了专门的安全子系统。Windows NT 的安全子系统主要由本地安全授权(LSA)、安全账 户管理(SAM)和安全参考监视器(SRM)等组成,如图 4.2 所示。 事件日志 SAM. 审计日志. LSA. SRM 数据库. 安全策略. 本地安全策略数据库. 用户模式 核心模式. 审计记录. SRM. 图 4.2 Windows NT 的安全子系统. (1)登录进程。登录进程可以进行 3 种类型的登录。如果某个用户退出之后再次登录回 来,这个进程要取得用户的证明(用户名和口令),并且用安全账户管理器验证它。如果一个 用户已经登录,而且试图访问另一个系统中的其他资源,这个进程就会验证到那个系统的用户。 它还可以提供域间登录。 (2)本地安全授权(Local Security Authority,LSA)。本地安全授权部分提供了许多服 务程序,保障用户获得存取系统的许可权。它产生令牌、执行本地安全管理、提供交互式登录 认证服务、控制安全审查策略和由 SRM 产生的审查记录信息。 (3)安全账户管理(Security Account Manager,SAM)。安全账户管理部分保存 SAM 数据库,该数据库包含所有组和用户的信息。SAM 提供用户登录认证,负责对用户在 Welcome 对话框中输入的信息与 SAM 数据库中的信息比对,并为用户赋予一个安全标识符(SID)。 根据网络配置的不同,SAM 数据库可能存在于一个或多个 Windows NT 系统中。 (4)安全参考监视器(Security Reference Monitor,SRM)。安全参考监视器负责访问控 制和审查策略,由 LSA 支持。SRM 提供客体(文件、目录等)的存取权限,检查主体(用 户账户等)的权限,产生必要的审查信息。客体的安全属性由安全控制项(ACE) 来描述, 全部客体的 ACE 组成访问控制表(ACL)。没有 ACL 的客体意味着任何主题都可访问,而 有 ACL 的客体则由 SRM 检查其中的每一项 ACE,从而决定主体的访问是否被允许。 Windows NT 的安全子系统是一个集成子系统,而不是环境子系统,因为它影响整个 Windows NT 操作系统。安全子系统的目标是保护系统的所有组件,包括硬件、软件和存储在.

(14) 第 4 章 操作系统的安全. 61. 系统中的数据。Windows NT 操作系统中的任何东西都是对象,通过下面的方式控制对对象和 系统的访问: (1)Windows NT 根据附在每个对象上的访问控制列表(ACL)的定义控制谁能访问该 对象,可以访问该对象的用户就对其拥有操作的“权限”(Permission)。 (2)当系统工作时,Windows NT 可控制用户的动作,这称为“权利”(Right)。系统 管理员可以通过这些控制特别定义用户可以做什么和用户可以在哪里完成。 操作系统可以通过 这些控制保护对象免受非敌意的或恶意的重复使用与访问。 下面用标准《计算机信息系统安全保护等级划分准则》(GB 17895-1999)对 Microsoft Windows NT 4.0 操作系统(以下简称 Windows NT)的安全保护能力进行简单的分析。 (1)身份鉴别。Windows NT 有一个安全登录序列,用以防止不可信应用窃取用户名和 口令序列,并有用户账号和口令等管理能力。 (2)自主访问控制。Windows NT 使用自主访问控制,其控制粒度达到单个用户。Windows NT 的安全模式允许用户将访问控制施用到所有的系统客体和使用 Windows NT 自有 NTFS 文 件系统的全部文件。在应用或进程对任何客体打开一个句柄之前,Windows NT 安全系统透明 地验证该进程所具有的相应授权,确保所有文件只有在文件的所有者或系统管理员的允许下, 进程才能访问它。 (3)客体重用。在 Windows NT 的 TCB(Trusted Computing Base)接口,所有可见的资 源都通过以下方式寻址:①在分配时清除客体;②在分配时完全初始化客体;③只允许已写入 的部分被读取。 (4)审计。Windows NT 的 TCB 建立并维护有关身份鉴别、对所保护客体的访问、被保 护客体的删除、管理行为以及其他与安全有关事件的一份记录。审计功能是由以下部件完成的: LSA、安全访问监控器 SRM、保护服务器与 Executive 子系统、Event Logger 和 EventViewer。 审计信息记录在安全日志中,该日志只有在相应的“DAC 允许”取得之后才能被访问,或者 拥有 SE-SECURITY-NAME 特权。只有管理员才被允许对安全日志进行访问。 2.Windows NT 4.0 的安全服务 (1)验证服务。Windows NT 4.0 要求在访问系统资源(如文件、目录等)以前进行验证。 Windows NT 提供了一个引发安全性的键组合(Ctrl+Alt+Del 组合键)建立到操作系统的通信, 而且也只到操作系统,以进行验证。这种信任路径机制的使用,可以防止特洛伊木马程序截获 一个经过适当培训的用户的初始认证信息。 默认的验证机制是用户名和密码。Windows NT 提供了设置密码有效期限、强度(也就是 长度)、历史,以及使用时间的能力。Windows NT 还针对可猜测性或者字典攻击提供了检测 管理员密码的强度的密码过滤器。Windows NT 对存储在注册表中的密码信息进行了加密。这 样的手段降低了对密码文件的基于字典的猜测式攻击,无论该文件是在本地机上还是攻击者把 该文件复制到其他机器上。 Windows NT 把验证机制集成到全部安全操作和体系中。分布式应用程序使用 Windows NT 验证机制进行客户/服务器访问。这些验证机制使用挑战/响应协议,这个协议对密码进行 数学转换,密码绝不会以明文形式传递。结合前面提到的很难被欺骗的信任路径登录,经过认 真选择的用户密码是非常强大的。 (2)访问控制。Windows NT 提供两种形式的访问控制:对象许可和系统范围用户权利。 对象许可,自由选择访问控制对象的创建者可以设置它们。用户权利,在分配给组的时候,允 许一种基于角色的访问控制。Windows NT 的内核包括安全参考监视器(Security Reference.

(15) 62. 电子商务安全与支付. Monitor)在系统的一个单一模块上实现了这些访问仲裁控制。 在基于 Windows NT 的系统上的所有资源,例如文件(只有在 NTFS 上)、进程、打印 机、注册表或者通信设备,在对象监视器中都用一个对象来表示。在一个对象上执行指定操作 的许可存放在访问控制列表中(ACL,Access Control Lists)。ACL 提供了一个细粒度的访问 控制,它们允许对象所有者基于独立用户或者它们定义的用户组以及管理员定义的组指定许 可。为了管理上的方便,同时提供了本地组和全局组。关于 ACL,很重要的一点是它们是列 表,因此所有者可以在一个对象上定义的规则的数量是没有限制的。这样,所有者可以指定一 个非常全面的列表以完全实现他们希望实现的访问控制。 系统范围用户权利是一种赋予用户能力或权限来进行特定系统动作,而不会提供超出他们 需要的权限的方法,它可以分别管理 27 种权限。这些权利和限制在登录的时候包含在验证过的 用户名中,而且只能在用户被授予这种权限的时候才能改变(通常保留给网络管理员)。这意 味着没有应用程序能为一般的用户修改他们自己的安全性设置,无论是偶然还是病毒侵袭。 (3)责任(Accountability)。Windows NT 紧密绑定一个安全 ID(SID,Security ID)。 SID 唯一标识一个主机或域上的用户,它是同一次用户登录连接的进程相联系的访问记录的一 部分,它自动成为系统产生的任何审核记录的一部分。该服务提供了所有的用户可以进行的动 作的完整的责任——从文件访问到应用程序使用。跨越客户-服务器互动的责任由 Windows NT 客户-服务器访问验证维持。 (4)审核。Windows NT 提供了事件日志(Event Logging)。事件日志可以被配置在系 统级别和对象级别,记录安全相关事件。系统事件包括登录和退出登录、文件和对象访问、用 户权利的使用、用户和组管理、安全政策改变、重新启动和关机、系统错误,以及进程跟踪。 文件和对象审核可以被控制在单个文件、目录,或者如果需要的话,也可以是驱动器。这些事 件的组合足够满足可信任计算机安全评估标准(Trusted Computer Security Evaluation Criteria) 的要求。 (5)安全分区。Windows NT 通过维护进程间的地址分离提供了进程孤立。实体间的所 有访问和通信都通过仲裁接口。该仲裁是内核提供的,在一个用户编程不能使用的保护地址空 间中操作。所有的内核功能包含在一个单一的模块中,即安全参考模块(Security Reference Module)。这样,把所有安全相关的功能集中到一个从一开始就为安全而设计的单一模块中。 通过这个模块,Windows NT 内核控制任何应用程序可以访问的资源。例如,用一个普通用户 的许可运行的应用程序不能访问其他应用程序, 或者具有更高权限的用户保留的内存或者文件 系统资源内核自动强制实现这个功能。 Windows NT 在分配系统缓冲给一个用户之前,会清除该缓冲并且维护一个文件使用指针 以防止磁盘上文件块的重用,这样可以防止用户之间不可预测的信息流。另外, Windows NT 提供应用程序在返还交换空间给操作系统之前清除它们的能力,在系统关机的情况下也是一 样。这些是很重要的存储空间重用功能, 可以防止攻击者读取其他用户的应用程序留下的信息。 (6)完整性。Windows NT 使用 ACL 来防止对操作系统的访问。另外,Windows NT 具 有一种数字签名操作系统代码的机制,可以检验它是否被修改过,以及确保它来自某个特定的 作者或供应商。验证机制被用来保护通过互联网下载的应用程序,例如 ActiveX 控件或 Java。 同样的机制还要用于操作系统代码。 Windows NT 提供了一个标准的加密接口(CAPI)以及 CSP 软件,可以被用来提供完整 性服务以检验应用程序。深入到 Windows NT 文件系统(NTFS),容错磁盘驱动器可以同镜 像组、复制组或有奇偶校验的数据条组共同使用,以保证写到磁盘上的信息的可用性。.

(16) 第 4 章 操作系统的安全. 63. (7)机密性。Windows NT 提供了一个标准的加密接口(CAPI)和软件加密服务提供者 (CSP),可以被用于为广泛的产品提供加密。Windows NT 还提供了点对点隧道协议(PPTP) 和安全套接字层(SSL),以保护通信中的数据。通信安全还可以使用基于互联网 IPSPEC 标准 的第三方产品,Windows NT 通过安全 RPC 用分布式通信结构(DCOM)提供了对应用程序的 保护。Windows NT 的验证协议避免了在网络登录和客户/服务器验证中以明文发送密码信息。 4.3.2 Windows 2003 的安全性 1.Windows 2003 的安全模型 Windows 2003 安全模型的主要功能是用户身份验证和访问控制。 (1)用户身份验证。Windows 2003 安全模型包括用户身份验证的概念,这种身份验证 赋予用户登录系统访问网络资源的能力。在这种身份验证模型中,安全性系统提供了两种类型 的身份验证:交互式登录(根据用户的本地计算机或 Active Directory 账户确认用户的身份) 和网络身份验证(根据此用户试图访问的任何网络服务确认用户的身份)。为提供这种类型的 身份验证,Windows 2003 安全系统包括了 3 种不同的身份验证机制:Kerberos V5、公钥证书 和 NTLM(与 Windows NT 4.0 系统兼容)。 (2)基于对象的访问控制。通过用户身份验证,Windows 2003 允许管理员控制对网上资 源或对象的访问。Windows 2003 通过允许管理员为存储在 Active Directory 中的对象分配安 全描述符实现访问控制。安全描述符列出了允许访问对象的用户和组,以及分配给这些用户和 组的特殊权限。安全描述符还指定了需要为对象审核的不同访问事件。文件、打印机和服务都 是对象的实例。通过管理对象的属性,管理员可以设置权限、分配所有权以及监视用户访问。 管理员不仅可以控制对特殊对象的访问,也可以控制对该对象特定属性的访问。例如, 通过适当配置对象的安全描述符,用户可以被允许访问一部分信息,如只访问员工姓名和电话 号码而不能访问他们的家庭住址。 (3)Active Directory 和安全性。Active Directory 通过使用对象和用户凭据的访问控制提 供了对用户账户和组信息的保护存储。由于 Active Directory 不仅存储用户凭据还存储访问控 制信息,因此登录到网络的用户将同时获得访问系统资源的身份验证和授权。例如,用户登录 到网络时,Windows 2003 安全系统通过存储在 Active Directory 上的信息来验证用户。然后, 当用户试图访问网络上的服务时,系统检查由任意访问控制列表为这一服务定义的属性。由于 Active Directory 允许管理员创建组账户,因此管理员可以更有效地管理系统的安全性。例如, 通过调节文件属性,管理员可以允许组中的所有用户读取文件。这样,访问 Active Directory 中的对象以组成员为基础。 Windows 2003 具有公共密钥加密基础架构。证书服务(Certificate Services)是通过密码 保护的加密数据文件,其中包含的数据可用于对传输系统进行鉴别。证书服务可以分发、管理 和撤消数字证书。基于公司的证书服务器可以用于客户机与服务器之间的相互认证,或者对不 安全的连接中的数据进行加密,特别是对于 B to B 的电子商务。 Windows 2003 可以使用 IPSec 这种加密的 IP 协议来加密网络上的数据。同样,它可以在 更高的传输层上使用 SSL 和更新的 TLS 规范来加密数据。在 Active Directory 中,这两种方 式都可以被设置为强制性策略,以便特定的客户机和服务器之间能够进行通信。Windows 2003 的公共密钥加密是其 VPN 支持的基础。 但是该操作系统中最棒的加密措施是加密文件系统 (Encrypting File System,EFS),它允 许你使用只有个别用户和经过认证的恢复代理能够解密的密钥对保存在磁盘上的文件进行加密。.

(17) 64. 电子商务安全与支付. EFS 改善了容易受到侵袭的系统(如笔记本电脑)的安全性。除非数据窃贼知道用户的密码,否 则就不可能得到加密的数据。EFS 非常易于使用,加密不过是文件或文件夹的另一个属性。 总之,与传统版本的 Windows NT 系统相比,Windows 2003 系统采用了很多新的认证技 术和协议,访问控制也设计得更加安全和灵活,网络和单个系统在 Windows 2003 下要远比 Windows NT 4.0 更加安全。 2.Windows 2003 的安全特性 正因为采用上述的安全机制,Windows 2003 实现了如下特性:数据安全性、企业间通信 的安全性、企业和 Internet 的单点安全登录以及易用和良好扩展性的安全管理。 (1)数据安全性。Windows 2003 所提供的保证数据保密性和完整性的特性主要表现在以 下 3 个方面: 1)用户登录时的安全性。从用户登录网络开始,Windows 2003 借助 Kerberos 和 PKI 等 验证协议,提供了强有力的口令保护和单点登录。 2)网络数据的保护。本地网络中的数据是由验证协议来保证其安全性的。如果需要更高 的安全性,还可以通过 IPSec 的方法提供点到点的数据加密安全性。 3)存储数据的保护。可以采用数字签名来签署软件产品(防范运行恶意的软件)或加密 文件系统。加密文件系统基于 Windows 2003 中的 CryptoAPI 架构,实施 DES 加密算法,对 每个文件都采用随机密钥来加密。加密文件系统不但可以加密本地的 NTFS 文件或文件夹,还 可以加密远程的文件,不影响文件的输入输出。其恢复策略由 Windows 2003 的整体安全性策 略决定,具有恢复权限的管理员才可以恢复数据,但是不能恢复用来加密的密钥。 (2)企业间通信的安全性。Windows 2003 为不同企业之间的通信提供了多种安全协议和 用户模式的内置的集成支持,它的实现可以从以下 3 种方式中选择: 1)在目录服务中创建专门为外部企业开设的用户账号。通过 Windows 2003 的活动目录, 可以设定组织单元、授权或虚拟专用网等方式,并对它们进行管理。 2)建立域之间的信任关系。用户可以在 Kerberos 或公用密钥体制得到验证之后,远程访 问已经建立信任关系的域。 3)公用密钥体制。包括证书、智能卡和 PKI 证书可以用于提供用户身份确认和授权,企 业可以把通过电子证书验证的外部用户映射为目录服务中的一个用户账号。Windows 2003 支 持采用智能卡证书登录,同时还支持使用智能卡存储用于安全 E-mail 和其他与公用密码有关 的证书,包括客户机验证、登录机制、代码签名和保护 E-mail。 (3)企业和 Internet 的单点安全登录。当用户成功地登录到网络之后,Windows 2003 透 明地管理一个用户的安全属性,而不管这种安全属性是通过用户账号和用户组的权限规定(这 是企业网的通常做法)来体现的,还是通过数字签名和电子证书(这是 Internet 的通常做法) 来体现的。先进的应用服务器都应该能从用户登录时所使用的 SSPI 获得用户的安全属性,从 而使用户做到单点登录,访问所有的服务。 (4)易用的管理性和高扩展性。通过在活动目录中使用组策略,管理员可以集中地把所 需要的安全保护加强到某个容器(SDOU)的所有用户/计算机对象上。Windows 2003 包括了 一些安全性模板,既可以针对计算机所担当的角色来实施,也可以作为创建定制的安全性模板 的基础。 安全性管理的扩展性表现为,在活动目录中可以创建非常巨大的用户结构,用户可以根 据需要访问目录中存储的所有信息,但是用户所在的域或组织单元仍然是安全性的边界,对访 问的权限进行管制。.

(18) 第 4 章 操作系统的安全. 4.4. 65. 常见的操作系统安全漏洞. 2000 年,SANS 研究所和国家基础设施保护中心(NIPC)发布了一份文档,总结了 10 个 最严重的网络安全漏洞。数以千计的组织利用这份文档来安排他们工作的先后次序,以便能够 首先关掉最危险的漏洞。2001 年 10 月 1 日,SANS 研究所发布了新的列表更新,同时扩展了 以前的 TOP 10 列表,总结了 20 个最危险的安全漏洞,并将其分为三大类:通用漏洞、Windows 漏洞、UNIX 漏洞。 这份 SANS/FBI 最危险的 20 个漏洞列表是非常有价值的,因为大多数通过 Internet 对计 算机系统的入侵均可以追溯到这 20 个安全漏洞。例如对五角大楼 Solar Sunrise 系统的攻击、 Code Red 和 Nimda 蠕虫的快速传播,均可以归结为没有对这 20 个漏洞打补丁。 就是这少数几个软件漏洞成就了大多数的成功攻击,这是因为攻击者是机会主义者。他们使 用最简单和常用的方法,并使用最有效和广泛传播的攻击工具,去攻击众所周知的漏洞。他们寄 希望于有关组织不解决这些漏洞。他们扫描网络上有任何漏洞的系统,不做区分地加以攻击。 过去,系统管理员报告说他们没有弥补很多漏洞,是因为他们不知道哪些漏洞是最危险的, 而且他们太忙了,没有时间修补全部漏洞。一些扫描工具可以扫描 300 个或 500 个,甚至 800 个漏洞,这就分散了系统管理员的注意力。系统管理员应该保障所有系统免于最常见的攻击。 SANS/FBI 最危险的 20 个漏洞列表集合了大多数联邦安全机构、安全软件开发商、咨询公司、 大学中的安全组织、CERT/CC 和 SANS 研究所的首席安全专家的知识,以简化以上问题。 4.4.1 影响所有系统的漏洞 1.操作系统和应用软件的默认安装 大多数软件,包括操作系统和应用程序,都包括安装脚本或安装程序。这些安装程序的 目的是尽快安装系统,在尽量减少管理员工作的情况下,激活尽可能多的功能。为实现这个目 的,脚本通常安装了大多数用户所不需要的组件。软件开发商的逻辑是最好先激活还不需要的 功能,而不是让用户在需要时再去安装额外的组件。这种方法尽管对用户很方便,但却产生了 很多危险的安全漏洞,因为用户不会主动地给他们不使用的软件组件打补丁,而且很多用户根 本不知道实际安装了什么。很多系统中留有安全漏洞就是因为用户根本不知道安装了这些程 序。那些没有打补丁的服务为攻击者接管计算机铺平了道路。 对操作系统来说,默认安装几乎总是包括了额外的服务和相应的开放端口。攻击者通过 这些端口侵入计算机系统。一般说来,你打开的端口越少,攻击者用来侵入你计算机的途径就 越少。对于应用软件来说,默认安装包括了不必要的脚本范例,尤其对于 Web 服务器来说更 是如此,攻击者利用这些脚本侵入系统,并获取他们感兴趣的信息。绝大多数情况下,被侵入 系统的管理员根本不知道他们安装了这些脚本范例。 这些脚本范例的安全问题是由于他们没有 经历其他软件所必需的质量控制过程。事实上,这些脚本的编写水平极为低劣,经常忘记出错 检查,给缓冲区溢出类型的攻击提供了“肥沃的土壤”。 (1)受影响的系统:大多数操作系统和应用程序。请注意,几乎所有的第三方 Web 服务 器扩展都存在这样的样本文件,它们中间的大多数是极度危险的。 (2)如何判断是否易受攻击。如果用户使用了安装程序去安装系统或服务软件,而且没 有移走不需要的服务或没有安装所有的安全补丁,那么其系统是易于被黑客攻击的。即使用户 进行了附加的配置,也仍然是易受攻击的。用户应该对任何连到 Internet 上的系统进行端口扫.

(19) 66. 电子商务安全与支付. 描和漏洞扫描。在分析结果时,请记住以下原则:用户的系统应该提供尽可能少的服务,并安 装为提供这些服务所需的最少的软件包。 每一个额外的软件或服务都为攻击者提供了一个攻击 手段,这主要是由于系统管理员不会为他们不经常使用的软件打补丁。 (3)如何防范。卸载不必要的软件,关掉不需要的服务和额外的端口。这会是一个枯燥 而且耗费时间的工作。正是由于这个原因,许多大型组织都为他们使用的所有操作系统和应用 软件开发了标准安装指南。这些指南包括了为使系统有效运作所需的最少的系统特性的安装。 2.没有口令或使用弱口令的账号 大多数系统都把口令作为第一层和唯一的防御线。用户的 ID 是很容易获得的,而且大多 数公司都使用拨号的方法绕过防火墙。因此,如果攻击者能够确定一个账号名和密码,就能够 进入网络。易猜的口令或默认口令是一个很严重的问题,但一个更严重的问题是有的账号根本 没有口令。实际上,所有使用弱口令、默认口令和没有口令的账号都应从系统中清除。 另外,很多系统有内置的或默认的账号,这些账号在软件的安装过程中通常口令是不变 的。攻击者通常查找这些账号。因此,所有内置的或默认的账号都应从系统中移出。 (1)受影响的系统:所有通过用户 ID 和口令进行认证的操作系统或应用程序。 (2)如何判断是否易受攻击。为判断是否易受攻击,用户需要了解自己的系统上都有哪 些账号。应进行以下操作:①审计用户系统上的账号,建立一个使用者列表。别忘了检查例如 路由、连接 Internet 的打印机、复印机和打印机控制器等系统的口令;②制定管理制度,规范 增加账号的操作,及时移走不再使用的账号;③经常检查确认有没有增加新的账号,不使用的 账号是否已被删除;④对所有的账号运行口令破解工具,以寻找弱口令或没有口令的账号;⑤ 当雇员或承包人离开公司时,或当账号不再需要时,应有严格的制度保证删除这些账号。 (3)如何防范。应采取两个步骤以消除口令漏洞。第一步,所有没有口令的账号应被删 除或加上一个账号,所有弱口令应被加强。可悲的是,当用户被要求改变或加强他们的弱口令 时,他们经常又选择一个容易猜测的。这就导致了第二步,用户的口令在被修改后,应加以确 认。可以用程序来拒绝任何不符合安全策略的口令。 很多组织使用口令控制程序,以保证口令经常更改,而且旧口令不可重用。如果在使用 口令有效期,请确认用户在口令过期之前收到警告并有足够的时间改变口令。当面对以下信息 时“your password has expired and must be changed”,用户往往会选择一个坏口令。 Microsoft Windows 2003 在 Group Policy 中包括口令限制选项。系统管理员可以配置网络, 使口令有最小长度、最小和最大有效期等限制。限制口令的最小有效期是很重要的,如果没有 它,用户在被要求修改口令后会很快又把口令改回去。限制口令的最小有效期使得用户不得不 记住现在的口令,而不太会把口令改回去。 另外一个很重要的手段是,使用户了解为什么以及怎样去选择强壮的口令。选择口令最 常见的建议是选取一首歌中的一个短语或一句话,将这些短语的非数字单词的第一或第二个字 母加上一些数字来组成口令。在口令中加入一些标点符号将使口令更难破解。另一个避免没有 口令或弱口令的方法是采用其他认证手段,例如口令产生令牌(Password-generating tokens) 或生物尺度(Biometrics)。如果你没有办法解决弱口令的问题,就尝试一下其他认证手段。 3.没有备份或备份不完整 当事故发生时(这在每一个组织均有可能发生),从事故中恢复要求及时的备份和可靠 的数据存储方式。一些组织的确每天都做备份,但是不去确认备份是否有效;其他一些组织建 立了备份的策略和步骤,但却没有建立存储的策略和步骤。这些错误往往在黑客进入系统并已 经破坏数据后才被发现。第二个问题是对备份介质的物理保护不够。备份保存了和服务器上同.

(20) 第 4 章 操作系统的安全. 67. 样敏感的信息,它们应以相同的方式加以对待。 (1)受影响的系统:任何运行紧要任务的系统。 (2)如何判断是否易受攻击。应列出一份紧要系统的列表,然后对每一个系统可能遇到 的风险和威胁进行分析。应根据这些重要的服务器制定备份方式和策略。一旦确认了这些重要 系统,应明确以下重要问题:①系统是否有备份?②备份间隔是可接受的吗?③系统是按规定 进行备份吗?④是否确认备份介质正确地保存了数据?⑤备份介质是否在室内得到了正确的 保护?⑥是否在另一处还有操作系统和存储设施的备份(包括必要的 License Key)?⑦存储 过程是否被测试及确认? (3)如何防范。应当每天做备份。在大多数组织中,最低的要求是一周做一次完整的备 份,之后每天再做增量备份。至少一个月要对备份介质做一次测试,以保证数据确实被正确地 保存了下来。这是最低要求。 很多公司每天都做完整的备份,并且一天就要做多次备份。备份的终极目的是一个完全 冗余的网络并且具备自动防故障能力,重要设施的控制系统和一些国防部门的系统都需要这样 一个备份方案。 4.大量打开的端口 合法的用户和攻击者都通过开放端口连接系统。端口开得越多,进入系统的途径就越多。 因此,为使系统正常运作,保持尽量少的端口是十分必要的。所有无用的端口都应被关闭。 (1)受影响的系统:大多数操作系统。 (2)如何判断是否易受攻击。netstat 命令可以在本地运行以判断哪些端口是打开的,但 更保险的方法是对用户的系统进行外部的端口扫描。这会列出所有实际在侦听的端口号。如果 二者结果不同,用户应该研究一下是什么原因。如果两个列表一致,检查一下为什么这些端口 是打开的,每一个端口都在运行什么。任何无法确认的端口都应被关闭。应记录最终端口列表, 以确定没有额外的端口出现。 (3)如何防范。一旦用户确定了哪些端口是打开的,接下来的任务是确定所必须打开的 端口的最小集合。关闭其他端口,找到这些端口对应的服务,并关闭/移走它们。 5.没有过滤地址不正确的包 IP 地址欺诈是黑客经常用来隐藏自己踪迹的一种手段。例如常见的 smurf 攻击就利用了路 由的特性向数以千计的机器发出了一串数据包,每一个数据包都假冒了一个受害主机的 IP 地 址作为源地址,于是上千台主机会同时向这个受害的主机返回数据包,导致该主机或网络崩溃。 对流进和流出网络的数据进行过滤可以提供一种高层的保护。过滤规则如下:①任何进入你网 络的数据包不能把你网络内部的地址作为源地址;②任何进入你网络的数据包必须把你网络内 部的地址作为目的地址;③任何离开你网络的数据包必须把你网络内部的地址作为源地址;④ 任何离开你网络的数据包不能把你网络内部的地址作为目的地址; ⑤任何进入或离开你网络的 数据包不能把一个私有地址(Private Address)或在 RFC1918 中列出的属于保留空间(包括 10.x.x.x/8、172.16.x.x/12 或 192.168.x.x/16 和网络回送地址 127.0.0.0/8)的地址作为源或目的 地址;⑥阻塞任意源路由包或任何设置了 IP 选项的包。 (1)受影响的系统:大多数操作系统和网络设备。 (2)如何判断是否易受攻击。试图发送一个假冒 IP 地址的包,看自己的防火墙或路由器 是否阻隔了它。用户的设备不仅应该阻隔它的传输,而且应该在日志文件中记录下假冒 IP 包 已被丢弃。注意,这又为一种新的攻击敞开了大门——日志文件泛滥。应确认日志系统可以处 理很强的负载,否则就易受 DOS 攻击。nmap 程序可以发出假冒 IP 包以测试这类过滤。一旦.

參考文獻

相關文件

農委會主委陳卲仲指出,萊克多巴胺在國 際上更公認的安全標準,只要符合標準,尌不 會更食安上的疑慮。舉例來說〃在 CODEX 的容 許量下,一般人要吃超過 33 塊 200

在上 一節中給出了有單位元的交換環 R 上的模的定義以及它的一些性質。 當環 R 為 體時, 模就是向量空間, 至於向量空間中的部分基本概念與定理, 有些可以移植到模上來。 例如 子

有關 PHP 的敘述何者有誤?①可在 Apache、MS IIS 等 Web 伺服 器執行的 Script②只能在 Linux 或 Unix 作業系統上執行,無法於 Windows 或 Mac

例如中央處理器、晶片、插卡等,這些電子元件在使用過程中,皆會產生熱

Christopher Clapham, A Concise Oxford Dictionary of Mathematics, Oxford University Press, Oxford/New York, 1990.. Nelson, The Penguin Dictionary of Mathematics, Penguin Books

各块报告模板包括所谓的模板对象, 或对象, 每个被分配到某一 SpecManager 项目(光谱, 表格, 化学结构...) 或其它项目(文本标签)

学校现有教学仪器设备超过1亿元,学校图书馆纸质藏书125万册,电子图书

然而 ISDS 机制在实践中一些问题不断暴露出来,多数学者认为 ISDS