1、解析计算机软件安全漏洞检测技术的应用摘要:随着国民经济的深入发展,我国的科学技术领域也取得了良好的成果。信息系统的应用越来越广泛,所以,信息系统的安全问题就成为了一个关键的事情。本文简要探讨了计算机软件中安全漏洞检测技术的静态检测及动态检测技术,分析其具体应用,目的在于进一步提高计算机软件中安全漏洞的检测技术,保证软件的安全性能。 关键词:计算机软件;安全漏洞;检测技术;应用 中图分类号:O434 文献标识码: A 前言:近年来,计算机技术的应用越来越普遍,计算机软件的发展非常迅速,同时,源代码的数量也随之急剧增加。那么,一些黑客就可以通过代码中的某些漏洞对计算机的软件及系统进行入侵并破坏。所
2、以,计算机软件的安全问题已经变成了如今系统安全的关键问题之一。1、计算机软件中的漏洞 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。漏洞具有自身特有的性质,具体表现在以下几点内容中:其一,在程序的编制过程中产生一些逻辑性的错误是极为平常的事情,而这些错误一般都是由于编制人员大意导致的;其二,在计算机软件进行数据处理及运算过程中,很可能产生一些逻辑性的错误,将过小或过大的程序模块同中等的程序模块相对比,发现其更容易产生一些逻辑性的错误;其三,漏洞同计算机软件的系统环境间有着密切的关系。在不同的硬件及软件中,同一个设备的不同版本,
3、在不同的设置基础上,各个设备共同组成的软件系统和同一系统的不同设置都有可能包含一些安全漏洞;其四,计算机软件系统漏洞同时间之间也包含着密切的联系,即伴随着时间的不断增长,一些以往的漏洞情况会被不断的纠正及修补,而形成的新漏洞问题也会逐渐突显。因此,计算机软件中的漏洞问题是一项长久性的问题。2、计算机软件中安全漏洞的检测技术 对于计算机软件中的安全漏洞来讲,一般可以应用以下两种检测方法进行检查,即静态检测及动态检测。 2.1 计算机软件安全漏洞检测技术中的安全静态检测 最开始的计算机软件安全漏洞静态检测就是静态分析,但是由于其检验的方式多停留表面,因此,近些年开始逐渐对其进行研究与创新,静态检测
4、也就逐渐扩充成为两种内容,静态分析及程序检验。其中,静态分析指的是对需要检测的系统程序进行源代码的扫描工作,从语义、语法等角度进行全面解析,同时将待测系统程序的自身特性直接进行分析,利用这种方法寻找漏洞。而程序检验是指抽象系统内的程序源代码。主要借用检验方法,检测软件系统的程序是否符合计算机的需求,特别是对安全的需求,然后对程序中的安全漏洞存在与否进行判定及检验。对于计算机软件安全漏洞的静态检测来讲,其更多注重的是计算机软件系统程序的内部特性,静态检测的方法特点同检测漏洞的特点之间包含着密切的关联。 2.1.1 静态分析 静态分析的方法重点是对程序中的代码开展全面、直接的扫描工作,同时提炼出其
5、中的关键句及语法,利用对其含义的解读来分析程序的行为,再严格的依照预先设定的漏洞特性及计算机软件系统的安全标准对系统的漏洞进行整体检测。第一,对词句及语法进行分析。其是最早产生的一种静态分析方法,然而,它在进行词句及语法分析时,仅停滞在对语法的检查工作上。将系统中的程序划分成一段段语句片段,再把每个片段同“疑问数据库”进行仔细对比,如果其中含有一些漏洞问题或疑问,就对其开展启发式的评估及判定。从中可以看出,词句及语法的分析方式尽管能够有效的检测出漏洞,但检测的数量是有限的,且检测出的漏洞一般是已知的,漏报问题也很严重;第二,严格依照相关的标准进行检测。通常来讲,安全标准是对计算机系统程序运行情
6、况进行描述,程序本身就是一种编程的标准,也就指的是那些一般的安全标准,我们常说的漏洞模式。可以应用规则处理的检测方式,对以上标准利用一定的语法模式进行描述,再通过规则处理器进行接收,把其转变成处理器能够容纳的内部表述,最后再对系统程序的运行进行整体检测。 2.1.2 程序检验 这种检测方法重点是借用抽象的软件系统程序获取形式化的程序及模型,再应用形式化的检验方法对其进行检测,最后再利用正确性的检验方法对计算机系统的漏洞问题进行检测。第一,模型的检验。模型检验指的是利用对有限情况下的计算机系统程序有向图及状态机等进行抽象模型建立,同时来完成系统特征的检验工作。一般情况下,包含两类的检验方式:符号
7、化检验方法及模型自动转化。符号化指的是把抽象的模型转变成语法树的形式进行公式描述,判断公式是否符合需求;模型自动转化将需进一步检测的程序转化成等价自动机,让两个自动机相互补充、替换,从而形成新的自动机,最后将判定的系统转变成能够容纳的语言形式。模型检验一般应先举出现实中能够产生的各种情况,由于软件系统本身极为复杂,将所有程序点都进行建模会出现极为庞大的规模,因此,一般都仅对其中的部分属性及程序进行抽象建模。 2.2 计算机软件安全漏洞检测技术中的安全动态检测 2.2.1 内存映射 很多攻击者经常应用“NULL”结尾的字符串进行内存覆盖,从而达到攻击目的。应用代码页的映射技术,可以让攻击者在应用
8、“NULL”结尾的字符串进行内存覆盖,跳转到较为简单的内存区的操作变得极为困难。从一个角度看来,把代码页随机的映射到不同的内存地址上,也可以在一定范围内降低那些依靠猜测地址来进行页面攻击的可能。 2.2.2 非执行栈 近些年来,基于栈攻击软件的问题时有发生,其主要原因一般在于操作系统中的栈自身的能写及执行方面。因为内部变量,尤其是数组变量都包含在栈之中,因此攻击人员能够向栈中恶意书写一些代码,然后寻找方法进行代码执行。预防栈被侵略、攻击的最有效方式就是将栈转变成不能够执行代码的形式。唯有这样,才能够让攻击人员恶意书写在栈上的代码无法执行,同时也从一定层面上降低了其被攻击的概率。 2.2.3 安
9、全共享库 一些计算机软件安全漏洞主要是因为应用了一些不安全的共享库而产生的。安全共享库能够在一定层面上预防攻击人员对其进行的攻击行为。安全共享库指的是应用动态链接的方式,在程序运行过程中对那些不具备安全性的函数应用进行拦截,另外对其进行检测,从而确保计算机软件的安全。 2.2.4 沙箱 沙箱方法指的是利用对一个程序的资源访问进行限定来防止某些恶意的攻击。例如:在 C 语言中包含一些调动函数,对于一个软件来讲,其实并没有此类调动函数,如果发觉某项正在运行的软件中包含了类似的调动函数,就证明它受到攻击了。如果在被攻击前应用了沙箱,就能够对其进行限定,确保其受到攻击后不会造成影响。 3、计算机软件中
10、安全漏洞检测技术的应用 3.1 用来预防竞争条件的漏洞 对于那些因竞争条件而形成的漏洞,其主要的预防办法就是把形成竞争的编码应用原子化进行操作。编码是执行单位中最小的,在程序运行时,不存在任何的情况对其造成干扰。原子化的操作就是应用锁定的方法,利用预防某种特定状态改变而形成的问题,做到间接调用使用文件名系统的目的,进而把使用的文件或句柄进行描述。 3.2 用来预防缓冲区的漏洞 利用对软件程序中较为危险的函数检查来预防缓冲区的漏洞溢出,可以使用安全软件版本来代替不安全的版本。 3.3 用来预防随机出现的漏洞 在进行随机漏洞预防时,应了利用性能良好的随机发生设备。随机发生设备自带密码算法,进而保证
11、了随机数流的安全,就算软件遭受攻击,掌握全部的算法细节,也不能获得形成的数据流。 3.4 预防格式化字符串的漏洞 利用严谨的预防,在数码中直接应用格式常量,不为攻击者提供任何的创建格式串的可能。一般不定参数的个数函数都会出现格式化字符串漏洞,在使用此类函数时,应保证每个参数的个数及均衡性能。 结语 在现今的局势下,计算机软件中的安全漏洞检测技术已经逐步变成通信及计算机安全的基础检测方法,计算机的软件安全集中体现在软件程序的编写、漏洞消除等方面。因此,对计算机软件中安全漏洞检测技术及其应用进行探讨是值得相关工作人员深入思考的事情。 参考文献: 1徐有福,文伟平,万正苏.基于漏洞模型检测的安全漏洞挖掘方法研究J.信息网络安全.2011(08). 2傅卓军,龙陈锋.网络安全漏洞检测软件的设计与实现J.计算机与数字工程.2011(07).