APP下载

软件安全漏洞挖掘的操作流程及运用

2017-03-10苏生平李楠芳杨莉莉

网络安全技术与应用 2017年12期
关键词:安全漏洞静态漏洞

◆苏生平 李楠芳 杨莉莉 赵 蕾

(1.国网青海省电力公司 青海 810008; 2.国网青海省电力公司电力科学研究院 青海 810008;3.国网青海省电力公司信息通信公司 青海 810008)

软件安全漏洞挖掘的操作流程及运用

◆苏生平1李楠芳2杨莉莉3赵 蕾2

(1.国网青海省电力公司 青海 810008; 2.国网青海省电力公司电力科学研究院 青海 810008;3.国网青海省电力公司信息通信公司 青海 810008)

在软件领域漏洞是无法避免的问题,再加上近年来黑客技术水平的逐渐提升,导致数据与信息被破坏的情况所处可见,因此有必要深入的来对软件安全漏洞挖掘的操作流程、运用以及未来发展趋势进行分析。

软件;漏洞;挖掘

1 漏洞挖掘技术概述

通过对漏洞攻击的过程进行研究与剖析后,得知首先需要执行的是漏洞挖掘,然后在此基础上进行漏洞分析与漏洞利用,能够看出漏洞挖掘所处地位是最为重要的,同时对于网络的攻防所体现的价值也是非常大的。漏洞挖掘技术就是指通过一系列的技术与工具的运用,来对存在的、潜在的漏洞进行挖掘。在漏洞挖掘技术实际运用的过程中,主要运用到的技术有基于目标代码漏洞挖掘技术与基于源代码漏洞挖掘技术。具体来说,前者主要是通过对目标码的分析后来实现相应的操作,其中涉及到的内容有文件格式、编译器以及指令系统等,因此该技术在具体操作的过程中难度是非常大的。首先需要对二进制目标代码进行分析,并通过关联分析的方式来降低代码的复杂性,在此基础上来判断软件系统存在着漏洞;后者则是对公布的源代码来对不安全的内容进行扫描,进而对软件所存在的漏洞进行挖掘,具有代表性的便是静态分析技术。

2 软件安全漏洞挖掘的操作流程

众所周知,任何一种软件安全漏洞挖掘的检测方法都不是完美的,因此想要最大限度的发挥出漏洞挖掘工作的作用与价值,因此在具体操作的过程中应该根据不同阶段制定出针对性的检测方法,在此基础上来构建出针对性的方法。总的来说,在软件安全漏洞挖掘的过程中,其操作流程包含以下几步:

第一,来对软件进行初始化操作,其核心目标是划分软件类型。由于非开源软件与开源软件所采用的静态分析方法是不同的,因此需要对类型进行确定;

第二,执行反汇编操作。在对需要分析的软件进行载入后,借助于反汇编操作来对二进制代码进行相应的操作,并对代码中的数据类型与指令类型进行划分后,来进行下一步的操作;

第三,过程抽象。对能够识别的指令执行后,便能够对表示过程或者函数进行划分;

第四,扫描特征模式。在执行此操作的过程中,需要根据非开源软件与开源软件分析来制定出不同的策略。针对于非开源软件的静态分析来说,可以运用自下而上的方式来检查函数,在此基础上便能够得到漏洞的验证代码;而针对于开源软件的静态分析来说,在扫描的过程中便能够将部分漏洞检查出来,同时还可借助于编译技术来对漏洞进行确定;

第五,来对漏洞特性的验证。此过程的根本目标是来对漏洞特征库与软件的实际情况进行对比,进而能够判断软件中是否存在恶意行为;

第六,将错误环境注入。在具体操作过程中需要构造错误环境数据,其根本目标是来对软件运行过程中产生干扰;

第七,执行动态检测。此阶段重点的工作是分析软件中的特定函数序列与所有函数序列,并估算软件可能存在的漏洞,以便于进行深层次的分析;

第八,评估检测。根据第七步所得到的动态检测报告,来对系统可能存在的漏洞进行提出,同时分析其他疑似漏洞;

第九,执行下一轮动态及静态检测环节。

3 现阶段软件安全漏洞挖掘技术的运用

在对当前软件安全漏洞挖掘技术的发展状况进行研究与分析后,得知是由位置漏洞补救与已知漏洞检测两种方式所构成的。具体来说,已知漏洞检测方式主要被运用在存在漏洞但是并没有发现的情况,运用到技术有安全扫描、手工分析、动态检测、静态分析等。在这几种典型的技术中,由于手工分析不但需要分析人员拥有较高的软件漏洞知识水平,同时还需深入的掌握软件的功能与结构,最重要的是还会消耗大量的时间与精力,因此本文主要对动态检测与静态分析技术的运用进行分析。

