随着企业使用的API数量不断增加,保护这些代码位比以往任何时候都更加重要,它们使软件能够通信。为此,团队必须审查API的使用和安全控制,这可以使用API安全成熟度模型来完成。
安全从业人员同时也是《捍卫API》一书的作者Colin Domoney称:“企业有很多API。规模适中的企业可能有十几个应用程序,但他们可能有数百个API。这是一个规模问题。”
开发人员可以轻松创建新的API,但他们并不总是将安全性作为该过程的一部分,或者他们错误地部署安全性。这可能会导致身份验证、授权和数据泄露问题。Domoney表示,授权仍然是最困难的挑战;确定用户是否拥有访问权限更难解决。
安全成熟度模型使企业能够评估其当前的API安全保护和漏洞,以确定他们可以改进的地方。近年来,易受攻击的API导致了多个引人注目的漏洞,包括2023年影响3700万客户的T-Mobile漏洞和2022年的Optus漏洞。
在《捍卫API》中,Domoney涵盖了API安全基础知识、常见的API漏洞以及攻击和捍卫API的方法。他还详细介绍了他在API安全供应商42Crunch工作时创建的API安全成熟度模型。
使用成熟度模型的重要部分是盘点所有正在使用的API,并确定其风险水平。例如,酒店预订网站应该最关注DoS攻击。
有关如何使用以下42Crunch API安全成熟度模型的更多信息,请阅读下面《捍卫API》第13章的摘录。
42Crunch成熟度模型
在我担任42Crunch的技术布道者时,我制定了六域API安全成熟度模型,事实证明,该模型在确定他们当前的安全态势和更安全态势的路线图方面受到欢迎。
该成熟度模型的特点是每个领域都有一组活动,根据成熟度的不同,这些活动可能有所不同。在这次讨论中,我们将把成熟度水平分为最低水平、新兴水平或既定水平。
清单
最新和准确的清单是关键,以对暴露的风险和攻击表面保持可视性
“你不能保护你看不到的东西”这句格言完全适用于API安全。随着API在业务需求的推动下呈指数级增长,安全团队越来越难以保持可视性,特别是对于存在哪些API以及它们带来的风险。
下面三个要素是关键:
- 新的API如何被引入企业以及如何跟踪
- 通过检查源代码存储库来发现隐藏的API,以盘点API
- API的运行时发现(通过网络流量检查等)
在最低成熟度水平上,只有基本库存(通常被认为是对业务至关重要的API)通过电子表格或手动跟踪来维护。没有对影子/僵尸API的管理。
在新兴成熟度水平上,通过API管理或集中式平台来维护库存。标准流程用于新的API开发。为了达到既定成熟度水平,通过集中式平台积极跟踪库存,并弃用和升级阴影和僵尸API。
设计
在设计阶段解决安全问题比在生命周期后期解决安全问题更具成本效益,左移方法是关键。
全面的API设计实践是可用、可扩展、文档化和安全的API的基础。以下是安全API设计的一些关键要素:
- 认证方法
- 授权模型和访问控制
- 数据隐私要求
- 数据曝光(明确/最少内容/适合目的)要求
- 合规要求
- 帐户重置机制
- 使用和滥用案例
- 密钥和令牌问题以及撤销方法
- 速率限制和配额执行
此外,API设计团队应进行威胁建模练习,以了解他们的威胁环境和攻击表面。
在最低成熟度级别,没有正式的API设计流程;相反,使用代码优先方法。通常不会预先考虑安全问题、威胁、合规性和数据隐私。
在新兴成熟度水平上,API是使用基于OAS定义的设计优先方法而开发。安全问题在临时的基础上得到解决,没有标准流程。对于既定成熟度水平,安全性是API设计的一流元素,包括威胁建模等标准模式/实践。
开发
这个重要阶段是发挥实际作用的阶段,开发人员应确保他们遵循安全最佳实践,以避免在API中引入漏洞。
安全API的关键要素是开发过程,在实时API中实现规范。这里的关键考虑因素如下:
- 语言、库和框架的选择
- 正确配置框架,以确保遵循安全最佳实践
- 防御性编码—不要相信用户输入,并处理所有意外故障
- 使用身份验证和授权执行的中心点——避免“面条式代码”
- 像攻击者一样思考!
在最低成熟度级别,开发人员基本上不知道API开发或一般安全代码方法中的安全问题。
在新兴成熟度水平上,开发人员熟悉安全考虑因素,并使用安全编码实践,尽管是散乱的。为了达到既定成熟度,开发人员完全精通安全代码和API安全主题,并主动寻求使用最佳实践和防御性编码。
测试
如果没有充分的API安全测试,企业就会面临部署不安全的API的风险,企业应该尽早测试,经常测试,到处测试。
API安全测试对于确保API在部署前被验证为安全至关重要。安全测试应紧密集成到CI/CD流程中,并应避免任何手动工作。如果出现故障,测试应该能够“重建”。应测试以下方面:
- 身份验证和越权访问
- 过度的数据或信息暴露
- 正确处理无效请求数据
- 验证成功和失败的响应代码
- 实施速率限制和配额
- 从所需的目标状态(所谓的配置漂移)更改生产环境中的配置
在最低成熟度级别,没有特定的API安全测试,只有功能测试。
在新兴成熟度水平上,API安全测试主要使用手动测试,缺乏自动化和CI/CD集成。为了达到既定成熟度,API安全测试被紧密集成到SDLC的所有阶段,故障可能会阻止发布。
保护
深度防御方法是降低风险的基础,无论你的API设计得有多好,它们仍然会受到顽固和熟练的对手的攻击。
尽管在SDLC的前几个阶段尽了最大努力,但API仍将受到攻击,应通过专用的API保护机制进行保护。
API保护应包括以下内容:
- JWT验证
- 安全的运输选项
- 暴力保护
- 无效路径或操作访问
- 拒绝无效请求数据
- 过滤响应数据
保护日志应被摄取到标准的SIEM/SOC平台中,以确保API安全操作的可见性。
在最低成熟度级别,没有实现特定的API运行时保护;标准防火墙或WAF是唯一的保护。
在新兴成熟度水平上,可提供一些保护,通常使用API网关来提供速率限制、令牌验证等的基本执行。为了达到既定成熟度水平,实施专用的API防火墙,以便在API事务级别提供本地化保护。
治理
信任但验证,对于确保API开发遵守组织方法,强大的治理流程至关重要。
API安全的最后一个领域是整体治理流程,它确保API根据组织的流程进行设计、开发、测试和保护。
治理涵盖以下原则:
- 确保API的一致性,即它们使用标准模式进行身份验证和授权
- 遵循标准流程,包括测试和修复要求,以开发新的和更新的API
- 满足数据隐私和合规性要求
- 在生命周期结束时对API进行观察,以消除不安全的僵尸API
- 利益相关者参与API特定安全主题
- 根据新出现的威胁更新API
- API开发在很大程度上是未被管理的,每个业务部门都使用自己的流程,没有中央管理
在最低成熟度水平上,治理只满足合规和监管要求的基本要求。
在新兴成熟度水平上,治理是积极主动的,API被开发成一个标准流程。对于既定成熟度水平,企业会跟踪偏差,并解决差异。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
翻译
相关推荐
-
10款API安全测试工具帮助降低风险
API是现代应用程序架构的核心。然而,由于其重要性以及提供数据和资源访问的能力,它们经常成为攻击者的目标。 A […]
-
如何防止DDoS攻击
分布式拒绝服务(DDoS)攻击,尽管广为人知,但仍然是恶意行为者用来对企业造成财务和声誉损害的常见的方法。 然 […]
-
CrowdStrike:内容验证漏洞导致全球中断
CrowdStrike周三表示,该网络安全供应商内容验证系统中的漏洞是导致上周五全球中断的的原因。 上周五,C […]
-
微软在7月的周二补丁日修复2个零日漏洞
微软在7月周二补丁日中修复了142个漏洞,包括两个正在被积极利用的零日漏洞。 零日漏洞包括CVE-2024-3 […]