计算机软件中安全漏洞检测方法研究
2014-04-29陈文博
陈文博
摘 要 计算机网络和信息化技术是面向现代化、面向未来的前沿科技技术,随着科技的发展和现代信息技术应用规模的不断扩大,计算机信息系统在现实生活中起着越来越重要的作用,然而由于网络环境的复杂、计算机安全系统存在漏洞等种种原因,现代计算机网络安全问题频发,时常会出现黑客入侵的现象,严重的威胁着现代计算机信息安全,本文从计算机软件安全角度出发,结合计算机安全问题中的实际,对计算机软件中安全漏洞检测方法进行深入研究和探讨。
关键词 计算机软件 安全漏洞 检测方法
中图分类号:TP31 文献标识码:A
0前言
现代科学技术进步的标志就是计算机信息系统在社会各个领域的应用,极大的促进了社会生产力水平的提高,但是与此同时新的工作模式也带来了新的问题——计算机软件安全问题,这一问题的出现让人们的视线再一次转到计算机软件中安全漏洞的检测技术中,本文将对该技术现状和应用进行详述。
1计算机软件安全漏洞的基本概况
1.1计算机软件安全漏洞的基本表现形式
计算机软件安全漏洞即由软件编辑人员的错误操作引起的,软件系统上逻辑性和数据性的漏洞。可以说计算机软件的漏洞主要是由软件编程人员的疏忽所导致的,也有的是因为时间的关系,很多在软件编辑在当时是不存在逻辑漏洞的,但是却随着时间的推移和计算机软件编程理论的完善而变得漏洞百出。计算机软件的漏洞表现形式主要有两点:一是功能性的漏洞,这样的漏洞不存在外部的危险,而是会对计算机的正常运行产生影响。二是安全漏洞,这样的计算机漏洞会导致计算机面临风险时,软件系统无法为计算机系统提供有效的保护,一旦防火墙被黑客和恶意软件攻克,就会出现恶意执行代码造成计算机信息系统的混乱。
1.2计算机软件安全漏洞的性质
所有的计算机软件的漏洞有四个共性的特点:一是这些计算机软件的漏洞都是由于计算机编程人员在软件编程的过程中,出现逻辑性错误进而造成的系统漏洞;二是在软件数据和数据计算模式处理中出现失误,进而造成计算机出现逻辑错误;三是漏洞的出现与计算机网络环境有着密切的关系,同样的软件系统在不同硬件中会因为软硬件配合不合理而造成系统漏洞,在同样的硬件中不同的网络环境设定也会造成软件系统的漏洞;四是漏洞的存在与时间有密切的关联,电子信息产业的产品升级换代的速度是极其迅速的,随着时间的推移旧的软件程序会面临不断出现的新的计算机软件编程理论的考验,基于旧的软件编程理论编辑的软件程序旧的漏洞刚刚解决,新的漏洞就又出现了。
2计算机软件中安全漏洞检测技术及其应用
2.1动态检测技术
计算机软件系统的动态检测技术是指,在系统软件的源代码不变的情况下,只针对计算机软件系统在运行中出现的问题进行修正,这样的检测技术虽然能够对计算机软件系统漏洞进行快速、直接、有针对性的检测和解决,但是没有对计算机软件的源代码进行修改,是一种类似于“拆东墙补西墙”的补丁式的做法,会造成一些新的安全隐患,可能会对计算机软件系统的正常运行造成影响。
2.1.1非执行栈
在计算机软件安全问题中,黑客和恶意软件的攻击主要都集中对计算机运行的基础环节栈和堆中,针对这样的有目的的攻击,解决的最有效的办法就是让栈停止工作,这样可以有效的阻断黑客和恶意代码对计算机软件系统的后续攻击,但是这样做的弱点非常明显,一是需要在操作层次上对计算机软件的设置进行修改,二是将栈的工作停止会对计算机系统造成伤害,特别是在堆和栈同時出现问题时,故障率极高。
2.1.2非执行堆
堆指的就是在计算机软件程序设计的过程中,就已经完成的对计算机内存的划分,非执行堆阻止黑客和恶意软件入侵的有效办法就是让计算机软件系统的代码不再被堆执行,这样就截断了恶意代码对计算机软件基础性、关键性的部分设定进行修改的途径,进而保护计算机软件系统,该技术与非执行栈技术结合运用能够起到更好的效果,但是由于非执行堆技术对计算机的内存修改过多,往往会造成计算机性能下降。
2.1.3内存映射
内存映射技术在计算机软件保护手段中,是唯一一个不再进行被动防御而是积极的对黑客和恶意软件的进攻进行限制和反击的手段。在内存映射技术中,计算机软件系统会将黑客所要攻击的目标代码页,映射到随机的地址上去这样就会给黑客的攻击造成极大的困扰,因为黑客需要花大量的时间对软件地址进行重新查找,而且内存映射不需要对计算机软件本身进行修改,只需要重新链接网络就能实现,所以内存映射一直是应对黑客攻击的重要手段之一。
2.1.4安全共享库
C++等我们日常生活中常用的计算机软件,在设计时就遗留了很多问题,最重要的问题就是函数不安全问题,一旦在运用C++程序时对不安全的函数进行调用,就会产生安全漏洞,安全共享库就是通过庞大资料库与客户的实时连接,保证计算机软件程序不会调用不安全函数,同时也会对计算机软件领域的函数进行集体排查,提高计算机软件运行过程中的安全性。
2.1.5沙箱
沙箱技术的名称与技术本身所能产生的效果相类似,沙箱顾名思义就是在计算机软件领域的一个隔绝外部骚扰的本地安全程序环境,沙箱在面对计算机软件安全漏洞问题时能起到的效果,取决于沙箱的过滤性严格与否,沙箱本身类似于防火墙效果好坏完全取决于本身的定义是否严格,如果沙箱的定义严格就能有效的阻止黑客攻击,但是定义过于严格又会影响计算机的正常使用。
2.1.6程序解释
程序解释技术是对计算机软件程序的合理性的一种检测,不需要对计算机的源代码进行修改,只需要对计算机设置新的启动代码,然后将新的启动代码带入到计算机程序中,利用该代码在计算机程序中造成的连锁反应,对计算机软件程序框架进行科学的系统的调整。
2.2 静态检测技术
静态检测技术是指不运行计算机软件系统,而直接对计算机的后台二进制代码进行全面分析,抓住问题的根源提出针对性的解决方案的检测技术,这样的技术检测优势在于简单、方便、直接而且不会产生其他安全漏洞。
2.2.1词法分析
词法分析是计算机软件程序设计过程中比较常见的分析手法,具体来说就是将程序代码先分成多个区域,并对有可能出现问题的区域的代码进行逐个的构词逻辑的分析,这样的程序分析比较麻烦,而且因为分析的是抽象的二进制语言,漏报率很高,在软件漏洞检测中一般不使用。
2.2.2规则检测
规则检测技术是针对计算机软件编程过程中,可能会出现的规则逻辑不清问题进行检测,在这一检测过程中通过对计算机软件程序中的规则设定的分析,对计算机程序的合格与否进行判定,具体手段就是检查人员通过特定语言表达方式将程序语言进行描述,经由规则处理器进行处理,检查其中是否有规则漏洞,接着将程序的运行行为与编码程序进行对比分析。
2.2.3类型推导
类型推导是对计算机软件程序中的非控制领域的检测,主要的检测形式就是通过已知函数对计算机的计算和分析能力进行测试,具体而言就是将已经知道答案的函数计算要求输入程序中,观察计算机软件程序在运算过程中的变化,检测运算的过程与结果是否符合我们预定的程序和结果。
2.2.4模型检测
模型检测方式是软件系统状态和系统命题的测试方法,该测试方法主要通过计算机程序模型的正确运算模式,来对计算机在任务分析和具体命题处理上的能力进行检测,是对计算机软件系统的执行机构进行检测的方式,但是这样的检测方法因为计算机建模过程中数据采集的困难,往往会导致检测过程耗时很长,不利于软件问题的及时解决。
3结论
我们可以预见到未来世界计算机技术必然得到更加广泛的应用,计算机网络和信息化技术也必然成为未来世界的主体,对于这样一个对人类社会存在与发展有着重要作用的技术,绝不能让它因为计算机软件中的安全漏洞而被影响,所以在促进计算机技术进步的同时,我们也要积极的促进计算机安全检测技术的发展,为计算机技术的发展保驾护航。
参考文献
[1] 齐燕.浅谈计算机软件中安全漏洞检测技术的应用[D].燕山大学,2012.
[2] 闫云峰.基于Windows平台的软件安全漏洞发掘技术研究[D].电子科技大学,2013.
[3] 管銘.基于程序分析的软件安全漏洞检测技术研究[D].西北工业大学,2012.