欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

看我如何使用Cloud Fuzzing挖到了一个tcpdump漏洞

来源:本站整理 作者:佚名 时间:2017-04-24 TAG: 我要投稿

Fuzzing(模糊测试)是一种识别软件设计缺陷和安全漏洞的方法。随着技术的不断进步,Fuzzing也逐步转移到了云端(Cloud)。与传统的模糊测试技术相比,Cloud Fuzzing不仅可以提升模糊测试的速度,而且还可以提升测试的可扩展程度。在这篇文章中,我们将介绍Cloud Fuzzing的完整过程。通过这种技术(softScheck Cloud Fuzing Framework-sCFF),我成功地在Ubuntu 16.04的tcpdump(4.9版本)中发现了一个安全漏洞。感兴趣的同学可以自行下载sCFF框架,并按照本文的操作步骤动手尝试一下。
一、背景知识
第一章主要介绍的是与本文有关的一些基础知识以及测试会用到的程序。如果你之前已经比较了解Cloud Fuzzing了,你可以直接阅读第二章。但是,我们强烈建议各位按照文章顺序进行阅读。
1.1 Fuzzing(模糊测试)
Fuzzing是一种测试软件健壮性的技术。模糊测试,也称Fuzzing或Fuzz测试,它是一种自动化软件测试技术,主要通过向被测目标输入大量的畸形数据并监测其异常来发现漏洞,是当前安全业界流行的漏洞挖掘手段之一。从广义角度来看,该技术的关键在于如何构造有效的测试用例(输入的畸形数据),以及如何有效的监控异常。Fuzzing技术简单、有效、自动化程度比较高,是目前工业界进行安全测试最有效的方法,被广泛应用于Web、系统、应用程序的漏洞挖掘。由于它一般属于黑盒测试,通过构造有效的畸形数据进行测试,因此该技术的代码覆盖率相对较低,且它的测试效率跟测试人员的经验和技术有很大关系。

在此之前,模糊测试通常是在本地计算机中进行的,但随着“基础设施即服务”的趋势不断兴趣,越来越多的企业开始提供云端服务了。实际上,类似微软和Google这样的大型公司早就已经在云端实现了模糊测试技术。例如在Springfield项目中,微软公司甚至已经开始向广大开发者提供Cloud Fuzzing服务了。
那么我们我什么要用Cloud Fuzzing而不用传统的模糊测试技术呢?首先,Cloud Fuzzing意味着你不需要再购买额外的电脑了,而购买测试设备不仅需要花很多钱,而且你还需要花时间去搭建和配置测试环境。但Cloud Fuzzing最大的优势就在于它所能提供的灵活性和可扩展性,它可以在短时间内完成大量的工作,并帮助测试人员节省大量的时间。比如说,Cloud Fuzzing可以在同一时间在多种不同的操作系统上对同一个程序进行模糊测试。如果一个项目对数据吞吐量有较高要求,那么这个测试实例就可以使用多块固态硬盘(RAID0配置);如果一个程序需要大量的RAM,那么我们就可以选择一个可以提供大量RAM的配置。如果我们需要对一个Web应用或网络协议进行测试,那么Cloud Fuzzing就可以给我们提供大量的终端节点。
当然了,Cloud Fuzzing也有其不足之处。首先,你必须充分信任云端的提供方,因为你所有的一切都运行在云端设备上,而不是运行在你自己的设备中。其次,你在使用Cloud Fuzzing时是需要付费的,那么当你使用了几个月甚至几年之后,你所支付过的费用可能要比你自行购买测试设备所花的钱还要多。
1.2 亚马逊AWS
亚马逊Web服务(AWS)是Amazon.com所提供的一系列在线服务的集合,而AWS也是目前云计算领域中最大的巨头。AWS其中的一个组件为弹性云计算(EC2),EC2允许用户设置虚拟机,用户可以对其进行各种配置,并将其充当服务器使用。用户所创建的一个实例本质上就是云端的一台虚拟服务器,它由操作系统和软件应用所组成,用户在创建的过程中还可以自行分配服务器所需的资源。除此之外,用户也可以在亚马逊设备镜像(AMI)库中选择需要的操作系统,而且亚马逊也给用户提供了一百多种不同的机器配置选项,用户可以根据自己的需要来选择配置文件。用户付费是按机器运行小时来付费的,而高配置实例的成本要比低配置实例要低得多。
1.3 softScheck Cloud Fuzzer Framework
为了尽可能地简化模糊测试的过程,softScheck的技术人员开发出了softScheck Cloud Fuzzer Framework(sCFF)。sCFF采用Python 3编写,并使用Boto 3 API来与AWS通信。sCFF由多种子程序组成,其中的每个工具都可以完成多项任务。
在下图中,我们根据模糊测试的阶段来对sCFF子程序进行了分类:

如果你想深入了解sCFF的架构和技术细节,请阅读这篇文章【sCFF论文】。
1.4 American fuzzy lop
American fuzzy log(afl)是sCFF所使用的模糊测试器(fuzzer),afl以其测试速度、稳定性和操作界面而为人所知,而且它可以帮助我们发现软件中的各种漏洞。如果我们拥有测试目标的源码,那么它在对源码进行了分析之后,不仅能够生成更加合适的测试向量,而且还可以显著提升测试覆盖率。而在给定的时间里,代码覆盖率越大,那么扫描到安全漏洞的可能性也就越高。下图显示的是afl的运行界面:

1.5 tcpdump
众所周知,Tcpdump是一个网络数据包分析器,它可以捕捉、显示、并以pcap文件格式保存目标网络所发送的数据包。与Wireshark不同的是,Tcpdump可以通过简单的命令(无需交互)来运行,这样可以让模糊测试过程变得更加简单。
1.6 GNU Debugger
在GNU DeBugger(GDB)的帮助下,我们可以对软件的运行状态进行一步一步地分析,以便我们找出软件崩溃的原因。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载