博客

程序员攻克安全:OWASP API 安全十大风险系列——过度数据暴露

September 23, 2020
Matias Madou 博士

过度数据暴露漏洞与 OWASP 列表中的其他 API 问题不同,因为它涉及非常特定类型的数据。这种漏洞背后的实际机制与其他漏洞类似,但在此类情况下,过度数据暴露被定义为涉及受法律保护或高度敏感的数据。这可能包括任何个人身份信息(通常称为 PII),也可能涉及支付卡行业信息(PCI)。最后,过度数据暴露还可能包括任何受隐私法律约束的信息,例如欧洲的《通用数据保护条例》(GDPR) 或美国的《健康保险流通与责任法案》(HIPAA)。

正如你所料,这引起了人们的深切关注,精明的开发人员必须学会尽可能地消除这些漏洞。如果你已经准备好挑战“数据暴露”这一难题,请前往我们的游戏化挑战页面:

你的得分是多少?请继续阅读以了解更多信息:

过度数据暴露有哪些示例?

过度数据暴露发生的主要原因之一是开发人员和编码人员对应用程序将使用的数据类型缺乏足够的了解。正因如此,开发人员倾向于使用通用流程,将所有对象属性都暴露给最终用户。

开发人员有时还会假设前端组件会在向用户显示任何信息之前执行数据过滤。对于大多数通用数据而言,这通常不是问题。但例如,将受法律保护或敏感的数据作为会话 ID 的一部分暴露给用户,可能会从安全和法律角度导致严重问题。

为了说明敏感数据被意外共享的简易程度,OWASP 报告设想了一个场景:一名保安被授予访问设施内特定物联网摄像头的权限。也许这些摄像头监控的是封闭和安全的区域,而其他监控人员的摄像头则应仅限于权限更高的保安或主管访问。

为了让保安访问授权的摄像头,开发人员可能会使用如下所示的 API 调用。

/api/sites/111/cameras

作为响应,应用程序将以以下格式发送保安能够查看的摄像头详细信息:

{ "id":"xxx","live_access_token":"xxxxbbbbb","building_id":"yyy"}

从表面上看,这似乎运行良好。使用应用程序图形用户界面的保安只会看到他们有权查看的摄像头画面。问题在于,由于使用了通用代码,实际的 API 响应会包含设施内所有摄像头的完整列表。任何嗅探网络并捕获该数据的人,或者入侵了保安账户的人,都能够发现网络上每个摄像头的位置和名称。然后,他们就可以不受限制地访问这些数据。

消除过度数据暴露

防止过度数据暴露的关键在于了解数据及其相关的保护措施。创建通用 API 并将数据筛选工作留给客户端去处理,是一种危险的选择,会导致许多本可避免的安全漏洞。

除了了解相关的数据保护措施外,停止使用通用 API 将所有内容发送给用户的做法也至关重要。例如,必须避免使用 to_json() 和 to_string() 等代码。相反,代码应明确挑选需要返回给授权用户的属性,并仅发送该信息。

为了确保不会意外过度共享受保护的数据,组织应考虑实施基于模式的响应验证机制,作为额外的安全层。它应定义并强制执行所有 API 方法返回的数据,包括错误报告规则。

最后,所有被归类为包含 PII 或 PCI 的数据,或受 GDPR 或 HIPAA 等法规保护的信息,都应使用强加密进行保护。这样,即使该数据的位置因过度数据暴露漏洞而泄露,也有一道良好的二级防线,即使数据落入恶意用户或威胁行为者手中,也能起到保护作用。

查看 Secure Code Warrior 博客页面,深入了解此漏洞以及如何保护你的组织和客户免受其他安全缺陷的侵害。你还可以 申请演示 Secure Code Warrior 培训平台,以保持你的所有网络安全技能精湛且与时俱进。

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。