荷兰医疗门户API配置错误导致医护人员敏感信息泄露

本文详细披露荷兰医疗投诉平台portal.skge.nl存在的两处IDOR漏洞,导致注册医护人员的地址、银行账号等敏感信息泄露,包含完整的漏洞发现过程、技术细节和修复时间线。

背景

根据Z-Cert.nl年度报告,勒索软件攻击是医疗健康领域的最大威胁。该报告指出(第16页),医疗供应商比个体诊所或专业人员更常成为攻击目标。原因可能是入侵供应商的影响更大,因为它们可能同时为多个客户提供服务。

大多数人想到的是患者使用的医疗供应商,比如为老年人提供的报警系统。去年此类供应商Tunstall就成为了勒索软件攻击的受害者。

但那些托管医护人员敏感数据(例如投诉官员和纠纷解决机构)的供应商呢?如果它们存在泄露数据的漏洞怎么办?如果我们能弄清楚谁注册了这些服务,就可以针对这些医疗提供商进行鱼叉式网络钓鱼:“您收到了投诉,请立即输入密码”。

今天我们将入侵我医疗工作中用作投诉和争议委员会的机构:SKGE.nl。

缺失的协调漏洞披露政策

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

LHV迅速缓解了该漏洞并协调了披露,这是协调漏洞披露在医疗领域应用的绝佳范例。

然而,今天的供应商SKGE.nl在报告时没有这样的协调漏洞披露政策。好消息是,报告后SKGE发布了符合NCSC指南的CVD。但不幸的是,虚假报告的数量太多,他们无法保持在线状态;在撰写本文时(2024年3月17日),他们正在寻找解决方案(Z-Cert或许能在此提供帮助)。

这是一个有趣的经验教训,如果我们想让每个人都能够访问CVD,就需要在更广泛的范围内解决这个问题。这是我们的政府应该解决的问题吗?例如向需要CVD分诊服务的非营利组织提供资助?或者自己提供这样的服务?

有人可能会问,如果没有明确允许,入侵系统是否不道德?进行此类安全研究是为了公共利益,可以与记者研究对我们社会有严重影响的事情相提并论。特别是当它托管您自己的数据时。

另请参阅DIVD的行为准则:我们知道自己在法律允许的边缘运作,因此我们遵循漏洞披露法庭案件中常用的三个标准:

  • 社会需求:我们进行漏洞披露是为了防止对尽可能多的互联网用户造成在线损害,不服务于任何特定的财务、政治或个人利益。
  • 相称性原则:我们以适当的方式满足这一需求。我们的研究应提高而非降低在线系统的完整性和可用性。
  • 辅助性原则:如果有多种方法可以满足需求,我们选择影响最小的一种。

一个现实世界的例子是荷兰记者Daniel Verlaan入侵了欧盟国防部长的视频会议。据我所知,他没有获得研究许可,但并未因此次入侵受到指控。Borrell先生在他入侵期间告诉他:“你知道这是刑事犯罪吗?你最好在警察到来之前迅速退出。” — Borrell先生,2020年11月21日

这清楚地表明,我们仍需努力说服(政治)领导层,我们需要支持像Daniel这样的道德记者/黑客。不要指控或恐吓他们,甚至制定使他们的工作充满风险的法律。

分享见解并让每个人从以前的漏洞中学习是前进的唯一途径;您必须与拥有无限预算的国家行为体或比特币钱包中有数百万美元的勒索软件组织竞争。

一个好的发展是我们司法部长最近对DIVD的认可(荷兰语);DIVD不断扫描整个互联网以查找漏洞,并向系统所有者负责任地披露这些漏洞。无论它们在世界何处,无论它们是否有负责任的披露政策。没有人会起诉消防员,对吧?顺便说一句,他们一直在寻找人才,所以如果可以的话加入他们吧!

侦察阶段,在哪里寻找漏洞?

该平台有一个门户网站,供医疗保健提供商更改其联系详细信息。

