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

2020-11-26 19:13:05孙雷
电子技术与软件工程 2020年9期
关键词:安全漏洞计算机软件黑客

孙雷

(赛维航电科技有限公司 北京市 100176)

目前随着我国电子商务的发展,网络交易的安全问题已经成为各个网站以及商家最关心的问题之一。网络交易的安全事件,其根源就是计算机软件当中存在的安全漏洞,因此检测与修正软件中的安全问题,便可以尽量杜绝可能会产生的安全事件。

1 计算机软件的安全漏洞

计算机安全的安全漏洞主要指的就是软件其自身所存在的编写缺陷,黑客可以利用这些漏洞,不经允许地访问相关的系统资源,或者是恶意损害计算机软件与硬件。电脑用户可以在一定程度上使用比较可靠的防火墙或是杀毒软件,来尽量维护自身系统的稳定性与可靠性。目前在社会当中最为经常使用的杀毒软件是360 杀毒软件或是卫星防火墙等,但是这些软件是无法从根本上来弥补软件自身所包含的漏洞。如果这些软件其自身的运行出现了问题,那么便容易会给软件带来较大的安全隐患,甚至有些非法分子利用计算机漏洞来窃取计算机当中的相关数据,计算机漏洞是一种功能上的漏洞,另外一种则是安全漏洞。功能与安全上的漏洞都对计算机本身的影响并不大,但一旦被刻意的破坏者利用且予以侵犯,那么即有可能会造成计算机信息的不再可靠,甚至给用户的隐私带来较大的安全隐患,安全漏洞一般有以下几种情况,首先就是计算机的程序员在编制程序的过程出现技术性的错误以及逻辑的失误,因而造成软件漏洞。第二种就是计算机软件运行过程当中产生运算错误或是数据处理的错误。第三种就是计算机的硬件设置在不同软件中,由于配置与版本的差别所造成的安全漏洞。最后一种情况则是计算机的运行以及工作当中因为时间的推移而产生的新安全漏洞,在之前旧的安全漏洞进行修复完毕之后,还可能会出现的更新的安全漏洞。在目前所使用的计算机软件中,极大容易出现被用户所忽略的安全漏洞。而在这些比较普遍出现的活动当中,Geronimo2.0 存在模块认证方面的漏洞,远程攻击主体很可能会出现非法访问的现象,而JBOSS 应用服务器也可能在没有听到用户允许之下,便对用户的信息以及相关数据进行读取与修改,甚至有可能执行相应的任意代码。LIBTIFF 开源软件库可以使用相关的检查对其进行远程破坏,从而造成一系列的安全漏洞。还有一些软件库,是一种比较典型的网络管理协议,可以让远程攻击的主体拒绝进行服务工作,从而使攻击造成系统的崩溃,以及一些软件库也可以让远程攻击的主体拒绝服务,再进行攻击,产生一定的安全漏洞。

2 计算机安全漏洞静态检测技术

静态漏洞的检测技术主要就是通过对系统代码进行全面分析,了解软件内部所产生的安全漏洞,比如缓冲区域一旦出现问题,或是非法指针引入,且竞争条件与动态检测比起来,静态检测更加适合于检测深度的漏洞。

2.1 模型检测和元编译技术

在上世纪80年代提出了模型检测,这一理论主要是使用显示状态,在搜索验证状态中迸发系统命题性质,模型检测对于有限状态的程序构造可以进行全面建模,并且使用模型来将软件当中的特

性验证出来。在对软件里面的片段,通过建模方式来进行比较,能够尽量防止软件自身复杂性所带来的问题,模型检测可以有效地把功能与用途相互接近的软件来进行安全漏洞的检测。从而提升软件与整体的安全性能。计算机安全漏洞主要是指计算机比较脆弱的特性,很可能是恶意攻击,或者可能会危害到计算机软件而造成安全系统的缺陷与漏洞。

原编译技术比较要求程序安全属性,是一种轻量级编译器的扩展,以及建模执行。同时也可以自发的进行推断来检测代码是否安全,并且可以编写出与其相互匹配的编译扩展,这就是比较典型的原编译技术。原编译技术在编译器当中是非常基础的一种技术,不仅效率比较低,而且还会带来在语言特性方面比较创新的拓展。

2.2 规则检测和变异语技术

安全规则主要指的就是对程序自身所带有的安全性描述,是软件其自身存在的一种编译规则,比如软件在Root 权限下不能够进行exec 的调用。规则检查主要是指使用比较特定的语法,来描述软件运行过程的安全规则,处理器可以将语法在一定情况下,进行描述转换成可以被处理器理解的一种内部表示,再将程序相互之间的行为进行对比。

