- API攻防:Web API安全指南
- (美)科里·鲍尔
- 1922字
- 2024-12-11 17:08:57
序
设想一下,如果想给朋友转账,不仅仅是打开一个应用程序后单击几下屏幕那么简单。又或者说,如果我们要查看每日步数、运动数据和营养信息,需要分别打开3个不同的应用程序。再比如说,如果要比较飞机票价,需要访问不同航空公司的网站。
当然,构想这样一个世界并非难事,毕竟我们不久前尚处于其中。然而,应用程序接口(API)的出现彻底改变了这一切。API就像一种黏合剂,促进了不同企业间的协作,彻底改变了企业构建和运行应用程序的方式。事实上,API已变得无处不在。根据2018年10月Akamai发布的一份报告,API请求已占所有应用请求的83%。
然而,正如互联网上的许多事物一样,一旦有好东西出现,便会立即吸引犯罪分子的注意。对这些犯罪分子来说,API是一片肥沃且有利可图的土地,其原因不言自明。API具备两个极为诱人的特点:其一,API是敏感信息的丰富来源;其二,API频繁暴露出安全漏洞。
让我们思考一下API在典型应用架构中扮演的角色。当你在手机应用程序上查询银行卡余额时,后台的一个API会请求这些信息,并将这些信息发送到应用程序上。同样,当你申请贷款时,API允许银行请求你的信用记录。API处于用户和后端敏感系统之间的关键位置。一旦犯罪分子能够破坏API,他们就可能直接获取极具价值的信息。
尽管API的普及程度达到了前所未有的水平,但其安全性却远远落后。在与一家有着百年历史的能源公司首席信息安全官的交流中,我惊讶地发现该公司在其组织内部广泛使用了API。然而,他迅速补充说到:“每当我们深入研究时,不难发现这些API往往被赋予了过大的权限。”
此现象并不罕见。开发者们持续承受着巨大的压力,他们需要修复漏洞、向消费者发布新版本,并为服务添加新功能。他们不得不夜以继日地进行构建和提交工作,而不是每隔数月才发布一次。实际上,他们并没有充足的时间去考虑每一个改变所带来的安全影响,因此,一些未被发现的漏洞可能会隐藏在产品之中。
不幸的是,如果不对API实施安全措施,那么会导致不可预见的后果。以美国邮政服务(USPS)为例,该机构推出了一个名为Informed Visibility的API,旨在允许组织和用户追踪包裹。该API规定用户必须经过身份验证和认证程序,才能通过该API获取所需信息。然而,由于该机构未对API使用权限进行限制,因此,一旦用户通过了认证,他们就可以查看其他用户的账户信息,这导致了超过6000万用户信息的泄露。
健身公司Peloton也通过API为其应用程序(甚至其设备)提供支持。然而,由于该公司的一个API在执行调用并从Peloton服务器接收响应的过程中无须进行身份验证,这导致了请求者可以查看大约400万台Peloton设备的账户信息,包括可能敏感的个人信息。
再举一个例子,电子支付公司Venmo借助API技术推动其应用程序的运行,并实现与金融机构的连接。该公司的一个API通过展示近期的匿名交易信息来实现营销功能。尽管用户界面会过滤掉所有敏感信息,但当API被直接调用时,它会返回全部交易细节。不幸的是,有一个恶意用户通过这个API收集了约两亿笔交易数据。
此类安全事件已变得极为普遍。Gartner预测,到2022年,API攻击将成为“最常见的攻击手段”。同时,IBM的报告也指出,三分之二的云安全漏洞是API配置不当造成的。这些安全漏洞也凸显了推出保护API的新方法的必要性。过去的应用程序安全解决方案只关注最常见的攻击类型和漏洞。例如,自动化扫描器会在通用漏洞和曝光(CVE)数据库中寻找IT系统的缺陷,而Web应用程序防火墙则会实时监控流量,以拦截包含已知漏洞的恶意请求。这些工具对于识别传统威胁极为有效,但它们未能解决API面临的核心安全问题。
API漏洞并不常见。API漏洞不仅在不同API之间存在显著差异,而且与在传统应用程序中发现的漏洞也迥然不同。USPS的漏洞并不是一个安全配置错误,而是一个业务逻辑错误。也就是说,应用程序逻辑中存在一个未被预料到的漏洞,使得经过认证的有效用户能够访问其他用户的数据。这种缺陷被称为对象级授权缺陷,其成因在于应用程序逻辑未能妥善控制授权用户能够访问的数据范围。
简而言之,这些独特的API漏洞实际上构成了零日漏洞,每个漏洞只属于特定的API。考虑到这些漏洞的广泛性,本书对培养渗透测试人员以及对维护API安全有兴趣的漏洞赏金猎人来说至关重要。此外,随着安全工程和开发流程的“左移”,API安全已不再局限于公司信息安全部门的职责范畴。本书可作为现代IT工程团队的实用指南,将安全测试、功能测试和单元测试融合到一起。
如果执行得当,API的安全测试计划应该是持续且全面的。偶尔进行的安全测试无法跟上新版本快速迭代的步伐。相反,安全测试应该成为开发周期的一部分,确保每个版本在进入生产环境之前都经过审计,并且覆盖API的全部功能范围。发现API漏洞需要新的技能、新的工具和新的方法。现在,我们比以往更迫切需要《API攻防:Web API安全指南》这本书。
达恩·巴拉奥纳(Dan Barahona)
APIsec公司首席战略官
美国加利福尼亚州旧金山市