Hi:欢迎来到提高路网-专业的论文辅导网站     

所有论文科目分类

首页 > 免费论文 > 计算机论文 > 计算机软件

简要分析计算机软件中安全漏洞检测技术及其应用

作者:2017-10-10 16:21:15阅读:文章来源:
1 前言
  随着科学技术的不断发展,计算机软件发挥着强大的作用,数量越来越多的计算机源代码也使得黑客们更容易侵袭计算机软件系统,出现安全漏洞影响系统的稳定性。如今黑客们入侵系统产生的安全漏洞的形式正趋向多样化,而计算机软件中的安全漏洞检测技术则显得尤为重要。
  2 计算机软件中存在的漏洞简述
  2. 1 计算机软件中存在的漏洞概述和类型
  就计算机软件而言,安全漏洞又称为计算机的脆弱性,是指能够对计算机系统的运行造成安全问题的一些弱点或缺点,也可以说是计算机系统中能够被黑客利用来攻击计算机系统从而影响计算机正常运行的问题。计算机设计人员在研制和开发计算机软件时,如果在操作过程中产生技术失误也可以称之为计算机安全漏洞。很多计算机在安装主体时往往会安装防火墙和反防毒软件等避免计算机安全漏洞造成的损失和危害。一般而言,在良好的运行环境下,通过对防火墙与反防毒软件的应用,可以使安全漏洞得到有效防止。但是在实际生活中,反防毒软件和防火墙并不能完全避免安全漏洞的发生,真正有能力的黑客在入侵计算机系统时会自动进行攻击,这样不仅会损失重要的系统信息,也会对计算机造成损害甚至无法开机。安全漏洞可以根据性质将其分为两类:安全性漏洞和功能性漏洞。安全性漏洞是指一般情况下不会对计算机软件的正常运行造成影响,但是漏洞一旦被黑客利用发起攻击就会造成计算机软件运行发生错误,从而对计算机软件的正常运行造成严重的影响。功能性漏洞是指会对计算机的正常运行造成影响的计算机软件的漏洞,例如运行流程发生错误,运行结果发生错误。
  2. 2 计算机软件中存在的漏洞的主要特点
  2. 2. 1 由人为素质造成
  计算机软件的安全漏洞很多都是在研制和开发过程中因为设计人员的疏忽大意造成的。比如常见的编程的逻辑错误,计算机软件在编程过程中,逻辑错误是一个比较普遍的问题,开发人员的一个小失误很可能就会造成安全漏洞。
  2. 2. 2 比数值计算逻辑错误
  在处理计算机软件数据时,最常发生的就是比数值计算的逻辑错误,一般会发生在过小或者过大等不合理的模块,中等程度的模块会发生错误的概率是比较小的。
  2. 2. 3 长时间存在的安全漏洞
  计算机软件一旦出现安全漏洞,就会使得病毒和黑客侵入计算机系统,严重影响计算机的安全,而在计算机软件系统当中,一个旧的安全漏洞被修复的同时,可能还会产生新的安全漏洞,总而言之,安全漏洞是长时间存在于计算机软件系统当中的。因此,对安全漏洞进行有效地监测和预防,及时对安全漏洞进行修复,能够有效地保证计算机信息系统的安全性和稳定性。
  2. 2. 4 与系统环境密切相关
  在计算机软件当中,安全漏洞的发生与系统环境密切相关,运行系统的不同也会对安全漏洞产生影响,此外软件设备和版本的差别也会使得出现的安全漏洞的类型有所区别。3 常用的安全漏洞检测技术
  3. 1 静态检测技术
  静态分析检测技术是最初的计算机软件安全漏洞静态监测技术,这种检测方法偏向于表面,近年来,随着计算机技术的创新与发展,静态监测逐渐演变为两种检测方法: 即静态分析和程序检验。静态监测指的是在检测计算机软件系统程序过程中进行源代码的扫描,先直接分析被检测的计算机软件系统的程序本身的特点,再全面分析源代码的语法和语义,这样就可以检测出计算机存在的安全漏洞。程序监测是指计算机软件系统内抽象化的程序源代码,检测其是否符合计算机所需要完成的工作要求,尤其是安全要求,然后判断并检验计算机软件系统是否存在安全漏洞。
  就计算机软件安全漏洞检测技术中的静态监测技术而言,计算机软件系统内部的特点会更受关注,安全漏洞本身特点的检测和静态方法的特点的监测之间密切相关。我们可以根据不同的方法划分漏洞的种类,根据最常用的方法,可以将漏洞划分为很多小的部分,而一般的检测方法也只能处理比较分散的漏洞。因此,从漏洞的种类下手寻找共同点是比较困难的。所以,在进行检测时,可以对比性地将漏洞分为内存性的漏洞和安全性的漏洞。内存性的漏洞比较关注类别和自身的数据是否更具有准确性; 而安全性的漏洞则更关注数据流是否存在错误以及误差的大小等方面,这种情况往往是由于内存的形态存在错误而形成的。因此,对于这种漏洞而言,在进行静态检测时,最有效的方法就是将模型建立在漏洞的储存空间内。此外,在解读和处理漏洞时也要根据静态检测技术的不同特点对其进行区分,因此,个别技术只能检测特定的漏洞,而要处理两方面的漏洞还要借助其他的方法。
  3. 1. 1 静态分析
  静态分析主要是直接、全面地计算机软件系统中的程序的源代码进行扫描,对程序代码中的语法和关键词、句进行提炼,根据解读的具体含义对程序的行为进行分析,之后再根据事先设置的漏洞的特点结合计算机软件系统自身的安全标准进行检测,对系统整体进行判断和处理。在进行检测的过程中,有以下几点需要特别注意: 第一,分析语法和关键词、句,这也是最早的静态分析的方法。但是,仅仅对语法和词句进行分析是通过检查语法和计算机软件系统中的程序分为语句片段来实现的,之后再将一个个语句片段比标准的“疑问数据库”,自动对存在的漏洞和问题进行判定和评估。这样的情况下检测出的有效漏洞的数量十分有限,而且只能检测出“疑问数据库”中已知的漏洞,而不能检测出未知的漏洞。第二,在进行检测时要严格遵循相关的标准条件。一般而言,安全标准是用来描述计算机软件系统中的程序运行的基本情况的,然而,程序本身也是一种标准化的编程,即我们研究的漏洞模式也是一般的安全标准。在进行检测时,要严格依照程序应用的规则进行,结合相应的语法模式描述这些所谓的标准,再利用规则处理器接收这些标准化的语法,处理器在进行转变后会自动接收到内部表述的程序,最后在系统运行的过程中进行最终的整体检测。
  相较于动态分析检测技术而言,静态分析检测技术在进行检测时,计算机处于停止运行的状态,操作更加方便和快捷,虽然能够对计算机软件系统的相关程序的状况最初最真实的反馈,但是不能确定这些程序本身以及运行过程中的重要属性。一般而言,静态分析检测技术可以分为以下几种: 词法检测、推断检测和评注计算机软件程序等三种。词法检测在执行时要先分析和识别计算机软件接口的预言,定义相应的语法,再生成并检测形成的语法例子,这个过程主要的工作是分析C 语言函数和程序中的源代码是否有危险性,也是我们所说的最基本也最原始的静态分析检测技术。推断检测是指自动对程序中存在的函数、变量等进行分析,再结合他们规范化的类型和方式进行分析来判断是否存在安全漏洞的方法。评注计算机软件程序是指利用“tainted”标记计算机软件的外部数据,技术人员再根据排查和分析的结果进行评注。
  3. 1. 2 程序检验
  程序检测是根据抽象化的计算机软件系统来建立一个具体形式的程序或者模型,再结合形式化和正确性的检验方式来检测计算机软件的安全漏洞问题。在进行程序检验时,主要是通过建立模型来进行检测,具体是指计算机软件程序在有限状态下建立一个合适的模型,建立的模型往往是抽象化的片段或者执行点,再和计算机软件本身的特点进行对比和验证。在检测时建立合适的模型也会起到检测的作用,建立的模型也会和软件的用途相关,因此,一个模型也可以运用到许多相似的软件当中来检测安全漏洞。一般而言,模型检验有两种检验方式,分别是模型自动转化法和符号化检验法。模型自动转化法是指将检测软件程序进一步转化成等价的自动检测机,两个自动机相互结合可以实现替换和补充的作用,从而达到新的自动机的效果,同时通过软件系统转变成能够识别的语言模式。符号化检验是指通过公式描述的形式将抽象化模型以语法树的形式表达出来,根据公式来判断是否符合检验的要求。模型检验应该先列举出可能会发生的各种状况,结合软件系统本身的复杂性对所有的程序都创建不同形式的模型,这也是一项规模庞大的任务。因此,在实际操作中,可能会选择一部分程序和相关属性来建立抽象的模型。但是,近年来,随着模型检测技术的改革和创新,现在主要是运用内存来建立模型的方式检验往常的时序漏洞,在结合定理和证明的形式来检测安全漏洞。与模型检验相比,这种方式更加严密,具体的检验过程是对程序进行多重判定,尤其是判定抽象化的公式的真假性,当然,公式本身的形式也会决定判断的方式。例如,不等式的合取作为一个关键因素就是一个典型的例子,先根据合取式制作图表,在图中要真实地反映每个提到的条件,再利用公式合并各个条件。同时,对其中的不等式进行检测,等式如果不成立的话,也就无法满足合取式。在程序检验过程中,可以通过实践来证明模式检验是否可靠以及是否具有实用性。软件系统的种类业余时序性密切相关,证明定理也是一项比较复杂的任务,因此,这种方法并没有广泛地应用于实际操作当中。
  对于计算机软件而言,静态检测技术只能检测出当前存在的安全漏洞的种类,而无法判断那些未知的漏洞。由于静态检测空间、精确度和时间等因素限制了其性能的改进,在一定程度上降低了静态检测的质量,因此,必须在后期加大资金投入。
  3. 2 动态分析检测技术
  3. 2. 1 非执行栈
  近几年来,计算机软件系统常常会发生被栈攻击的事件,主要是因为软件操作系统中的栈本身的读写能力不足、执行力不够的问题。栈之中包含了数组变量等内部变量,因此,个别不怀好意的人员能够在栈中随意篡改一些重要的代码,再利用特殊的方式执行代码。而只有将栈转变为不能够随意进行代码执行的模式才能有效地防止栈被攻击和侵略。这样,软件系统无法执行攻击软件的人员随意篡改写在栈上的代码,从而降低了计算机软件被侵入的机率,减少了安全漏洞的发生率。实现非执行栈的具体过程是通过修改计算机操作系统的内核,将栈的页标标记为不可执行,借助栈溢出将程序跳转想攻击的代码,因为执行代码是位于堆生而非正在执行的栈上,因此非执行栈并不具有完整性,存在一定的局限性,当栈中出现攻击代码时检测就无法发挥效用。
  3. 2. 2 安全性的共享库
  很多计算机软件会在无意中是用来一些不安全的共享库从而导致了安全漏洞,在一定程度上,安全的共享库可以避免攻击人员的侵入行为。安全共享库是指运用动态链接拦截非安全性的函数应用程序的实际运行,检测其操作的过程。与此同时,安全共享库也会评估内存的上限来防止内存中出现恶意破坏的数据,保证计算机软件系统的安全性,windows 的操作系统一般会运用这种方式。虽然安全共享库不会修改计算机的内核,兼容性较好,但是其局限性也是十分明显的,即安全共享库检测不到本地变量是否存在安全漏洞,当代码数据溢出受到攻击时也无法起到很好的防护作用,也无法保护标准化的函数库。
  3. 2. 3 沙箱
  沙箱是指限定一个程序的访问量来防止恶意的入侵。例如,对于计算机软件而言,如果C 语言中含有一类调动函数,但是软件在运行过程中又出现了相似但不同的调动函数,就说明有漏洞在攻击计算机软件。而使用沙箱就会限定被攻击前的软件,保证其不会受到恶意软件的影响。
  3. 2. 4 映射内存
  个别恶意攻击的人员可能常常利用以“NULL”结尾的字符串来覆盖内存,利用内存映射技术可以使得攻击人员难以实现把复杂的内存覆盖字符串转变为简单的内存操作。就这个角度而言,随机地将代码页映射到各类内存地址上也可以在一定程度上降低随意篡改页面的可能性。
  3. 2. 5 非执行堆和数据
  在检测非执行堆和数据时,需要大量修改计算机内核的数据,同时将数据段的代码和堆的动态声场全部进行修改才可以实现,在此过程中可能会出现不兼容的情况发生。一般而言,在进行非执行堆检测时往往需要借助非执行栈的配合使用
  4 计算机软件中安全漏洞检测技术的具体应用
  4. 1 检测并避免出现竞争性的安全漏洞
  很多安全漏洞往往是因为竞争条件的存在而产生的,解决的办法就是将竞争性的编码进行原子化实现操作。编码作为最小的执行单位不会受到正在运行的软件程序的恶意干扰,将编码进行原子化就是通过锁定编码的方式再改变特定状态下的程序间接性地调动各个软件系统,最后描述运行的文件或者句柄来检测TOCTOU 等问题来预防安全漏洞的发生。
  4. 2 检测并避免缓冲区出现安全漏洞
  检测并避免缓冲区出现安全漏洞就是通过判断和分析计算机软件程序中不安全的函数来避免缓冲区出现安全漏洞,例如不安全的strcat 版本可以全部替换为安全的strncat 版本。
  4. 3 检测并避免格式化字符串的安全漏洞出现
  格式化字符串的出现很容易造成安全漏洞的发生,唯一的解决措施就是从根本上进行预防,在数据代码中直接使用格式化的常量,防止恶意攻击人员可能会创建格式化字符串的机会。一般而言,格式化字符串往往会出现在参数不确定的个数函数当中。因此,在运用这种函数时,应该控制每个参数的个数、平衡参数的性能。此外,在进行输出数据时,运用Windows 操作系统下的窗口或者运用串口输入系统数据可以预防格式化的安全漏洞的危害。
  4. 4 检测并避免出现的随机安全漏洞
  在检查和预防随机出现的安全漏洞时,使用的随机发生设备一定要保证良好的性能,因此在选择随机发生设备时一定要慎重考虑。为了确保随机数流的安全性,随机发生设备需要自身设置密码算法,这样在软件遭到攻击时,就可以根据掌握的算法的整体细节来获得完整的数据流,提高随机数据在遭遇入侵时运行的稳定性和安全性。
  5 结语
  随着社会的进步和科学技术的发展,计算机软件在设计和开发时也无法避免地会出现安全漏洞的问题,因此,为了保证计算机软件的安全运行,安全漏洞检测技术是十分重要的。在不断的发展和创新中,计算机软件安全漏洞检测技术也需要与时俱进,通过改善静态检测和动态检测技术来预防安全漏洞的发生。
 

