应用程序编程接口 (API) 是一个计算接口,定义并支持不同软件之间的互动。许多日常任务的处理都离不开 API,包括在社交平台上分享媒体,处理在线支付,以及汇总网站分析数据。通过云计算,企业可以借助 API,更轻松地部署全球基础设施。
今天,大多数软件都使用 API,或者本身就是 API——过去 4-5 年中,API 呈指数级增长。例如,2016 年,API 开发协作平台 Postman 上的 API 文件夹数量才不到 50 万个,到 2021 年已激增至将近 3500 万个。
尽管 API 迅速普及,相关的安全措施却很滞后。现在,随着闸门越开越大,各大漏洞已经开始显现。由于 API 爆炸性增长,但安全开发工作滞后,据 Gartner 预测,API 将成为史上最大的安全漏洞。
API 增长的主要驱动力之一是微服务增多,在 2013 年开始流行。微服务架构开发小型的独立应用程序,使用 API 相互通信。这样,复杂的任务分解成多个较小的部分,每个部分均独立开发和维护。
2018 年全球微服务架构市场价值 20.7 亿美元,预计 2026 年将达到 80.7 亿美元(2019-2026 年复合年增长率达 18.6%)。由于灵活性高、开发周期更短、可扩展性强,现已广泛采用微服务。
例如,为了跟上需求,Netflix 将庞大 的中心化数据中心改成了基于云的微服务架构。最终让开发人员获得了巨大自由,可以不断改善客户体验,例如有能力为特定的地理区域定制内容。
引导我们进入 API 优先世界的趋势也提示我们漏洞在哪里。API 无处不在,API 增长趋势继续扩大。因此这也是风险。
广泛开展 API 相关开发和活动并不意味着应用程序的安全。根据 Gartner,90% 的 Web 应用程序在暴露的 API 中比在用户界面 (UI) 中的攻击面更大。Gartner 还预测,2022 年,不常发生的 API 滥用成为最常使用的攻击手段。
API 漏洞可见于各个区域,例如在端点(设备、服务器、虚拟环境等)、数据暴露、拒绝服务 (DoS)、授权缺陷、安全系统错误配置等区域。鉴于任何特定组织中由数千 API 支持的资产所涉及的攻击面巨大,API 漏洞可以对企业产生极其广泛的影响。
例如数据损毁、资金被盗、生产力受损、知识产权盗窃、个人和财务数据盗窃、欺诈、企业运营中断以及恢复和/或删除受损数据和系统的费用。因 API 漏洞而声誉损害也会导致信任丧失,这在任何严重的安全事件中都很常见。
虽然配备了强大的安全措施,但仍然遭遇了 API 攻击,这种引人注目的案例通常已经成为头条新闻。例如,通过攻击 Facebook 网站上的“View As”功能中的一个漏洞,Facebook 有 5000 万个账户遭到暴露。因此,黑客可以在 Facebook 创建了由 API 支持的视频上传功能后,窃取账户访问令牌。
Uber 也遭到了攻击,因为用户在 API 请求中的通用唯一标识符 (UUID) 导致 API 响应中的令牌泄露,而该令牌可用于劫持账户。攻击者随后能够追踪受害者的位置,甚至偷偷乘车。
Facebook 和 Uber 的案例说明了所谓的“破坏用户身份验证”的 API 攻击是什么意思。当身份验证实施有误时,可以导致身份验证令牌泄漏和窃取用户身份的其他缺陷。
由于疫情,居家办公室的情况增多,大量使用住宅 IP 地址,区分恶意的 API 调用与合法的 API 调用变得更加关键。凭据填充或垃圾邮件僵尸网络攻击可能使用多达 10,000 个不同的 IP,包括遭到攻击的服务器、工作站、甚至 IoT 设备。
由于 API 暴露了应用程序逻辑和个人可识别信息 (PII) 等敏感数据,因此它们对组织的基础设施和安全策略至关重要。但许多传统的 Web 应用程序安全策略都依赖“消极安全”模式,可能无法阻止大多数 API 威胁。
在“消极安全”模式中,每个请求只要不在已知或可疑威胁的阻止列表上,都允许通过 Web 应用程序防火墙 (WAF)。这种模式可能会产生误报,即阻止合法的 API 调用,也可能无法发现一些更具针对性的攻击。但 WAF 确实可以在 API 安全方面发挥重要作用。例如,通过几个阶段的模式验证(例如端点、方法和参数)的身份验证流量仍然可能携带 SQL 攻击,WAF 则可以发现它们。此外,有些 API 不适合 TLS,或带来模式验证挑战。如果模式没有及时更新,或如果 API 是一些片段,难以整合成一个单一的模式,WAF 则可帮助填补漏洞。
也就是说,如果仅仅依靠以阻止列表为中心的 WAF 来构建 API 安全策略,组织容易受到攻击。API 威胁缓解可以通过“积极安全”模式来规避这些风险,例如使用 API Shield——只允许已知的行为,识别并拒绝其他一切行为。
要构建积极模式,第一步是部署强大的身份验证,即不易重复使用或共享密码的身份验证,例如 TLS 或 OAuth。管理权限和证书共享会很费时间,所以开发人员应该优先考虑能尽可能简化允许列表过程的工具。
当然,从一个设备中提取证书,并在其他地方重复使用并非不可能。开发人员还需要一种方法来验证 API 调用本身。模式验证会将 API 请求的内容(URL 后面的查询参数和 POST 正文的内容)与包含用来规定预期内容的规则的协定或“模式”进行匹配。如果验证失败,则阻止 API 调用,以保护源站免受无效请求或恶意有效负载的侵害。
虽然通过身份验证/授权和 API 调用验证构建积极安全模式非常重要,但额外的安全措施也有必要。例如,API 仍然容易遭遇容量耗尽攻击、暴力破解密码尝试和凭据填充。因此,DDoS 缓解和速率限制仍然是企业整体安全态势中的必要工具。
在现有安全工具中增加新的安全工具(例如 DDoS 缓解和速率限制)会带来挑战。当 API 调用通过许多不同的工具时,要监控和记录它们就变得更加麻烦了。此外,通过地理上分散的数据中心的不同工具输送流量,会增加延迟并减缓应用程序的速度。
因此,API 安全的最佳构建方式是,将多种安全功能集成到一个更大的边缘网络中,从而带来以下优势:
韧性:如果有多个边缘网络位置可以托管 API 安全工具,那么孤立的中断带来的风险较小。
降低延迟:如果有多个 API 安全工具在同一边缘网络位置运行,流量就不必在不同位置之间来回横跳。
威胁情报:如果边缘网络的覆盖面足够大,那就可以分析大量 API 的攻击 情况,并利用这些情报更好地保护其他 API。
更容易记录:使用一个通过单一管理平台运行的单一网络,为开发人员提供一个唯一的真实来源。
Cloudflare 专为现代企业架构而构建,通过使用强大的客户端证书身份和严格的模式验证,使保护 API 变得简单。这是一个智能且可扩展的解决方案,可保护您的关键业务 Web 应用程序免受恶意攻击,而且无需更改现有基础设施。
Cloudflare 就影响当今技术决策者的最新趋势和主题发布了系列文章,本文为其一。
阅读本文后,您将能够了解:
API 使用的增长速度
攻击面区域如何随 API 的增长而扩大。
制约这一风险的策略
集成平台的优势