5 个 API 滥用用例以及如何防止它们

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

API 滥用很常见,但不一定是因为 API 本身设计不佳。本博客着眼于五个 API 滥用用例以及如何防止它们。

什么是漏洞?

有时,由于设计不当,漏洞是直接的缺陷。例如,华盛顿州的塔科马海峡大桥建于 1940 年,当年晚些时候由于施工不善,在 40 英里/小时的风速下倒塌。没有人丧生(悬索桥在 1950 年进行了重建,现在仍然屹立不倒)。

但有时,漏洞是实际设计的一部分。考虑门锁。门锁没有缺陷,因为它可以解锁。销钉和玻璃杯的精密制作和布局没有固有的设计缺陷。问题不在于结构差,而是它们的结构和精密设计为潜在的窃贼提供了一种一致的方式来知道如何挑选它们。(有关 locksport 的更多信息,TOOOL 是一个很好的组织

适当的家庭安全取决于房主的理解,即锁不是所需的包罗万象的安全功能,并且需要其他保护措施。

为什么要在科技文章中谈论桥梁和锁?

什么是 API 滥用,谁会做这样的事情?

技术安全性也是如此——有时存在糟糕的设计和糟糕的代码,有时软件的结构,即使根据适当的规范设计,也为滥用该技术提供了正确的杠杆。

API滥用很常见,但不一定是因为 API 本身设计不佳。出于积极的原因,API 具有有意且可预测的设计结构。正是这些相同的原因为攻击者提供了滥用 API 的途径

OWASP 以这种方式定义软件 滥用

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

简而言之,滥用案例模型在一定程度上是威胁建模。如果在 API 设计的威胁建模阶段不考虑某人对其执行虚拟锁运动的想法并且未添加补偿控制,则可能会选择这些 API“锁”。

这里有一个重要说明:虽然应该遵循安全编码,但开发人员理所当然地更关心正确的开发而不是严格的安全测试。不要把所有的安全责任都推给开发者;包括一个整体的组织计划,以提高安全性、灵活性和测试。

至少有三种类型的应用程序和 API 滥用者:

  1. 恶意的
  2. 其目的是禁用、欺骗和破坏。我正要写,“这是主要需要关注的问题。” 但是关于 API 滥用的话题,所有的滥用都需要考虑,因为最终,无论出于何种原因, API 都需要保持安全和功能。
  3. 故意(非恶意)
  4. 演员的目标主要是测试极限或制造麻烦。攻击者可能是一个有“乐趣”的脚本小子、黑客主义者(不是恶意的一方)或采取某种形式的人
  5. 无意(非恶意)
  6. 也许这个人正在渗透测试并无意中导致了中断,或者漏洞赏金猎人抓取了敏感数据的屏幕截图,或者安全研究人员要么没有意识到测试会导致这种麻烦,要么打开了一个漏洞。

API 滥用案例和预防

以下是一些常见的 API 滥用案例,以及一些现实生活中的示例。

损坏的对象级别授权 (BOLA)

由于 BOLA 本身占所有 API 攻击的 40% 左右,因此它是一个开始列表的好方法。API 创建了广泛的访问控制攻击面,因为它们处理对象标识符。

预防 BOLA 的一些方法是:

  • 实施依赖于用户策略的授权机制,验证登录用户是否有权执行请求的操作。
  • 使用随机和不可预测的值作为记录 ID 的 GUID。
  • 编写评估授权的测试。
  • 分布式拒绝服务 (DDoS) – Cloudflare 与 Mantis 僵尸 络

    好消息是,2022 年 6 月,Cloudflare 阻止了一次令人印象深刻的 HTTPS DDoS 攻击。根据他们的文章,“在不到 30 秒的时间内,这个僵尸 络从 121 个国家的 1,500 多个 络生成了超过 2.12 亿个 HTTPS 请求。”

    并非每个人都可以阻止如此大规模的攻击,但公司可以采取一些措施来阻止 DDoS:

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

    应用程序中安全设置的不正确配置可能会通过帐户接管(ATO) 导致完全妥协。

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

  • 清点和管理所有 API,留意影子和僵尸 API。
  • 从应用程序扩展到所涉及的 API 的数据治理。
  • 过多的数据暴露

    这种威胁通常被认为是通过开放接口或 API意外泄露机密信息。但是故意披露呢?

    在 Venmo 中,交易在设计上和默认情况下都是公开的——正如他们的标语所说:“快速、安全、支付。”这种开放策略导致了 2019 年的意外数据抓取问题,因为在不久的过去,有人抓取了 2 亿 Venmo 用户的隐私信息。此外,美国总统乔·拜登的 Venmo 账户也被发现。

    发现该漏洞的研究人员认为,“如果我是攻击者并且我有一个特定的目标,我可以从这些数据中收集到关于那个人的什么信息?对我有用吗?答案是肯定的。”

    数据泄露,无论有意与否,在被滥用时可能会引发国家安全问题。

    减少或消除数据暴露的两种方法是:

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

    注射

    这种恶意代码(不仅仅是 SQLi)会修改从一个程序发送到另一个程序的数据,并且经常被犯罪黑客用来访问私人数据。

    以下是一些防止注射的方法:

    1. 参数化查询
    2. 上下文感知安全性,可在时间线上查看所有 API 活动。
    3. 用质量认证和授权取代过时和不安全的认证方法。
    4. 全面的日志记录、监控和警 (缺少这些是OWASP 的 API 十大之一)。
    5. 有助于数据治理的数据分类——了解 API 以及通过它们传输的数据。

    还有什么可以做的?

    一个重要的重点不仅仅是简单地将不良行为者拒之门外,而是保持您的组织是一家可靠的公司的声誉,客户可以安全地与之开展业务。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年10月11日
    下一篇 2022年10月11日

    相关推荐