计算机软件中安全漏洞检测技术研究

2017-03-27 15:37林心怡
科技创新与应用 2017年4期
关键词:安全漏洞计算机软件检测技术

林心怡

摘 要:改革开放以来,随着我国社会主义市场经济的发展,计算机为代表的科学技术获得了前所未有的发展,计算机网络系统已经深入到我国的各行各业,并且发挥着越来越重要的作用。因此,计算机软件的安全问题自然而然便发展成为人们研究的重点,其中安全漏洞可以说是计算机软件面临的主要威胁之一。因此,文章对计算机软件中安全漏洞检测技术做了深入研究,以期切实提升计算机软件的安全性,使之更好地为人类服务。

关键词:计算机软件;安全漏洞;检测技术;研究

1 概述

近年来,我国的科学技术得到了迅猛发展,同时计算机软件也发挥出了更加强大的功能,不可避免地带来了源代码数据量的激增,这为不法分子的入侵埋下了隐患。因此,现如今计算机系统安全的最关键问题之一便是软件安全[1]。据有关研究表明,现代计算机软件系统的工作中漏洞百出,不法分子在攻击时也更多地呈现出利益化以及多样化的趋势。为了确保计算机系统的安全性,相关技术人员必须加强对计算机软件的研究,分析相应的安全漏洞检测技术,寻求处理方式的创新。

2 计算机软件中安全漏洞检测技术

通常情况下,我们对计算机软件中的安全漏洞进行检测时,分别以动态和静态两种方式进行检测。

2.1 安全静态检测

2.1.1 静态分析

这种检测技术主要是面向程序中的代码,对其进行全面直接的扫描,对程度代码中的关键句和语法进行总结与提炼,并解读出其中的含义,进而来确定程序的目的,最后根据事先预设的漏洞特征和计算机软件系统的安全标准来对这些漏洞作出整体性检测[2]。首先,分析语句和语法。这是静态分析方法中诞生最早的一门技术,但是这种检测技术在工作时,仅仅是对语法进行检查。该检测技术具备自身的“疑问数据库”,监测时对系统中的程序进行分段,逐段与“疑问数据库”进行对比,假设发现某一片段是可疑部分,那么要针对这一片段进行启发式评估和判定。由此我们可以得出,虽然通过对语句和语法的分析能够有效检测漏洞,然而能够检测出的数量和类型都是固定的,存在较为严重的漏报现象;其次,严格遵守有关标准检测。一般而言,这种安全标准是对系统程序运行情况的描述,属于一种编程标准,也就是我们通常所讲的漏洞模式。我们可以采用规则处理方式,通过一定的语法模式对相关标准作出表述,然后以规则处理器进行接收,将其转化为可以被处理器接受的内部表达,这些准备工作完成以后,对整体检测系统程序的运行。

2.1.2 程序检验

在程序检验检测方式中,以抽象的软件系统程序来得到形式化的程序和模型,然后通过形式化检测技术作出检测,最后通过正确性的检测方式检测计算机系统的漏洞。首先,进行模型检测。该检测是指对计算机系统程序的有向图和状态机等作出抽象模型,在这一过程中作出对系统特征的检验。通常有两种检验方式,即符号化和模型自动转化。前者是指将抽象模型转化为语法书的形式,然后以公式进行描述,并对其进行判断;后者指的是以等价自动机的形式来对需要进一步检测的程序进行描述,通过两个自动机之间的补充与替换来形成新的自动机,然后以可以接受的语言形式把判定的系统表达出来[3]。在模型检验中,通常是对实际状况下有可能发生的所有情况进行列举,受到软件系统本身复杂性等因素的限制,如果对全部程序点建模,那么其规模将会难以想象。所以,我们往往只是对一部分程序点建模。近年来,新的模型检测技术逐渐诞生,原理在于通过内存建模来检测时序漏洞,再以定理证明的方式来进行漏洞检测。此检测方式通过多重判定方式来判断程序漏洞,比模型检验更加严密。在程序检验的过程中,模式检验的可靠性与实用性都能够在实践中得到验证。具体应用时,使用者必须具备较高的综合素养以及专业技术,因此,该技术的应用并没有得到普及。

