最常被利用的三大 API 漏洞:是什么、为什么、如何阻止?
编译:代码卫士
应用程序接口 (API) 已成为现代应用程序的粘合剂。躺在床上就可以按下 API,打开厨房灯;通过 API 可以修改家中音响播放的歌曲。无论该应用位于移动设备、娱乐系统或车库门,开发人员正是借助API让应用程序发挥作用。
网络攻击分子主要利用三大漏洞类型来 “掌控” app。不过首先了解下为何 API 的安全性如此重要。API 的运作方式类似于 URL 的运作方式。在网络浏览器中输入 www.exaple[.]com 就能获得 example.com 的响应。搜索最喜欢的歌曲就会在URL地址栏中看到:www.example.com/search?{myfavoritesong}。
动态构建的页面结果用于展示搜索结果。移动银行app 的工作原理也一样,通过API 抓取用户姓名、账号信息和账户余额,并填充在预构建页面相应的字段中。虽然 API 具有与 web 应用程序类似的特征,但前者更容易遭攻击;它们包含了整个交易,包括任何安全检查,而且一般和后端服务直接通信。
在20世纪90年代,人们发现如果在搜索框或登录字段中释放一个单引号“ ‘ ”,那么应用程序就会提示数据库错误。如果了解 SQL 数据库语法,就会知道易受攻击的应用程序仅仅是可被完全控制的开放的应用程序。SQL 漏洞在找到后通常都会遭攻击。
它反映出我们在应用安全领域中永远都在面临的问题:输入验证。如功能测试和安全测试不当,则API可成为完美的攻击点。由于API受应用程序信任、让高速且大规模的数据交换成为可能,因此任何使用或开发它的组织机构都在担忧它的安全性。
作者基于和应用安全市场客户的工作经验以及在 OWASP 社区的长期参与经验,列出了最常见的三大 API 漏洞 exploit类型。
1、受损的对象级别授权 (BOLA, Broken Object Level Authorization):外行堆 BOLA 的定义是“对象访问请求验证不充分”,它可使攻击者通过复用访问令牌执行越权操作。Peloton 安全事件就是最近发生的 BOLA 利用案例之一。攻击者能够查看其它用户的所有数据,包括被标记为私密的任意数据。该事件造成重大影响,影响范围覆盖开发、运营、营销和公关等所有事业群。
2、受损的用户认证 (Broken User Authentication):它的定义是“认证机制中的实现缺陷”,可使攻击者冒充合法用户。常见的两种利用类型是自动僵尸执行的凭据填充和侦察 API 的运作原理。找到具有受损的用户认证缺陷的登录 API 是自动化攻击的完美目标。更复杂的缺陷利用是用于侦察活动,判断API 的运作方式。如果输入用户名和密码组合 a@a.com/_ 且该应用提示“不合法的密码”,则可知道用户名是合法的。攻击者将利用该数据点提升凭据填充或其它攻击类型的成功概率。
3、资产管理不当。该API缺陷是由“环境隔离和管理不充分”造成的,可使攻击者访问保护不力的 API 端点。在近期发生的 John Deere 安全事件中,作为John Deere 合作伙伴程序一部分的开发者 API 能够在无需编校的情况下访问生产数据,从而暴露使用其牵引机 Green Star 系统的客户遭暴露。该缺陷是由两种环境未分离造成的。这种类型中的其它差异还包括在开发API中未监控敏感数据,以及暴露降级后的 API。
2021年已经是 API 安全事件之年,而今年还未结束。API 缺陷影响整个企业,而不仅仅是运维团队、安全团队或业务团队。指指点点从来无法修复问题。修复始于协作;开发需要业务团队完全理解 API 应有的运作方式。API 编码有所不同,因此需要刷新安全编码实践。安全需要前置参与,帮助在发布前弥合差异。
第一步可以从 OWASP 开始。它发布了 API 安全 Top 10 并在最近发布了“荒谬十足的 API” 清单,其中包括应用程序中的恶意 API。组织机构可将后一份清单作为培训开发和安全人员避免API错误的教育素材。
不管你正在使用“API优先”方法还是刚刚开启由API协助的数字化转型之旅,了解API漏洞有哪些以及如何应对至关重要。
3年后准确率仍达97%:利用谷歌语音转文本 API 绕过reCAPTCHA
无法检测的新型 Linux 恶意软件利用 Dogecoin API 攻击 Docker 服务器
https://threatpost.com/top-3-api-vulnerabilities-cyberattackers/169048/
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。