计算机软件安全漏洞检测技术与应用

摘 要:如今,计算机信息网络已经在各个领域得到了广泛应用,并逐步改变着人们的工作、学习和生活方式。因此,在我们应用计算机软件系统过程中,确保计算机软件的安全至关重要,由此而出现的安全漏洞检测技术越来越被人们所重视。本文分析了计算机软件安全漏洞检测技术
阅读技巧Ctrl+D 收藏本篇文章

  摘 要:如今,计算机信息网络已经在各个领域得到了广泛应用,并逐步改变着人们的工作、学习和生活方式。因此,在我们应用计算机软件系统过程中,确保计算机软件的安全至关重要,由此而出现的安全漏洞检测技术越来越被人们所重视。本文分析了计算机软件安全漏洞检测技术中的静态检测技术和动态检测技术,并就安全漏洞检测技术的应用进行了探究,旨在保证计算机软件的应用安全。
下载论文
  关键词:计算机软件;安全漏洞检测技术;应用
  中图分类号:TP393.08
  随着信息时代的发展,使得计算机软件正发挥着越来越重要的作用,各类源代码也随之迅速增加。部分黑客开始针对计算机软件系统中的源代码漏洞进行攻击,窃取数据信息或者破坏系统,给计算机用户带来严重损害。有数据统计表明,目前的计算机软件漏洞问题越来越明显,而针对软件的攻击也呈现利益化倾向。因此,必须不断加强计算机软件的安全漏洞检测技术,才能确保计算机软件的稳定运行。
  1 计算机软件安全漏洞检测技术
  1.1 静态检测技术
  初始的计算机软件安全漏洞静态检测即为静态分析,然而因其检验方式大都停留表面状态,所以近年有所创新拓展。其逐渐发展为静态分析和程序检验两项内容。静态分析主要是对系统程序的源代码进行扫描,再从语义语法等各个角度开展认真解析工作,并且分析需要检测系统程序的自身特性情况,由此查找系统安全漏洞。程序检验则主要是面向抽象系统里的程序源代码进行检验。重点检测软件系统程序能否与计算机需求相匹配,尤其是安全情况,再判断和检验是否存在安全漏洞问题。
  针对静态检测而言,更为关注软件系统程序之内部特性情况,其检测特点与漏洞特点具有直接关联。安全漏洞的划分方法有多种,漏洞可以分为诸多细小组成部分,但漏洞类别上的共同点很少。因此为将漏洞更好地区分,可分为安全性和内存性两种漏洞。其中安全性漏洞主要看是否存在数据流误差与错误,通常因错误内存形态和情况决定;而内存性漏洞主要看类别和数据是否准确。因此进行空间建模是最有效的检测手段。此外,因静态检测技术特性区别较大,漏洞解读和处理时也存在区别,所以通常只能检验特定漏洞。
  (1)静态分析。静态分析主要是对系统程序的源代码进行扫描,并且找出关键句和语法,通过解读其含义对程序行为开展分析,之后严格根据漏洞特性和系统安全标准完成检测工作。首先是分析关键句和语法,该方法早期就已用作静态分析,但早其仅检查语法方面。把系统程序划分为片段,同时将这些片段与“疑问数据库”开展对比分析,如发现存在漏洞或者存有疑问,则进行启发式评估和判定工作。由此可见,其虽然能够检测其中的漏洞,然而毕竟检测数量有限,并且检测出的漏洞大都早已知道,还存在漏报问题;其次,根据相关标准开展严格检测。一般而言系统程序能够稳定运行即是安全标准。可通过规则处理检测方法,针对该标准进行语法模式的描述,之后经由规则处理器接收转变为内部表述形式,从而全面检测系统程序运行情况。
  (2)程序检验。程序检验主要是通过抽象软件系统程序来得到形式化的程序和模型,之后进行形式化检测,再通过科学检验方法检测软件系统漏洞情况。首先,检验模型。主要是对系统程序有向图和状态机等建立抽象模型,并且检测系统的特征。通常而言有符号化检验和模型自动转化检验两种方法。符号化检验主要将抽象模型变为语法树来开展公式描述,再判断公式与需求是否相符;而模型自动转化主要把程序变为等价自动机,再把两个自动机进行补充替换为新的自动机,最终已判定系统变为可容纳的语言形式。模型检验通常先列举现实可能存在的情况,而软件系统的复杂性决定了不能全部建模,所以只能针对部分属性和程序开展抽象建模。然而近年来新模型检测技术有所发展,其通过内存建模来检验过去的时序漏洞,再通过定理证明检测漏洞,相对而言严密性更强。针对静态检测而言,只能检验现有漏洞类别,因为没有漏洞描述标准,无法判定和描述未知漏洞。而对现有漏洞也没有全面覆盖的有效方法,因此静态检测在性能上缺陷较大,而要想提高其检测质量所以资金投放也较大。
  1.2 动态检测技术
  (1)内存映射。大部分攻击者都会利用“NULL结尾字符串开展内存覆盖来完成攻击操作。通过代码页映射技术能够增加内存覆盖的难度,无法轻松跳转到内存区进行操作。换个角度分析,由于代码页随机内存映射,某种程度上也减少了通过猜测地址开展页面攻击的情况。
  (2)非执行栈。如今出现了许多栈攻击软件问题,其根本原因是系统里栈的能写及执行方面存在问题。栈里包括内部变量和数组变量,所以攻击者可以随意在栈里写入恶意代码,再想方设法执行代码。因此如果把栈转变为无法执行代码形式即可有效预防攻击。
  (3)安全共享库。许多软件安全漏洞都是因共享库不安全导致。通过应用安全共享库可以有效预防人为攻击。这里的安全共享库主要指采取动态链接在程序运行时拦截不安全的函数,同时检测这些函数。通常在windows和UNIX操作系统中应用较广。
  (4)沙箱方法。主要指通过限制程序进行资源访问来预防恶意攻击行为,如C语言里的调动函数,软件当中实际上并没有调动函数存在,当发觉软件运行中存在类似调动函数时,表明其已经遭受到了攻击。因此,使用沙箱的方法可以在被攻击前限定其恶意攻击行为,即使受到攻击也不会造成损害。
  2 计算机软件安全漏洞检测技术的应用
  2.1 防止竞争性漏洞
  针对由于竞争条件出现的漏洞,预防时应当将竞争形成的编码使用原子化操作方法。作为执行单位里最小的编码,程序运行不会出现任何干扰问题。而所谓原子化操作主要是先锁定,通过预防某种特定状态改变所形成之问题,从而间接调用应用文件名的系统,从而描述所用文件或者句柄。
  2.2 防止缓冲区漏洞
  针对缓冲区漏洞溢出问题,预防时可通过检查软件程序里的危险函数来实现,应用安全软件版本取代可能存在安全问题的版本。如把原版本externchar*strcat使用externchar*strncat来取代。
  2.3 防止随机性漏洞
  针对随机漏洞问题,预防时可通过使用性能良好的随机发生设备来实现。由于设备自带有密码算法,能够确保随机数流安全,即使遇到软件攻击情况,掌握算法细节,也无法得到相应的数据流。
  2.4 防止字符串漏洞
  针对字符串漏洞,预防时可在数码里直接使用格式常量,从而使攻击者无法创建任何格式串。通常个数函数如果不定参数,均存在字符串漏洞问题,因此应用该类函数要确保各个参数个数和均衡性能达标。此外也可通过Windows操作系统下属的窗口完成数据输出任务,从而降低漏洞威胁。
  3 结束语
  总之,目前情况下,计算机软件安全漏洞检测技术正逐步发展为检测计算机通信及系统安全的重要方法,而编写软件程序消除安全漏洞已成为保证计算机软件安全的重要措施。因此,相关人员必须继续努力,不断加强计算机软件的安全漏洞检测技术,从而确保计算机软件的稳定运行。
  参考文献
  [1]齐燕.浅谈计算机软件中安全漏洞检测技术的应用[J].信息与电脑(理论版),2010(10).
  [2]李永华,窦春铁.谈计算机安全漏洞动态检测的原理方法与实践[J].数字技术与应用,2010(03).
  [3]薛磊磊.谈计算机安全漏洞动态检测的原理方法与实践[J].科技促进发展(应用版),2010(10).
  [4]宋超臣,黄俊强,王大萌.计算机安全漏洞检测技术综述[J].信息网络安全,2012(01).
  作者简介:高妍(1980.08-),女,硕士,讲师,研究方向:计算机应用
  作者单位:辽宁建筑职业学院,辽宁辽阳 111000

转载请注明来源。原文地址:http://www.lw54.com/html/zhlw/20181009/7866022.html   

计算机软件安全漏洞检测技术与应用相关推荐


------分隔线----------------------------
联系方式
微信号 biyelunwen
热点论文