移动端REST接口模糊测试方法

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:cheney0105
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着国内外移动应用程序开发模式逐渐从原生App扩展到Hybrid App,App的业务服务系统复杂度也在不断地上升。如今,大多数的移动端App都是通过REST接口来访问业务服务器的。开发人员往往按照正常业务逻辑实现接口功能和服务器处理逻辑,而忽略了对异常逻辑及输入的检查。REST接口和服务器的安全性和健壮性问题常常会导致App线上事故频发,影响用户体验,甚至造成巨大经济损失。有效地保障此类业务服务器的健壮性和安全性,是开发人员和测试人员需要重点关注的问题。模糊测试作为一种通过输入非常规数据影响内部程序执行的测试技术,被广泛应用于接口测试中。当前虽然有许多模糊测试工具和框架,但对于移动端接口测试,它们大多存在着需要进行大量人工预定义配置或是提供接口规范文档、缺少真实接口参数数据支持、没有较为精细化的模糊测试选择策略等问题,在效率及准确性上仍有缺陷。本文设计并实现了一种数据流驱动的、细粒度的、可扩展的、类型感知的移动端REST接口模糊测试工具REST-Fuzzer。REST-Fuzzer能自动化地获取移动应用程序的网络流量数据进行REST业务接口的区分和筛选,REST-Fuzzer中的基于Lattice model的REST接口参数预判模型能通过分析目标业务接口的多次调用,得到预判参数类型,生成参数级别的模糊方案,对模糊测试范围进行有效剪枝。主要贡献和创新点如下:·提供了一套完整的、数据流驱动的、细粒度的、可扩展的、类型感知的移动端REST接口模糊测试流程,不需人工提供接口定义文档,能够真实地应用于不同类别的移动应用程序,有效地发现移动应用程序业务服务器的健壮性和安全性问题。·基于真实业务场景提出了一种引入反序列化重建机制的移动应用程序网络流量REST接口筛选方法,筛选出具有结构化参数、能够较好地反映出系统之间逻辑关系、更可能触发应用程序缺陷的REST业务接口,为后续模糊测试提供细粒度的接口对象。·基于程序分析的Lattice model设计了一种细粒度的REST接口参数预判模型,并且基于该模型设计了一套参数变异模糊策略。利用该模型对接口参数进行类型预判,能生成参数级别的模糊方案,对模糊范围进行有效剪枝。为了验证REST-Fuzzer作为REST接口模糊测试工具的有效性和性能,本文将REST-Fuzzer应用于25个真实应用市场下载量百万级以上的购物、生活、新闻等不同类别的App进行评估测试,评估测试结果表明:REST-Fuzzer能普遍适用于25个移动应用程序。其中,有效检测到5个移动应用程序的业务服务器漏洞。利用三种不同类型的接口对REST-Fuzzer、商用工具Burp Suite、开源工具Fuzzapi进行了对比实验,实验结果证明REST-Fuzzer能在模糊测试用例平均减少85%,模糊测试时间平均缩短80%的情况下,发现同样甚至是更多的移动应用程序业务服务器的漏洞。
其他文献
软件众包因其开放式利用群体智慧解决问题的特点,在工业界和学术界受到众多关注。近年来,随着软件众包平台的不断发展,其用户量也呈现出高速增长的趋势,如何帮助用户挑选合适自己的服务商及服务,即构建一个优秀的众包服务搜索系统成为了各平台亟需解决的关键问题之一。为解决当前服务搜索系统未能充分利用包括用户评论在内的现有平台数据和未能对搜索结果精确排序的问题,本文提出了基于用户评论的软件众包智能搜索模型。通过对
Unikernel基于库操作系统技术,将单个应用程序与库操作系统组件编译为虚拟机镜像,可直接在KVM等虚拟化平台上运行,具有体积小、性能好、可针对化定制等优势,是一种有吸引力的针对云计算的操作系统设计。但Unikernel的一大缺点是缺乏多进程支持。最主要的原因是Unikernel是单地址空间设计,且运行在单个CPU特权级上。这大大降低了Unikernel的灵活性和适用性。多进程编程模型帮助应用程
近年来,区块链技术的出现和发展,为供应链领域遇到的鉴权和信息协同等方面问题带来极大的改善。供应链依托区块链的范式,采用私有链或联盟链的形式,利用区块链技术信用的易流转、链上信息难篡改、交易透明化等天然优势,逐步走向数字化智能化。目前,供应链领域合同依赖智能合约实现智能替代合同运行在区块链上,主要存在以下三个问题:首先,供应链参与方之间签订的纸质合同由于文本异构性问题,生成智能合约缺乏统一化描述;其
自然语言代码搜索在软件开发中起着重要作用,它允许程序员以自然语言进行查询,并从Internet或源代码库中获取代码片段。但是,在现有代码搜索方法选择和新技术研究时往往存在困难,因为(1)现有代码搜索方法的实现和评估它们的数据集通常是不公开的,无法选择适合当前场景的代码搜索方法;(2)有些代码搜索方法可能会利用训练数据集或辅助数据源,因此如果没有这些数据集/数据源,就无法真正实现搜索方法,并证明其有
近年来,随着深度学习的迅猛发展,自然语言处理已经成为了科学研究的重点领域之一。目前,基于深度学习技术来处理自然语言的研究工作主要集中在知识图谱、机器翻译、问答系统、文本分类等方向,然而关于将深度学习技术应用于自动生成文本摘要的研究工作少之又少。此外,在被称之为“互联网时代”的今天,文本信息的日生产量已然呈现出指数级地爆炸式增长趋势,面对数据量级超乎想象的文本信息,人类不再可能胜任从文本中提炼出其想
日志结构合并树(LSM-Tree)是一种写操作延迟极低的数据库存储结构,在现代数据库中应用越来越广泛。而随着互联网的发展,信息量增长迅速,业务需求也越来越复杂。这不仅要求同一个数据库能支持在线事务处理(OLTP),同时希望数据库能高效处理在线分析处理(OLAP)。这样的数据库叫做混合事务分析处理(HTAP)数据库。要让基于LSM-Tree的数据库支持HTAP,就需要解决其设计存在的两个弊端。其一,
软件众包平台采用公开参与的方式,吸引地理位置分散的开发者众包完成各种类型的软件开发与服务项目。但随着软件众包平台的发展,平台中项目数量的提升导致了开发者不得不花费大量时间从数量巨大、类型繁杂的项目中选择合适自己的项目。需求标注为这一问题提供了一种有效的解决方案。如果平台中每个项目都根据需求被标注了合适的标签,开发者或推荐系统则可以根据标签快速找到合适的项目,同时也有助于开发者快速了解项目要点,提升
近年来,随着互联网的发展和软件众包产业的兴起,日益增多的个人和组织使用众包平台进行软件服务众包,以达到节约成本、提高效率等目的。正确理解用户的搜索意图,并帮助用户挑选适合的服务,是众包平台的关键研究问题之一。但目前众包平台的服务搜索存在以下问题:(1)大部分搜索方法都是基于字符串的完全精确匹配,没有做到在理解用户语义基础上的“软匹配”。除非用户精准表达自己的搜索意图,否则基于字符串的精确匹配将无法
当前在全球提倡加强环境保护和资源可持续利用的时代环境下,对储能系统的应用需求逐步增长,锂离子电池以环境友好、比能量高、循环性能好等特点被广泛应用于储能系统中。储能系统的使用性能和安全性能受到锂离子电池温度和系统热分布均一性的影响。因此,设计一个冷却性能优异的锂离子电池热管理系统至关重要。强制风冷热管理系统以低成本、易实现和易维修的优势在储能系统的实际工程应用中受到青睐。然而储能系统结构复杂、体积庞
旅游翻译要求翻译工作者在跨文化交际意识指导下进行专业的翻译活动,强调旅游信息的准确传递和有效传播,为跨文化交流提供直观有效的平台。在跨文化交际意识的指导下对旅游翻译进行研究,有助于翻译工作者在充分考虑文化差异的基础上帮助译语读者更好地理解山西特有的历史和文化,为旅游翻译工作提供理论和策略的借鉴,同时促进山西旅游文化和世界接轨,使山西本土文化真正实现"走出国门、走向世界"。