OWASP 发布2023年十大 API 安全风险清单
编译:代码卫士
OWASP 发布了2023年的主要 API 安全风险清单。相比2019年,做出了一些调整。
2023年的十大 API 安全风险如下:
风险 | 描述 |
API1:失效的对象级授权 | API会暴露处理对象标识符的端点,从而创造出对象级访问控制问题的广泛攻击面。应当在每个使用用户ID访问数据源的每个函数中,考虑执行对象级授权检查。 |
API2:失效的认证 | 认证机制通常被错误执行,导致攻击者攻陷认证令牌或利用实现缺陷临时性或永久性地获得其它用户的身份。该风险被用于攻陷系统识别客户端/用户的能力,从而攻陷整体的 API 安全。 |
API3:失效的对象属性级授权 | 这一类别结合了“API3:2019-过度的数据暴露”和“API6:2019-大规模分配”,它关注根本原因:对象属性级缺乏授权验证或验证不当,从而导致信息泄露或越权访操纵。 |
API4:不受限制的资源耗尽 | 满足 API 请求需要网络带宽、CPU、内存和存储等资源。其它资源如邮件/SMS/电话通话或生物特征验证由服务提供商通过 API 集成提供并按照请求进行支付。成功的攻击可导致拒绝服务后果或运营成本上升。 |
API5:失效的函数级授权 | 层级、组、角色不同的以及管理和常规功能之间区分不清晰的复杂的访问控制策略可导致授权缺陷。攻击者可利用这些问题访问其它用户资源和/或管理功能。 |
API6:不受限制的敏感业务流访问权限 | 易受该风险影响的 API 暴露业务流(如买票或发布评论),而不会弥补如果以自动化方式过度使用,该功能如何对业务造成损害。这一风险不一定源自实现问题。 |
API7:服务器端请求伪造 | 当API 在没有验证用户所提供 URI 的情况下提取远程资源时,就会引发服务器端请求伪造 (SSRF) 缺陷。它可使攻击者诱骗应用程序将构造的请求发送给未预期目的地,甚至在受防火墙或VPN保护的情况下也不例外。 |
API8:安全配置不当 | API及其支持它们的系统中一般包含复杂的配置,旨在使API变得更加可自定义。软件和 DevOps 工程师可能缺少这些配置或者未遵循配置相关的安全最佳实践,从而引发不同类型的攻击活动。 |
API9:清单管理不当 | API 要比传统的 web 应用暴露更多的端点,因此正确的和更新的文档极为重要。正确的主机和所部署的API版本的清单对于缓解降级的 API 版本和被暴露的调试端点而言也很重要。 |
API10:不安全的API耗尽 | 开发人员偏向于信任从第三方API收到的数据而非用户输入,因此倾向于采用更薄弱的安全标准。为了攻陷 API,攻击者会寻求第三方集成服务而非直接攻陷目标 API。 |
与2019年的版本相比:
排名前两位的风险仍然一致,均为失效的对象级认证和失效的认证;
排名第3位的风险从 2019年“过度的数据暴露”变为“失效的对象属性级授权”;
排名第4的风险从“缺少资源和速率限制”变为“不受限制的资源耗尽”;
排名第5的风险保持一致,均为:失效的函数级授权;
排名第6的风险从“大规模分配”变为“不受限制的敏感业务流访问权限”
排名第7的风险从“安全配置不当”变为“服务器端请求伪造”;
排名第8的风险从“注入”变为“安全配置不当”(比2019年下降了一位);
排名第9的风险从“资产管理不当”变为“清单管理不当”;
排名第10的风险从“记录和监控不充分”变为“不安全的API耗尽”。
虽然几年来,威胁或风险的排名并未发生巨大变化;但它们在不断演进,而我们对于它们的了解也同样在变化。这可从2023年的列表中看出:虽然并不是新列表但是对已有列表的优化调整。
OWASP列表是集体的努力。虽然没有人会否认它们的价值,但并非所有人(即使是参与人员也不例外)同意所有的细节。从“过度的数据暴露”被删除来看,这意味着我们解决了敏感数据暴露的问题了吗?Cequence Security 公司的员工 Jason Kent 并不这么认为,他指出,“并没有解决。敏感的数据暴露是一个巨大的问题。在 API 3 的2023版本中,我们看到有人讲敏感数据暴露发展到了下一个阶段,并通过属性级授权取得突破。它并非直接取代,因为列表中的很多条目依赖于敏感数据暴露。这是展现这一点的正确方法吗?我认为不是这样,这只是不同意见的一个例子。”
同时,他赞扬了API6 的名称更改,实际上它们的本质仍然一样。案例都是为一款搭车应用而用,且两者都利用了后台中的一些内容。他表示,“两者之间存在细微差别。2023年的名称看起来是需要被修复的风险,而不是让人感到困惑的风险。它同时说明了我们在API安全如何应对攻击自动化的研究成果。”
创建项目式和排序的风险列表面临的主要问题是风险链。数据泄露通常始于受害者忘记 API(API9)。这可能提供敏感的用户数据 (API1),促使攻击者尽可能远且尽可能快地(触及API6)创建机器人利用该漏洞。
Kent 提到,“新的十大API风险列表可能并不完美,但确实展示出几年来我们所知道的确切内容。API安全局势不断变化,组织机构也需要随之改变。不管是了解你的API所在何处,还是测试其中的缺陷或缓解攻击未知流的机器人,API安全都应该得到每个人的关注,而这个新列表就是一个不错的起始点。”
https://owasp.org/API-Security/editions/2023/en/0x11-t10/
https://www.securityweek.com/owasps-2023-api-security-top-10-refines-view-of-api-risks/
题图:Pexels License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。