人们越来越依赖Web API。2023 年 Postman API 状况报告发现,整整 92% 的组织计划在明年增加对 API 的投资。API 正在为从内部微服务策略到合作伙伴策略和成熟产品的一切提供动力。
然而,这种新发现的API 蔓延带来了后果;迫在眉睫的威胁可能会从坟墓中升起来困扰你……
当然,我说的是僵尸 API。僵尸 API 是不再维护但仍处于活动状态的端点。它们可能是未使用的端点、从未正式弃用的旧功能或被遗忘的开发或测试环境。无论如何,僵尸 API 是一种技术债务,如果任其腐烂,可能会构成合理的威胁。
API 的突然增长,加上不成熟的库存管理和内部沟通的缺乏,可能会导致创建无数的影子端点。下面,我将回顾僵尸 API 可能导致的一些问题,并考虑 DevOps 团队可以采取的一些可行步骤来防止这些问题。
了解僵尸API风险
忘记 API 可能会导致许多问题。例如,假设一个不安全的测试环境意外地暴露在公众面前。使用自动端点扫描的攻击者可以找到可利用的身份验证和授权漏洞,从而可能泄露敏感数据。
鉴于每天都有新的漏洞和漏洞涌入,让任何一项技术得不到维护也是一个坏主意。API 的互联特性强调了这一点,API 可以插入庞大的数据库网络,并允许后端基础设施具有读写权限。
不安全的 API 可能会给企业带来经济损失和声誉损害。想想近年来发生的大量与 API 相关的数据泄露事件,这些事件发生在 Optus、Dropbox、Twitter 和 Zendesk 等公司。据估计,到 2022 年,由于 Web API 的泄露,损失将达到120 亿至 230 亿美元。
僵尸 API 很容易成为此类网络攻击的目标,因为它们往往具有不安全的设计,更容易被破解。他们还倾向于使用不成熟的监控系统,这意味着黑客可以比积极使用的端点更容易在雷达下行动。
避免僵尸API的技巧
>> 保持 API 的活跃库存
正如他们所说,你无法确保你不了解的东西。事实上,OWASP 将不当的库存管理列为十大API 安全风险之一。因此,适当的库存管理是避免僵尸 API 的良好第一步。扫描您的服务组合以查找被遗忘的端点,对其进行编目并定期更新目录。
彻底记录您的服务以帮助内部发现也是一个很好的做法。如果可能的话,采用规范优先的实践还可以确保文档和实现基于单一事实来源,从而避免版本不匹配和文档漂移。
FireTail 首席执行官 Jeremy Snyder 表示:“防止僵尸 API 的关键是可见性。” “许多组织缺乏在生产或登台环境中运行的所有 API 的持续、最新的清单。”
>> 使用正确的版本控制和生命周期策略
减少僵尸 API 机会的另一种方法是采用成熟的 API 生命周期管理实践。所选择的API 版本控制策略应明确定义和编码。并且版本控制变更应该清楚地传达给所有利益相关者。
在这一点上,从一开始就计划好日落、退役和弃用策略同样重要。然后,当已弃用的服务达到其生命周期时将其删除!这不是一项光鲜亮丽的任务,但应该将其纳入某人的任务中。
“良好的网络卫生是一项经常被忽视的策略,”斯奈德解释道。“第二个要求是制定有关版本控制的政策以及在任何给定时刻可以存在多少个 API 版本。例如,该策略可能规定只能存在最新版本或最新版本加上先前版本。然而,这依赖于可见性以保持合规性。”
正确生命周期管理的其他领域包括围绕开发和部署进行治理,以及在持续部署 (CI/CD) 管道中利用自动化测试。这两者都可以帮助制定政策和安全要求,这也应该可以增强 API 的安全性。
>> 分享内部和第三方服务的知识
部落知识是 DevOps 文化的对立面。因此,消除孤岛并共享 API 支持的服务的内部知识以限制恶意端点的传播是一种很好的做法。这可以通过专用网络存储库甚至内部邮递员集合或工作区来完成。
“组织协调和沟通等内部流程至关重要,”斯奈德补充道。“如果团队不互相告知正在开发并投入生产的新 API,安全团队就无法评估或审核它们。相反,如果应用程序团队不了解旨在涵盖各种 API 安全方面的网络基础设施资源,那么开发人员就不知道需要将哪些安全控制纳入 API 代码中。”
需要可见性才能避免僵尸API
最近的一项 CISO 调查显示,API 安全性是 CISO 最关心的问题。由于多种原因,Web API 对于攻击者来说仍然是轻而易举的事情。今年早些时候 Salt Labs 记录的恶意 API 攻击流量激增 400%就凸显了这一点。
我们还了解到,许多此类攻击都是通过经过身份验证的 API 发生的。这表明需要更大的责任和可见性来开始遏制 API 相关安全事件的浪潮。
Snyder 表示,为了达到足够的可见性,领导者应该考虑采用工具来帮助确定是否存在过时的 API 或具有多个实时版本的 API。“如果没有提供必要的代码或模块来直接保护 API,这些工具应该有助于显示实时 API 的安全性,并提供有关如何修复它们的建议。”
标签:...,版本控制,僵尸,API,版本,端点,内部 From: https://blog.51cto.com/u_15605878/7399019