39
学术出版,国际教著,国际期刊,SCI,SSCI,EI,SCOPUS,A&HCI等高端学术咨询
来源:职称驿站所属分类:软件开发论文 发布时间:2017-02-23浏览:26次
本文是一篇软件论文,主要对当前软件技术安全管理方面的一些介绍。文章选自:《软件产业与工程》,《软件产业与工程》面向各级软件行业协会、相关产业基地园区、企事业单位和政府主管部门,以提供软件业相关信息为主,注重实用性与时效性。刊物应以科学发展观为指导,以满足读者需求为宗旨,重点反映上海和全国软件业发展状况,展示软件业创新风采,并为国内外交流与合作搭建平台。
摘要:软件安全漏洞挖掘技术的研究是一个很宽泛的研究,本文只是简单的做了介绍,对于很多地方难以涉及并深入。因此,在我们的日常工作中应加强这方面的探索和研究,只有不断提升我们的技术水平,才能真正为信息数据的安全起到保障作用。
关键词:软件安全,漏洞挖掘,软件技术,软件论文
1 引言
随着社会的发展,黑客的技术水平越来越高,而在软件方面,漏洞属于一个不可避免的问题,这会导致黑客有机可趁,使数据信息受到破坏。在这种背景下,如何更快地发现软件安全漏洞,并做好修复工作,是保证数据信息安全的一个有效手段。
2 软件安全漏洞挖掘技术概述
2.1 漏洞概念
在任何软件运行的过程中,都会根据安全策略进行一个安全域假定,也就是说这一域内所有的操作都是可控且安全的,但是如果违反了安全策略或者超出了这一安全域,软件运行则会变为未知且不可控的,而安全域在切换为非安全域的过程中,其触发点就是漏洞。通俗点说,漏洞就是指由于安全域设计不合理所形成的软件及系统破坏。正是由于这种漏洞的存在,使得计算机在未授权的情况下会被攻击者访问或破坏。一般来说,漏洞多数是被动的、静态的、可触发的。
如果根据产生漏洞的原因来分类,则漏洞可以分为:输入验证错误、边界条件错误、缓冲区溢出错误、访问验证错误、意外条件错误、配置错误、竞争条件错误等其他错误。之所以出现漏洞,从根本上说是因为安全机制实现的过程中出现了一些非正常问题,比如软件编程出错、安全机制规划不完善。由于信息系统中存在潜在错误这一问题是不可避免的,因此漏洞在信息系统中也是必然存在的。
2.2 漏洞挖掘技术
在通过漏洞攻击的过程中,主要可以分为三个步骤:漏洞挖掘、漏洞分析以及漏洞利用,由此可见漏洞挖掘属于后两个步骤的基础及前提,对网络攻防有着非常重要的意义。所谓漏洞挖掘,主要是找寻漏洞,详细点说就是该领域专业人士使用各种综合应用工具以及技术尽最大可能找出软件中存在的潜在漏洞,要想做好这一工作并不容易,这对于个人经验有很大的依赖性。在实际的工作中,根据不同的分析对象,漏洞挖掘技术又可以分为基于源代码漏洞挖掘技术以及基于目标代码漏洞挖掘技术。
对于基于源码漏洞挖掘技术来说,获得源代码是我们工作的前提。一般针对一些开源项目,对其公布的源代码进行分析就能够获得漏洞,比如在Limix系统中,漏洞挖掘所采用的技术就是使用的这一技术。具体来说,在应用这一技术的过程中,我们还通过源代码审核技术,扫描软件源代码,并对一些不安全的内存操作以及安全函数使用进行语义检查,进而挖掘出其中存在的漏洞。其中,静态分析技术属于一种比较典型的机遇源代码漏洞挖掘技术。
但是在实际的工作中,由于很多商业软件源代码的获取比较困难,所以基于源代码漏洞挖掘技术往往难以起到应有的作用,在这种情况下,我们则可以使用基于目标代码漏洞挖掘技术。这一技术是依靠分析目标码来实现的,其过程往往涉及到指令系统、编译器以及文件格式等很多方面,所以难度比较大。具体的步骤是先反汇编需要分析的二进制目标代码,在获取汇编代码之后再对其切面,也就是将一些关联密切而且有意义的代码汇聚在一起,使其复杂性降低,最后利用分析功能模块对其是否存在漏洞进行判断。
3 当前漏洞挖掘技术分析
当前漏洞挖掘技术主要包括已知漏洞检测以及位置漏洞补救这两种,其中前者主要的作用在于发现系统中可能存在但是还没有被发现的漏洞,在这方面主要又包括静态分析、动态检测、安全扫描以及手工分析这几种技术。其中,手工分析要求比较高,不仅需要安全分析人员对软件漏洞原理有充分的了解,还要对软件结构及功能有比较深入的认识,而且即使满足了这两点要求,其依然会耗费很多的精力和时间,基于此,以下将主要对静态分析以及动态检测进行分析。
3.1 静态分析
这种漏洞检测技术不需要对程序进行运行,而且在没有输入的条件下就可以发现程序中存在的安全漏洞,因此在程序编写阶段,通过静态漏洞挖掘技术就可以发现其中存在的问题,并在开发早期就消灭掉漏洞。不过人们在运用静态分析的过程中,往往会出现误报。这一技术从本质上说是建立程序的一个状态模型,然后对程序如何完成状态转换进行分析,但是一个程序的状态空间是很大的,因此难以对所有的状态同时进行考虑,针对这种情况,对状态空间进行抽象是必不可免的,这就导致了程序部分信息的丢失。而我们为了提升分析结果的正确性,则会损失一部分分析精度,一般来说,近似假设地方越多,则精度的损失也会越大,而误报也越容易发生。实际的工作中,分析工具可能会使用一些不稳妥的分析策略,这也会导致出现一些安全漏洞,为日后的软件运行埋下隐患。
3.2 动态检测
所谓动态检测,主要是在程序动态运行的时候对软件中存在的漏洞进行检测,这不仅要求被测试目标编译为可执行程序,而且在检测的过程中还要提供相应的输入。具体来说,动态检测技术主要是利用操作系统所提供的雕饰接口以及资源监视接口,来获得目标程序运行过程中所需的运行数据及运行状态。在当前的动态检测技术中,比较常用的有数据流分析法以及环境错误注入法。
这里首先分析环境错误注入法,它主要是故意将人为错误注入到软件运行环境中,然后利用程序的反应进行验证。一般情况下,编程的过程中程序员总是会假定其程序能够正常地运行于环境中,如果这种假定成立,那么其程序自然会正确的运行。不过由于程序运行的环境并不是独立的,而是会受到很多主体的影响,比如一些恶意用户之类的,这会使程序员假定出现错误,也正因为此,环境中的错误会给程序造成多大地的影响,是判断程序健壮性的一个重要标准,而环境错误注入法正是对软件系统可靠性及容错性进行判断的有效方法。
至于数据流分析法,它在实现检测的时候需要数据流、执行流等信息,主要的原理是对各种参数、序列以及返回值等进行跟踪,然后经过对比分析,对系统是否存在安全漏洞进行判断。
3.3 动态检测以及静态分析的对比
客观来说,静态分析以及动态检测都是我们经常使用的检测方法,其中,静态分析由于在运行过程中的数据比较缺乏,因此难以实现动态测试细粒度的安全评估,无法对所有的安全漏洞都进行确定,所以存在很多不足之处,不过其优势在于比较容易在开发过程中集成。至于动态检测,虽然其可信性以及精确性非常高,但是对于源代码的需求也非常高,而且不能够对漏洞及漏洞原因进行准确的定位,加之不容易保证代码覆盖率,因此它也存在一定的不足。通过表1我们可以比较系统的对二者进行对比。
《软件师职称论文参考软件安全漏洞管理技术新应用研究》
本文由职称驿站首发,您身边的高端学术顾问
文章名称: 软件师职称论文参考软件安全漏洞管理技术新应用研究
扫码关注公众号
微信扫码加好友
职称驿站 www.zhichengyz.com 版权所有 仿冒必究 冀ICP备16002873号-3