各类企业在智能手机的应用程序中,越来越多地依赖 API 与客户端进行交互,但这种方式也有一些弱点。
随着网络攻击者继续利用易受攻击的人、过程和技术,他们的行动也瞄向了常规目标之外;似乎没有任何事情不在他们的目标范围之内,没有人能百分之百地免受他们的恶意攻击。
尽管组织机构在保护自己方面取得了进展,但是一旦一个组织被击破,其他的很快也就暴露了。
今天的攻击者尤其关注 API,它们正迅速成为新的攻击前沿阵地。最近的报告表明,到 2022 年,API 滥用将成为企业 web 应用程序中数据泄露的罪魁祸首。因此,保护 API 变得越来越重要。
虽然 API 安全这些概念还有些新,但是通过 API 执行攻击的行为并非最近才出现。多年来,大多数组织机构都遇到过类似的威胁,这些威胁正是针对其网络和面向 Internet 的应用程序。
现在,他们必须把精力集中在移动应用程序、API 和后端服务器上,因为网络攻击者过去采用了类似方法,把这些应用程序、API 和后端服务器作为了攻击目标。在讨论与今天的 API 相关风险之前,我们必须首先准确地理解是什么使它们显得独特和易受攻击。
基于 API 的应用程序与传统应用程序的对比
基于 API 的应用程序与传统应用程序有很大的不同。例如,在过去,用户/访问者会通过浏览器访问 web 服务器,而大多数“数据处理”是在服务器上执行的。但随着客户端设备变得越来越多样化,变得越来越强大——即有了更快的 CPU、更大内存、更多带宽等等——很多逻辑从后端服务器转移到了前端(即客户端设备本身),如下图所示。
在现代应用程序中,下游服务器更像是基于 API 的应用程序所使用数据的一个网关代理。在此实例中,渲染组件就是使用原始数据的客户端,而不是服务器本身。
例如,还记得在早些年,人们使用智能手机和传统网站预订机票。人们会在手机上打开浏览器,尝试使用航空公司网站,这些网站是专为大型电脑显示器而非小型智能手机屏幕设计的。
但这并没有带来很好的用户体验,所以公司开始更新他们的网站,使其对智能手机用户更加友好。尽管这改善了用户体验,但浏览网站和完成机票预订仍然相当麻烦。
因此,航空公司、酒店、汽车租赁公司等都开始开发自己的移动应用程序。人们预订航班时,不再试图从手机上的浏览器里打开该航空公司移动版网站,而是下载并安装该公司的移动应用程序,并直接从智能手机上使用该应用程序进行预订。那么,这带来了什么变化呢?
当使用航空公司的移动应用程序预订航班时,该应用程序使用 API 调用与后端服务器交互,主要用于获取航班时间表、可乘坐航班、价格和座位等数据。该应用程序还与用户进行交互,允许用户指定旅行日期、出发和到达城市、座位选择和购买选项。
在这种情况下,智能手机可以不使用浏览器,而是在移动应用程序内部执行了几乎所有的机票预订处理负载。尽管这极大地改善了使用智能手机时的机票预订体验,但也带来了一个问题:
API 是否也像基于浏览器的应用程序一样容易受到网络攻击?
与 API 相关的风险
不幸的是,API 也暴露在攻击之下,并且类似于基于浏览器的应用程序,基于 API 的应用程序在很大的程度上也存在着类似的安全问题。
但是,由于 API 暴露了移动应用程序的底层实现,并且用户的状态通常由客户端应用程序维护和监视,每个 HTTP 请求(对象 ID、过滤器等)中会发送更多的参数,所以有一些 API 的安全问题具有其独特性。在大多数情况下,这些问题导致的漏洞可以从以下三个方面来考虑:
泄露敏感数据
被拦截的通讯
对后端服务器发起拒绝服务攻击(DoSS)
一个具有高尚动机的好项目
随着威胁范围的扩大和 API 使用的增加,我和 Inon Shkedy(Traceable.ai 的安全研究主管)带头领导了OWASP API十大安全项目。该项目旨在帮助组织、开发人员和应用程序安全团队更加了解 API 的风险。
这个项目之所以重要,是因为:“在当今应用程序驱动的世界中,创新的一个基本元素就是 API。从银行、零售、运输到物联网、自动驾驶汽车和智慧城市,API 是现代移动端、SaaS 和 web 应用程序的关键部分,我们可以在面向客户、面向合作伙伴和机构内部的应用程序中随处可见 API 的使用。从本质上讲,API 暴露了应用程序的逻辑和敏感数据,如个人身份信息(Personally Identifiable Information,简称 PII),正因为如此,它越来越多地成为攻击者的目标。没有安全的 API,快速创新将是不可能的。”
OWASP API 安全项目旨在开发、发布和跟踪组织在使用 API 时所面临的十大风险,类似于OWASP十大最关键的Web应用程序安全风险项目。从中断的对象级授权到不充分的日志记录和监视,这个列表汇总了企业面临的最关键的 API 风险,同时还提供了示例攻击场景和减轻这些威胁的建议。
所以,IT 团队、安全专业人员和开发人员都应该仔细阅读这个列表,以便更好地理解 API 带来的好处,同时了解在攻击者将目光投向这个新兴目标时,API 的实现所带来的潜在风险。
英文原文:
Why You Need to Think About API Security
评论