变异与技术一般是指限制算术运算以及不安全的转换等,很可能导致出现安全隐患的操作。多使用C 或c++语言的安全编程变异级数,相比动态检测的局限性比较大,对软件的源代码或者二进制代码来进行检测的静态检测,是具有自身优势的衡量静态检测。具体优劣情况的标准有两个,一个就是误报率,另一个即是漏报率,采用静态检测编写出来的程序较为可靠。

2.3 定理证明和程序评注技术

与其他检测技术比起来,定理证明相对是更加严格的,能够通过各种不同的方式将软件当中的抽象公式进行验证,从而保障定理证明的技术性。其主要就是利用折曲式来进行图像的构造,让公式当中的条件与图中的节点都是遥相呼应的,可以通过已经给出的现有等式,与对应项目点进行合并,把顶点合并过程趋势中的不等式进行充分的检测,如果不等式是不成立的,则将处于不满足的状态。

这种技术并不会为原有代码增加创新的语言特色,但会以一种注释的形式将其进行表现出来,因此不会存在过多的兼容性问题,可以凭借具体信息来进行静态分析的加深,从而找出系统与程序当中存在的漏洞。不仅如此,也要能够将外部数据进行标记,这些都能够对代码审计人员产生警告,并给予排查。

2.4 词法分析

词法分析是最早的静态分析技术,对多个不同程序都需要进行语法检测,而词法分析技术把程序可以分割成几个不同的片段,并且把每一个片段与可疑程序数据库相互进行比较,由于词法分析只能够检测出比较固定的漏洞代码,所以这种方法一般并不予以采用。

3 计算机安全漏洞动态监测技术

动态监测技术操作起来较为简单,能够有效的了解到安全漏洞,但是不能够发现逻辑方面的覆盖率问题,所以动态监测技术是很难发现隐蔽相对较深的安全漏洞。

3.1 动态监测技术安全共享库

C 和C++在实际设计的过程中,有很多函数都存在一定的安全隐患。因此软件在使用C 和C++过程当中便很容易产生安全漏洞。安全共享库主要就是按照动态链接技术,在实际运行的过程以阻止并不安全的函数调用,且能够检测到所有函数的参数。目前安全共享库的技术已经广泛地使用在windows 以及UNIX 的操作系统中。

3.2 内存映射

有很多黑客使用NULL 结尾的字符串来覆盖内存,能够有效地对软件进行攻击,而内存映射的技术能够把代码页通过一定方式映射到随机地址之上。而黑客在对软件攻击的时候,就容易受到一定阻碍。内存映射的技术要能够对系统的内核进行全面修改与操作,把代码也能够映射到相对较低的内存空间上。在程序链接的过程,将二进制地址已经可以予以确定,因此内存映射的技术是不需要对代码来进行修改的,只是需要重新进行链接即可。

3.3 非执行堆与数据

堆主要指的是软件执行过程当中,系统动态分配的一种内存区域,可是数据段在进行软件编译的时候,就已经可以完成初始化的过程。如果软件的代码不能够与数据段相互进行执行,那么在黑客植入恶意代码的时候就无法给予执行。并且非执行堆和非执行站能够有效地结合在一起,从而帮助软件来检测可能会产生的安全漏洞,让恶意代码难以对其进行攻击。非执行堆的操作技术很可能对计算机内核的修改操作进行相关软件的运行,然而付出的代价却相对较多,目前非执行堆的技术已经受到广泛应用,并且拥有很多成功实例,可以不断地进行探索与借鉴。

3.4 非执行栈

避免栈攻击最为有效的办法就是让栈无法进行工作,这样就可以尽量避免黑客在栈中注入恶意代码。非执行栈能够在一定程度下拦截部分黑客,进行修改操作层,并对其进行设置,如果这项技术一旦产生操作不当,则可能会影响到计算机的系统性能,一旦软件出现栈溢出漏洞,则也将导致堆溢出漏洞的产生,便容易产生一定问题。

3.5 沙箱

沙箱检测技术一般就是通过对访问进行限制的一种方式,以此避免黑客的攻击。这种技术最为关键的就是需要定义策略的全面性,比较严格的策略则能够更加有效的保障软件不受到攻击,一旦黑客需要通过对本地的变量,进行一定的修改来实施攻击,那么沙箱技术便很难阻止类似的攻击。一些过于严格的策略可能限制软件的合法行为,从而使软件难以达到正常运行,而系统调用函数的相关审查也可能导致其他衍生问题的出现。

