Skip to main content
CenXiv.org
此网站处于试运行阶段,支持我们!
我们衷心感谢所有贡献者的支持。
贡献
赞助
cenxiv logo > cs > arXiv:2203.02906

帮助 | 高级搜索

计算机科学 > 软件工程

arXiv:2203.02906 (cs)
[提交于 2022年3月6日 ]

标题: foREST:一种基于树的模糊测试RESTful API的方法

标题: foREST: A Tree-based Approach for Fuzzing RESTful APIs

Authors:Jiaxian Lin, Tianyu Li, Yang Chen, Guangsheng Wei, Jiadong Lin, Sen Zhang, Hui Xu
摘要: 表述状态传输(REST)是网络应用和云服务中广泛采用的架构。 用户可以根据其应用接口的规范调用此类服务,即RESTful API。 现有的针对RESTful API模糊测试的方法通常基于经典的API依赖图。 然而,由于API之间的依赖关系爆炸,这种依赖关系对于REST服务来说效率不高。 在本文中,我们提出了一种基于树的新方法,可以更好地捕捉关键依赖关系,并大幅提高RESTful API模糊测试的效率。 特别是,跨多个API的端点的层次信息使我们能够构建一个API树,树节点之间的关系可以表示资源依赖的优先级,\textit{例如,}一个节点更可能依赖其父节点而不是子节点或兄弟节点。 在评估部分,我们首先确认这种基于树的方法比传统的基于图的方法更高效。 然后我们将我们的工具应用于模糊两个现实世界的RESTful服务,并与两种最先进的工具EvoMaster和RESTler进行性能比较。 我们的结果表明,foREST在所有实验中都能提高代码覆盖率,范围从11.5%到82.5%。 此外,我们的工具发现了11个之前未知的新错误。
摘要: Representational state transfer (REST) is a widely employed architecture by web applications and cloud. Users can invoke such services according to the specification of their application interfaces, namely RESTful APIs. Existing approaches for fuzzing RESTful APIs are generally based on classic API-dependency graphs. However, such dependencies are inefficient for REST services due to the explosion of dependencies among APIs. In this paper, we propose a novel tree-based approach that can better capture the essential dependencies and largely improve the efficiency of RESTful API fuzzing. In particular, the hierarchical information of the endpoints across multiple APIs enables us to construct an API tree, and the relationships of tree nodes can indicate the priority of resource dependencies, \textit{e.g.,} it's more likely that a node depends on its parent node rather than its offspring or siblings. In the evaluation part, we first confirm that such a tree-based approach is more efficient than traditional graph-based approaches. We then apply our tool to fuzz two real-world RESTful services and compare the performance with two state-of-the-art tools, EvoMaster and RESTler. Our results show that foREST can improve the code coverage in all experiments, ranging from 11.5\% to 82.5\%. Besides, our tool finds 11 new bugs previously unknown.
评论: 11页
主题: 软件工程 (cs.SE)
引用方式: arXiv:2203.02906 [cs.SE]
  (或者 arXiv:2203.02906v1 [cs.SE] 对于此版本)
  https://doi.org/10.48550/arXiv.2203.02906
通过 DataCite 发表的 arXiv DOI

提交历史

来自: Hui Xu [查看电子邮件]
[v1] 星期日, 2022 年 3 月 6 日 08:48:00 UTC (3,235 KB)
全文链接:

获取论文:

    查看标题为《》的 PDF
  • 查看中文 PDF
  • 查看 PDF
  • TeX 源代码
  • 其他格式
许可图标 查看许可
当前浏览上下文:
cs.SE
< 上一篇   |   下一篇 >
新的 | 最近的 | 2022-03
切换浏览方式为:
cs

参考文献与引用

  • NASA ADS
  • 谷歌学术搜索
  • 语义学者
a 导出 BibTeX 引用 加载中...

BibTeX 格式的引用

×
数据由提供:

收藏

BibSonomy logo Reddit logo

文献和引用工具

文献资源探索 (什么是资源探索?)
连接的论文 (什么是连接的论文?)
Litmaps (什么是 Litmaps?)
scite 智能引用 (什么是智能引用?)

与本文相关的代码,数据和媒体

alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)

演示

复制 (什么是复制?)
Hugging Face Spaces (什么是 Spaces?)
TXYZ.AI (什么是 TXYZ.AI?)

推荐器和搜索工具

影响之花 (什么是影响之花?)
核心推荐器 (什么是核心?)
IArxiv 推荐器 (什么是 IArxiv?)
  • 作者
  • 地点
  • 机构
  • 主题

arXivLabs:与社区合作伙伴的实验项目

arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。

与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。

有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.

这篇论文的哪些作者是支持者? | 禁用 MathJax (什么是 MathJax?)
  • 关于
  • 帮助
  • contact arXivClick here to contact arXiv 联系
  • 订阅 arXiv 邮件列表点击这里订阅 订阅
  • 版权
  • 隐私政策
  • 网络无障碍帮助
  • arXiv 运营状态
    通过...获取状态通知 email 或者 slack

京ICP备2025123034号