乐趣区

关于api: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.owas…
 
https://apiacademy.co/2018/06…
 
https://salt.security/blog/ap…
 
https://www.buzzfeednews.com/…

退出移动版