无线组网 频道

IT管理人员应该知道的计算机漏洞知识

  分类模型

  漏洞研究的抽象层次不同,会对同一个漏洞作出不同的分类。例如我们常说的“缓冲区溢出”漏洞,从最低层次上来说可能是访问校验错误;从高一些的层次看,是一个同步错误或同步校验错误;从更高的层次看,这是一个逻辑错误,至今为止还没有一个比较完美的漏洞分类方案,包括权威的漏洞信息发布网站www.securityfocus.com上的分类也不能让人满意。

  美国海军研究实验室于1993年收集了当时主流操作系统的安全漏洞,并按照漏洞的来源,形成时间和漏洞代码的分布位置等条件进行了分类。尽管这些分类还不够准确,概念上存在交叉和模糊现象,但这种分类方法每一次引入了时间和空间的概念,有助于系统设计人员对安全漏洞的理解,有助于建立更加安全的软件系统。下图是美国海军研究实验室的分类模型。

IT管理人员应该知道的计算机漏洞知识
▲ 漏洞分类

  普渡大学COAST实验室则从漏洞的形成原因角度对Unix操作系统的漏洞进行了深入研究,并建立了较为详细的分类模型。后来,该实验室的Krsul对此分类做了进一步的修改完善。美国南科罗拉多州大学的Knight在前人成果的基础上,增加考虑了社会和人的因素对于计算机安全的影响。使计算机漏洞的研究更加科学、全面。

  下图是目前较为广泛接受的漏洞分类模型。计算机系统的漏洞被划分为两个方面的因素和4个基本类别。从漏洞的利用时效上讲,社会工程和逻辑错误形成的漏洞可以很快地产生作用,而管理策略失误和系统弱点的影响过一段时间才能显现出来;从漏洞的利用需求来看,利用计算机本身的漏洞比和利用社会工程和策略失误的漏洞需要更多的专业技术知识。

IT管理人员应该知道的计算机漏洞知识
▲ 计算机漏洞的基本类型

  计算机因素的漏洞分类如下图所示:

IT管理人员应该知道的计算机漏洞知识
▲ 计算机因素的漏洞分类

  逻辑错误

  逻辑错误对计算机系统的安全有直接的影响,通常是软件程序或硬件设计上的“Bug”,也是漏洞研究的主要内容。这种类型的漏洞大多是由低质量的程序代码等技术原因造成的。一般可分为环境错误、配置错误和编程错误。

  (1)环境错误

  环境错误是由于没有能够正确处理程序运行时环境限制造成的错误。这类错误依赖于操作环境,典型的环境错误漏洞包括:

  操作系统的限制导致的错误;由于操作系统或编译器缺陷形成的错误;独立正确运行的程序模块之间发生相互作用时产生的错误;异常处理时产生的意外结果。

  (2)编程错误

  编程错误一般是在软件开发时,由于程序设计错误、错误的需求或逻辑错误而形成的缺陷。包括:

  同步错误,即由于指令或数据的操作顺序发生变化而产生的错误,它又可以分为两个操作之间的竞争条件错误和不正确的串行操作而引起的串行化错误。

  条件校验错误,计算机的每个操作步骤都会受到具体条件的限制,只有满足一定的条件,系统操作才会顺序地正常进行。当条件丢失、条件表达错误时,就形成了条件校验错误。程序中的条件校验应该包括以下内容:

  约束检查:在执行某个操作之前,系统必须保证该操作能够分配到必需的资源。例如输入/输出操作,系统必须保证用户/程序不读写其地址边界之外的文件。

  访问权限检查:系统必须保证用户/程序能够访问到其权限范围之内的对象,这种检查机制依赖于系统的访问控制机制。

  有效输入检查:对运行程序的任何直接输入都必须进行有效性检查。检查的内容包括:字段值相关性、语法、参数的类型和数量、输入字段、外部输入的字段和参数等。

  主体来源检查:主体指用户、程序、主机或共享的数据对象。系统必须验证主体来源,防止自身受到攻击。

  异常检查:系统必须能够处理由于功能模块、设备故障导致的意外情况。

  (3)配置错误

  从广义上讲,系统配置可以看作软件资源和硬件资源的组合。这样,计算机系统提供的应和程序和各个服务程序就是配置的一个部分。配置错误可以分为:

  程序安装在不合适的位置:程序安装时参数设置错误;程序在安装时的访问权限错误。

  系统弱点

  系统弱点指的是系统难以克服的错误或缺陷。许多情况下,没有人能够发现或理解这种隐含的不安全因素,弱点往往要等很多时间以后才能明显体现出来。从这个角度讲,系统安全是相对的。计算机系统弱点主要体现在以下几个方面:

  通过隐晦手段获得的相对安全。通常情况下,我们会对计算机系统安全措施进行保密,但人们通过研究,最后总能明白它是如何工作的,所以这种隐晦的安全机制并不能从根本上保证系统的安全。

  加密信息已经被公认为是加强计算机安全的最好方法,但加密技术本身也存在许多的缺陷,如密码的捷径、计算机的速度、缺乏足够的随机密钥等。这些缺陷会使加密的效果并不是绝对安全的。如果忽视其弱点的话,可能造成的后果将会是灾难性的。

  口令安全是计算机安全中最关键的问题,每种形式的安全最终都趋向于依靠某种形式的口令。实际上,大量存在的弱点令和静态口令非常容易被破解。

  人们研究发现,老化的软、硬件会影响安全问题,这是任何一个单元部件都存在的固有缺陷。

  社会工程

  即通过“非技术手段”对目标计算机系统进行攻击的一种方法。它可能是单位内部人咒的蓄意破坏、骗取进入计算机系统的途径,或者从废弃物中寻找有用的信息等。在许多情况下通过社会工程直接获取信息可能会更容易有时候社会工程是获取网络信息的唯一方法。社会工程的漏洞包括偷盗、内部间谍、信息猎取、犯罪破坏等,如下图所示:

IT管理人员应该知道的计算机漏洞知识
▲ 人员因素的漏洞

  管理策略失误

  即计算机系统的日常管理和应急措施方面的不足,例如不充分的软件备份、没有防火或者是容灾等保护设备。管理策略失误并不一定会导致入侵事件。但是,许多“天灾人祸”如天气灾害、电子毁坏、硬件故障等可能会触发这类漏洞的发生。这些容易失误的策略一般可以分为:物理安全策略、数据安全策略、人员安全策略等。

  人们在针对计算机漏洞研究方面已经取得了一些成绩,但还不完善,未来的漏洞研究工作将着重于以下目标:对系统危害程度的评估。通过对受危害的系统漏洞信息的比较研究,能够得出可以量化的衡量标准;建立漏洞预测模型,推测可能出现的未知漏洞;在分析已知的漏洞特征的基础上,改进软件设计模型,避免在以后的软件中再出现已知的漏洞类型。

0
相关文章