尽管全球经济形势趋于严峻,但API经济仍在继续增长。对于大多数行业来说,API促进了几乎所有应用程序或服务的即时交易,加快了商品和服务的交易速度。应用交付网络和业务解决方案提供商F5公司最近发布的一份报告以这种方式描述了API的快速增长:“如果说数据是新的石油,那么API将成为新的塑料。”
开放API(或公共API)提供了许多机会和竞争优势。企业可以利用开放API来重塑其供应和交付链。企业可以利用广泛的开发人员人才库和不断增长的软件资源库。此外,企业可以将其商业开发的API作为开放API发布。通过这样做,他们可以吸引新客户、提高品牌忠诚度,并提升他们的市场形象。
然而,开放API也带来了固有的风险和挑战,企业需要在开始这一旅程之前解决这些问题。
本文将为IT工程师、领导团队成员和网络安全专业人员提供对开放API生态系统的10种威胁的快照。
API经济:机遇与威胁
开放API提供了许多机会,其中包括改进企业与供应商、服务提供商和客户的联系和协作,最终这有助于改善客户体验。通过API端点连接的微服务使企业能够利用适合用途的技术,摆脱了使用繁琐的单一系统的束缚。从而提高了生产力。所有这些都将显著地降低应用程序开发、部署和维护的成本。
然而,从本质上说,开放API也吸引了网络犯罪分子的注意。由于API是交易性的,因此它们也容易受到意外或恶意泄露个人、财务和其他敏感信息的影响。未受保护的端点或未经验证的客户端请求可能会将API暴露给DDoS、SQL注入或勒索软件等潜在威胁。这些都会严重影响开放API的开发人员和消费者。
参与开放API生态系统需要对此做好周全的准备,而准备工作从威胁识别开始。
开放API(或任何API)的10个威胁
网络安全行业已投入大量资源来识别、分类和分级API攻击向量。基于这项研究,以下列出了开放API面临的10种值得注意的威胁。
(1)对象级入侵
API依赖于经常处理对象ID的端点。此类对象可以是任何资源,例如文件、数据库表或端口。糟糕的应用程序设计可能会利用随客户端请求发送的对象ID。
为了防止这种情况发生,API的代码在每次获取对象数据或对其进行任何操作时都必须执行对象级别的授权检查。此类检查确保发出请求的用户或应用程序具有执行此类功能的最低权限。具有最佳实践的传统实施使用最小权限原则和基于角色的访问控制来进行这些检查。
(2)用户身份验证漏洞
恶意行为者利用破坏用户身份验证的API来欺骗有效用户,获得对系统不同部分的未经授权的访问,并发动进一步的攻击。
使用强大的身份验证机制保护API端点对于防范这种威胁至关重要。用户身份验证通过要求客户端提供有效凭据(如用户名/密码组合或API访问密钥)来保护API。
(3)无意的数据暴露
糟糕的编码实践通常会在代码中暴露对象属性、数据或其他敏感信息。客户端应用程序必须在将结果返回给用户之前过滤掉这些信息。但是,此类数据(例如其他API的密钥、凭据或个人信息)可能会保留在代码中,并且当API代码托管在公共存储库上时,它们会在无意中对外泄露。
(4)分布式拒绝服务(DDoS)
如果没有对请求访问速率的限制,API端点很容易受到分布式拒绝服务(DDoS)攻击。此类攻击涉及恶意攻击者从多个来源(通常是受感染的系统)向API端点发起大量请求,使端点不堪重负,并使其脱机。而目前流行的开放API可能是此类攻击的常见目标。
速率限制将客户端请求的数量限制在给定时间内的特定最大值。在此期间收到的任何其他客户请求都将被拒绝。在通常情况下,API网关会执行这一限速任务。
(5)授权黑客
复杂的对象和功能访问控制策略有时可以具有多个层次结构、组、角色和权限。这种复杂的安全机制笨重且难以维护。开发人员或管理员有时可能会为用户或应用程序分配更高的权限以规避问题。这通常会导致黑客通过针对个人帐户或完全绕过访问控制中的缺陷来利用更高的权限。
(6)批量分配的弱点
这种威胁也称为自动绑定或对象注入漏洞。现代应用程序框架鼓励开发人员使用将客户端请求输入值链接到代码变量和其他内部对象的自动功能,以简化和加速开发。利用此框架带来的副作用,网络攻击者可以更改或覆盖开发人员从未打算公开的关键对象的属性。
(7)安全错误配置缺陷
安全错误配置的示例包括不安全的默认设置、不充分或未跟踪的配置更改、不安全的存储、错误配置的HTTP标头、允许的跨域资源共享(CORS)以及包含敏感信息的详细错误消息。而部署和配置支持开放API运行的基础设施资源需要特别注意安全性。
(8)代码注入漏洞
代码注入涉及恶意玩家利用糟糕的输入验证在API请求中嵌入SQL或其他命令。当不能很好地防范此类攻击的API代码运行时,这些命令可能会暴露敏感数据、执行数据修改或删除,或促进进一步的渗透。
(9)资产管理不善
由于API比传统的Web应用程序暴露更多的端点,维护不当的文档、接口描述、版本控制或资产列表可能导致忽略重要的攻击面,并带来不安全因素。
(10)记录和监控不足
日志记录和监控不足导致未报告关键安全事件,也未发送主动警告。此外,缺失或有缺陷的事件响应过程允许网络攻击者继续其活动而不被注意。许多数据违规事件表明,监管不力导致数据泄露违规行为在发生200多天之后才被发现。
应对开放API威胁
为了应对以上讨论的威胁和漏洞,有必要在API的设计和开发阶段采用安全最佳实践。以下是一些需要考虑的基本安全控制措施:
- 监控软件供应链和分析软件组成可以识别易受网络攻击的组件,例如不安全的第三方库。
- 静态应用程序安全测试(SAST)审查应用程序代码,并可以识别漏洞。
- 动态应用程序安全测试(DAST)在应用程序代码运行时模拟对它的攻击,从而发现可能的弱点。
- 安全事件和事件管理(SIEM)解决方案可以扫描应用程序日志以发现可能的违规、可疑活动、趋势或异常。
- 安全编排、自动化和响应(SOAR)解决方案通过在检测到安全异常或威胁时执行运行手册中的补救步骤,并进一步发展。
- 强大的身份验证机制允许验证API用户。同样,强大的授权机制使用户能够只执行允许执行的特定操作。
- 使用对称密钥加密数据,并使用SSL/TLS证书保护API端点,确保数据在静态时和传输中受到保护。
- 经过测试的强大灾难恢复计划可确保API得到修复并快速恢复在线,即使API已被破坏。
此外,API网关还可以通过向其托管的API提供服务发现、路由、负载均衡、高可用性和可观察性服务,极大地增强API的安全性和稳定性。它允许企业使用SSL/TLS轻松保护所有通信通道,实施速率限制以防止DDoS攻击,并限制客户端请求有效负载和API响应大小。API网关还可以与Web应用程序防火墙(WAF)一起使用,以提供额外的安全层。
结论
正如人们所见,企业可以通过使用开放API构建强大的应用程序来参与API经济。但是,开放API并非没有威胁。以上简要介绍了10种安全威胁以及应对措施。API网关可以促进其中的一些措施,并提供高级管理功能。