3.6 程序解释

程序解释的技术在整个程序运行中能够对程序进行检查,不需要对系统的内核与代码进行全面修改,只需要通过设置新的启动代码来重新进行应用程序的链接,并使用这样的启动代码来调用动态优化程序进行框架解释,定义比较严格的安全策略,有效地检测出所有可能修改危险函数的参数攻击,并进行更加有效的防范。

4 安全漏洞技术检测在计算机软件的重要性

计算机广泛的使用,不仅让信息化获得全球化的发展,同时也推进了更多的现代化进程,目前计算机软件在实际发展的过程当中,肯定会存在很多不同的问题,这些问题相对比较复杂。且在实质性方面,计算机软件所面临到的威胁,不仅只是软件质量中存在的比较客观的问题,同时很多非法复制或者非法跟踪行为也因此产生,可能造成人们的生命财产安全受到危险。而计算机软件安全漏洞存在的问题,也是目前计算机软件在发展过程中所面临的重要威胁之一,计算机软件的安全漏洞则是计算机系统的一个重要特点,主要就是对程序所进行的一种攻击,并且对已经授权的方式使用非法访问的形式,在目前计算机软件所存在的安全漏洞,主要存在几种不同的服务器。而非法者利用远程的非法侵入法,绕过身份识别的软件,并获取修改或查看相关数据的权限,从而窃取只读程序当中的图像与文件。总之,安全漏洞的检测技术主要就是对计算机的安全进行预防,同时要能够对计算机软件进行相关的安全防控,所以安全漏洞的检测技术对于计算机软件的使用是非常重要的,对计算机软件的安全性以及漏洞预防都具有很大的现实意义。

5 计算机软件安全漏洞防范措施

计算机软件在安全漏洞检测技术应用的过程中,首先要能够避免缓冲区的漏洞,认真的检查在程序中存在的危险函数,同时也要能够对安全计算机软件进行使用,不去使用违法的盗版软件或非法软件,时刻需能够处理与防范缓冲区存在的漏洞。其次就是要对竞争条件漏洞进行避免,在进行竞争源代码的原子化操作时,必须要使用文件句柄以及其他文字来对计算机软件的安全性进行描述,始终做到加以保证。另一方面就是要尽量避免格式化字符串的漏洞,尽量在源代码中使用格式常量,从而尽量防止格式串的遗留,需要有效避免随机数据的漏洞,确保安全的随机数据量以及加密的全部细节都能够更加稳定。在实际进行计算机软件安全漏洞的防范过程中,缓冲区漏洞也是非常重要的,要能够及时对竞争条件漏洞进行防范,同时对格式化字符串漏洞防范也非常重要,只有这样才能够保障计算机软件安全漏洞的检测做到实处。

6 结束语

综上所述,随着计算机软件应用的范围不断扩张,信息安全的问题已经受到了人们的广泛重视,在日常生活当中,计算机软件安全问题主要可以分为两个方面,首先就是计算机软件,其自身是存在安全漏洞的。其次就是黑客恶意的进行代码攻击,所以计算机软件在安全漏洞的检测方面,主要应当能够从本质上来进行发掘问题,并给予讨论软件的安全特性,从而使计算机网络获得安全提升,并且计算机软件当中安全漏洞的检测技术也必须由相关技术人员进行不断探索,能够真正避免非法入侵或是恶意攻击,逐渐使计算机软件获得全面发展。

猜你喜欢
安全漏洞计算机软件黑客
欢乐英雄
趣味(数学)(2022年5期)2022-07-29 03:24:22
多少个屁能把布克崩起来?
趣味(数学)(2022年5期)2022-07-29 03:24:22
网络黑客比核武器更可怕
基于C语言的计算机软件编程
电子制作(2018年16期)2018-09-26 03:27:08
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
玩具世界(2018年6期)2018-08-31 02:36:26
浅谈不同编程语言对计算机软件开发的影响
电子制作(2018年1期)2018-04-04 01:48:36
基于安全漏洞扫描的校园网告警系统的开发与设计
浅谈基于C语言的计算机软件程序设计
电子制作(2017年24期)2017-02-02 07:14:40
安全漏洞Shellshock简介
河南科技(2014年11期)2014-02-27 14:16:49
基于计算机软件开发中分层技术的应用
河南科技(2014年15期)2014-02-27 14:12:23