API 帮助跨多个设备互连多个应用程序或软件系统,定义它们可以发出的调用或请求的种类、调用的方式、应使用的数据格式以及应遵守的约定。API 已经发展成为重要的互连,支持不同应用程序架构之间的通信,促进新服务的更快集成和部署。软件开发程序也依赖 API 来提供服务、平台管理和持续部署。涉及移动设备、云数据系统和微服务设计模式的现代应用程序架构需要使用多个 API 作为网关,以促进不同 Web 应用程序之间的互操作性。

在 API 安全领域,“攻击”和“漏洞”这两个词经常互换使用,许多人并不了解 API 攻击/漏洞的真正含义。API 攻击/漏洞是一种威胁类别,在很大程度上未被行业现有的 API 安全框架和指南解决。为了保持基于 API 的安全和可信度,必须改进应对的思维和工具,以应对公司现在面临的各种 API 威胁——以及 API 威胁形势的快速发展。

什么是 API 滥用?

任何设计和代码都难以避免错误,安全技术也是如此。有时软件的结构,哪怕是根据相应规范设计的,都可能有被滥用技术利用的风险。

OWASP 这样定义软件 “滥用(abuse)”:

创建误用和滥用案例以滥用或利用软件功能中控件的弱点来攻击应用程序。使用应用程序的滥用案例模型,作为识别直接或间接利用滥用场景的具体安全测试的媒介。

简 而言之,滥用案例模型在某种程度上是威胁建模。API 对于构建坚固且持续的通信桥梁至关重要,该桥梁使设备能够无缝传递所需信息。然而黑客采用多种方式来利用 API 并破坏目标设备,这种 API 开发是对 API 安全的潜在威胁。如果在 API 设计的威胁建模阶段没有考虑到执行锁定端口,并且没有添加补偿控制,那么这些 API 就有可能被“滥用”。API 滥用是指错误处理 API、获得未经批准的访问和修改关键功能的行为,以便 API 可用于攻击服务器或使服务器超载等敌对过程。它是在机器人、网络钓鱼攻击或手动插入恶意代码的帮助下执行的。

API 滥用很常见,但原因不总是因为 API 本身设计不佳。有时 API 具有可预测的设计结构,这也让攻击者有机会滥用 API。API 滥用包括:

  • 出于恶意原因以未经批准的方式使用 API。在这些情况下,API 在技术上按设计使用,但被错误的人或出于错误的原因使用。比如数据抓取。
  • 利用应用程序逻辑中的漏洞。这些滥用是特定于特定业务的,在许多情况下,并没有通过 OWASP 框架来解决。

API 滥用的严重影响

企业往往会因为他们的 API 通过了漏洞评估而觉得企业的 API 是安全且“完美”的。但最大的 API 保护缺口是对向合作伙伴开放的 API 的保护,这些 API 很容易被滥用。即使 API 编写得非常完美且没有漏洞,也可能以意想不到的方式被滥用,从而暴露共享它们的组织的核心业务功能和数据。

最典型的例子就是 2018 年剑桥分析公司 (CA) 丑闻。在该事件中,CA 利用 Facebook 的开放 API 收集了至少 8700 万用户的大量数据。这是通过使用 Facebook 测验应用程序来实现的,该应用程序利用了一个允许第三方应用程序收集有关测验者的信息的许可设置,以及他们所有朋友的兴趣、位置数据等。这些信息随后被出售给各种政治活动。其全部影响可能永远不得而知,但公认的影响对2016年美国总统大选和英国“脱欧”公投产生了重大影响。该事件还导致 Facebook 的市值立即遭受超过 1000 亿美元的打击,罚款超过数十亿美元,并在数年后一直成为政府监管机构的目标。

所有这些都不涉及利用 Facebook API 基础设施中的基础设施漏洞。Facebook 暴露了一个最终被滥用的核心业务 API,而 CA 只是简单地以创建它时未打算或未预料到的方式使用了 Facebook 的公共 API。

API 滥用实例及预防建议

以下是一些常见的 API 滥用案例,以及如何预防的建议。

失效的对象级授权 (BOLA)

BOLA 指对对象访问请求的验证不充分,允许攻击者通过重用访问令牌来执行未经授权的操作。根据 OWASP 的 API 安全项目,BOLA 是当今最严重且最常见的 API 攻击,占所有 API 攻击的40%。

预防 BOLA 的建议:

  • 实施依赖于用户策略的授权机制,验证登录用户是否有权执行请求的操作。
  • 使用随机和不可预测的值作为记录 ID 的 GUID。
  • 编写评估授权的测试。

分布式拒绝服务攻击 (DDoS)

DDoS 是一种常见的攻击类型,恶意攻击者通过故意使用来自多个设备和 IP 地址的大量机器人流量使 API 过载。对于企业而言,关键业务服务因此面临风险,例如登录服务、会话管理和其他为用户提供应用程序正常运行时间和可用性的服务。

执行 DDoS 活动的攻击者通常使用不对称技术,通过这种技术发送少量数据来生成 API 调用,这通常会导致服务器严重超载,因为他们必须使用大量数据来响应此类 API 调用。此类攻击会严重占用系统资源并大大增加系统所有用户的服务器响应时间。

企业可以采取以下措施来阻止 DDoS 攻击:

  • 流量分析
  • 速率限制(例如,每个客户端/资源的请求数、请求负载大小)。
  • 自动缩放资源(确保为阈值报告打开警报)。

