经过20多年的发展和部署,API无处不在。在2021年的调查中,73%的公司表示他们已经发布了超过50个API,而且这个数字还在增长。API在当今几乎每个行业都扮演着举足轻重的角色,并且随着它们走向业务战略的前沿,它们的重要性也在稳步增加。这种现象并不奇怪:API无缝连接不同的应用程序和设备,带来前所未有的业务协同和效率。然而,与软件的任何其他组件一样,API也不能免于漏洞。基于此,如果不定期进行安全测试,API也可能引入新的攻击向量,使用户面临前所未有的风险。等待API错误被生产发现是不现实的,您最终只会遇到严重的延迟。API不仅受到广大企业的青睐,也成为攻击者的眼中钉。API不仅仅是简单地连接企业的各种应用,它们还会以不可预知的方式改变功能。API可能引入的许多独特缺陷对于黑客来说是众所周知的,他们开发了不同的方法来攻击API以获取对底层数据和功能的访问权限。开放Web应用程序安全项目(OWASP)的API前10名表明,经过身份验证的合法用户通过进行看似合法的调用以意图篡改API来利用API漏洞的情况并不少见。这种攻击旨在篡改业务逻辑并利用设计缺陷,使其对攻击者极具吸引力。每个API都是唯一且专有的。因此,其软件漏洞也是独一无二的“未知数”。防御者很难发现此类可能导致业务逻辑或业务流程级攻击的漏洞。图1:业务逻辑漏洞和传统漏洞是否对API安全测试给予了足够的重视?左移安全已经被大多数企业广泛接受,在整个开发过程中持续测试的做法已经成为常规。然而,API安全测试经常被遗漏,或者在没有重复了解所涉及的风险的情况下执行。为什么是这样?原因不止一个:现有的应用安全测试工具是通用的,目标检测对象是传统的Web应用漏洞,无法有效处理API业务逻辑的复杂性。由于API没有用户界面,企业通常需要分别测试Web、应用程序和移动设备,而不是API本身。API测试可能非常耗费人力,并且当您拥有数百个API时无法扩展。由于API测试比其他测试类型更复杂,企业可能缺乏相关经验和专业知识。无法知道已部署了哪些遗留API,也无法找到遗留API的文档。因此,虽然左移安全性已被大多数企业普遍重视,但API安全测试往往被排除在DevSecOps蓝图之外。这是一个不幸的情况,因为API漏洞需要比传统应用程序漏洞更长的响应时间:63%的受访者在最近的一项调查中表示需要更长的时间来修复API漏洞。鉴于应用程序对API的依赖和快速采用,这个数字可能会继续上升。图2:与传统应用程序漏洞相比,修复API漏洞的平均时间虽然大多数安全主管都知道API安全测试的重要性,但近一半的安全主管表示他们尚未实施API安全测试解决方案完全集成到开发管道中.为什么传统的安全测试方法无法覆盖API?全面安全方法的第一步是仔细检查当前对应用程序安全测试的普遍态度:静态安全测试和动态安全测试。静态安全测试使用白盒测试方法,根据应用程序的已知功能创建测试,审查应用程序的设计、架构或代码,包括数据流经应用程序时可能采用的许多复杂路径。动态安全测试采用黑盒测试方法,根据摄入一组特定输入的应用程序的预期性能创建测试,而不考虑内部处理或底层代码的知识。至于API,开发人员和安全团队经常争论这两种方法中哪一种最好,支持以下观点的论点:静态测试是唯一有效的方法:因为API没有用户界面,您必须知道内部发生了什么业务逻辑。动态测试是我们所需要的:因为单元测试适用于静态模型并且在管道的早期完成。虽然有点令人失望,但上述观点都不完全正确。事实上,这两种方法都需要确保广泛的覆盖范围并解决一系列可能的情况。特别是随着最近API攻击的兴起,防御者无法承受可扩展性、深度和频率的风险。图3:动态API安全测试与静态API安全测试在这种情况下,“灰盒”API安全测试成为一个有趣的替代方案。因为没有用户界面,了解应用程序的内部工作原理(例如参数、返回类型等)有助于高效地为业务逻辑创建功能测试。理想情况下,综合考虑API安全测试的各个方面,可以更好地创建灰盒解决方案,弥补个别方法的不足。这种业务逻辑方法智能地检查其他测试类型的结果,并自动或手动调整测试以应用改进。业务逻辑API安全测试方法业界越来越意识到API安全保护应该贯穿于API的整个生命周期,将API置于安全管控的前端和中心。为此,我们必须找到简化和桥接企业API安全测试的方法,将API安全测试标准纳入开发周期并实施。这样,在运行时监控的帮助下,安全团队可以在一个地方获得对所有已知漏洞的可见性。而且,向左移动API安全测试可以降低成本并加快修复速度。此外,如果测试工作流可以自动化,企业就有了对重新测试的内置支持:测试、修复、重新测试和部署的循环使管道保持平稳运行并避免瓶颈。利用业务逻辑方法进行API安全测试,可以提高API全生命周期安全计划的成熟度,改善企业的安全状况。图4:从生产到设计然而,这种现代方法需要自学工具,这些工具可以通过摄取运行时数据来深入了解应用程序的结构和逻辑,从而逐渐提高性能。这将涉及创建在运行时学习的自适应测试引擎,积累关于API行为的深入知识,以便智能地逆向工程其隐藏的内部工作原理。有了运行时数据和业务逻辑信息,组织可以享受黑盒和白盒方法的好处,以增强可见性和自动化控制。总结除了日益流行之外,API也给Web应用程序带来了更多的漏洞。很多公司甚至不知道自己API的应用范围和漏洞。黑客可以通过可用的API轻松检测已知和未知的漏洞。然而,企业往往忽视API安全测试,将API安全测试当做Web应用来对待。大多数测试方法,如黑盒测试和白盒测试,都不适合API测试。自然语言处理和人工智能(AI)的结合提供了一个可行的“灰盒”选项,可以自动化、扩展和简化API安全测试的复杂过程。
