Advisory
打开页面本身就是下载
有读者质疑:仅仅加载一个网页,不可能攻陷一部手机——总得下载并运行点什么才行。这在 2015 年是对的。本文说明为什么打开页面本身就已经是下载,一条国家级 iOS 利用链如何在半年内变成商品化犯罪软件,以及为什么同一场攻击对安卓访问者只显示一个钓鱼表单。
- 首次发布
- 2026-09-02 06:25 UTC
- 最后更新
- 2026-09-02 15:08 UTC
有读者对我们此前的一则安全提示提出了质疑。这个质疑提得很好——好到值得专门写一篇长文来回答,因为我们认为大多数技术能力不错的人,至今仍持有同样的看法:
放在 2015 年,这是一条合理的经验法则。放到今天,它就是错的。仅仅加载一个网页,就完全足以攻陷一部 iPhone;而到了 2026 年,这已经不再是只有国家级预算才够得着的东西。
打开页面本身就是下载
需要替换掉的心智模型,是「下载」这个词。加载页面这件事本身就已经是下载并执行了。浏览器把一个陌生人写的程序——JavaScript——取回来并运行;接着还要解析同一个陌生人提供的图片、字体、视频和样式表,而这些解码器是用 C++ 写的。这一切都发生在沙箱里,而沙箱是这个页面与你的设备之间唯一的屏障。
沙箱不是一堵墙,它是一个假设:假设 WebKit 和内核在今天不存在可触达、可利用的漏洞。WebKit 有几百万行 C++ 代码,而苹果每年都要多次发布标记为已在野外被利用的 WebKit 漏洞修复。
「必须下载一个 .exe 才会中招」是 Windows 时代的思路。在 iOS 上,你根本无法运行下载来的可执行文件——而这恰恰就是一条完整的 Safari 到内核利用链在历史上能卖到七位数美元的原因。无法侧载并没有把正门拆掉,它只是让浏览器成了那扇正门。
这条脉络已有十年之久
这些都不是新鲜事。曲线上有三个被充分记录的节点:
- 2016Pegasus 的 Trident 利用链,仅凭在 Safari 里点一下链接,就攻陷了一部补丁齐全的 iPhone。一次点击,没有安装提示,也不需要输入任何凭据。
- 2019Project Zero 记录了一批被入侵的网站,它们会感染任何访问过的未打补丁 iPhone。没有定向筛选,无需交互——访问本身就够了。
- 2023Predator 的投递方式,是劫持目标日常的、未加密的 HTTP 浏览流量,并把利用链注入其中。受害者只是在正常上网。
2026 年发生变化的不是能力本身,而是分发方式。
2026 年:这项能力被出租了
今年 3 月,Google 威胁情报团队——联合 iVerify 与 Lookout——发布了一份分析报告,对象是一条被追踪为 DarkSword 的完整 iOS 利用链工具包。它影响 iOS 18.4 至 18.7,串联六个漏洞(其中三个在当时属于零日),并且至少自 2025 年 11 月起就已投入使用。
那份报告里,有两个细节比漏洞数量更重要。
第一个是使用者名单。土耳其境内的活动被关联到一家土耳其监控软件厂商;该厂商的另一个客户在 1 月被发现用同一条链攻击马来西亚用户;而另一个独立的疑似间谍团伙,则对乌克兰用户发动了水坑攻击——把利用链植入到目标会自行访问的网站上。一条利用链,多双互不相干的手。这是一种供应商关系,而不是一次定制行动。
第二个是,研究人员发现有证据表明,这条链的开发或定制过程可能得到了 AI 的辅助。无论你如何看待这一具体发现,它所指向的方向才是这里的关键:进入门槛正在下降,曾经只有少数几家厂商掌握的能力,正在向外扩散。
然后,它变便宜了
9 月 1 日,Socket 发布了针对这一趋势「下沉版本」的研究——而这一次根本不是间谍活动,是盗窃。
十三个恶意 Composer 主题包被发布到 Packagist,分属若干个命名空间。越南的影视与漫画站点用 composer require 安装了它们,于是这些站点的前端资源被悄悄植入了木马。此后每一位访问者都会收到被注入的 JavaScript。
这段脚本会做一次分流:
- 大多数移动端访问者被导入广告欺诈与博彩跳转链路。吵闹、赚钱、平平无奇。
- 而使用未打补丁 iPhone 的访问者,拿到的则是一条 WebKit 到内核的利用链,并被植入间谍软件。
AppleM2ScalerCSCDriver 这个 IOKit user client 触达内核,最终取得内核读写权限这条链从两个 WebKit 漏洞入口,最终取得内核读写权限。请注意这些漏洞的性质:它们是 N-day,而非零日。两者都早已公开、也早已修复。整套商业模式所依赖的,就是苹果发布修复与某个具体的人真正装上它之间的那段时间差。这套工具包攻击的不是 iPhone,而是很久没更新过的 iPhone——对于一台被当作家电来使用的设备而言,这个群体大得惊人。
于是就说到了一份免费 VPS 优惠
8 月 31 日,一个域名完成注册。到 9 月 1 日,它已经开始传播。
诱饵的设计很贴合其目标受众:一家云服务商宣布开启内测,前 5,000 名注册者可获赠免费 VPS,最长三年。它通过邮件邀请,以及更有效的推广返利链接,在 VPS、运维和区块链社区中扩散。
推广返利这个机制,才是防守方真正该停下来琢磨的地方。它不只是在分发链接,它是在招募社区里那些已有声望的老成员去分发链接,并用他们自己的信誉为其背书——因为这么做能让他们多拿一段免费时长。消息不是来自陌生人,而是来自一个你已经读了好几年发帖记录的人。至少有一位曾分享过推广链接的人,事后公开发帖收回并提醒他人避开。
该页面被报告的行为:
据称有一条推广回复特意强调,预约链接「一定要用手机打开」。任何真实的 VPS 预约页面都没有理由提出这种要求,而一套只针对移动端的利用工具包则完全有理由。
哪些可以确认,哪些不能
我们希望在证据层级上说得精确一些,因为上述三件事所处的确认程度并不相同,把它们并列成同等可信是不诚实的。
DarkSword 与 Packagist 事件属于厂商发布的研究成果。有具名研究者、有 CVE 编号、有可复现的技术细节,且发布方需承担组织层面的问责。这些可以当作已确立的事实。
免费 VPS 这一起则属于社区来源。该活动确实存在,这一点有充分佐证:推广行为在多个帖子中留有记录,域名注册日期可以核查,并且有参与者公开撤回了自己的推广贴。仅凭这些,就足以据此采取防御措施。
但那些深层技术结论——具体的利用链、确切的分阶段方式——来自一份匿名分析,既未给出 CVE 编号,也没有样本哈希,而且是在一天之内产出的。如果作者是认出了一套已知工具包,这个速度是做得到的;如果是连夜逆向出一条全新的利用链,那就相当惊人了。上文 Socket 的研究,才是让这份报告显得可信的原因,而不是反过来:相同的版本区间、相同的窃取数据清单、相同的加密货币动机、相同的「先指纹识别再加载对应载荷」架构。一套租来的 N-day 工具包,专打一年没更新过系统的人,长的就正是这个样子。
我们的立场是:可信到值得据此防范,但还不足以当作事实来引用。若情况有变,我们会像处理以往的安全通告那样,在本文内就地更新。
「零点击」这个词用错了,而真相也没好到哪去
那份社区报告的标题把它称为零点击攻击。它不是;而这个区分值得保持清晰,因为它决定了什么才能保护你。
零点击指的是完全不需要用户做任何动作——一条消息送达,设备在你打开任何东西之前就已被攻陷。而本例需要你去打开一个链接。按标准分类,它属于一次点击(one-click)、水坑或挂马攻击。
这个区分之所以重要,原因很实际:面对一次点击型的利用链,链接使用习惯确实能保护你;面对真正的零点击利用链,它保护不了你,能起作用的只有补丁版本和锁定模式。
但也别从中获得太多安慰。这里的「一次点击」,指的是打开一个你信任的人发给你的链接。没有第二次确认,没有下载进度条,没有安装对话框,也没有权限申请弹窗。打开它,就是全部的用户操作流程。这个词是用错了;但对受害者而言,实际差别只有一次点按。
安卓能免于这次攻击吗
就这条链而言,能。就这一类攻击而言,不能。
这条链由 WebKit 与 JavaScriptCore 漏洞、一个 iOS 的 IOKit 内核驱动,以及针对特定 iPhone 机型的逐版本偏移表构成。这些在安卓上都不存在。两起事件也都从行为上印证了这一点:在 Packagist 一案中,注入脚本会判断平台,把安卓访问者送去广告欺诈横幅;在免费 VPS 一案中,安卓与桌面端访问者只会看到钓鱼表单。
但这一类攻击就是另一回事了。Chrome、V8 和 Android WebView 与 WebKit 属于同一种造物:解析恶意输入的巨型 C++ 引擎。2026 年内,Google 已经修复了五个在野外被利用的 Chrome 零日,其中一个让远程攻击者仅凭一个构造的 HTML 页面,就能在浏览器沙箱内执行代码。这与 iOS 利用链的第一步,是同一个动作。
这五个分别是 CVE-2026-2441、CVE-2026-3909、CVE-2026-3910、CVE-2026-5281 与 CVE-2026-11645。最后一个是 V8 中的越界读写漏洞。
安卓的挂马利用链同样有据可查,其中一条串联了一个 Chrome 零日、一个仅影响安卓的 Chrome GPU 沙箱绕过,以及一个 Mali GPU 提权漏洞,通过短信链接投递。
安卓真正的不同之处
三点真实差异,而且它们并不都指向同一个方向。
真正能保护你的东西
对这两起有据可查的 iOS 攻击活动来说,补丁版本具有决定性作用——而版本号里藏着一个陷阱:
除打补丁之外,还有一条结构性建议:不要把钱包助记词材料放在你用来点链接的那台设备上。两起事件的最终载荷都盯上了钥匙串与钱包应用。一个硬件钱包,或一台专用设备,能把「全部损失」变成「有点麻烦」。
另外,请把「请用手机打开」当作一个异常信号。正规的注册页面不会在意你用什么设备,而只针对移动端的利用工具包非常在意。
如果你已经打开过
请按以下顺序,假定已被攻陷,而不是心存侥幸:
- 先转移资金。如果那台设备上装有钱包应用,就把助记词视为已经泄露。将资产转移到一个密钥在别处生成的钱包中。不要只是改个密码——助记词本身就是账户。
- 然后更新,再重启。装上当前的 iOS 版本。这类植入体很多都无法在重启后存活;更新并重启既堵住了漏洞,也清掉了非持久化的那一阶段。
- 轮换钥匙串里的一切。已保存的密码、Wi-Fi 凭据、会话 Cookie。先在所有设备上退出全部会话,然后用另一台设备去修改密码。
- 检查账户里的「新增项」,而不只是登录记录。新的两步验证方式、新的找回地址、新的 API 密钥、新的已授权设备。被窃取的 Cookie,会被用来添加一条长期可用的返回通道。
攻击链各阶段(据报告重建)
依据 Socket 公开发布的 Packagist 事件分析重建。阶段边界对取证很关键:每一阶段留下的痕迹不同,而且只有最后一阶段是持久化的。
AppleM2ScalerCSCDriver 这个 IOKit user client,最终取得内核读写。到这一步,沙箱已不构成边界。防守方应从这个形状里带走两个事实。第一,只有第 1 阶段会触及每一位访问者——一个正在提供注入脚本的站点,对其全部受众都是危险的,尽管几乎没有人会走到第 4 阶段。第二,两次的入口条件都是已修复的漏洞,所以暴露与否取决于更新滞后,而不是用户行为。
暴露面对照表
疑似中招设备的处置顺序
此处的顺序与面向普通读者的建议刻意不同。博客版告诉机主立即更新并重启,当目标是止血时这是对的。但如果目标是确认设备是否被攻陷,重启会摧毁证据——这些阶段中有几个并不持久化,只存在于易失状态中。
- 先决定你要哪一个:恢复,还是证据。通常二者不可兼得。若资金有风险,选恢复,并接受证据的损失。
- 若要证据:在重启之前先取证。重启前采集的 sysdiagnose,比重启后采集的保留得多得多。访问时间点前后 WebContent 或 GPU 进程的反复崩溃,是最可能留存下来的痕迹。
- 把钱包材料视为已泄露,而不是「有风险」。第 5 阶段直接以它为目标。密钥轮换不是可选项,也无法靠打补丁挽回。
- 审计「新增项」,而不是访问记录。被窃取的 Cookie 会被用来注册一条持久的第二通道——新的 MFA 因子、找回地址、API 密钥、已授权设备。干净的登录历史什么也证明不了。
- 检查网络,而不只是手机。Wi-Fi 密码在窃取范围内。一台被攻陷的手机,意味着它保存过的每一个网络的凭据都已暴露。
评估结论,以及什么会改变它
我们明确标注置信度,因为这三件事的确立程度并不相同,而一份把它们混为一谈的通告,价值低于一份不这么做的通告。
什么会提升这条低置信度结论:公布的样本哈希、第二份独立分析,或厂商确认并指出相同的 CVE。什么会降低它:该诱饵最终只是一个普通的凭据钓鱼页面,没有任何按版本分流的载荷——这是零假设,而我们自己所见的任何证据都不足以排除它。
对于这起免费 VPS 活动,我们手上没有任何捕获的样本。本通告中关于它的一切都是二手信息。我们把这一点直说,而不是让本站「可应要求分享载荷」的常设声明去暗示相反的情况。
时间线
- 2025-11据后来的 GTIG 分析,DarkSword 已投入使用。
- 2026-03GTIG 联合 iVerify 与 Lookout 发布 DarkSword 分析——一套在商业厂商与疑似国家背景攻击者之间共享的完整 iOS 链。
- 2026-08-31免费 VPS 诱饵域名完成注册。
- 2026-09-01Socket 发布 Packagist 主题包事件分析。同一天,该诱饵域名已在 VPS、运维与区块链社区中传播。
- 2026-09-02本通告发布。撰写时该诱饵域名仍可解析。
自行验证的方法
如果你不想只听别人的说法,想自己验证那套分流逻辑,请在一台并非目标的机器上操作:在 Linux 上用 iPhone 的 User-Agent 加上该社区论坛作为 Referer 去取回页面脚本,再与桌面 User-Agent 收到的内容做对比。按 User-Agent 分发载荷是这类工具包的标配,而桌面 User-Agent 极可能只会拿到干净的 JavaScript。
不要用手机做这件事,也不要用持有钱包材料的设备做。伪装(cloaking)是双向的:扫描器把一个活跃的钓鱼站点报成「干净」,是预期之内的结果,而不是一个令人安心的结果。
威胁指标
event.polarnode[.]vip 诱饵主机,注册于 2026-08-31 CVE-2025-31277 WebKit,修复于 iOS 18.6 CVE-2025-43529 WebKit,修复于 iOS 18.7.3 / 26.2 AppleM2ScalerCSCDriver 用于触达内核的 IOKit user client Packagist 命名空间: vsmov, vsphim, haiau009, chilltvcms, ophimcms
为什么这篇文章里没有任何链接
我们公布的每一个恶意地址都以无害化形式书写,没有一个是可用的链接。把钓鱼主机名渲染成一个活的超链接,会让文章本身变成一次跳转,把我们的一部分信誉借给该攻击活动,并且等于请求搜索引擎把二者关联起来。我们的发布流程会强制执行这一点:一旦某个主机在文中任何位置以无害化形式出现,它就不能在文中任何其他位置承载活链接。
本文引用的厂商研究,按名称很容易检索到。比起由我们放置一个链接,我们更希望你通过自己执行的一次搜索抵达那里。