◆周 亮
安全漏洞检测技术在软件工程中的应用
◆周 亮
(兰州石化职业技术学院 甘肃 730060)
近年来,信息技术带动了计算机在各领域广泛应用。伴随着软件不断更新与发展,计算机内现有缺点以及弱点越来越不易被人们察觉。安全是计算机同通讯网络使用安全之中最为基础的一项,就算计算机内安装了各种杀毒软件、防火墙以及防毒软件等,只要计算机内部软件自身存在安全方面问题,必然会导致整个计算机存在安全漏洞。本文在简述软件工程常遇到的威胁基础上,找出软件工程之中常见安全漏洞,分析安全漏洞相对应的检测技术,进而探索安全漏洞方面检测技术在软件工程之中的应用。
安全漏洞;检测技术;软件工程;应用
计算机在各领域普遍应用加速了全球现代化和信息建设的进程。如今人们生活、工作都离不开网络以及计算机,所以计算机通信安全就显得尤为重要。人们必须要加强对信息方面安全的建设,以此来保障用户使用计算机时能有一个相对安全的环境。近年来,无论是国内还是国外都发生了多起利用软件漏洞对计算机整体进行攻击的事件,这使得计算机内存在的缺点以及弱点成为了其安全的最大威胁。现今电脑之内仅有防火墙以及各种防毒杀毒软件是远远不能满足用户需求的,有时这些软件还会带来许多问题。所以,相关企业必须要加强对计算机方面安全漏洞相应检测技术的研究,以此来提高计算机内部软件工程的整体安全系数,确保用户使用安全。
1.1 软件质量方面问题
计算机在被应用期间,其内部软件本身就存在一些不可避免的缺陷以及问题。在进行软件研发期间,研发人员由于对技术掌握不是非常透彻,以及自身缺陷都会造成计算机内部存在漏洞。这些漏洞直接威胁着计算机整体安全。据显示,近些年来国内外计算机在使用期间,由内部软件漏洞所引发的安全事件数量急剧上升,这给许多电脑高手以及网络黑客带来窃取电脑内部信息的机会,使得国家以及人民财产方面受到威胁。
1.2 非法复制问题
计算机内部软件是一个科技含量较高的产品,在企业研发期间需要大量物力、人力以及财力才能完成。相关企业在软件研发方面所付出的远远比硬件开发高很多。但是,因为计算机内部软件比较容易被复制,这就直接造成了产权方面的危害。近年来,全世界非法盗用相关软件造成的损失非常庞大,并且事件次数逐年上升。特别是我国,近些年来国内经济过快增长,这就使得科技相对落后,与发达国家现有科技存在一定差距。这就使得不法分子趁虚而入,借助软件存在漏洞对计算机进行整体攻击,非法复制电脑内部信息,造成了用户以及国家财产方面严重损失。
电脑系统有一个重要特征就是存在安全漏洞,人们可以利用这一弱点编写攻击程序,通过授权方式获得没有经过授权方面的相关访问,进而对电脑系统造成危害。即使电脑中安装了防火墙,防毒以及杀毒软件,但对于那些利用软件方面漏洞进行攻击的程序来说,并没有多大用处,甚至还会出现更大的危害。站在当前软件市场角度来看,有几个漏洞经常被人们所忽视。分别为JBOSS服务器、LIBTIFF软件库、NET-SNMP以及ZLIB。非法人员可以Geronimo2.0安全漏洞实现远程造作,绕过电脑中身份识别这一环节,通过对电脑插入恶意的软件代码获取访问控制权限。JBOSS服务器中的3.2.4到4.0.5这些版本中,存在目录遍历这一安全漏洞。LIBTIFF软件库则是读写、标签图像具有的文件格式的相关文件。NET-SNMP中的NET以及SNMP协议文件之中存在安全漏洞。ZLIB是一个对数据进行压缩的软件库,因为库里的代码解释长度大于1,进而导致安全漏洞[1-2]。
3.1 静态检测(1)静态分析
静态分析这一方法主要对程序当中代码进行直接以及全面的扫描,同时提炼出程序当中关键语句以及语法,再通过对其含义理解来分析该程序,并严格依照事先设定安全的标准以及漏洞特性来进行电脑整体检验.第一,对程序当中语句以及语法深入分析,这是最为原始的一种静态分析法。这一方法检测数量有限,并且检测出来的漏洞通常都是比较严重已经被人们所知的.第二,就是严格依照标准进行相关检测,一般来说,电脑系统之中程序运行实际情况进行描述就是安全标准。其实程序本身也是一种编程标准,也就是指那些一般的安全标准,我们常说的漏洞模式[3]。人们可以利用这一规则对漏洞进行检测,然后再通过规则处理对相关数据进行接收,然后将其转换为处理器在进行内部描述,最后对系统程序进行整体检测。
(2)程序检验
程序检测主要借用一些抽象软件当中的程序获取一些形式化程序以及模模型,再采用形式化的漏洞检验方法来对其展开检测,最后使用正确检测方法对电脑漏洞进行整体检测。模型检测一般是建立电脑系统内部程序相关有向图以及状态机来完成检测的。通常情况下,这种检测包含两种方式,分别为符号化以及自动模型转换。符号化就是将抽象模型转换为与语法树形式,并用公式描述出来,人们通过公式来判断其是否符合需求。自动模型转换需要将检测程序进一步转变成等价的自动机,在将这两个自动机相互补充、替换,从而形成新的自动机,然后再将判定的系统转变成能够容纳的语言形式进行检测[4]。
3.2 动态监测
许多黑客经常使用“NULL”表现在尾部的字符串来对内存进行覆盖,以此来实现攻击目的。应用代码存在页面之中映射技术可以使黑客在使用“NULL”尾部字符串对内存进行覆盖,这使得跳转到相对简单内存区域的相关操作显得十分困难。从这方面来看,随机将代码页映射到各不相同内存地址之上,可以有效降低依靠猜测内存地址对页面进行攻击的几率。
4.1 对竞争条件方面的漏洞进行预防
对一些由于竞争条件产生的漏洞,主要预防方法就是将形成竞争相关编码运用原子化方法进行操作。执行单位当中最小的就是编码,程序在运行期间没有任何情况可以对其产生干扰,原子化相关操作应用的是一种锁定方法,利用预防系统存在的某种状态的改变来形成问题。以达到间接调用文名系统的目的,进而把使用的文件和句柄进行描述[5]。
4.2 对缓冲区存在的漏洞进行预防
利用软件程序之中较为危险的函数检查来预防缓冲区的漏洞溢出,可以使用安全软件版本来代替不安全的版本。例如,人们可以将原来extern char strcat替换成extern char strncat等。
4.3 对随机产生的漏洞进行预防
在预防随机漏洞时,可以使用一些性能良好的设备。随机发生相关设备一般都自带一套密码算法,以此来保证设备自身安全。这样,即使软件遭遇攻击,黑客掌握了系统中的所有算法,也不能获取电脑中已经形成的信息数据流。
4.4 对格式化字符串漏洞的预防
采用严谨预防,直接使用格式方面常量来进行编程,这样可以避免为黑客提供在系统内创建字符串的机会。一般程序中不定参数都存在格式化现有字符串方面的漏洞,用户在使用这些函数期间,必须要保证其中每个参数具有的个数和均衡性能。此外,应用Windows操作系统下属的窗口进行数据输出工作同样可以减少漏洞的威胁能力[6]。
当今社会,网络发展使得软件工程日趋复杂,计算机之中软件安全关系到全球每一个使用计算机网络用户的安全。现阶段,国内计算机内部软件安全一般表现在程序编写以及检测消除相关软件漏洞,不法人员常利用这些漏洞对电脑进行攻击。所以,只有人们对这些软件漏洞源代码进行分析以及查找,才可能从根本上弥补这些漏洞,进而提升计算机整体安全系数。
[1]王勇利.安全漏洞检测技术在计算机软件中应用研究[J].数字技术与应用,2016.
[2]陈斯,卢华.计算机软件中安全漏洞检测技术及其应用[J].电子技术与软件工程,2016.
[3]朱江.计算机软件中安全漏洞检测技术及其应用[J].通讯世界,2016.
[4]陈伽,蔡映雪,胡辉等.计算机软件安全检测技术及其应用实践研究[J].无线互联科技,2016.
[5]王媛媛.研究计算机软件中安全漏洞检测技术[J].信息化建设,2016.
[6]谢剑.计算机软件安全漏洞检测技术的应用分析[J].信息与电脑(理论版),2016.
系统首页默认展示了访问者IP的黑名单信息。也可通过手动输入IP地址的方式来查询黑名单信息,如图7所示。
6.2 黑名单数据统计
黑名单数据统计展示了正在被封锁中的黑名单的统计信息,包括协议分布,国内来源分布和世界来源Top15的黑名单数据,如图8所示。
6.3 黑名单管理
系统后台对黑名单进行了有效的管理,包括黑名单添加、审核、设置过期等,如图9所示。
图8 黑名单数据统计
图9 黑名单管理
IP黑名单服务系统,目前已持续运行3个月,收集了18万条的黑名单数据,并能够对黑名单数据进行有效的管理与服务。在今后的维护中,还要加强系统自身的安全性,更多更实用的黑名单服务也有在探究。
参考文献:
[1]张焕杰,杨寿保.中国海洋大学学报[J].实验室科学,2008.
[2]卢先锋,杨频,梁刚.基于动态IP黑名单的入侵防御系统模型[J].计算机工程与设计,2011.
[3]雷鹏玮.基于Snort的入侵检测系统的改进与实现[D],2015.
[4]雷鹏玮.基于Snort的入侵检测系统的改进与实现[D],2015.
[5]龚成清.基于linux的网页抓取器的设计[j].电脑开发与应用,2011.
[6]徐金荣,李允.基于Linux系统的BGP协议的设计与实现[j].计算机科学,2009.