由于计算机软件中安全漏洞的静态检测缺乏普通漏洞的描述标准,而且只能对当前已经出现的漏洞进行检测,也无法对现有的漏洞进行全面覆盖,要想提升静态检测的质量,一定的运行成本资金投入是必不可少的。

2.2 安全动态检测

2.2.1 内存映射

在一些攻击程序中,设计者们往往通过“NULL”结尾的字符串对内存进行覆盖。通过代码页映射技术的使用,能够将攻击者的以上行为变得异常困难。因此,我们可以看出将代码页随机映射到各内存地址,能够有效减小通过猜测地址进行页面攻击的概率。

2.2.2 非执行栈

通过对近年来计算机软件安全问题进行研究发现,基于栈攻击软件的问题经常出现,这与操作系统中栈自身的能写与执行密不可分。我们知道,内部变量,特别是数组变量是包含在栈中的,攻击者通过向栈中植入部分代码,然后找到代码执行的方法。要想有效防止栈被攻击,最有效的途径便是将其转变成为无法执行代码的形式。只有通过这种形式,攻击者以不良目的植入栈中的代码才不能执行,大大减小了栈被攻击的可能性。

2.2.3 安全共享库

在计算机软件的安全漏洞中,有相当一部分产生的原因是使用了不安全的共享库。通过安全共享库的使用,攻击者对计算机软件安全漏洞的攻击行为能够得到有效预防。所谓安全共享库是指通过动态链接形式来阻止软件运行中没有安全性的函数,同时对这些函数进行检测,通过这种形式来保障计算机软件的安全性。安全共享库的广泛应用与Windows和Unix操作系统中。

2.2.4 沙箱

该方法主要是指通过对某程序的资源访问作出限制避免恶意攻击的侵害。例如,我们知道,C语言中具有一些调动函数,但是正常的软件中并没有这种函数,假设发现正在运行的软件中有调动函数,那么它受到攻击的可能性很大。倘若我们在软件被攻击之前使用了沙箱,可以有效限定软件,如果受到攻击也不会影响其正常运行。

3 计算机软件中安全漏洞检测技术的应用

3.1 预防竞争条件的漏洞

针对由于竞争条件而产生的安全漏洞,通常所使用的预防措施是使用原子化的方式对形成竞争的编码进行操作。在程序运行时,编码可谓是最小单位,它不受到任何情况的干扰。而在原子化操作中,通过锁定技术,间接调用使用文件名系统,然后把使用的文件或者句柄表达出来[4]。

3.2 预防缓冲区漏洞

通过对软件中危险系数高的函数进行检查,充分避免缓冲区漏洞的溢出,这一过程的软件版本使用中,可以安全版本代替不安全版本。

3.3 预防随机出现的漏洞

对随机漏洞的预防中,采用随机发生设备比较合适。这种设備具备了密码算法,可以在很大程度上确保随机数流的安全。

3.4 预防格式化字符串的漏洞

通常情况下,不定参数的个数函数中格式化字符串出现的可能性较大,因此,在该类函数的应用中,要确保每项参数的个数和均衡性能。

参考文献

[1]张林,曾庆凯.软件安全漏洞的静态检测技术[J].计算机工程,2008,34(12):157-159.

[2]吕云芳.计算机安全漏洞动态检测技术研究[J].电脑编程技巧与维护,2012(22):100-101,114.

[3]张 .基于Windows平台的软件安全漏洞发掘技术研究[D].电子科技大学,2010.

[4]刘志建.刍议计算机软件安全检测技术的应用[J].计算机光盘软件与应用,2013(2):13-15.

猜你喜欢
安全漏洞计算机软件检测技术
刍议计算机软件中的安全漏洞检测技术
计算机软件技术的不可靠性探析
计算机软件应用及其发展趋势研究
智能设备安全漏洞知多少
计算机软件安全漏洞检测技术
公路工程试验检测存在的问题及措施
煤矿机电产品检测技术
浅谈现代汽车检测技术与安全管理
计算机软件安全检测技术