最近相关

最新更新

热门推荐

[经济法]九好集团财务造假案例分析与对策思考
 九好集团是2017年第一家因“忽悠式重组上市”而被证监会处以顶格处罚的后勤托管服务公司,主要业务模式是作为中介服务平台为客户寻找后勤服务供应商,根据成交额收取一定比例的服务费。九好集团财务造假手段,可以代表我国拟上市公司财务造假普遍存在的现状...[全文]
[行政管理]单纯收受行政管理对象财物的司法认定
  在单纯收受下级、行政管理对象的财物行为中,国家工作人员并未利用职务上的便利为对方谋取利益,也不存在具体请托事项。司法解释规定此类行为一定条件下可构成受贿,但在具体执行中尚有不少疑难问题。事实上,将单纯收受下级、行政管理对象的财物认定为受贿,...[全文]
[世界历史]海绵城市建设的困难误区及推进建议
 1、海绵城市热潮  传统的城市雨水系统建设模式已经对水环境造成巨大的负面影响与危害,近年来的城市内涝灾害广受病垢。  事实上,严重的径流污染、水文循环的破坏乃至生...[全文]
[信息]联系方式
欢迎访问提高路网。您有任何问题,都可与提高路网取得联系。以下是提高路网的联系渠道: 一、推荐您与提高路网的在线客服联系,以获得最快最及时的回复。如果客服不在线请致电138...[全文]
[法理法史]国际法历史发展因素
广义地说,古代社会已有国际法(可称之为“古代国际法”),或者至少有国际法的遗迹。当然,一般意义上,国际法是指近现代国际法,下面是编辑老师为大家准备的国际法历史发展...[全文]
[财政税收]港澳地区及大陆税收政策的差异
摘要:虽然港澳地区和大陆同属中国政府管辖,但由于历史原因,港澳在社会经济制度、经济发展模式、发展水平及税收管理政策等方面和大陆存在差异。我国经济的发展使港澳和大陆之间...[全文]
[信息]关于我们
提高路-论文网(www.tigaolu.com)全国论文辅导平台。本着帮助有志于提高自身任职现状的人们,提高路-论文网是国内较早提供论文、职称解决方案的服务商,是中国在线学术服...[全文]
[艺术理论]颐和园园林艺术论文范例赏析(共2篇)
  颐和园园林艺术论文怎么写呢?颐和园园林是中国现在保存最完好和规模最大的古代园林,同时也是我国园林艺术的杰出代表,是我国清代著名的皇家园林,其兴建历经乾隆、光绪两朝,园林布局集中了皇家园林与私家园林、北方园林与南方园林之特色,下面是千里马...[全文]
