5种典型 API 攻击及预防建议
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 攻击及预防建议的更多相关文章
- Web常见几种攻击与预防方式
DoS和DDoS攻击 DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击.其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带 ...
- XSS与CSRF两种跨站攻击比较
XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...
- 总结 XSS 与 CSRF 两种跨站攻击
前言 在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了 ...
- 总结XSS与CSRF两种跨站攻击
XSS:跨站脚本(Cross-site scripting),实际应是"CSS",但由于和层叠样式表CSS名称冲突,故改为"XSS" CSRF:跨站请求伪造(C ...
- XSS与CSRF两种跨站攻击总结
在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...
- 简单总结几种常见web攻击手段及其防御方式
web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...
- 简单地总结几种常见web攻击手段及其防御方式
web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...
- 几种常见web攻击手段及其防御方式
XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross ...
- 总结几种常见web攻击手段及其防御方式
本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 ...
- ref:一种新的攻击方法——Java Web表达式注入
ref:https://blog.csdn.net/kk_gods/article/details/51840683 一种新的攻击方法——Java Web表达式注入 2016年07月06日 17:01 ...
随机推荐
- Jmeter处理响应报文中文乱码
Jmeter在访问发送请求的时候,响应内容如果有中文可能会显示乱码,原因应该是响应页面没有做编码处理,jmeter默认按照ISO-8859-1编码格式进行解析.而我们的响应报文却是utf-8的格式,所 ...
- 干货分享|使用 Istio 实现灰度发布
Kubernetes 作为基础平台,提供了强大的容器编排能力.但是在其上部署业务和服务治理上,仍然会面对一些复杂性和局限性.在服务治理上,已经有许多成熟的 ServiceMesh 框架用于扩充其能力, ...
- Odoo自建应用初步总结(一)
学习了<Odoo快速入门与实践 Python开发ERP指南>(刘金亮 2019年5月第1版 机械工业出版社)第6章自建应用入门后进行一下总结. 因为本书作者使用Odoo11,而目前最新版本 ...
- 基于 Apache Hudi + Presto + AWS S3 构建开放Lakehouse
认识Lakehouse 数据仓库被认为是对结构化数据执行分析的标准,但它不能处理非结构化数据. 包括诸如文本.图像.音频.视频和其他格式的信息. 此外机器学习和人工智能在业务的各个方面变得越来越普遍, ...
- Redis可视化工具(支持ssh链接)
1.Redis Desktop Manager RedisDesktopManager,简称RDM,这是一款很出名的Redis可视化管理工具,支持Windows,Mac,Ipad,LInux 开源地址 ...
- 使用Recoding Rules优化性能
通过PromQL可以实时对Prometheus中采集到的样本数据进行查询,聚合以及其它各种运算操作.而在某些PromQL较为复杂且计算量较大时,直接使用PromQL可能会导致Prometheus响应超 ...
- img和div之间有间隙的原因及解决方法
div 中 存在 img标签,由于img标签的 display:inline-block 属性. #####display:inline-block布局的元素在chrome下会出现几像素的间隙,原因是 ...
- MySQL数据库安装保姆教程及问题解决
使用Mysql的zip压缩包解压版,下载之后需进行一定的配置,才能使用它. 下面对Mysql压缩包版的安装方法进行详细的描述,如有疑问或错误,望及时反馈. 首先,mysql的官方下载地址点我进行下载 ...
- 谣言检测(PLAN)——《Interpretable Rumor Detection in Microblogs by Attending to User Interactions》
论文信息 论文标题:Interpretable Rumor Detection in Microblogs by Attending to User Interactions论文作者:Ling Min ...
- 洛谷P2367 语文成绩(差分)
标准的差分应用题,不要想的太复杂,写成了线段树. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=5e6+10 ...