两个IDOR漏洞暴露13万医疗工作者敏感数据

荷兰VvAA保险公司门户网站存在两个IDOR漏洞,攻击者可访问13万医疗工作者的网络风险保险单等敏感文件。文章详细分析了漏洞的技术细节、利用过程及修复时间线。

两个不同的IDOR漏洞在mijn.VvAA.nl导致可能访问13万医疗提供者的数据

背景

如果一个勒索软件团伙能够确切看到哪些医疗提供者投保了针对勒索软件攻击的保险,这些保险单包含保证支付已付赎金的条款,那会怎样?

这将是每个勒索软件团伙的梦想,今天我们将见证两个恰好使这成为可能的漏洞。

医疗保健领域的勒索软件威胁增加

根据Z-CERT.nl(医疗保健部门机构的CERT)的2023年度报告,如今医疗保健领域最大的威胁之一是勒索软件和金融欺诈。他们描述说,与医疗提供者本身相比,IT供应商更常成为目标。

在欧洲,Z-CERT记录了29起欧洲医疗机构的勒索软件事件,其中3起在荷兰;包括初级医疗保健(第13页)。

覆盖赎金支付的保险

为什么有人会勒索一家公司?钱。没有钱,就没有(不道德的)黑客。

有一个很好的理由说明医疗实践不会被持枪窃贼抢劫或勒索,根本没有钱…由于荷兰政府和医疗保险规范了这些实践的收入,没有产生巨额利润。这可能解释了为什么(商业)供应商目前更频繁成为目标。

但如果一家保险公司开始提供覆盖实践所需赎金的保险呢?我们可能会创造一个开始黑客攻击医疗实践的好理由?

缺失的协调漏洞披露

一年多前,我们讨论了HAwebsso.nl的数据泄露,导致+1.5万荷兰医生的私人详细信息泄露,包括他们的电子邮件和哈希密码。这是一个有趣的发现,因为它揭露了一个存在至少+3年的错误(关于Archive.org日志甚至可能+5年)。

在该黑客攻击中获得的数据可以轻松用于执行鱼叉式网络钓鱼攻击。

LHV迅速缓解了该错误并协调了披露,这是协调漏洞披露如何应用于医疗保健的一个很好的例子。

今天,我们来看看VvAA。在发现该错误时(2023年3月24日),他们没有发布适当的负责任披露或协调漏洞披露政策。

这使得道德黑客测试其基础设施问题有点风险,并且是帮助保护其资产和客户数据的人才的一大缺失。好消息是,在本报告之后,他们已实施了该政策!

IDOR漏洞1:获取您的个人文件

我们此次黑客攻击的最终目标是获取每个人的私人保险单文件。谁有覆盖勒索软件攻击的保险,包括保证的勒索软件支付?让我们获取那些文件!

由于我在这里需要非常谨慎(没有CVD政策),我联系了一位也是VvAA保险客户的同事,问她是否同意我尝试获取她的文件和保单。她同意了并分享了她的账户详细信息。

在他们的内部门户上拥有两个账户帮助我以安全的方式找到IDOR错误;我可以使用我朋友的ID而不是“随机”的ID攻击其他客户。

开始吧!登录我自己的账户后,我立即识别出URL中的/s/。这通常暗示幕后使用了Salesforce。

页面源代码证实了这一点;Salesforce被用作其后端系统。

Salesforce与对象一起工作;幕后的一切都是一个对象。您的发票有一个对象ID,您的个人资料有一个对象ID,并且所有其他存储的数据都可以通过引用ID来访问。

每当您能够找到一个ID时,您可以像这样构造URL:https://mijn.vvaa.nl/objectidhere

在使用Burp作为代理来MITM流量时,我收集了在流量中看到的对象ID。当我访问我的联系详细信息时,一个是0011r00002IXXXXX。

当我访问该URL时,我得到了另一个提示,表明Salesforce实例配置不当,暴露原始对象视图通常会暴露配置松散。

点击案例,我可以更改状态和优先级。影响不大,但我不应该能够访问这个。

这已经足够让我联系VvAA告知我的担忧;所以我在2023年3月24日午夜00:00通过电子邮件联系了他们的隐私官。同一天12:45,他们的CISO联系我安排了一次通话,讨论当前的发现。

那天14:30,我找到了导致所有文件披露的IDOR。

步骤1

启动Burp并使用2个账户登录。左侧是攻击者,右侧是受害者。

加载概览(Overzicht)页面时,它共享您账户中可访问的文件/PDF文件。人们可以在右侧看到我列表中有一些发票和保单协议。

填充此概览的请求使用relatienummer id(客户ID)来获取这些文件。这个ID是一个整数,可以轻松枚举。

仔细查看此截图,您会看到它想要运行命令getMijnVvAADocs,并且它使用RelatieNummer变量仅获取当前登录用户的文档。

重要的是,这是VvAA添加到他们自己网站的自定义功能。所以这个错误不是任何其他Salesforce实例的一部分,也不是Salesforce特定的问题。所以如果您运行一个实例,不必担心。

