• 11
  • 12
分享
  • API安全测试方法论——软件测试圈
  • 饭团🍙 2021-01-20 15:22:21 字数 1491 阅读 2628 收藏 12

API安全概述

       Application Programma Interface (API)由一组定义和协议组合而成,可用于构建和企业集成应用软件。随着数字化转型的深入,API产品的价值日益增高,特别是与微服务、DevOps等技术的融合,使得API成为企业战略发展加速的利器,但随之而来的安全问题也不容忽视。常见的API安全漏洞有以下五种:

1.png

  1. 首先是API应该与应用系统一样在设计之初就考虑安全的因素,比如防篡改(签名)、防重放(时间戳)、防止敏感信息泄露(传输加密与数据最小化)等。

  2. API规范性带来的一个问题就是API很容易被发现,比如在URL中出现的v1/login,参数中出现的"function": "login"等。

  3. 安全配置错误常常包括:未使用加密传输协议、CSRF、CORS等。

  4. 参数过多就会导致信息泄露以及便于攻击者执行频率分析攻击,比如"role": "user"容易让攻击者联想到"role": "admin"等。

  5. 数据过多:传输过多的数据、返回过多的数据、参数值暴露敏感信息等都是数据过多导致的安全问题。同时OWASP在2019年也列举了API最受关注的十大安全问题:

2.png

       从上述的两张图中我们就可以大体了解API常面临的风险是什么,那么如何来解决这些安全问题?

API安全测试方法

       要想全面解决API的安全问题,就要在每次API研发完成之后进行全面的安全测试,为了防止测试过程中出现的遗漏,我们可以准备一个检查列表v1.0(本列表主要来自:https://github.com/shieldfy/API-Security-Checklist/blob/master/README-zh.md,添加了一些自己的分类依据、测试方法、修复方案等):

3.png

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


作者:zero.zhang

原文链接:https://blog.csdn.net/bloodzero_new/article/details/112479328#comments_14664116

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   1 JMeter日志概览  jmeter日志文件保存在bin目录中,名称为jmeter.log。我们可以在面板中直接察看日志,点击右上角黄色标志物可以打开日志面板,再次点击收起。  另外,JMeter可以很方便地设置日志输出级别:  通过这种方式修改日志级别,只是零时修改,不会改变配置文件中的值。当Jmeter重启后,又会恢复为默认的日志级别。  在Jmeter/bin 路径下打开 log4j2.xml文件,修改日志级别,这里修改该是永久性修改  通过修改Root level 值改变日志级别,该修改是永久性的。对Jmeter 的GUI页面运行脚本和命令模式运行脚本都会生效。  2...
            0 1 615
            分享
          •   Jmeter与loadrunner是现时下比较火的两个软件,很多的测试人员在面临loadrunner与Jmeter的时候不知道该如何选择,其实当了解这两款软件之后就不会发生这种选择困难症了。下面通过一些异同点来了解一下。  Jmeter与Loadrunner的相同点  1、原理都是通过中间代理,监控与收集并发客户端发现的指令,将他们生成脚本,并发送到应用服务器,再监控服务器反馈结果的一个过程。  2、分布式中间代理,可以设置代理在多台不同的PC中,通过远程控制使多台机器来分担自身的压力,借此达到能给获取更大的并发用户数。  3、录制功能,jmeter与loadrunner都具备的有录制脚本...
            0 0 808
            分享
          • 1、概述(1)无线网络性能测试分类DT车载测试 开着车在路上测试,在室外进行。CQT通信质量测试定点测试(2)测试主要工具硬件工具:笔记本USB接口、硬板读写速率。GPS外用USB的GSP。测试终端分析工具:LMT:本地维护终端LMT是一个逻辑概念。LMT连接到RNC外网,提供NODE B操作维护的用户界面。在NODE B操作维护子系统中,是用户对NODE B进行操作维护的终端。LMT 提供图形化用户界面,使用户可以通过Web 页面对BSC6900 进行操作和维护,实现MML 命令的输入、命令执行结果的显示、告警显示、消息跟踪、性能监测和设备维护等功能。OMC:操作维护中心ATP:自...
            13 13 2371
            分享
          • 上期我们简单介绍APP测试 与web测试区别,本期我们将介绍APP测试中涉及的各种测试策略,以及后期将对各种测试策略进行逐一讲解。APP测试主要分为6种不同的测试策略,分别是功能测试、兼容适配测试、性能测试、安全测试、专项测试以及稳定性测试。首先我们一起来看看APP测试中的功能测试。不管是任何类型的测试,功能测试都是必须要进行,只有保证功能正常才可以进行后续各种测试,功能测试依然是围绕着需求进行。APP的 功能测试主要从以下几个方面进行:安装卸载测试、升级测试、业务逻辑测试、UI测试、异常测试。1. 安装卸载测试:在测试APP之前,首先就要进行APP的安装。而对安装测试进行测试用例设...
            0 0 1001
            分享
          •   10 月 8 日,杭州亚运会正式落下大幕,在这场大会期间,中国体育代表团获得的金牌总数达到 201 枚。  而就在刚刚,联想也公布了另一组“夺冠”数据 —— 亚运会期间,联想近万台昭阳笔记本和 ThinkCentre M 大师台式机连续 30 天不关机高能稳定运行。  据介绍 ,此次亚运会期间,联想提供了近万台昭阳笔记本和 ThinkCentre M 大师系列台式机,为亚运赛事提供服务和支持。也是这些产品,创造了 30 天长时间持续工作不关机、0 故障的记录。  据了解,9 月 18 日,杭州亚运会主媒体中心进入正式运行阶段,在这里的公共办公区,部署了联想 ThinkCentre M 大师...
            0 0 799
            分享
      • 51testing软件测试圈微信