管理API安全风险的10大方法


无论API是从无到有还是从第三方来源集成,确保其安全都需要有组织的、积极的端到端可视性。API在软件交付生命周期中占有重要地位,其安全性取决于CI/CD工作流程对API开发的最佳实践的遵循程度。

1.API发现
一个好的API发现解决方案可以确保彻底了解API端点、参数、属性和使用的API协议(包括gRPC、GraphQL、SOAP和REST)的解释,以及发现任何第三方API配置。它还应该发现任何API的变化和版本更新,同时也发现应用程序的使用模式。

随着API的变化和新版本的开发,很容易错过未跟踪的更新和未记录的参数,这些都可能成为攻击者的进入点。根据Forrester Research的首席分析师Sandy Carielli的说法,"公司不知道他们的API库存的程度,以及这些应用接口是否安全"。这就是为什么API发现是确保适当的API资产管理的最佳做法。API发现让你对API攻击面有一个广泛的了解,没有盲点,并能持续更新库存。


2.API风险检测和补救
一个好的API管理框架应该能够检测和补救你的API威胁,以防止其升级。你必须首先了解敏感数据暴露的程度,以及受影响的API端点和政策违反的风险等级。此外,它应该利用这些先验知识来识别、优先处理所发现的API安全和合规风险。
你的API的安全态势主要由你能够根据威胁的严重程度来管理威胁的效率和速度决定。

3.API运行时的维护
在运行时,由于攻击者试图在不同的端点渗透到应用程序中,因此API安全面临着风险。一个好的API安全解决方案通过检测和防止攻击,以及保护敏感数据不被渗出,来确保运行时的API保护。它还可以标记任何异常情况,跟踪最近添加或删除的API,并监控API漂移。

4.所有请求和响应的数据加密
数据加密是将人类可读的纯文本转换为另一种形式的过程,如编码文本或密码文本。加密的数据只能用加密密钥来访问,而解密的数据则用解密密钥来访问。在API中,请求和响应的加密确保用户和API服务器之间传输的任何数据受到保护,免受攻击。它保证,如果数据在任何时候被截获,对攻击者都没有用处,因为攻击者不会有加密密钥。

5.实施API网关
API网关是一种软件模式,它将客户与一组后端服务连接起来。它接受来自客户的所有API请求,并将它们路由到相关的微服务。在安全方面,API网关作为守门人运作,检查你的身份(认证)和你是否有进入的权限(授权)。这样一来,API网关就提供了一个额外的安全和控制层。它们还使用其服务配置中指定的认证方法来验证传入的请求,然后再将其传送到API后端。

6.使用OAuth和OpenID连接
认证和授权的访问控制是API安全管理的一个关键部分。开放认证(OAuth)与OpenID Connect合作,使认证和授权标准化。OAuth是一种开放标准的授权机制,它使用令牌来允许第三方网站或应用程序从另一个系统获取信息,而不暴露用户的凭证。OpenID Connect是一个建立在OAuth协议之上的简单覆盖,允许客户端验证终端用户身份并获得个人资料信息。

7.识别漏洞
确保API安全的一个主要方法是了解API生命周期的哪些阶段可能被利用,从而破坏系统,并由于不安全因素而暴露敏感数据。通过执行常规测试和审查,特别是在早期开发阶段和新代码更新时,可以发现API的漏洞。渗透测试也可以确保API的安全性。

8.使用配额和节流
API是DDoS攻击的主要目标,因为它们用来自多个来源的请求淹没API服务器。这最终会使系统的整体性能下降而无法运行。节流和API配额是我们可以用来管理API使用的工具,它们限制了用户在一定时间内的API调用数量。

对于节流,我们使用一个节流计数器,当传入的客户端请求满足一定的条件时,该计数器会增加。API配额决定了根据节流设置,在设定的时间内可以进行的最大调用数量。如果达到API配额,来自该特定客户端的流量将被禁止。

9.验证API参数
在验证API参数时,来自API请求和响应的数据要与精确的模式结构进行比较。这保证了与API集成的系统或应用程序是安全的,并且只有授权的输入和数据被共享。它可以表明具体请求的资源的成功或失败。它还可以防止信息过度共享,因为这可能会暴露敏感数据而被利用。

10.建立威胁模型
这是对潜在的API安全漏洞进行系统化表述的过程,包括如何以及何时可以缓解这些漏洞。开发威胁模型的关键步骤包括定义安全标准、识别可能的风险、评估威胁、减轻威胁和确认减轻威胁。威胁模型有助于描述API攻击,这使得风险管理决策更加明智。