SKGE门户API配置错误导致医疗提供者个人信息泄露

本文详细披露了荷兰医疗投诉机构SKGE门户网站存在的两处API配置漏洞:认证用户可越权访问其他医疗提供者的发票信息,未认证攻击者可通过注册接口泄露个人敏感数据。文章包含完整的时间线和修复过程,展示了医疗行业数据安全实践。

背景

根据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的行为准则: 我们意识到自己在法律允许的边缘操作,因此遵循法院在漏洞披露案件中常用的三个标准:

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

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

该平台有一个门户网站,供医疗提供者更改其联系方式。

登录后的门户界面。

实际投诉并未在任何门户中注册。如果不存储,就不会丢失。这是一个减少攻击面的明智之举。

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

在屏幕底部可以看到,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 设计