Coders Conquer Security OWASP Top 10 API Series - 过度的数据暴露

发表于2020年9月23日
作者:马蒂亚斯-马杜,博士
案例研究

Coders Conquer Security OWASP Top 10 API Series - 过度的数据暴露

发表于2020年9月23日
作者:马蒂亚斯-马杜,博士
查看资源
查看资源

过度数据暴露漏洞与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 培训平台的演示,以保持你所有的网络安全技能得到磨练和更新。

查看资源
查看资源

作者

马蒂亚斯-马杜博士

马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。

马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。

想要更多吗?

在博客上深入了解我们最新的安全编码见解。

我们广泛的资源库旨在增强人类对安全编码技术提升的方法。

查看博客
想要更多吗?

获取关于开发者驱动的安全的最新研究

我们广泛的资源库充满了有用的资源,从白皮书到网络研讨会,让你开始使用开发者驱动的安全编码。现在就去探索它。

资源中心

Coders Conquer Security OWASP Top 10 API Series - 过度的数据暴露

发表于2020年9月23日
作者:马蒂亚斯-马杜,博士

过度数据暴露漏洞与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 培训平台的演示,以保持你所有的网络安全技能得到磨练和更新。

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。