我们常说的计算机软件漏洞是广义上的软件安全漏洞,主要是指在软件的编写过程中,容易对整个计算机软件系统造成安全性方面威胁的缺陷,或者是能够对整个系统的运行带来影响的各类因素的总和。由于计算机软件都是人为编制的,所以都会因为软件的编制人员在编制软件过程中的考虑问题不全面带来安全漏洞,这是每一个计算机系统都存在的问题,所以漏洞的出现是在正常不过了。
但于此同时,计算机软件存在的漏洞一旦被一些黑客发现,就会成为攻击的目标和突破口,所以我们在无法避免计算机软件漏洞的同时,要及时对计算机软件进行扫描,对发现的漏洞及时进行修复,这也是评测一个计算机系统安全性能的一个标准。
黑客利用计算机软件系统的漏洞实施攻击是当下软件系统安全时间中最主要发生的一类。网上一般活跃比较多的都是一些初级黑客,他们在对计算机软件系统的漏洞进行攻击是呈现了一定的特点。比如,漏洞遭受攻击的次数与漏洞发布的时间成反比,也就是说,最新发布的软件漏洞遭受黑客攻击的次数比较多。这也是因为微软会依据在系统中检测中的漏洞进行及时的补丁完善而导致的,发布时间越长的漏洞,打补丁的用户会越多。能够快速检测出联网计算机在软件漏洞问题,并且有针对性地进行更新,是我们当前信息安全人员需要开展的重要工作。
针对软件存在漏洞的问题,信息安全人员也已经于漏洞以及黑客打了半个多世纪的交道,因此,在漏洞检测技术中,也形成了一系列检测的惯例。如今我们在计算机软件漏洞的检测中比较常用的检测方法主要有一下几种:
(1)静态检测。静态检测技术就是我们软件工程师常说的软件静态测试,通过一定的技术直接分析软件的源代码,通过对编程源代码中的语法、语义进行分析,从最基本的逻辑中检测和去除可能存在的安全隐患或者说软件漏洞。目前在静态测试过程中主要采取的方法有推断、数据流分析以及约束分析这三类。其中,推断主要是将同语法类型的源代码进行总结,有针对性地进行推断,而数据流分析是通过断点检测的方法分析源代码中数据的走向,以此来判断源程序中是否会有安全隐患,约束分析就是在源代码的一些地方认为增加一些可能发生的约束条件,看软件是否会产生存在安全隐患的相应。
静态分析虽然能够最直接地对软件的安全隐患进行解除和排查,但是并不能完全排查出软件中存在的漏洞,因此我们还需要寻找其他配合使用的软件测试方法。
(2)动态测试。动态测试不同于静态分析,是首先将软件“跑起来”,在软件执行的情况下对软件中的变量在特定时间域内的数值变化提取出来进行分析,看其是否符合我们预定的变化轨道,以此来判断软件在哪一个环节会存在安全。动态测试中的一种方式是在动态测试的过程中就进行软件数据信息的收集工作,而另外一种方式是将执行过程中的信息做全纪录,之后再用这些信息进行漏洞模式匹配,查找软件漏洞。
(3)混合检测。混合检测并不是单纯地将静态检测和动态检测结合起来形成先静态后动态或者先动态后静态的检测方法。而是在结合了二者的内容衍生出的检测方法,兼顾有两种检测方法的特点。这其中就包括了测试库技术、源代码的改编技术以及异常检测技术等多种技术。这些技术都是使用在不同需求和不同环境下的混合软件漏洞检测技术。
通过计算机漏洞的检测技术,让计算机软件以及计算机自身的漏洞能够尽快找出,从而进行软件的及时漏洞修补与更新,在一定程度上完成对于漏洞的检测工作。为了让计算机更好的运行,并且保证期运行的安全性。漏洞检测技术是必然要进行开发与研究的,此外要注意对于漏洞的危险性级别的分类。
漏洞的修复与更新的概念非常广,不仅包含了我们常说的对计算机软件进行升级或者安全补丁的修复,我们平时经常使用的安装防火墙、杀毒软件以及更改一些关键部位的安全口令都可以看做是最计算机软件的漏洞修复与更新。以安装官方的补丁这种修复方法为例,最早提出对计算机软件的漏洞进行补丁修复的是微软公司,在补丁的全生命周期中对补丁的识别、部署以及评估等都需要进行有效的管理,才不会再次成为软件安全漏洞。在软件漏洞与修复的管理中主要有以下几类成熟的管理模型:
(1)微软补丁管理模型。微软作为全球计算机系统的寡头,其推行下的补丁管理模型已经逐渐成为其他厂商的标准。微软的补丁管理从漏洞的识别开始,经过计划阶段、测试阶段和部署阶段。整个流程中通过对计算机漏洞的威胁等级进行评估和识别,在计划阶段拿出补丁的计划方案并予以实施,再通过植入系统中进行全方位的测试到最终的部署阶段。但是后续一定要对补丁的反馈信息进行及时的梳理和统计。
(2)CNCERT/CC 补丁管理流程。这个补丁的管理流程是来自于我国国家计算机网络应急技术处理协调中心的,将补丁管理视为一类特殊的工程管理,也分为事前管理、实施过程的管理以及事后管理三部分。总体来讲与微软的管理模式大同小异,只是在事后管理中采取一定措施来保证计算机软件系统的稳定性。
总之,随着计算机技术的普及化以及越来越多的计算机软件方面人才的培养,黑客的数量也会越来越多。因此,计算机软件的安全性也需要进行更高技术的改革。作为我们的计算机软件的普通用户来讲,发现软件的漏洞是非常正常的,但与此同时,我们也要做好保密工作,不要将漏洞散播出去,而是即使反馈给相应的厂商,让他们去做相应的更新工作,这样我们才能够有一个更好的计算机软件的生存环境。