背景
根据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更改为更低或更高的数字。我们可能会得到另一个用户的数据。让我们试试!
我们已获得他的许可来IDOR他的发票。
砰!我们有一个IDOR漏洞,泄露所有医疗保健提供商的发票。影响有点有限,因为它需要登录,但每个人都可以注册(没有进行身份检查)。
此外,我没有测试其他ID,但一个好问题是是否只有发票可以通过此端点访问(而不是其他上传的文件,例如关于投诉的文件)。我没有测试,所以不知道,必须相信供应商的调查。
是时候报告了!
IDOR漏洞2:注册时暴露医疗PII
在寻找注册方式时,我发现无法重复使用之前注册的电子邮件创建新账户。它给出了错误。
但我在Burp Proxy中记录的一个请求中发现了奇怪的东西;对https://portal.skge.nl/api/afas/nieuwe_aansluiting_zelfstandig的请求有以下响应:
发生的事情是,如果有人使用先前注册的电子邮件地址,它会吐出所有相关的PII数据。完整地址、电子邮件和电话。嗯。这不应该是这样的。
医疗执照ID(Bignummer)也会发生同样的情况,这是一个公开数据编号,您可以使用我们政府的网站https://zoeken.bigregister.nl/zoeken/kenmerken轻松查找。
因此,如果您对医疗保健提供商的(通常是私人的)地址和电话号码感兴趣,这是一种泄露详细信息的简单方法,无需身份验证。
是时候报告了!
结论
经过身份验证的攻击者能够下载其他用户的发票。这些文档包含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日——报告发布