API安全测试方法论

发表于:2021-4-30 09:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zero.zhang    来源:CSDN

  API安全概述
  Application Programma Interface (API)由一组定义和协议组合而成,可用于构建和企业集成应用软件。随着数字化转型的深入,API产品的价值日益增高,特别是与微服务、DevOps等技术的融合,使得API成为企业战略发展加速的利器,但随之而来的安全问题也不容忽视。常见的API安全漏洞有以下五种:
  1、首先是API应该与应用系统一样在设计之初就考虑安全的因素,比如防篡改(签名)、防重放(时间戳)、防止敏感信息泄露(传输加密与数据最小化)等。
  2、API规范性带来的一个问题就是API很容易被发现,比如在URL中出现的v1/login,参数中出现的"function": "login"等。
  3、安全配置错误常常包括:未使用加密传输协议、CSRF、CORS等。
  4、参数过多就会导致信息泄露以及便于攻击者执行频率分析攻击,比如"role": "user"容易让攻击者联想到"role": "admin"等。
  5、数据过多:传输过多的数据、返回过多的数据、参数值暴露敏感信息等都是数据过多导致的安全问题。
  同时OWASP在2019年也列举了API最受关注的十大安全问题:
  从上述的两张图中我们就可以大体了解API常面临的风险是什么,那么如何来解决这些安全问题?
  API安全测试方法
  要想全面解决API的安全问题,就要在每次API研发完成之后进行全面的安全测试,为了防止测试过程中出现的遗漏,我们可以准备一个检查列表v1.0(本列表主要来自:https://github.com/shieldfy/API-Security-Checklist/blob/master/README-zh.md,添加了一些自己的分类依据、测试方法、修复方案等):
  API安全测试工具
  很多时候重复的劳动力是不必要的,所以利用好工具事半功倍(工欲善其事必先利其器)。
  Astra
  https://github.com/flipkart-incubator/Astra
  安装Astra非常简单,我们直接使用Docker部署即可(官网已经有了详细说明,值得注意的是编译Astra时网络是个大问题,自行扶墙)
  Burp Suite
  Burp的强大之处不用多说,但是针对API的测试,我更喜欢把BurpSuite与Postman结合起来使用。
  fuzzapi
  https://github.com/Fuzzapi/fuzzapi
  安装过程不赘述。
  Postman
  结合Burp来使用,后期有空专门写BurpSuite + Postman。
  其实写本文主要是为了帮自己梳理一下API的安全漏洞和检查要点,上面的图只是一个1.0版本,并且本表的很多列我也暂时没有共享出来,后期2.0会更新。
  reference
  · API Security Checklist:https://github.com/shieldfy/API-Security-Checklist
  · API的五个常见漏洞:https://min.news/zh-cn/tech/24cceb1c0d9169a7dc68e58e0e669864.html
  · API接口渗透测试:https://xz.aliyun.com/t/2412
  · 应用程序接口(API)安全:https://www.freebuf.com/articles/web/248251.html

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号