登录后的门户网站。实际投诉未在任何门户中注册。如果不存储,就不会丢失。这是一个聪明的举动,因为它减少了攻击面。

因此,让我们看看是否可以访问其他提供商的数据。一个好的起点总是查看可以下载发票的位置。

正如我们在屏幕底部看到的,dossiernummer(订单ID)是数字的。

每当我们看到数字ID时,我们都会尝试将ID更改为更低或更高的数字。我们最终可能会得到另一个用户的数据。让我们试试!

我们将数字更改为我们的朋友Bart的ID。我们获得了他的许可来IDOR他的发票。

Bart的发票可以从我的帐户访问。砰!我们有一个IDOR漏洞,泄露所有医疗保健提供商的发票。影响有点有限,因为它需要登录,但每个人都可以注册(没有进行身份检查)。

此外,我没有测试其他ID,但一个好问题可能是是否只有发票可以通过此端点访问(而不是上传的其他文件,例如关于投诉的文件)。我没有测试,所以我不知道,必须相信供应商的调查。

是时候报告了!

IDOR漏洞2:注册时暴露医疗PII

在寻找注册方式时,我发现无法重复使用先前注册的电子邮件创建新帐户。它给出了错误。

但我在Burp Proxy中记录的一个请求中发现了奇怪的东西;对https://portal.skge.nl/api/afas/nieuwe_aansluiting_zelfstandig的请求有以下响应:

“Message”:“match op e-mailadres” — 包括我所有的PII

发生的事情是,如果有人使用先前注册的电子邮件地址,它会吐出所有相关的PII数据。完整地址、电子邮件和电话。嗯。这不应该是这样的。

“Message”:“match op big” — 包括我朋友所有的PII

医疗执照ID(Bignummer)也会发生同样的情况,这是一个公开数据,您可以使用我们政府的网站https://zoeken.bigregister.nl/zoeken/kenmerken轻松查找。

任何人都可以查找我的BIG号码。因此,如果您对医疗保健提供商的(通常是私人的)地址和电话号码感兴趣,这是一种泄露详细信息的简单方法,无需身份验证。

是时候报告了!

结论

经过身份验证的攻击者能够下载其他用户的发票。这些文件包含PII数据,如完整地址和银行账号。未经身份验证的攻击者能够在拥有注册医疗保健提供商的医疗执照ID号(公开数据)或电子邮件时泄露PII数据(完整地址、电话和电子邮件)。

讨论

SKGE反应非常迅速,在几个小时内就联系并下线了网站的受影响部分。这是一个应该如何响应的绝佳范例!

他们审计了日志以查找漏洞滥用,并可以确认我是唯一发现漏洞的人。请记住,每个人都会引入漏洞;重要的是您处理它们的方式。透明就是信任。作为客户,我完全信任他们,他们向我确认我的数据在他们手中是安全的。

两天后,他们修补了漏洞,一切重新上线。最终,他们支持我的道德研究;努力使医疗供应商更安全。多亏了他们,我才能分享这个故事,以便我们都能从中学习。这是一个强大领导力的好例子。

这个行业的其他公司呢,它们也有这种透明度水平吗?如果没有,它们需要什么才能达到这种成熟度水平?

时间线

  • 2024年1月7日 — 发现注册时泄露发票和PII数据的IDOR漏洞
  • 2024年1月8日 — SKGE确认漏洞并指示开发人员部署修复程序
  • 2024年1月8日 — SKGE下线受影响的网络资产
  • 2024年1月10日 — SKGE部署修复程序,我确认修复,SKGE完成审计日志(未发现漏洞滥用)
  • 2024年1月18日 — SKGE发送250欧元礼品卡和感谢信
  • 2024年1月10日 — 我撰写了此报告并与SKGE分享草案
  • 2024年1月13日 — 收到SKGE的反馈,改进了报告
  • 2024年1月19日 — 分享此报告的新草案
  • 2024年1月20日 — 报告发布
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计