‘大多数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应用安全不同的方法,因为标准测试常遗漏最常见漏洞。未针对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)。
诱人的攻击向量
过去几年,Web API在各行业加速采用。2018年,Akamai报告API调用占Web流量的83%。Ball表示:“企业意识到他们不再需要成为通才,开发应用的每个方面(地图、支付处理、通信、认证等)。相反,他们可以使用Web API利用第三方完成的工作,专注于专业化。”
API代表应用程序编程接口,是一组用于构建和集成应用软件的定义和协议。可通过HTTP协议访问的Web API催生了将其技术、基础设施、功能和数据货币化的API服务。但API也吸引了网络犯罪分子的注意。
Ball说:“不安全的API可用于破坏机密性、完整性和可用性。这种潜力加上许多API面向互联网的事实,意味着易受攻击的API成为最佳攻击向量之一。”
适用不同规则
通过在设计中包含安全团队成员、鼓励安全编码、进行定期安全测试以及监控编程调用以防止攻击和滥用,API可以减少责任。Ball认为,保护Web API需要与经典Web应用安全不同的方法。
“标准Web应用测试会导致Web API的假阴性结果,”他解释。“未专门针对Web API校准的工具和技术将遗漏几乎所有常见漏洞。”
一个显著例子是美国邮政服务(USPS)Informed Visibility API中的漏洞,由安全研究员Brian Krebs首次报告。该Web应用在Krebs报告数据暴露前一个月进行了彻底测试。
测试期间,Nessus和HP WebInspect等工具通用应用于测试目标,因此一个重要的Web API漏洞未被检测到。这个未发现的安全漏洞允许任何认证用户获取与6000万客户相关的电子邮件地址、用户名、包裹更新、邮寄地址和电话号码。
Ball说:“Informed Visibility系统外部攻击面的漏洞评估很好地展示了将Web应用黑客技术应用于API时可能发生的情况。这里的教训是测试API时必须应用正确的工具和技术。”
侧信道API攻击
Ball本人通过以API为重点的渗透测试发现了不少漏洞。他最喜欢的发现是一个侧信道定时攻击,从用于搜索客户记录的管理API中泄露信息。
通常,API会拒绝所有未经授权的请求并返回标准HTTP 401未授权响应。由于API缺乏速率限制,Ball可以发送许多请求,测试被动侦察期间收集的不同用户ID和名称。这位安全研究员意识到某些响应的字节数略多于其他响应。
“仔细检查(使用Comparer)后,很明显中间件头揭示了服务器处理某些请求需要多长时间,”他说。“我发现涉及现有记录的请求服务器处理时间是不存在记录的五倍。”
通过拼凑各种披露信息,Ball能够收集敏感信息并将用户与其用户ID、邮政编码、电话号码、健康记录和SSN(社会安全号码)关联起来。
Ball总结说:“我不需要泄露外部网络、绕过防火墙、在网络内枢转,最终访问正确的数据库并找到泄露数据的方法;相反,我使用Web API揭示了皇冠上的明珠。”
机会敲门
尽管Web API成为日益流行的攻击向量,Ball在专攻该主题之前注意到缺乏关于测试其漏洞的资源。
“没有专注于API安全测试的书籍,没有认证,很少有博客文章[或]视频等,”他说。“我去参加会议,询问发表最新Web应用黑客演讲的演讲者他们为API安全测试做了什么。他们要么不知道如何处理API,要么团队中只有一个人知道如何测试API。”
Moss Adams的一位合伙人鼓励Ball成为API主题专家。几个月内,Ball duly编译了约150页关于该主题的笔记,然后意识到他已经写完了一本关于API安全的书的一半。
“我看到了分享研究、武装测试人员并帮助防止下一次API相关数据泄露的机会,”他说。“我联系了No Starch Press。剩下的就是历史了。”
Ball还在APIsec大学发布了免费在线课程,教授API渗透测试过程的不同阶段,包括设置实验室、进行侦察、分析端点和策划各种攻击。
UnAPI时代
围绕API安全的资源和标准逐渐形成,包括2019年开源Web应用项目(OWASP)发布的十大API漏洞。
然而,Ball继续看到某些常见的API安全错误在网络中扩散。“授权仍然是野外最常见的API安全错误,”他说。
他经常看到损坏的对象级授权和损坏的函数级授权实例,两者都在OWASP的排行榜上。在大多数情况下,这些漏洞表现为一个认证用户能够使用API未经授权访问其他用户的数据。
Ball说:“随着API授权漏洞的普遍存在,似乎对有效用户过于信任,并且没有足够的测试来确保用户和组不能访问或更改彼此的数据。”
网关漏洞
随着API继续变得更加普遍,对API安全专家的需求日益增长。
“我相信API实际上是任何有兴趣成为渗透测试员的人的绝佳网关。API可能是新黑客黑客攻击的第一件事,”Ball说。
在哪里学习API安全?Ball建议以下资源:
- APIsec大学的API渗透测试
- PortSwigger的Web安全学院
- OWASP API安全项目
“非常熟悉Postman和Burp Suite,”Ball建议。“当然,如果你想从单一来源完成所有这些,请查看我的书《Hacking APIs》。”
*PortSwigger是The Daily Swig的母公司