应用程序编程接口成为攻击者的最爱。本文中列出的工具和平台,无论是商业的还是开源的,都可以帮助组织识别错误、漏洞和过度权限分配等问题。应用程序编程接口(API)是大多数现代程序和应用程序的关键部分。事实上,云部署和移动应用程序非常依赖API。如果不使用API到处管理组件,云部署和移动应用将成为空谈。许多大公司,尤其是那些拥有大量在线业务的大公司,甚至在其基础架构中嵌入了成百上千个API。API的增长只会继续加速。API的巧妙之处在于,大多数API只是一小段代码,而且所有API都是精简的,并且在网络资源需求方面几乎不敏感。更好的是,该API足够灵活,即使与之交互或控制的程序发生变化(例如出现补丁),它也可以继续运行并执行其主要功能。但即使如此迷人,API也有其自身的缺陷。由于API几乎可以设计用于执行任何任务,无论是一遍又一遍重复的单一功能,还是精细控制各种程序或平台的高级操作,因此几乎没有任何标准来规范API的编写。绝大多数API都是独一无二的,许多企业都在根据需要不断创建新的API。这对安全团队来说可能是一场噩梦。攻击者喜欢的API的另一个方面是许多API被授予了太多权限。即使只执行少数功能的API也通常具有几乎与管理员等效的权限。这个想法是:这么小的API能有多糟糕?黑客不这么想,他们会闯入API并使用这些权限/凭据来做诸如数据泄露之类的事情,或者进一步渗透到网络中。根据安全公司Akamai进行的安全研究,近75%的现代凭证攻击都针对保护不力的API。问题越来越严重。Gartner预测,到2022年,涉及API的漏洞将成为所有网络安全类别中最常见的攻击媒介。API测试工具来拯救关键网络和程序组件成为攻击者的目标已经够糟糕的了,但当涉及到没有标准创建的API时,情况就更糟了。很多公司可能连自己用了多少个API,这些API是干什么的,权限级别有多高都不知道,更别提API有没有漏洞了。安全行业和私人团体正在推出API测试工具和平台来帮助解决这些问题。一些测试工具旨在执行单一功能,例如确定特定DockerAPI配置错误的原因。其他工具对整个网络采取更全面的方法,搜索API,然后提供有关API功能的信息,分析API可能易受攻击或存在太多权限问题的原因。有几个著名的商业API测试平台和大量免费或低成本的开源工具可用。商业工具通常有更多的支持选项,可以通过云远程部署,甚至可以作为服务部署。在工具开发用户社区的支持下,一些开源工具在功能上可能与商业工具相当。选择哪种工具取决于您的需求、您公司IT团队的安全专业知识以及您的预算。下面我们罗列了市面上几款顶级的商用API测试工具及其主要功能,以及一些优秀的开源工具。商业API测试工具和平台APIsecAPIsec可以看作是API的渗透测试工具。许多工具可以扫描脚本注入等典型攻击中使用的常见漏洞,但APIsec专注于测试目标API的各个方面,以确保核心网络和访问核心网络的端点不受API代码漏洞的影响。APIsec的一大优势是它可以在API开发阶段部署。在构建过程中对应用程序执行全面扫描只需几分钟,但结果与过去需要数天或数周才能完成的老式渗透测试相当。AppKnoxAppKnox对购买和部署其平台的用户有很多好处。结合其易于使用的界面,AppKnox非常适合没有专门负责API的大型安全团队的公司。AppKnox扫描以在生产、端点或可能部署的任何地方定位API。定位后,用户可以选择API提交进一步测试。AppKnox测试所有可能导致API中断或被破坏的常见问题,例如HTTP请求命令注入漏洞、跨站点跟踪和SQL注入漏洞。测试包括对Web服务器、数据库以及服务器上与API交互的所有组件的完整分析。执行API扫描后,用户可以将测试结果提交给人类安全研究人员进行高级分析,这通常需要三到五天的时间。DataTheoremAPISecureDataTheoremAPISecure平台旨在适应任何持续集成和持续交付/部署(CI/CD)环境,在开发和生产的每个阶段为API提供持续的安全性。分析引擎不断在网络上搜索新的API,并快速识别未经授权的API或属于公司影子IT的API。分析引擎自动收集API相关漏洞的最新信息,持续测试其保护范围内的资产。DataTheoremAPISecure可在本地和云端运行,确保没有API成为最新威胁的受害者。为了保持CI/CD流程清晰顺畅,DataTheoremAPISecure提供了自动修复发现问题的功能,无需人工干预。这样,只要能够适应高度自动化,企业就可以确保所使用的API能够抵御最新的威胁。PostmanPostman作为API测试工具是完全合格的,但它更广为人知的是作为构建安全API的完整协作平台。数百万Windows、Linux和iOS开发人员使用Postman并非没有原因。Postman为开发者提供了一套完整的API工具来设计新的API,同时也为企业提供了一个安全的存储库,让企业可以安全地存储积累的代码。使用安全存储库可确保未来的API从一开始就保持严格的安全性和组织标准。Postman提供的工作区旨在帮助开发人员组织他们的工作。如果应用程序代码开始偏离公司既定的安全模板或包含潜在漏洞,Postman还可以发出安全警报。这可以在将其投入生产之前很久就防止出现问题。SmartbearReadyAPI除了安全测试,SmartbearReadyAPI平台旨在优化API在任何环境中的使用和性能。SmartbearReadyAPI支持一键式API安全分析,还支持其他关键功能,如查看API在处理意外负载或使用量突然增加时的性能。ReadyAPI还可以配置为生成API需要处理的特定类型的流量。ReadyAPI还可以记录实时API流量以校准未来的测试,并针对它们将运行的独特环境进行配置。此外,该平台几乎可以导入任何规范或模式,允许用户使用最流行的协议测试API。本地ReadyAPI支持Git、Docker、Jenkins、AzureDevOps、TeamCity等,在API上线前很久就可以运行在从开发到质量保证的各种环境中。SynopsisAPIScannerSynopsisAPIScanner如此强大的原因之一是,除了安全测试之外,该工具还将模糊测试纳入其深度扫描和测试套件。模糊测试引擎会向API发送数以千计的意外、无效或随机输入,以查看它的行为方式,或者查看它在遇到非常大的数字或异常命令时是否崩溃。该引擎还映射了整个API的所有路径和逻辑,包括所有适用的端点、参数、身份验证和规范。使用该引擎,开发人员可以清楚地看到他们期望API执行的操作与他们有时实际执行的操作之间的差异。这说明了为什么API可能会出现意外行为或安全漏洞。开源API测试工具尽管开源工具通常不像商业产品那样得到很好的支持,但有经验的开发人员仍然可以轻松部署这些开源工具(通常是免费的)以增强或改进其API的安全性。下面我们举几个在开源社区备受推崇的API安全测试工具的例子。AstraAstra主要专注于具象状态传输(REST)API。由于不断变化,此类API极难维护安全性。鉴于REST架构风格强调组件间交互的可扩展性,随着时间的推移保持RESTAPI的安全可能具有挑战性。Astra的用途是帮助集成到CI/CD管道、执行检查并确保常见漏洞不会潜入本应安全的RESTAPI。crAPIcrAPI是为数不多的可以连接到目标系统并使用根客户端默认处理程序集提供基本路径的包装器之一,并且无需创建任何新连接。这为高级API开发人员节省了大量时间。ApacheJMeterApacheJMeter显然是用Java编写的,最初用作Web应用程序的负载测试器,但最近已扩展为可用于几乎所有应用程序、程序或API。ApacheJMeter的漂亮套件可以测试静态或动态资源的性能。它可以为开发人员大量生成真实流量的模拟负载,以发现他们的API在压力下的行为。TaurusTaurus可以轻松地将独立的API测试程序转换为连续的测试操作。从表面上看,金牛座简单易用。安装Taurus,创建配置文件,让测试工具各司其职。更深入地挖掘,您可以找到生成交互式报告的方法,创建更复杂的场景来测试API,并设置失败标准,以便您可以直接介入并解决您发现的问题。
