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

API安全测试方法论相关推荐

  1. 【CyberSecurityLearning 51】渗透测试方法论+渗透测试流程

    目录 渗透测试方法论 渗透测试(penetration testing,pentest) 渗透测试种类 * 黑盒测试 * 白盒测试 * 脆弱性评估与渗透测试 安全测试方法论 * 开放式web 应用程序 ...

  2. 网络安全学习(渗透测试方法论,web架构安全分析,信息收集)

    目录 一.渗透测试方法论 渗透测试种类 *黑盒测试 *白盒测试 *脆弱性评估与渗透测试 二.安全测试方法论 *开放式 Web 应用程序安全项目(Open Web Aplication Security ...

  3. Web安全第 01 讲:渗透测试方法论

    一.Web工作机制 1.1.浏览网站经历的过程 本地缓存 --> host --> IP/ARP --> DNS --> IP --> 网关--> 路由--> ...

  4. 使用 postman 给 API 写测试

    使用 postman 给 API 写测试 Intro 上次我们简单介绍了 使用 postman 测试 API,这次主要来写一些测试用例以检查请求的响应是否符合我们的预期以及如何使用脚本测试 使用 po ...

  5. 渗透测试的理论部分1——渗透测试方法论

    有很多朋友可能会像我一样最开始学渗透就去网上找很多实践方面的教程来看,最后弄得自己一头雾水,到了真正实战的时候又不知道从何下手,在这里本人将<kali linux渗透测试指南>学习到的东西 ...

  6. 《Kali Linux渗透测试的艺术》—第2章2.3节安全测试方法论

    本节书摘来自异步社区<Kali Linux渗透测试的艺术>一书中的第2章2.3节安全测试方法论,作者[英]Lee Allen , [印尼]Tedi Heriyanto , [英]Shake ...

  7. 渗透测试 --- 方法论

    渗透测试(penetration testing,pentest)是实施安全评估(即审计)的具体手段.方法论是在制定.实施信息安全审计方案时,需要遵循的规则.惯例和过程.人们在评估网络.应用.系统或三 ...

  8. 转载:渗透测试方法论(阅读)

    https://www.cnblogs.com/Sumarua/p/13521405.html @ 目录 第2章 渗透测试方法论 2.1 渗透测试的种类 2.1.1 黑盒测试 2.1.2 白盒测试 2 ...

  9. 如何使 API 安全测试成为 CI 过程的自动化部分

    目录 进入持续集成 从功能测试开始 准备用作安全测试的功能测试 维护稳定的测试环境 结论 讨论 API 安全性以及为什么我们应该关心它有点像谈论吃我们的蔬菜.我们都知道吃蔬菜对我们的健康有益,但我们有 ...

最新文章

  1. vim不支持python3_彻底颓了—— Vim Python 3 接口不支持中文
  2. [老贴]《asp.net高级编程》读书笔记(2)
  3. (11)zabbix item types监控类型
  4. WebC.BBS - 网上团队管理-责任心,主动性,积极性划分
  5. 神经网络与机器学习 笔记—小规模和大规模学习问题
  6. 变量的生存期和存储分配
  7. SQL Error (1130): Host IP is not allowed to connect to this MySQL server
  8. html5超高分辨率,在这里,让你看懂超高分辨率FT-ICR MS
  9. 【Nacos】Nacos MySQL 配置 启动报错 ould not create connection to database server. Attempted reconnect 3 time
  10. hibernate版本_基于jsp+mysql+Spring+hibernate+Struts 2的SSH在线蛋糕销售网站平台管理系统...
  11. Spring MVC BindingResult异常
  12. 一个双线程下同一时候操作指针变量导致野指针出现的问题总结
  13. Spotfire 表达式之逻辑函数
  14. 手把手教你编写SaleSmartly聊天机器人脚本
  15. 七、D3D12学习笔记——根签名动态顶点缓冲区
  16. linux excel自动换行,Excel中巧用样式列表快速实现文本换行
  17. 微信小程序幻灯片效果实现
  18. Cell Stem Cell | 动物所刘光慧等显示年轻血液可逆转衰老进程
  19. 经典伴读_GOF设计模式_结构型模式
  20. 如何快速提取视频中的文案?

热门文章

  1. reset_index()函数
  2. level2行情数据接口对A股作用有多大?
  3. 立创EDA软件学习及PCB设计
  4. xxx/Pods/Target Support Files/Pods-xxx/Pods-xxx-frameworks.sh: line 121: ARCHS[@]: unbound variable
  5. 阿米巴理念在根力多中的应用
  6. 图书商城管理需求分析
  7. SHELL脚本--expr命令全解
  8. 修复浏览器报错 Error in mounted hook (Promise/async): “[object Object]“
  9. 知道为什么人活着累吗
  10. .scss 转为 .css,Windows 下将 scss/sass 转换为 css