荷兰VvAA平台两处IDOR漏洞致13万医疗从业者敏感数据泄露

本文详细分析了荷兰医疗保险公司VvAA平台存在的两处IDOR漏洞,攻击者可越权访问13万医疗从业者的网络风险保险单等敏感文件,揭示了漏洞发现过程、技术细节及修复响应时间线。

背景

如果勒索软件团伙能精确查看哪些医疗机构投保了勒索攻击保险(包括保证支付赎金的保单),那将是每个勒索团伙的梦想。今天我们将见证两个漏洞如何使这成为可能。

在深入技术细节前,先简要介绍在没有协调漏洞披露(CVD)政策下的道德黑客行为背景,以及对覆盖医疗机构赎金支付的勒索保险的一些思考。

医疗行业勒索威胁增加

根据医疗行业CERT机构Z-CERT.nl的2023年度报告,当前医疗领域最大威胁是勒索软件和金融欺诈。报告指出,IT供应商比医疗机构本身更常成为攻击目标。

Z-CERT统计欧洲医疗机构共发生29起勒索事件,其中3起在荷兰(包括初级医疗)。这为我们全力打破这一趋势提供了充分理由,或许还需要购买保险?

覆盖赎金支付的保险

为何有人会勒索公司?为了钱。没有钱,就没有(不道德的)黑客。

医疗诊所之所以不被持枪劫匪抢劫或勒索,很大程度上是因为那里没有大量现金…由于荷兰政府和医疗保险机构规范这些诊所的收入,它们利润不高。这可能解释了为何当前(商业)供应商更常成为目标。

但如果保险公司开始提供覆盖诊所所需赎金的保险呢?我们是否在为黑客攻击医疗机构创造理由?

“优点:可能支付的赎金将获得报销。” — https://www.vvaa.nl/verzekeringen/cyber-en-data-risks-verzekering (2024-03-10)

今天我们将仔细研究VvAA,这是荷兰医生和医疗诊所使用的最大保险和咨询公司之一。他们声称代表超过13万医疗从业者。包括我自己,我自2005年起成为会员,过去10年一直购买保险(非网络保险)。为何?因为他们是一家扎根荷兰医疗行业的优秀公司,100年前由3名医生创立。

换句话说,他们了解医生的思维,融入社区并努力做好事;实践出真知,让我们开始“黑客”行动。

“1924年由3名医生起步,现已发展成为拥有超过13万医疗专业人士的集体。我们在社会和政治辩论中代表他们,并为医疗周边事务提供支持。这使得医疗专业人士及其组织能专注于最重要任务:为患者提供最佳护理。” 来源

缺乏协调漏洞披露

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

那次黑客获取的数据可轻易用于进行鱼叉式网络钓鱼攻击。

LHV迅速修复了漏洞并协调了披露,这是协调漏洞披露在医疗领域应用的典范。

今天我们来审视VvAA。在发现漏洞时(2023年3月24日),他们未发布适当的责任披露或协调漏洞披露政策。

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

本报告几个月后,CVD政策发布

有人可能自问,如果未明确允许黑客系统,这样做是否不道德?

有人可能认为,这类安全研究服务于公共利益,可与记者研究对社会有严重影响的事物相提并论。另见DIVD行为准则:

我们意识到自己在法律允许边缘操作,因此遵循漏洞披露法庭案件常用的三个标准:

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

一个现实例子是荷兰记者Daniel Verlaan黑客欧盟国防部长视频会议。据我所知,他未获研究许可,但未因此被起诉。Borrell先生在他黑客期间告知:

“你知道这是刑事犯罪吗?最好在警察到来前快速退出。” — Borrell先生,2020年11月21日

这明确信号表明,我们仍需努力说服(政治)领导层需要支持像Daniel这样的道德记者/黑客。不起诉或恐吓他们,或有使其工作风险的法律。

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

IDOR漏洞1:获取个人文档

我们此次黑客的最终目标是获取所有人的私人保险单文件。谁投保了包括保证赎金支付的勒索攻击保险?让我们获取这些文件!

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

在其内部门户拥有两个账户有助于我安全地发现IDOR漏洞;我可以使用朋友的ID而非“随机”ID冲击其他客户。

开始!登录自己账户后,我立即注意到URL中的/s/。这通常是幕后使用Salesforce的提示。

URL路径中的/s/部分提示其后端可能是Salesforce

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

Salesforce使用对象;幕后一切都是对象。你的发票有对象ID,个人资料有对象ID,所有其他存储数据均可通过引用ID访问。

只要你能找到ID,就可以这样构造URL:https://mijn.vvaa.nl/objectidhere 另见本博客获取更多背景信息。

使用Burp作为代理进行MITM流量收集时,我收集了流量中看到的对象ID。访问我的联系方式时,一个是0011r00002IXXXXX。

我的个人资料对象ID的原始(隐藏)视图。已审查部分个人信息。此处可见我的未结案例和订阅服务。包含我联系他们的通话记录。非超级机密,但用于记录我的客户关怀互动。

访问该URL时,我得到另一个提示:Salesforce实例配置不当,暴露原始对象视图通常表明配置宽松。阅读更多关于如何保护的信息。

点击案例,我可更改状态和优先级。影响不大,但我不应能访问此内容。

这已足以让我联系VvAA告知担忧;因此我在2023年3月24日午夜00:00电邮其隐私官。同日12:45,其CISO联系我安排通话讨论当前发现。

当天14:30,我发现了导致所有文件泄露的IDOR。

步骤1

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

左侧攻击者(Chantal)。右侧受害者(Jonathan)

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

“您的最新消息”(Uw laatste berichten)包括共享文件。

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

审查了我的‘RelatieNummer’/客户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政策,使我们未来的研究风险更小。

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

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

时间线

  • 2023-03-24 — 发现VvAA可能易受攻击的提示,联系他们告知我的研究
  • 2023-03-24 — 与VvAA CISO通话讨论当前发现
  • 2023-03-24 — 发现IDOR漏洞1,报告发送至VvAA
  • 2023-03-24 — VvAA确认IDOR漏洞1并进行首次审计检查滥用
  • 2023-04-05 — VvAA邀请我于2023-05-11到办公室
  • 2023-05-04 — 发现IDOR漏洞2,报告发送至VvAA
  • 2023-05-05 — VvAA确认IDOR漏洞2
  • 2023-05-11 — 与VvAA CISO和领导层会面,收到奖励(礼品卡和一瓶葡萄酒)
  • 2024-03-06 — 告知VvAA CISO我想在谈话中提及此漏洞
  • 2024-03-10 — 撰写本报告并与VvAA安全团队分享草案进行事实核查和添加自身段落选项
  • 2024-03-15 — 收到VvAA法律主管和CISO的反馈
  • 2024-03-17 — 发送更新后的报告
  • 2024-03-20 — 在演示期间披露漏洞
  • 2024-03-21 — 对报告进行微小更改,发布报告

#安全 #道德黑客 #医疗 #领导力 #黑客

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计