标准安全测试为何漏掉大多数Web API漏洞?专家解析被忽视的攻击向量

API安全专家Corey J Ball指出,标准Web应用安全测试方法无法有效检测API漏洞,导致大量安全风险被忽视。本文深入探讨API特有的安全挑战、攻击案例及防护建议,帮助开发者和安全人员应对这一日益重要的攻击向量。

‘大多数Web API漏洞都被标准安全测试遗漏’——Corey J Ball谈如何保护被忽视的攻击向量

Ben Dickson
2023年2月20日 13:58 UTC
更新:2023年2月22日 11:20 UTC


API安全:渗透测试的“绝佳入口”

专访领域专家Corey J Ball指出,保护Web API需要采用与传统Web应用安全不同的方法,因为标准测试经常会漏掉最常见的漏洞。

这位API安全专家警告说,未针对Web API进行校准的方法可能导致渗透测试人员得出假阴性结果。

Ball在2015年通过黑客书籍、HackTheBox和VulnHub学习Web应用渗透测试技术后,通过在运行Cold Fusion、WordPress、Apache Tomcat和其他企业级Web应用的计算机上进一步磨练了自己的技能。

他随后获得了CEH、CISSP和OSCP证书,最终获得机会在会计师事务所Moss Adams帮助领导渗透测试服务,目前仍在该公司担任首席Web应用渗透测试员。

最近,Ball更加专注于Web API安全这一服务不足的领域,推出了关于该主题的免费在线课程,并出版了《Hacking APIs: Breaking Web Application Programming Interfaces》(No Starch Press, 2022)。

在接受The Daily Swig采访时,Ball解释了Web API的日益普及如何要求我们改变保护应用程序的视角。


诱人的攻击向量

过去几年,Web API在各个行业的应用加速。2018年,Akamai报告称API调用占Web流量的83%。

Ball表示:“企业意识到他们不再需要成为通才,开发应用程序的每个方面(地图、支付处理、通信、身份验证等)。相反,他们可以使用Web API来利用第三方完成的工作,并专注于专业化。”

API代表应用程序编程接口,是一组用于构建和集成应用软件的定义和协议。

可通过HTTP协议访问的Web API催生了通过其技术、基础设施、功能和数据获利的API服务。但API也吸引了网络犯罪分子的注意。

“不安全的API可能被用来破坏机密性、完整性和可用性,”Ball说。“这种潜力加上许多API面向互联网的事实,意味着易受攻击的API成为了最佳攻击向量之一。”


适用不同规则

通过在设计中包含注重安全的团队成员、鼓励安全编码、进行定期安全测试以及监控编程调用以防止攻击和滥用,API可以减少成为责任的风险。

根据Ball的说法,保护Web API需要采用与经典Web应用安全不同的方法。

“标准的Web应用测试会导致Web API出现假阴性结果,”他解释说。“未专门针对Web API校准的工具和技术将漏掉几乎所有常见漏洞。”

一个显著的例子是美国邮政服务(USPS)Informed Visibility API中的漏洞,该漏洞由安全研究员Brian Krebs首次报告。在Krebs报告数据泄露前一个月,该Web应用程序经过了彻底测试。

在测试过程中,像Nessus和HP WebInspect这样的工具被通用地应用于测试目标,因此一个重大的Web API漏洞未被发现。这个未发现的安全漏洞存在于USPS Informed Visibility API中,允许任何经过身份验证的用户获取与6000万客户相关的电子邮件地址、用户名、包裹更新、邮寄地址和电话号码。

“Informed Visibility系统外部攻击面的漏洞评估很好地展示了如果将Web应用黑客技术应用于API会发生什么,”Ball说。“这里的教训是,在测试API时必须应用正确的工具和技术。”


侧信道API攻击

Ball本人通过专注于API的渗透测试发现了不少漏洞。他最喜欢的发现是一个侧信道定时攻击,该攻击从用于搜索客户记录的管理API中泄露信息。

通常,API会拒绝所有未经授权的请求并返回标准的HTTP 401未授权响应。由于API缺乏速率限制,Ball可以发送许多请求,测试在被动侦察期间收集的不同用户ID和名称。这位安全研究员意识到某些响应的字节数略多于其他响应。

“经过仔细检查(使用Comparer),很明显中间件头揭示了服务器处理某些请求需要多长时间,”他说。“我发现涉及现有记录的请求服务器处理时间是不存在记录的五倍。”

通过拼凑各种披露的信息,Ball能够收集敏感信息并将用户与其用户ID、邮政编码、电话号码、健康记录和SSN(社会安全号码)关联起来。

“我不需要泄露外部网络、绕过防火墙、在网络内进行横向移动,最终获得正确数据库的访问权限并找到泄露数据的方法;相反,我使用Web API揭示了皇冠上的明珠,”Ball总结道。


机会敲门

尽管Web API成为日益流行的攻击向量,但Ball在专门研究该主题之前注意到缺乏关于测试其漏洞的资源。

“没有专注于API安全测试的书籍,没有认证,很少有博客文章[或]视频等,”他说。“我去参加会议,问那些发表最新Web应用黑客演讲的演讲者他们为API安全测试做了什么。他们要么不知道如何处理API,要么团队中只有一个人知道如何测试API。”

Moss Adams的一位合伙人鼓励Ball成为API主题专家。几个月内,Ball duly编译了大约150页关于该主题的笔记,然后意识到他已经完成了一半关于API安全的书籍写作。

“我看到了一个分享我的研究、武装测试人员并帮助防止下一次API相关数据泄露的机会,”他说。“我联系了No Starch Press。剩下的就是历史了。”

Ball还在APIsec University发布了一个免费在线课程,他在其中教授API渗透测试过程的不同阶段,包括设置实验室、进行侦察、分析端点和策划各种攻击。


非API时代

围绕API安全的资源和标准正在逐渐形成,包括2019年开源Web应用项目(OWASP)发布的十大API漏洞。

然而,Ball继续看到某些常见的API安全错误在网络上扩散。“授权仍然是野外最常见的API安全错误,”他说。

他经常看到破坏的对象级别授权和破坏的函数级别授权的实例,这两者都在OWASP的排行榜上。在大多数情况下,这些漏洞表现为一个经过身份验证的用户能够使用API获得对其他用户数据的未经授权的访问。

“随着API授权漏洞的普遍存在,似乎对有效用户的信任过多,而测试不足以确保用户和组不能访问或更改彼此的数据,”Ball说。


网关漏洞

随着API继续变得更加普遍,对API安全专家的需求日益增长。

“我相信API实际上是任何有兴趣成为渗透测试员的绝佳门户。API可能是新黑客黑客攻击的第一件事,”Ball说。

在哪里学习API安全?Ball建议以下资源:

  • APIsec University的API渗透测试
  • PortSwigger*的Web Security Academy
  • OWASP API安全项目

“非常熟悉Postman和Burp Suite,”Ball建议。“当然,如果你想从单一来源完成所有这些,请查看我的书《Hacking APIs》。”

*PortSwigger是The Daily Swig的母公司

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计