李红
摘 要
随着科技的发展,信息技术应用范围越来越广,计算机软件更是层出不穷。然而,由于计算机软件研发过程中的复杂因素,计算机系统中存在着许多安全漏洞,一旦被不法分子抓住漏洞恶意攻击,计算机使用者将会面临巨大的损失。因此,对计算机软件中的安全漏洞进行检测具有深刻的现实意义。
【关键词】计算机软件 漏洞检测 系统安全
计算机信息系统在各行各业的大幅运用促进了社会生产力的提高,但同时也带来了许多网络安全问题。由于软件开发人员的技术水平和其它一系列不定变量,安全漏洞的产生是不可避免的,许多不法分子正是利用这点引发了大量网络安全事件。而对计算机软件中安全漏洞的检测方法进行研究,可以帮助我们减少甚至彻底杜绝这类事件的发生。
1 计算机软件中安全漏洞的基本概述
1.1 安全漏洞的性质
所谓计算机软件安全漏洞又称计算机脆弱性,是指软件系统中存在的某些安全弱点。而黑客能够通过这些弱点非法入侵,窃取计算机用户的信息,给用户带来巨大的损失。故而,对安全漏洞的检测与防范是十分重要的。
1.2 安全漏洞的表现形式
安全漏洞通常是由软件编程人员的疏忽导致的错误操作引起的,它的表现形式分以下两种:
1.2.1 功能性漏洞
这种漏洞是内部漏洞,相当于系统bug,只会影响计算机系统的正常运行,而不会带来外部的危险。
1.2.2 安全漏洞
显而易见,安全漏洞就是黑客利用来恶意攻击计算机系统的安全弱点,它会为计算机系统带来风险,使系统无法得到有效的保护,造成计算机信息紊乱。
1.3 安全漏洞产生的原因
无论是哪一种安全漏洞,都必有其产生的原因,经观察研究,主要有以下四点:
(1)计算机软件开发人员在编程时出现逻辑错误,引发系统漏洞;
(2)编程人员处理软件数据及其计算模式时出现失误,造成逻辑漏洞;
(3)网络环境的复杂性(同样的软件系统在不同的硬件中会因为不合理的软硬件配置造成系统漏洞,即使在相同的硬件中也会由于网络环境设定不同从而导致安全隐患);
(4)新兴理论的出现(随着时间的推移,计算机软件编程理论也在不断更新换代,如此一来,检测安全漏洞的速度便会跟不上,造成解决问题不及时的情况)。
2 计算机软件中安全漏洞的检测方法
检测计算机软件中安全漏洞的方法多种多样,大体上可以分为动态与静态两类。
2.1 动态检测技术
动态检测方法主要是修改程序运行的环境,快速直接,具有针对性,然而这种方法本身也会影响计算机软件系统的正常运行,带来新的安全隐患。
2.1.1 非执行栈技术
一些操作系统的栈允许执行与写入,安全弱点明显,因而许多黑客热衷于从栈入手进行攻击。为防止这种攻击行为的发生,最有效的手段便是禁止栈执行代码,但这种技术是基于操作系统的修改,不够全面,且易于引起兼容问题,影响计算机系统的操作性能。
2.1.2 非执行堆和数据技术
基于栈和堆的攻击事件发生较为频繁,而由于堆和数据段的特性,许多人对非执行堆和数据技术持怀疑态度,不敢轻易尝试。事实上,这种技术可使黑客注入的恶意代码丧失执行的机会,虽然成本较高,但检测防范效果明显,对应用程序的影响也很小,可行性较高。
2.1.3 内存映射技术
内存映射技术是唯一一种主动对黑客的攻击进行限制和反击的手段,它能够随机地将代码页映射到不同的内存地址中,给黑客的入侵造成困扰。不过,这种技术对内存要求较高,无法检测和预防新代码的注入,且其在运行时需要重新链接网络。
2.1.4 安全共享库技术
许多常用的函数软件在设计之初便遗留了一些安全漏洞问题,安全共享库技术正是从阻止调用不安全函数的目的出发,利用动态链接技术与数据库及客户连接,排查不安全函数,从而防范安全漏洞的产生,提高计算机系统安全。
2.1.5 沙箱技术
沙箱,顾名思义,是一个隔绝外部骚扰的安全空间,与防火墙有相似之处。它主要通过限制访问来防止攻击,其使用效果取决于对策略的定义,唯有恰到好处的定义才能有效地阻挡黑客的入侵,同时又不影响计算机系统的正常运行。
2.1.6 程序解释技术
程序解释技术是通过对程序运行过程的行为加以监视来检测安全漏洞的,它能够针对不同形式的攻击制定相应的安全策略,科学调整计算机软件程序框架,检测范围十分之广,最实用的是,它对计算机应用程序性能的消耗不大,是一项合理的、有效的、系统的技术。
2.2 静态检测技术
静态检测方法是指对系统代码进行程序分析,能够深入检测安全漏洞,操作方便,具有较高的实用价值。
2.2.1 词法分析技术
这是静态分析方法中最早出现的技术,它只检测源码中可能出现的危险,并不深入分析。这项技术操作简单,但实施过程中的失误率较高且花费成本大。
2.2.2 程序评注技术
程序评注借助评注信息寻找程序中可能出现的漏洞,由于没有增加程序的语言特性,并不会影响源程序。
2.2.3 类型推导技术
类型推导技术的应用较为流行,它是通过已知函数的计算分析能力检测系统程序的运行结果是否符合正常规则。
2.2.4 规则检测技术
规则检测技术是指对软件编程中出现的规则漏洞进行检查,并将程序运行行为与编码程序进行对比分析。
2.2.5 模型检测技术
模型检测技术是对计算机软件系统的执行机构进行检测的方式,通过计算机程序模型的运算模式来检测计算机分析任务和处理命题的能力。这项技术耗时较长,建模困难,但对软件安全性能的保障较高。
2.2.6 定理证明技术
定理证明技术要求严格,它是根据公式形式来判别程序抽象公式是否为真,从而对系统代码进行分析比较。
2.2.7 变异语言技术
这种技术是通过修改合法的程序代码来提高计算机软件的安全性,它能够有效消除程序弱点,但相对地也会引发兼容性问题。
3 总结
现代社会信息化不断发展,可以预见的是,计算机技术在未来必然应用得更为广泛,信息安全也将得到更多的关注。而对计算机软件中安全漏洞检测方法的探索研究,能够帮助人们从源头上解决网络安全事件。因此,我们应当不断加强对安全漏洞的检测,灵活运用多种检测技术,阻止黑客的恶意入侵,从而促进计算机技术的发展,杜绝网络安全事件的发生。
参考文献
[1]陈文博.计算机软件中安全漏洞检测方法研究[J].电脑迷,2014(11):15-16.
[2]李雯琦.计算机软件中安全漏洞检测方法探讨[J].硅谷,2015(03):85-86.
[3]郭宇,贾默然.计算机软件中安全漏洞检测方法研究[J].信息通信,2015(06):125-125.
作者单位
南阳医学高等专科学校 河南省南阳市 473000