分两个部分:操作系统的访问控制 及 安全性攻击与常见方案。
(一)访问控制
操作系统作为资源的管理者,必须小心提防计算机资源被无意地使用和恶意地使用。因此,当今的操作系统被设计为,防止操作系统服务和重要信息遭到可以访问计算机资源的用户和/或软件的破坏。这些访问权一般由访问控制列表或全能列表管理。
概念一: 访问权和保护域
操作系统安全性的关键是要控制对内部数据和资源的访问。访问权定义的是各种各样的主体如何访问各种各样的客体。主体可以是用户、进程或其他的课题。 而客体是诸如硬件、软件和数据等资源,可以是磁盘、处理器或主存等类似的有形可以,也可以是与数据结构、进程或服务等类似的抽象客体。
保护域是访问权的集合。保护域中的每个访问权被表示成一对有序的字段, 字段包括客体名称和与之对应的特权,保护域对主体来说是唯一的。一个域的访问权可以被复制、传递或者扩散给另一个域。复制访问权只是把授予一个用户的权限遗传给另一个用户。当访问权从主体A传递给主体B时,传递一旦完成,主体A的访问权就被取消。扩散访问权与复制访问权不同的是,扩展访问权中的两个主体都能把权限复制给其他的主体。
概念二:访问控制模型、策略和机制
访问控制可分为三层概念:模型、策略和机制。 安全性模型定义系统的主体、客体和特权。 安全性策略定义分配给主体访问客体的特权,它由用户和/或管理员代为指定。 安全性机制是系统实现安全性策略的方法。
常用的安全性模型把用户组织成类别,每个类别具有不同的特权。 另一种为基于角色的访问控制模型,用户被指派为角色, 每一角色都代表一套分配给组织成员的任务。用户可以属于多个角色。
访问控制机制通常有三种实现方法:访问控制矩阵、访问控制列表及全能列表。
(二)安全性攻击
常见分类如下:
(1)密码分析
这个不用多说吧。
(2)病毒和蠕虫
病毒通常是作为电子邮件信息的附件发出的,或者隐藏在诸如音频片段、视频片段和游戏等的文件中;它是附加在其他文件上,或者覆盖其他文件进行自我复制的可执行代码。病毒能破坏文件、控制应用程序甚至擦出硬盘驱动器。现在的病毒只要将共享的“受感染”文件嵌入到电子邮件附件、文档或程序中,就可通过网络传播。
蠕虫是由感染的文件经过网络传播的可执行代码。蠕虫不需要任何用户操作就能扩散,他们也不需要附在另外一个程序或文件上传播。病毒可分为如下几类:
1# 引导区病毒:感染计算机硬盘的引导扇区,它随着操作系统一起加载,进而潜在地控制系统。
2# 暂存区病毒:把自己附在特定的计算机程序上。当该程序运行时病毒被激活;当该程序停止时病毒就无效。
3# 驻留病毒:一旦被加载到计算机内存中,它就一直运行,直到计算机关机。
4# 逻辑炸弹:当给定条件满足时,就执行它的代码或有效负载。
特洛伊木马是一种恶意程序, 它隐藏在受信任的程序内,或者冒充合法的程序、合法的功能不见,当该程序执行时,它会对计算机或者网络造成损坏。
后门程序是驻留病毒,它允许发送者彻底地、无法察觉地访问受害者的计算机资源,这些类型的病毒对受害者的威胁尤其大,因为它们能被编程以记录受害者每一次按键。
(3)拒绝服务攻击(Denial-of-service, DoS)
拒绝服务攻击阻止系统对合法的请求提供服务,在许多DoS攻击中,未被授权的流量使网络资源饱和, 并且限制合法用户的访问。 通常,该攻击由数据包淹没服务器来实现。
另外一种类型的拒绝服务攻击是把网络的路由表作为目标。 实现这种类型的攻击方法是,通过修改路由表,进而恶意地改变网络活动的线路。例如,可以改变路由表,发送所有输入的数据到网络中的一个地址。有一种类似的攻击,成为域名系统(DNS)攻击,它能修改由特定网站发送的网络流量的地址。此类攻击常把一特定网站的用户改向另外恶意网站。 如果非法网站伪装成合法的,就会让用户把重要的信息透露给攻击者,这样的攻击就特别危险。
(4)软件漏洞
所有网络机器上的程序弱点本应该都被检测。 然而,随着每天都有上百万的软件产品可以利用和不断暴露的弱点,这就变成了一个不可能的任务。缓冲器溢出是一个常用的利用弱点进行攻击的方法,在这个方法中,程序接收到的输入比程序分配的空间更大。当应用程序发送的数据超过了缓冲器所能容纳的数据时,就会产生缓冲器溢出。缓冲器溢出攻击能把附加的数据压入到领近的缓冲器中,破坏和覆盖存在的数据。设计良好的缓冲器溢出攻击能取代应用程序堆栈中的可执行代码。进而改变应用程序的行为。缓冲器溢出攻击包含恶意的代码,而恶意的代码能够执行与受攻击的应用程序一样的访问权。攻击者依靠用户和应用程序,就可以访问整个系统。
(5)系统渗透
系统渗透就是指由非授权的外部用户成功地突破计算机的安全防御。通常是由软件或操作系统中的特洛伊木马、后门程序或漏洞问题引起的。丑化网页是常见的攻击形式,在攻击者非法地得到修改组织网站权限的期间,他可以改变网站的内容。
(三)几种常见的安全性解决方案
(1)防火墙
保护局域网不受到网络外的入侵者的破坏,防火墙管辖LAN进站和出战的流量,能禁止所有没被明确允许的数据传输,也能允许所有没被明确禁止的数据传输。
防火墙有两种基本类型:包过滤(packet-filtering)防火墙检测所有来自LAN外部发来的数据,按预先定义的一规则丢弃数据包,比如丢弃本地网络地址的包或者丢弃某一地址或端口的包。包过滤防火墙的局限性在于,仅考虑数据包源而不测试附带的包。因此,在授权用户的计算机中安装恶意的病毒,就可以允许入侵者在没有该用户信息的情况下访问网络。应用程序级网关的目的是,保护网络不受包内数据的危害。如果某个信息含有病毒,该网关可以阻止它被发送到指定的接受者。
空气隔离(air gap)技术是防火墙实现网络安全性的解决方案。它保护私有数据,不让外部流量访问内部网络。空气隔离将内部网络与外部网络分离,并且组织可以决定外部用户可以使用哪些信息,空气隔离不允许外部用户查看网络结构,这样就可阻止黑客搜索网络的弱点。希望访问网络的用户隐藏在空气隔离设备后面,而此处放置着认证服务器,授权的用户通过单一认证权能的方式得到访问权,然后,就可以使用一个登录口令来访问授权的网络部分。
(2)入侵检测系统(IDS)
入侵检测系统(Intrusion Detection System, IDS)监视网络和应用程序的日志文件,日志文件记载关于系统行为的信息。IDS检查日志文件,并向系统管理员示警可以的应用程序和/或系统行为。如果应用程序出现不稳定的或恶意的行为,IDS可以终止该进程的执行。入侵检测用静态分析的方法试图监视被黑客破坏的应用程序。静态分析技术假设黑客企图用系统调用的方法来对系统进行攻击。在这个假设条件下,检测入侵的第一步是构建一个应用程序的预期行为模型(即,应用程序通常生成系统调用的方式等),然后,应用程序的系统调用方式在运行时就受到监控,如果这种调用方式有异于静态模型,那么就能检测到攻击。
(3)反病毒软件
反病毒软件试图保护计算机不被病毒感染,并且/或者在计算机中查出 并删除病毒。有很多种技术的反病毒软件可用来从系统中检测和删除病毒。然而,没有一种可以提供彻底的保护。
签名扫描病毒检测(signature-scanning virus detection)的依据是知道计算机病毒代码的结构。大部分已知病毒库都有一张病毒签名表。在这种情况下,病毒检测软件通过对文件数据和病毒代码比较的方式,扫描计算机。
另一种签名扫描的方法是启发式扫描。病毒的特定是复制、驻留在存储器中和/或破坏性的代码中。启发式扫描通过监测并中止出现这种行为的程序,来防止病毒的传播。
(4)安全性补丁
注: 本文参照 《操作系统》整理。
(美)Harvey M. Deitel, Paul J. Deitel, David R. Choffnes著,清华大学出版社,2007. V3
2010.4.2