伴随云计算、大数据、人工智能等技术的蓬勃发展,移动互联网、物联网产业加速创新,移动设备持有量不断增加,Web应用、移动应用已融入生产生活的各个领域。在这一过程中,应用程序接口(Application Programming Interfaces,简称API)作为数据传输流转的重要通道发挥着举足轻重的作用。
API技术不仅是企业与客户沟通的桥梁,还承担着不同复杂系统、组织机构之间数据交互、传输的重任。许多大公司,尤其是那些拥有大量在线业务的公司,在其基础架构中都嵌入了数百,甚至数千个API。
然而,在API技术带来积极作用的同时,与其相关的数据安全问题也日益凸显。如今,API已成为攻击者最喜欢的目标之一,他们能够破坏API,并将这些漏洞用于新目的,例如数据泄露或进一步渗透到目标网络中。
根据网络安全公司Akamai的安全研究,近75%的现代凭证攻击都是针对易受攻击的API。更糟糕的是,问题正变得越来越严重。Gartner研究报告显示,到2022年,涉及API的漏洞将成为所有网络安全类别中最常受到攻击的媒介。
十大主流API检测工具
API检测作为一种用程序或工具来发送数据,同时验收系统返回值的方法,是实现持续集成,并保持DevOps实践的重要组成部分。一些API检测工具旨在执行单一功能,例如映射特定Docker API配置不当的原因;其他一些工具则对整个网络采取更全面的方法,帮助企业识别错误、漏洞和过多的权限。
下面就为大家介绍6款主流的商业API检测平台,以及4款免费或低成本的开源工具。
商业API检测工具和平台
1. APIsec
APIsec平台就像一个针对API的渗透工具,可以在开发阶段部署,同时对API进行编程。该平台只需几分钟即可完成对正在构建应用程序的全面扫描,而且其结果完全可与过去需要数天或数周才能完成的老式渗透测试相媲美。此外,尽管很多工具都可以扫描脚本注入等典型攻击的常见漏洞,但APIsec会对目标API的各个方面进行压力测试,以确保从核心网络到各个端点都能免受API代码中漏洞的影响。
2. AppKnox
AppKnox能够检测所有可能导致API中断或被破坏的常见问题,例如HTTP请求中的命令注入漏洞、跨站点跟踪和SQL注入漏洞等。这包括对Web服务器、数据库和服务器上所有与API交互的组件完整性分析。AppKnox先通过扫描定位API,用户再选择提交哪些API进行进一步检测,最后再将结果提交给安全研究人员进行高级分析,这一过程通常需要三到五天。
3. Data Theorem API Secure
Data Theorem API Secure平台旨在适应任何持续集成和持续交付/部署(CI/CD)环境,以在开发的每个阶段和生产环境中为API提供持续的安全性。其分析器引擎不断在网络中搜索新的API,并可以快速识别未经授权的API或属于组织“影子IT”(shadow IT)部分的API。
该分析器引擎能够不断学习有关API的最新漏洞,并不断检测受保护的资产。它适用于本地和云环境,以确保任何API都不会沦为最新威胁的受害者。为了保持CI/CD管道顺畅,Data Theorem API Secure还提供自动修复能力,无需人工干预。
4. Postman
Postman作为构建安全API的完整协作平台,能够被数百万在Windows、Linux和iOS环境中工作的开发人员使用。Postman为开发人员提供一套完整的API工具,以便在设计新API时使用,它还为企业或组织的后续代码提供安全存储库,以确保新API从一开始就保持严格的安全性和组织标准。
当应用程序代码偏离企业或组织的安全模板或包含潜在漏洞时,Postman还可以提供安全警告。这样,问题就可以在API进入生产环境之前得到解决。更为关键的是,如果企业或组织不想编写代码,也可以通过Postman进行API测试。也就是说,对于那些不想在集成开发环境中使用代码的初学者来说,Postman是其进行API检测的最佳选择之一。
5. Smartbear ReadyAPI
Smartbear ReadyAPI平台可以导入几乎任何规范或模式,以使用最流行的协议检测API。大体来说,ReadyAPI支持Git、Docker、Jenkins、Azure DevOps、TeamCity等,并且可以在API上线之前就在从开发到质量保证的任何环境中运行。ReadyAPI可以通过单击执行API安全分析,并支持其他关键功能,例如查看API处理意外负载或使用量突然激增的能力。它还可以记录实时API流量,并进行独特环境的配置。
6. Synopsis API Scanner
Synopsis API Scanner除了安全测试之外,还将模糊测试作为其深度扫描和测试套件的一部分。Synopsis API Scanner模糊测试引擎向API发送数以千计的意外、无效或随机输入,以查看它们的行为方式,或者检测它们在遇到诸如非常大的数字或奇数命令之类的事情时是否会崩溃。
Synopsis API Scanner还绘制了整个API的所有路径和逻辑,包括适用的所有端点、参数、身份验证和规范。这让开发人员能够清楚地了解API可以执行哪些功能。此外,它还清楚地说明了为什么API可能会受到意外行为或安全漏洞的影响。
开源API检测工具
虽然开源工具通常无法提供与商业产品相同的支持服务,但因其免费和易用,受到用户的广泛认可,有经验的开发人员可以轻松地部署,以支持或提高其API的安全性。根据开源社区数据,以下是一些较受欢迎的产品。
7. Astra
Astra主要专注于表述性状态传递(REST)API,可以自动检测并测试登录&注销功能(认证API),因此任何人都可以轻松将其集成到CI/CD管道中,并在开发周期的早期阶段帮助检测及修复安全漏洞。不过,Astra针对REST API的渗透测试则比较难实现,因为它们经常不断变化。鉴于REST架构强调组件之间交互的可扩展性,随着时间的推移保持REST API的安全性可能更具挑战性。
8. crAPI
crAPI工具名字取得很糟糕,但它有效地执行了作为API包装器的功能。它是少数可以连接到目标系统,并为根客户端的默认处理程序集提供基本路径的包装器之一。crAPI无需创建任何新连接即可完成此操作,这使得高级API开发人员可以节省大量时间。
9. Apache JMeter
Apache JMeter用Java编写,起初是作为Web应用程序的负载测试器,最近几乎可用于任何应用程序、程序或API。它可以检测静态或动态资源的性能,也可以生成大量真实流量的模拟负载,以便开发人员了解API在压力下的表现。
10. Taurus
Taurus提供一种将独立API检测程序转变为连续测试的简单方法。Taurus操作起来很简单,企业或组织只需安装它,创建一个配置文件就能让检测工具发挥作用。企业或组织还可以通过Taurus找到生成交互式报告的方法,以及创建更复杂的场景,设置标准以便企业或组织立即修复发现的问题。
总体来说,商业工具会提供更多的支持选项,可以通过云或作为一项服务进行远程部署。不过,一些开源工具的表现同样出色,得到了用户社区的广泛支持。企业可以根据自身需求、IT团队的安全专业能力和预算进行抉择。
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】