• 11
  • 12
分享
  • API安全测试方法论——软件测试圈
  • 饭团🍙 2021-01-20 15:22:21 字数 1491 阅读 2790 收藏 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   据博主 @失业经理人 9 月 3 日报道,近期行业内部传出消息,指出东风本田正面临战略调整,计划实施一次规模较大的裁员行动,预计受影响员工数量将达到 2000 人。  报道提到,本次东风本田的裁员补偿方案为“N+2+1”模式。  其中的“N”代表员工在职年数,每一年对应一个月的工资作为补偿,且年数不设上限。  而“+2”部分则是对每位员工额外发放两个月工资的奖励,其计算基准为员工在过去一年(2023 年 8 月至 2024 年 7 月)内的税前月平均工资。  “+1”为可能存在的其他福利待遇。  报道称据网友透露,面对裁员的消息,员工们并未表现出普遍的哀伤或抗议,相反,他们以一种颇为积极的...
            0 0 410
            分享
          •   前言:经常听到汽车中的网络的是CAN协议,大概知道是什么,但是又好像不太了解,想去学习,但又看不懂专业名称,本文尝试从生活中网购一台汽车来类比说明模型和协议,希望能给大家提供一个不错的思路,为后续看协议原文作铺垫。  1.OSI七层模型  本章节打算从为什么是OSI模和什么是OSI模型型来简单入门地说明一下OSI七层模型,主要是为后面理解CAN协议作铺垫。  1.1为什么是OSI七层模型?  到20世纪70年代晚期,那时又大量专用的通信协议,这种互联工具的多样性使得使用不同协议的设备很难互相兼容,当时为了克服这一问题的可能方法就是使用统一的模型,一个为了描述一个通用的网络互联工具。OSI模...
            0 0 168
            分享
          • 一、往期回顾如果用手机自带的浏览器去访问各种网页。自然而然都能获取到 WebView 的,不需要开启什么。用原生的、手机自带的浏览器去试下,也能得到对应的结果。首先,要确保 WebView 的出现,要识别什么是 WebView,WebView 一出现,就代表有 Html 页面。那么接下来的操作,可能就进入 WebView 里面操作了。但是看到了 WebView,要进入 WebView,你就面临了从原生控件的操作,进入了 Html 页面的操作。所以,第一件事情是必须切换,是上下文切换。要切换到这样的一个 WebView,必须保证我的代码当中能够得到 WebView 的名字。如何保证得到 WebV...
            0 0 1487
            分享
          • 一、 jmeter报告导出执行命令: jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]如下图所示:启动Jmeter,窗口有一行命令,执行后可导出测试结果报告-n: 非GUI模式执行JMeter-t: 执行测试文件所在的位置-l: 指定生成测试结果的保存文件,jtl文件格式-e: 测试结束后,生成测试报告-o: 指定测试报告的存放位置[jmx fi...
            1 1 883
            分享
          •   一、自我介绍  这里就不过多阐述了,相信很多小伙伴都有。  二、灵活问题  1、大概说说之前公司的测试流程。  2、测试报告有哪些内容?  3、如何保证用例的覆盖度?  4、什么是测试用例,什么是测试脚本?两者的关系?  5、Bug的级别,按照什么划分。  6、你认为是bug,开发认为不是bug,如何解决?  7、给你-一个网站,你如何测试?  8、你印象中最深刻的bug?  9、如果没有需求文档怎么办?  10、Andriod兼容性测试选取手机的准则?  三、功能方面  1、说一下测试用例的设计方法?2、说说web和app测试的区别?  2、小程序和app测试有什么区别?  3、Andr...
            0 0 947
            分享
      • 51testing软件测试圈微信