安全配置错误

应用程序中安全设置的不当配置可能会导致通过帐户接管(ATO) 的方式被利用和攻击。

 

防止这种情况的几种方法是:

  • 盘点和管理所有 API,特别留意影子 API 和僵尸 API。
  • 扩大数据治理范围,从应用程序扩展到所涉及的 API 的数据。

数据泄露

这种威胁通常被认为是通过开放的 API 意外泄露机密信息造成的。Venmo 是 PayPal 旗下的移动支付服务。在 Venmo 中,交易在设计上和默认情况下都是公开的。这种开放策略在 2019 年导致了严重的数据抓取问题,2 亿 Venmo 用户的私人信息被抓取。此外,还发现了美国总统拜登的 Venmo 账户。 无论是有意还是无意的数据泄露,在被大量滥用时都可能引发国家安全问题。

 

缓解或消除数据泄露风险的两种方法是:

  • 在 API 而非客户端级别执行信息过滤
  • 避免在功能不需要时发送敏感信息

API 注入

API 注入指恶意代码连同 API 请求被注入。注入的命令执行后,这种恶意代码(不仅仅是 SQLi)可以从服务器删除用户的整个站点。恶意攻击者通常以此来获取对私人数据的访问权限。

以下是一些避免注入的方法:

  • 参数化查询
  • 保证安全的上下文,可在时间线上查看所有 API 活动。
  • 用授权取代过时和不安全的认证方法。
  • 在服务器端添加输入验证机制
  • 避免执行特殊字符
  • 全面的日志记录、监控和警报

参考链接:

https://cheatsheetseries.owasp.org/cheatsheets/Abuse_Case_Cheat_Sheet.html

 

https://apiacademy.co/2018/06/how-the-facebook-api-led-to-the-cambridge-analytica-fiasco/

 

https://salt.security/blog/api-security-fundamentals

 

https://www.buzzfeednews.com/article/ryanmac/we-found-joe-bidens-secret-venmo

5种典型 API 攻击及预防建议的更多相关文章

  1. Web常见几种攻击与预防方式

    DoS和DDoS攻击 DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击.其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带 ...

  2. XSS与CSRF两种跨站攻击比较

    XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...

  3. 总结 XSS 与 CSRF 两种跨站攻击

    前言 在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了 ...

  4. 总结XSS与CSRF两种跨站攻击

    XSS:跨站脚本(Cross-site scripting),实际应是"CSS",但由于和层叠样式表CSS名称冲突,故改为"XSS" CSRF:跨站请求伪造(C ...

  5. XSS与CSRF两种跨站攻击总结

    在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...

  6. 简单总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  7. 简单地总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  8. 几种常见web攻击手段及其防御方式

    XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross ...

  9. 总结几种常见web攻击手段及其防御方式

    本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 ...

  10. ref:一种新的攻击方法——Java Web表达式注入

    ref:https://blog.csdn.net/kk_gods/article/details/51840683 一种新的攻击方法——Java Web表达式注入 2016年07月06日 17:01 ...

随机推荐

  1. Cluster table 与性能

    用户数据行存储在文件系统中的堆文件中,而这些行以不确定的顺序存储.如果表最初以插入/复制的顺序加载,那么以后的插入.更新和删除将导致在堆文件中以不可预测的顺序添加行.创建索引创建一个指向堆行的辅助文件 ...

  2. Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点

    Spring源码学习笔记12--总结篇,IOC,Bean的生命周期,三大扩展点 参考了Spring 官网文档 https://docs.spring.io/spring-framework/docs/ ...

  3. 使用traefik进行流量复制

    文章转载自:https://mp.weixin.qq.com/s/nMMN7hAJK6SFn1V1YyxvHA Traefik 2.0 还引入了镜像服务,一种可以将流入流量复制并同时将其发送给其他服务 ...

  4. 使用prometheus + granafa 监控mysql主从

    若主从同步数据库未同步默认的mysql表,则也需要在从库上创建mysql用户mysqld_exporter用来收集监控数据 mysqld_exporter安装部署 这里采取的是mysqld_expor ...

  5. 第二章:视图层 - 1:URL路由基础

    路由的编写方式是Django2.0和1.11最大的区别所在.Django官方迫于压力和同行的影响,不得不将原来的正则匹配表达式,改为更加简单的path表达式,但依然通过re_path()方法保持对1. ...

  6. 使用scrapy爬取长安有妖气小说

    目标网站:https://www.snwx3.com/txt/434282.html 第一章地址:https://www.snwx3.com/book/434/434282/92792998.html ...

  7. 第三周python作业

    import datetime mot = ["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择.", "今天星期二:\n含泪播种的人一定会笑着收." ...

  8. 中小制造企业需要ERP和MES吗?

    并不是所有中小制造企业都需要ERP和MES,这个取决于你的规模和管理思维与模式!匹配很重要,不同规模的企业做不同的选择!比如你大型企业,一般是要使用ERP的,其工厂也应该需要上MES系统,ERP主要用 ...

  9. NSIS 去除字串中的汉字

    !include "LogicLib.nsh" XPStyle on !include "WordFunc.nsh" #编写,水晶石 #去除字串中的汉字 #本例 ...

  10. .NET MAUI 社区工具包 1.3版本发布

    2022 年 10 月 4 日,微软发布了 .NET MAUI 社区工具包的 1.3 版,具体参见微软官方博客:https://devblogs.microsoft.com/dotnet/announ ...