SCI论文(www.lunwensci.com)
摘 要 :随着计算机技术的快速发展和进步,相关的信息系统在我国的各个领域之中均得到了广泛的应用,并对我国经济 社会的发展形成了巨大的促进作用。而也正是在这一背景下,人们开始对计算机网络的安全性形成了更多的关注,通过相关安 全技术的应用,将可以较大程度地提高计算机网络的安全性,满足生产生活的需求。本文从现阶段计算机软件的安全漏洞检测 技术入手,对漏洞检测技术的应用进行了探讨。
Security Vulnerability Detection Technology and Application Analysis in Computer Software
WANG Zhaohui
(Taiyuan Government e-government Centre, Taiyuan Shanxi 030082)
【Abstract】: With the rapid development and progress of computer technology, related information systems have been widely used in various fields in China, and have formed a huge role in promoting the development of China's economy and society. And it is in this context, people began to form more attention to the security of computer networks, through the application of relevant security technology, will be able to improve the security of computer networks to a greater extent to meet the needs of production and life. In this paper, the application of vulnerability detection technology is discussed from the current stage of computer software security vulnerability detection technology.
【Key words】: computer software;security vulnerability;detection technology
0 引言
在计算和和电子商务的快速发展背景下,计算机软 件的安全性受到了人们广泛的关注。网络环境安全性对 于人们在计算机软件使用方面的有效性,以及人们自身 的财产、信息安全等都有着巨大的影响。针对这种情况 当前人们越来越多地重视对计算机软件安全漏洞监测技 术的应用,以此来避免相关过程中的安全风险。
1 计算机软件安全漏洞概述
计算机软件安全漏洞所指的是相关软件在开发过程 中存在的缺陷现象,这些缺陷的存在将为黑客的入侵和 破坏行为提供机会,从而让用户的计算机安全受到严重 的威胁,也正是因为这一情况的存在,所以现阶段人们对计算机软件安全漏洞的整体关注程度较高。在对相关 问题进行防范的过程中,通常采取的措施是依靠杀毒软 件或者防火墙,来保障计算机软件的正常,避免出现安 全问题 [1]。尽管这些措施能够在一定程度上起到保护计 算机系统的作用,但同时其也存在着较多的不足之处, 无法对漏洞和安全风险形成根本性的解决,尤其是当相 关杀毒软件或者防火墙在运行过程中出现问题的时候, 则无法对漏洞形成防范作用,一些不法分子在这种请款 修改就会对计算机漏洞进行利用,对用户的数据信息进 行非法获取和恶意篡改,最终威胁到用户的计算机安 全。目前比较常见的计算机软件漏洞包括如下几种:
(1)在软件的编写过程中没有对各类情况进行全面考量,最终导致编写结果与实际需求之间存在差异,这 种问题与工作人员的经验和业务技术水平等因素覆关系 较强,尤其是在进行开发的阶段存在技术性错误的现 象,则势必导致漏洞的产生;
(2)计算机软件在运行过程中因为自身的运算错误 等现象,而导致的漏洞问题;
(3)计算机硬件设备与其所使用的软件之间存在着 不契合的现象,从而导致漏洞的出现;
(4)计算机在长时间的运行过程中,自身产生的漏 洞问题,且这些漏洞没有的及时进行处理和修复,进而 会带来相应的安全隐患。
2 计算机软件漏洞检测技术
2.1 静态监测技术
静态检测所指的是在不运行被测源程序的情况下, 采取相应的漏洞检测算法或者是匹配对应规则的方式, 来达到漏洞检测的效果,正是因为这种特征的存在,因 此在软件漏洞监测过程中,该方法的整体检测速度较 快,且漏报率比较低。在实现的时候,相关的监测策略 为逐行进行相关计算机软件的源程序代码进行扫描,从 而达到识别漏洞的目的,但是相关的程序代码本身又是 字符串或者是二进制代码,这种情况对于漏洞检测的工 作将会带来一定成的阻碍,尤其是静态检测算法在应用 的时候,将会比较难以实现对程序代码的语义和依赖信 息进行获取。有鉴于此,在进行检测的过程中,需要将 对应的原程序等价转化为程序中间表示(IR),在此前 提下对 IR 进行分析,才能实现对计算机软件漏洞进行 有效监测的效果。在实现过程中,静态检测技术主要分 为如下两种技术类型:
(1)静态分析。这种检测方式是针对相关程序的代 码进行直接扫描,从而对程序的关键语法进行提取,并 解释对应的语义,最终达到相应的漏洞检测目的。词法 分析是静态检测技术之中出现比较早的检测技术,在应 用过程中仅仅进行语法上的检查,实现过程是通过将相 应的程序划分为若干份,并针对每一份内容的情况与数 据库中的漏洞特征进行对比,从而来发现漏洞,其检测 工具主要为 ITS4 和 Rats 等。一般来说,这种漏洞检 测方法的应用局限性比较大,只能针对一些已知的固定 漏洞进行检测,且在检测过程中漏报的可能性也比较 高。相较而言,规则检查则是更为有效的一种计算机软 件漏洞检测措施,在应用过程中该方法是根据程序自身所具有的相关规则来进行对应的检查,如当相关的程序 处在 root 权限之下的时候,应当避免 exec 调用,针对 这种规则,在相应的漏洞检查过程中,对规则以相应的 语法进行描述,此后可以采取对比的方式,来达到检测 程序是否存在漏洞的问题。在进行检测的过程中,可以 通过 CCured、ESP 等工具实现 [2]。最后,类型推导也 是计算机漏洞静态检测的一种方法,该过程中是通过对 相关程序中的各个变量和函数的类型进行推导,从而来 明确相应的程序是否存在漏洞。在应用的时候可以采取 MC、Lint、RacerX 等工具实现。整体而言, 静态分析 方法在应用过程中的方法较多,且各类方法也具有着自 身的特点。
(2) 程序验证。程序验证也是静态检测的一种方法, 同时这一方法也具有较多的类型。首先是模型检测, 该 技术在应用过程中是针对有限状态的程序构造状态, 或者 是有向图等抽象模型,在对模型进行遍历,从而达到对 系统特征进行验证的效果,可采取的工具包括 Bandera、 BLAST 等。其次,定理证明也是程序验证过程中常用 的措施,这种方法相较于模型检测的方法而言,检测 效果更为精确 [3]。实现过程中主要是通过相应的判定过 程,对程序抽象公式是否为真进行验证,而具体的判别 方式则是取决于公式的形式,主要工具包括 Cogent、 EauClaire。最后,符号检测也是程序验证之中的一种 措施,相关的措施在应用过程中是通过对程序内部存在 的变量的值逻辑转换成为抽象符号,模拟路径敏感的程 序控制流,依托在相应的检测过程中采取的约束求解措 施,实现对程序之中可能存在的漏洞进行发现的目的, 应用工具包括 Mjohlir、ESC 等。当然,上述的相关检 测方法在应用过程中,均具有各自的优势和劣势,在应 用的时候,通过对相关措施的优劣势进行把握。
2.2 动态检测技术
计算机软件程序在设计和运行过程中,无论是系统 控制还是数据传输都存在着一定的共性,即在运行的时 候,相关的内存一般可以映射为部分,而进行操作的时 候,相关程序的数据、代码和资源等的占比会存在变 化,动态检测技术就是通过对这种变化进行把握,来达 检测效果的。动态检测技术通常分为如下几种类型:
(1)安全共享库。C 语言和 C++ 语言是比较常见的 计算机语言,在现阶段的编程工作之中应用广泛,而在 程序的编写过程中不少函数都存在安全漏洞问题。该技术在应用过程中就是通过动态链接,对相关程序在运行 的过程中具有危险因素的函数进行拦截,来达到检测漏 洞目的的。安全共享库也可以对相关的不安全函数进行 处理,从而为程序的正常运行创造相对良好的条件,让 整体的运行过程更为顺畅;
(2) 沙箱。这种动态检测技术在应用过程中, 是通 过依托相应的安全策略,对攻击行为进行阻止从而发现 漏洞,而影响这项技术应用效果的关键因素就是策略的 定义,当策略定义的严格程度较高,则防护能力就越 强,但同时这一技术在应用过程中也存在一定的不足, 就是在部分软件在受到修改用户身份的威胁的过程中, 其将无法充分地发挥作用,且如果在进行策略定义的时 候过于严格,还将可能导致软件无法正常使用 [4];
(3) 内存映射。从实际的情况来看, 在计算机程序 使用的过程中,相关的攻击主要面对的目标是内存,相 关的攻击过程往往是采取特殊字符将内存进行覆盖达 到目的,而相关的字符则往往会采用 NULL 进行结尾。 而内存映射在应用过程中,可以实现对此类攻击进行阻 止的目的,原因是内存映射代码本身也存在以 NULL 结尾的字符,在这种方式之下将能够比较有效地对攻击 行为进行扰乱,从而对部分攻击行为形成阻止的作用。 不过这种方法在应用过程中也受到一些因素的影响,会 导致其效果无法有效发挥,其中最主要的因素就是内存 大小,在应用的时候,其不可能将所有的内存均映射到 代码页;
(4) 非执行栈。在部分攻击过程中, 相关的攻击行 为往往会依托栈进行攻击,这种现象产生的原因是因为 计算机的操作系统之中存在的部分数据,主要是以栈来 进行存储的,只要相关攻击者通过对应的措施将自身的代码运行到其中,则可以实现对对应软件和系统的破 坏。针对这种情况,比较有效的防范措施就是避免栈攻 击过程。不过需要注意的是,这种方式在应用过程中需 要对系统层进行一系列的修改,在这种情况下将会有较 大的可能性对计算机本身的安全构成风险,造成其他问 题,因此需要谨慎进行使用;
(5) 程序解释。在面对威胁的过程中, 对相关程序 的应用过程进行全面的跟踪,同时通过掌握对应程序的 整体运行状态的方式,可以比较有效地对相关的风险进 行规避,实现保障安全的目标,这种方法就是程序解释 技术。但是在具体应用的时候,这种方法往往会造成较 为突出的性能消耗问题,面对这种情况,采取程序检测 器通常能够形成比较良好的效果 [5]。相较于其他技术类 型而言,程序解释在应用过程中的便利程度比较高,具 有广泛应用的价值。
3 计算机软件安全漏洞的防范策略
在当前计算机互联网技术迅速发展的背景下,相关 技术在各个领域之中均得到了极为广泛的应用,而随着 这种情况的推进,计算机应用过程中的各类隐患也越来 越突出,相关问题的产生对于人们的日常生产和生活都 带来了巨大的负面影响。为了改善这种情况,在各类工 作之中有必要对计算机软件的安全漏洞进行全面和系统 的把握,充分地避免不良影响的产生,而具体实施过程 中则可以从如下几个方面来达到目标:(1)确保计算 机软件使用过程中的安全和正常。在既往的计算机软件 应用过程中,相关人员对软件本身运行的安全和正常关 注程度不足,在这种情况下往往会让软件和计算机处于 较大的风险之中,严重影响到对其的安全使用。针对这 种情况,相关单位和人员可以采取漏洞检测技术,对相应程序运行过程中可能存在的危险函数进行逐一检查和 识别,从而了解到计算机软件使用过程中可能存在的风 险,并采取有效的措施进行处置和防范。如果在计算机 缓冲区出现漏洞问题,则可能提示检测系统对软件漏洞 问题无法进行有效检测,相关工作人员在这种情况下, 则需要进行对软件的升级等工作。同时,在这个环节之 中相关人员还需要注意对软件选择的规范性,应当确 保对应软件的获取渠道合法,严格避免采用盗版软件, 在这种方法之下可以比较有效地对风险问题进行防范; (2)避免竞争机制安全漏洞。在实际的计算机互联网使 用过程中,通常存在大量的软件,而各类不同的软件在 共同使用过程中可能导致相互的不兼容情况,甚至可能 会对计算机形成破坏,严重影响到计算机安全。在面对 这种问题的时候,相关人员需要合理地进行不同软件的 选择和使用,严格避免出现上述的问题;(3)注意格式 化漏洞的防范。这种情况是现阶段计算机软件应用过程 中,最为常见的安全 l 漏洞现象,如果相关漏洞发生, 将会导致计算机内部资料和数据的大量丢失,在这种情 况下将会无法进行对数据信息的修复和找回,有鉴于此 相关单位和人员在工作之中应当进行使用格式常量,在 这种方法之下可以比较有效地防范此类问题的发生,达到保障计算机安全的作用。
4 结语
综上所述,在当前的时代和技术背景下, 计算机互 联网技术相较以往已经得到了巨大的发展,而这种情况 又让计算机在应用过程中面对的安全风险增加,不利于 经济社会的和谐。有鉴于此,在实际工作之中进行相关 软件安全漏洞的检测,从而准确地对非法攻击进行防范 显得尤为关键。
参考文献
[1] 欧阳元东.基于深度学习技术的恶意App软件动态检测技术 [J]. 电子技术与软件工程,2020(5):40-41.
[2] 刘伟 .基于动态检测技术的软件设计安全漏洞查找方法[J]. 计算机产品与流通,2020(2):15.
[3] 蔡荣文 .基于动态检测技术的软件设计安全漏洞查找方法 [J].山东农业大学学报(自然科学版),2019.50(5):873-876.
[4] 高上 .软件设计中安全漏洞动态检测技术的探究[J].农家参 谋,2018(11):228.
[5] 马建辉,王知学,侯冬冬,等.嵌入式软件堆栈溢出的动态检测 方案设计[J].单片机与嵌入式系统应用,2018.18(2):12-13+17.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/61780.html