尽管全球经济形势严峻,API经济仍在继续增长。对于大多数行业,API促进了几乎所有应用程序或服务的即时交易,加快了商品和服务的交易。应用程序交付网络和业务解决方案提供商F5最近的一份报告这样描述API的快速增长:“如果数据是新石油,API将是新塑料。”开放API(或公共API)提供了许多机会和竞争优势。企业可以利用开放的API来重塑他们的供应链和交付链。企业可以利用广泛的开发人员人才库和不断增长的软件资源库。此外,企业可以将其商业开发的API发布为开放API。通过这样做,他们可以吸引新客户,提高品牌忠诚度,并提升他们的市场形象。然而,开放API也伴随着企业在开始这一旅程之前需要解决的固有风险和挑战。本文将为IT工程师、领导团队成员和网络安全专业人士简要介绍开放API生态系统面临的10大威胁。API经济:机遇与威胁开放API提供了许多机会,包括改善企业与供应商、服务提供商和客户的联系和协作方式,最终有助于改善客户体验。通过API端点连接的微服务使企业能够利用适合用途的技术并摆脱繁琐的单体系统。从而提高生产力。所有这些都将显着降低应用程序开发、部署和维护的成本。然而,就其本质而言,开放API也会吸引网络犯罪分子的注意。由于API是事务性的,因此它们也容易受到意外或恶意泄露个人、财务和其他敏感信息的影响。未受保护的端点或未经身份验证的客户端请求会使API暴露于潜在威胁,例如DDoS、SQL注入或勒索软件。这些会严重影响开放API的开发人员和消费者。参与开放的API生态系统需要充分的准备,而准备从威胁识别开始。10对开放API(或任何API)的威胁网络安全行业投入了大量资源来识别、分类和分级API攻击向量。基于这项研究,这里列出了10个针对开放API的显着威胁。(1)对象级入侵API依赖于经常处理对象ID的端点。此类对象可以是任何资源,例如文件、数据库表或端口。糟糕的应用程序设计可以利用随客户端请求发送的对象ID。为防止这种情况发生,API的代码必须在每次获取对象数据或对其执行任何操作时执行对象级授权检查。此类检查可确保发出请求的用户或应用程序具有执行此类功能的最低权限。具有最佳实践的传统实现使用最小权限原则和基于角色的访问控制来进行这些检查。(2)用户身份验证漏洞恶意行为者利用破坏用户身份验证的API来欺骗合法用户,获得对系统不同部分的未授权访问,并发起进一步的攻击。使用强大的身份验证机制保护API端点对于抵御这种威胁至关重要。用户身份验证通过要求客户端提供有效凭证(例如用户名/密码组合或API访问密钥)来保护API。(3)无意的数据暴露糟糕的编码实践通常会在代码中暴露对象属性、数据或其他敏感信息。客户端应用程序必须在将结果返回给用户之前过滤掉这些信息。但是,此类数据(例如其他API的密钥、凭据或个人信息)可能会保留在代码中,并且当API代码托管在公共存储库中时,它们可能会无意中暴露在外部。(4)分布式拒绝服务(DDoS)如果没有限制请求访问速率,API端点容易受到分布式拒绝服务(DDoS)攻击。此类攻击涉及恶意行为者使用来自多个来源(通常是受感染的系统)的请求淹没API端点,使端点不堪重负并使其脱机。当今流行的开放API可能是此类攻击的常见目标。速率限制将客户端请求的数量限制在给定时间的某个最大值。在此期间收到的任何其他客户请求都将被拒绝。正常情况下,API网关会执行这个限速任务。(5)AuthorizedHackers复杂的对象和函数访问控制策略有时可以有多个层次结构、组、角色和权限。如此复杂的安全机制既麻烦又难以维护。开发人员或管理员有时可能会为用户或应用程序分配更高的权限以规避问题。这通常会导致黑客通过针对个人帐户或完全绕过访问控制中的缺陷来利用提升的特权。(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网关可以促进其中一些措施并提供高级管理功能。