如果我们将该ID更改为我们受害者的客户ID会怎样?我们会得到其他用户的文档吗?

攻击者能够获取我们受害者的文档。

受害者的保单详细信息可以被攻击者下载。

砰!我们可以访问受害者和其它客户的所有文档,我们可以下载它们。这包括保单协议条款和发票在我的情况下。然而,所有类型的文档都可能可访问,包括网络风险保险单。

勒索软件团伙可以简单地转储所有用户的文件列表,并仅下载网络风险保险特定的文件。这恰好暴露了潜在受害者的约定条款和其他详细信息。非常适合对保证勒索软件支付的目标进行鱼叉式网络钓鱼或攻击。

在我报告此概念验证28分钟后,VvAA确认了该错误并承诺在一小时内推出补丁。此外,他们承诺进行审计,以查看该错误是否被恶意行为者滥用。

几周后,我被邀请到他们的办公室讨论此事,我收到了一盒葡萄酒和一张礼品卡。我们握手,他们的领导承诺发布CVD政策。一个如何对待安全研究人员的伟大例子,没有恐吓和迅速行动!

离开时,他们要求关注他们的资产;所以让我们这样做。

IDOR 2:未受保护的文档下载端点

一个月后,我检查了我们第一个错误的一切是否已解决;确实如此!

然而,可能是时候再次查看其客户门户的其他部分了。其中之一是订阅服务(Producten)的概览。

我点击我的法律保险时,可以下载与此保险相关的文件:https://0ada17bd-xxxx-xxxx-xxxx.div.vvaa.nl/ApiGateway/Api/Documents/GetBinary/123456/0

但是,如果我们在URL中更改这个123456 ID呢?我们会看到另一个人的保单吗?

由于我的朋友没有活跃的订阅,所以我无法获取要使用的ID,我决定使用一个随机整数来快速查看这是否是一个错误。

我将整数ID更改为以1结尾的ID。

名字以A开头的其他人的保险单。该保险始于1985年。

砰!我们有另一个泄漏所有文档的IDOR,现在只需更改文档整数ID并转储所有文件以发现谁有覆盖赎金支付的保险。

我测试了几个ID以查看确实所有文档都可能被获取。其中一个ID显示了一个来自2015年的文档,因此至少8年的文档是可访问的。此外,它包括电子邮件对话(eml文件)和其他机密信息。

这次VvAA也在24小时内响应,并在一周内部署了补丁,并对日志文件进行了广泛审计;一个如何处理此类报告的完美例子。

有人可能想知道,真的那么容易吗?老实说,不是。他们的安全水平很高,我花了一些好时间才弄清楚那些端点正在泄漏数据。持久性和一点运气允许您黑客任何公司。他们的安全和开发团队做得很好,但总是可能错过一些东西。

诀窍是尽快发现错误;与道德研究人员互动,如果有人发现重要东西,给予酷炫的赠品/奖励,并建立一个使您保持安全的社区!

结论

在本文中,我们证明了我们可以获取医生和其他在医疗保健领域工作的人的机密信息。我们能够恢复他们当前的保险单和其他高度机密的信息,如电子邮件。

这使得恶意行为者可以精确攻击那些有保证赎金支付保单的医疗实践或医生。

VvAA对日志文件进行了审计,并得出结论,我是唯一发现该错误的人;好消息!

有人可能问我是否应该留在犯这些错误的公司?我的明确回答是是的。

所有开发人员都会引入错误;重要的是您处理它们的方式。透明度创造信任。

他们迅速回复,在几天内解决了错误,并支持我道德研究的目标;试图使医疗保健供应商更安全。

多亏了他们,我能够分享这个故事,所以我们都可以从中学习。他们最终甚至发布了CVD政策,因此我们未来的研究风险较小。

这是强大领导力的一个例子,一个我信任的公司。

您使用的保险公司有这种透明度水平吗?如果没有,他们需要什么才能达到那个成熟度水平?

时间线

  • 24-03-2023 — 发现VvAA可能易受攻击的提示,联系他们告知我的研究
  • 24-03-2023 — 与VvAA CISO通话讨论当前发现
  • 24-03-2023 — 发现IDOR错误1,报告发送给VvAA
  • 24-03-2023 — VvAA确认IDOR错误1并进行首次审计以检查滥用
  • 05-04-2023 — VvAA邀请我于11-05-2023到办公室
  • 04-05-2023 — 发现IDOR错误2,报告发送给VvAA
  • 05-05-2023 — VvAA确认IDOR错误2
  • 11-05-2023 — 与VvAA CISO和领导会面,收到奖励(礼品卡和一瓶葡萄酒)
  • 06-03-2024 — 告知VvAA CISO关于我想提及此错误的演讲
  • 10-03-2024 — 撰写本文并与VvAA安全团队共享草案以进行事实核查和添加他们自己段落的选择
  • 15-03-2024 — 收到VvAA法律主管和CISO的反馈
  • 17-03-2024 — 发送更新的文稿
  • 20-03-2024 — 在演示期间披露该错误
  • 21-03-2024 — 对文稿进行微小更改,发布文稿
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计