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