3.1 动态检测方法

在软件安全漏洞挖掘的过程中,动态检测代表的是在软件动态运行的过程中来检测漏洞。为了能够满足动态检测的要求,除了需要保障软件编译为可执行程序,更重要的是在对漏洞检测的过程中需要提供针对性的输入。总之,动态检测技术在对软件运行阶段所需的运行状况与运行数据检测的过程中,需要运用到软件的资源监视接口与调式接口。在动态检测技术领域中,环境错误注入法与数据流分析法是较为常见的,并且所运用的范围是较为广泛的的。其中,环境环境错误注入法的操作原理是人为的来对错误环境进行制造,并且让软件运行在此环境当中,来对漏洞进行检验。通常情况下,程序员在编程阶段会假设软件能够在此环境中正常的运行,当假设成立的情况下意味着能够在系统中运行,反之则无法运行。需要注意的是,软件运行的环境并不是能够单方面决定的,会受到众多主体的影响,例如用户恶意行为等等。对此,检测人员在对软件的健壮性进行检查与判断的过程中,会根据错误环境下对软件所产生的影响程度进行评判。除此之外,此方法对于软件的容错性、可靠性的判断都是非常有效的。而针对于数据流分析法来说,核心原理是跟踪返回值、参数以及序列等,在将相关信息对比与分析后,来对软件是否存在漏洞来进行判断。

3.2 静态分析方法

顾名思义,静态分析方法在执行的过程中软件无需处于运行状况,同时无需对相关数据与信息输入后便能够对所存在的漏洞进行检测,发现软件所面临的问题。需注意的是,静态分析方法虽然是较为简单的,但是在实际运用的过程中会面临着一定的问题。此方法在运用的过程中,首先需要构建软件的状态模型,并分析软件怎样能够实现转换状态。由于软件的状态空间是较大的,因此无法全面的、客观的来对所存在的状态考虑到。对此,为了能够实现软件漏洞分析准确性的提升,那么必然会对部分分析精度产生影响。具体来说,当软件的近似假设越多的情况下,那么也更加容易误报。同时,不合理的分析工具也会导致软件出现安全漏洞,这对于软件来说是非常不利的。

4 软件安全漏洞挖掘技术的未来发展方向

总的来说,软件安全漏洞挖掘技术在未来具有较为广阔的发展空间,其发展方向主要涉及以下几个方面:

其一,提升知识获取自动化程度。在具体漏洞挖掘的过程中,漏洞测试阶段在程序状态转换、输入数据格式方面所消耗的时间与精力是非常多的。对此,在未来发展的进程中为了能够实现测试效率的提升,那么必然会提升知识获取自动化程度。

其二,测试平台将拥有更强的通用性与可扩展性。在软件安全漏洞挖掘技术发展的进程中,由于需要测试的软件对象是逐渐增多的,而为了能够实现漏洞挖掘效果的提升,那么必然需要提升可扩展性与通用性。总的来说,测试平台所具备的特征包含:可以对多模块间自动化协调运行;具备可操作跟踪调试功能;能够产生有效的畸形测试数据。

其三,多维测试用例生成技术将得到普及。现阶段,能够看出对软件漏洞的测试用例技术绝大多数都是一维的,因此在安全漏洞检测的过程中可能存在着一定的缺陷。而在未来合理的运用多维测试用例生成技术,不但会实现漏洞测试范围的延伸,同时在检测效率方面也会得到提升。

其四,测试效果评估范围更广。当前的测试效果评估存在着较大的局限,在未来将会从测试数据有效性、程序状态的覆盖率等方面入手,以实现软件安全漏洞挖掘技术的完善。

5 结语

通过全文的分析,得知软件安全漏洞挖掘技术的作用是非常大的,能够及时的、准确的来对软件的漏洞进行挖掘,这对于保障软件的更好运行是非常重要的。而在未来发展的进程中,还应该通过多种渠道来实现软件安全漏洞挖掘技术水平的提升,以保障软件中数据与信息的安全。

[1]陈震.网络计算机安全隐患及漏洞挖掘技术分析[J].网络安全技术与应用,2015.

[2]杨莎滢.论软件安全漏洞挖掘技术[J].信息安全与技术,2013.

[3]陈颖聪,陈广清,陈智明,万能.面向智能电网SDN的二进制代码分析漏洞扫描方法研究[J].信息网络安全,2016.

猜你喜欢

安全漏洞静态漏洞
漏洞
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
基于模糊测试技术的软件安全漏洞挖掘方法研究
智能设备安全漏洞知多少
安全漏洞太大亚马逊、沃尔玛和Target紧急下架这种玩具
安全漏洞检测技术在计算机软件中的应用
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高铁急救应补齐三漏洞