[硕博论文]基于上市大数据企业的经营绩效与研发投入关系研究
近年来,大数据(Big Data)已经成为学术界和业界所共同关注的热点和焦点。随着网络和信息技术的普及,人类产生的数据量呈指数级增长,这与原始信息时代已经很不一样。...[全文]
[图书馆论文]图书馆服务质量改进措施论文(共2篇)
  第1篇:英国高校图书馆服务质量信息发布制度分析  英国是最早建立图书馆服务质量保障体系的国家之一,经历了图书馆内部自评到外部强化的质量保障过程,最终实现了内外力量的有机结合,形成了严格的质量保证体系。在这个体系中,服务质量信息发布扮演了沟通...[全文]
[硕博论文]RV减速器可靠性研究与关键件疲劳可靠性分析
RV减速器是结合行星传动和巧妙地利用曲柄轴实现摆线传动的减速器,具有结构紧凑、过载能力强和可靠性高等优点。目前国内的RV减速器仅处于研究生产阶段,其主要原因是...[全文]
[硕博论文]基于双边市场的平台纵向一体化策略研究
双边平台具有网络外部性、不对称定价、用户多归属等双边市场所特有的特征,这些特征使得双边平台的竞争模式与传统企业有所区别,平台用户数量是平台企业的主要竞争目...[全文]