应用程序编程接口(API)是现代Web应用程序开发的重要组成部分,它们在整个Web攻击面中占据了相当大的比例。在现实世界中,企业在进行Web应用安全测试时,要覆盖整个攻击面,同时满足测试准确性和工作流高效集成等要求,是一项艰巨的任务。现代应用程序不仅仅是一堆网页,它们是一堆通过API连接的复杂Web服务。那么,您如何保护这些WebAPI?不仅可见的网页是安全的,还有多种测试软件安全的方法,但任何AppSec(现代应用程序安全)工具箱都应该至少包括动态测试(DAST,或漏洞扫描),并结合常规渗透测试。这使企业能够真实而全面地了解其安全状况,因为他们使用与恶意黑客相同的方法和入口点来探测应用程序环境。所有潜在的入口点共同构成了企业的攻击面,这包括用户界面和所有公开的API。从外部检查Web应用程序时,第一步是运行爬虫工具来发现所有需要测试的对象。这时候网站和WebAPI的第一个重大区别就体现出来了:企业不能像爬网页一样爬API。确保所有WebAPI在应用程序环境中得到充分测试的有效方法是始终拥有最新的API定义,这些定义由企业的开发人员创建和维护。在拥有数万个API端点的大型开发环境中,每次需要扫描漏洞时都向开发人员索要API定义文件是不切实际的,尤其是在开发流水线高度自动化且任何人工干预都需要花费宝贵时间的情况下更是如此的情况下。一种实用的方法是在中央位置自动存储和更新API定义文件,集成的漏洞扫描工具可以在每次扫描之前获取这些文件。然而,为了在安全测试工作流程中充分利用这些数据,企业需要一个自动化的应用程序安全测试解决方案,它不仅可以与软件开发生命周期(SDLC)相结合,还可以针对相关类型的API进行漏洞测试。确保API是安全SDLC的必要组成部分如今,Web应用程序通过API发送的数据远远多于通过用户界面发送的数据,因此应用程序安全测试必须跟上步伐,否则就有可能使Web应用程序的攻击面更容易受到攻击。甚至内部API也经常被攻击者访问,因为直接访问保存敏感数据的后端系统会被暴露。除此之外,API是为静态、自动访问而设计的,因此它们更容易被探测而不会引起怀疑。网络罪犯知道这一切,他们将注意力转向API攻击,以最不安全的WebAPI和服务为目标,直接访问敏感数据或执行未经身份验证的操作。由于当今企业构建的许多Web应用程序都是可视化前端,它们与后端系统上运行的数百个自主Web服务进行通信,因此绕过用户界面并直接访问数据似乎是网络犯罪分子的明显选择。攻击确实在增加。为了避免企业网络安全出现巨大盲点,明确将API漏洞测试纳入AppSec计划是一个重要的方法,这也是保证AppSec有效性的关键要求。一些供应商可以将WebAPI漏洞测试无缝集成到企业的安全SDLC中。参考链接:https://www.netsparker.com/blog/web-security/avoid-api-blind-spots-in-web-application-security-testing-announcing-white-paper/
