作者:木卫四科技|汽车网络安全技术团队
资料更新:2026-08-30
核心结论:Kaspersky 于 2026 年 8 月 21 日披露了一条针对 Android 车机(Head Unit)的定制化恶意软件感染链。恶意软件并非通过传统 0-day 漏洞进入,而是借用了 DoFun 车机固件中的合法更新组件 TWCore,将无界面的 JarService 投放器静默安装到设备上,最终加载 zhima 反向代理模块,把车机纳入住宅代理僵尸网络。Kaspersky 将该活动以"高置信度"归因于与 BADBOX 生态相关的 MoYu Group。现有公开证据未显示该事件影响主流整车厂原厂车机,也未显示已触及驾驶控制功能。

一块中控屏,为什么会成为黑产基础设施?答案不是"攻击者想控制方向盘",而是车机具备黑产非常看重的另一种资产:稳定的联网能力、真实设备环境和可长期利用的网络出口。
这起事件真正值得汽车行业关注的,不是又出现了一款 Android 恶意软件,而是软件更新链路本身成为恶意代码的投送通道。这使风险从"设备出厂时是否被植入后门",延伸到"设备整个生命周期内,谁有权通过更新系统把什么代码送进车里"。
一、发生了什么:首次公开记录的"车机专用感染链"
Kaspersky 安全研究员 Dmitry Kalinin 在 2026 年 6 月监测 Android 威胁时发现一个异常应用:它像普通应用一样被安装,却完全没有用户界面。继续追踪后,研究团队重建出一条专门针对汽车 Head Unit 的多阶段感染链。
Kaspersky 对该事件给出的三个关键结论是:
- 发现了一套新的 Android 多阶段下载器,最终目的包括广告欺诈和构建代理僵尸网络;
- 恶意软件通过 Android 车机固件的内置更新器传播;
- 这是 Kaspersky 公开记录中,首个具有"针对车机设备类型的专门感染链"的恶意软件案例,并被高置信度归因于 MoYu Group。
这里必须把范围说清楚:本次公开分析聚焦 DoFun 相关 Android Head Unit 和其固件更新机制。Kaspersky 并未声称主流整车厂原厂座舱系统已受到同类感染,也没有披露车机侧的感染总量。 Dark Reading 后续采访中,Kaspersky 也表示,目前并不清楚其他车机厂商是否存在相似的内置更新系统弱点。
这也是本文后续讨论的边界:我们分析的是一个已经发生的车机供应链/更新链事件,以及它对汽车行业的可复用启示,而不是把 BADBOX 生态的全部感染规模直接等同于"被感染车辆数量"。
二、感染链怎么工作:从 TWCore 到 zhima
下面是这条感染链的完整流程图:
#mermaid-svg-OrUMQ9sXDFdi32oz{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-OrUMQ9sXDFdi32oz .error-icon{fill:#552222;}#mermaid-svg-OrUMQ9sXDFdi32oz .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OrUMQ9sXDFdi32oz .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OrUMQ9sXDFdi32oz .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OrUMQ9sXDFdi32oz .marker.cross{stroke:#333333;}#mermaid-svg-OrUMQ9sXDFdi32oz svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OrUMQ9sXDFdi32oz p{margin:0;}#mermaid-svg-OrUMQ9sXDFdi32oz .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz .cluster-label text{fill:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz .cluster-label span{color:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz .cluster-label span p{background-color:transparent;}#mermaid-svg-OrUMQ9sXDFdi32oz .label text,#mermaid-svg-OrUMQ9sXDFdi32oz span{fill:#333;color:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz .node rect,#mermaid-svg-OrUMQ9sXDFdi32oz .node circle,#mermaid-svg-OrUMQ9sXDFdi32oz .node ellipse,#mermaid-svg-OrUMQ9sXDFdi32oz .node polygon,#mermaid-svg-OrUMQ9sXDFdi32oz .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OrUMQ9sXDFdi32oz .rough-node .label text,#mermaid-svg-OrUMQ9sXDFdi32oz .node .label text,#mermaid-svg-OrUMQ9sXDFdi32oz .image-shape .label,#mermaid-svg-OrUMQ9sXDFdi32oz .icon-shape .label{text-anchor:middle;}#mermaid-svg-OrUMQ9sXDFdi32oz .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-OrUMQ9sXDFdi32oz .rough-node .label,#mermaid-svg-OrUMQ9sXDFdi32oz .node .label,#mermaid-svg-OrUMQ9sXDFdi32oz .image-shape .label,#mermaid-svg-OrUMQ9sXDFdi32oz .icon-shape .label{text-align:center;}#mermaid-svg-OrUMQ9sXDFdi32oz .node.clickable{cursor:pointer;}#mermaid-svg-OrUMQ9sXDFdi32oz .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-OrUMQ9sXDFdi32oz .arrowheadPath{fill:#333333;}#mermaid-svg-OrUMQ9sXDFdi32oz .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OrUMQ9sXDFdi32oz .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OrUMQ9sXDFdi32oz .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OrUMQ9sXDFdi32oz .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-OrUMQ9sXDFdi32oz .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OrUMQ9sXDFdi32oz .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-OrUMQ9sXDFdi32oz .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OrUMQ9sXDFdi32oz .cluster text{fill:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz .cluster span{color:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OrUMQ9sXDFdi32oz .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-OrUMQ9sXDFdi32oz rect.text{fill:none;stroke-width:0;}#mermaid-svg-OrUMQ9sXDFdi32oz .icon-shape,#mermaid-svg-OrUMQ9sXDFdi32oz .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OrUMQ9sXDFdi32oz .icon-shape p,#mermaid-svg-OrUMQ9sXDFdi32oz .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-OrUMQ9sXDFdi32oz .icon-shape .label rect,#mermaid-svg-OrUMQ9sXDFdi32oz .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OrUMQ9sXDFdi32oz .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-OrUMQ9sXDFdi32oz .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-OrUMQ9sXDFdi32oz :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-OrUMQ9sXDFdi32oz .car>*{fill:#e8f1fb!important;stroke:#2f6fb3!important;color:#1a3a5c!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .car span{fill:#e8f1fb!important;stroke:#2f6fb3!important;color:#1a3a5c!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .car tspan{fill:#1a3a5c!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .delivery>*{fill:#f2f4f7!important;stroke:#6c7a89!important;color:#3a4653!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .delivery span{fill:#f2f4f7!important;stroke:#6c7a89!important;color:#3a4653!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .delivery tspan{fill:#3a4653!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .stage>*{fill:#fff4e5!important;stroke:#e59a3c!important;color:#7a4b12!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .stage span{fill:#fff4e5!important;stroke:#e59a3c!important;color:#7a4b12!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .stage tspan{fill:#7a4b12!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .c2>*{fill:#fdecec!important;stroke:#d9534f!important;color:#7c2525!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .c2 span{fill:#fdecec!important;stroke:#d9534f!important;color:#7c2525!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .c2 tspan{fill:#7c2525!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .output>*{fill:#edf7ed!important;stroke:#5cb85c!important;color:#2d5f2d!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .output span{fill:#edf7ed!important;stroke:#5cb85c!important;color:#2d5f2d!important;}#mermaid-svg-OrUMQ9sXDFdi32oz .output tspan{fill:#2d5f2d!important;} 黑产利用
Stage 3:周期任务与代理模块
Stage 1 / Stage 2:载荷投放与 C2 通信
更新指令投递
车机侧:DoFun 固件
true:静默安装恶意 APK
HTTP POST 上报植入信息
返回 dexUrl
TWCore 合法更新组件
MQTT 消息代理 cardoor.cn
installNotExists 是否为 true
JarService 无界面投放器
单字节 XOR 加密 + Java 反射
Stage 2 Loader
C2 服务器
dexUrl 拉取下一阶段载荷
Stage 3 Loader/Clicker
每 90 分钟轮询 /cpc/api/task
loadlib2 / http 命令
zhima 反向代理模块
住宅代理僵尸网络
广告欺诈 / 代理访问
这条链路可以概括为:
合法更新组件 TWCore → JarService 投放器 → Stage 2 Loader → Stage 3 Loader/Clicker → zhima 反向代理模块。

1. 入口:TWCore 的更新能力被用于投放新应用
TWCore(包名 com.tw.core)是 DoFun 固件中的合法系统应用,负责数据采集和软件更新。其更新机制通过位于 cardoor[.]cn 子域的 MQTT 消息代理接收需要下载和安装的 APK 信息。
Kaspersky 特别指出,消息对象中包含一个名为 installNotExists 的布尔字段。当该字段为 true 时,TWCore 可以安装设备上原本并不存在的应用;在 Kaspersky 观测到的恶意样本中,恶意软件均由 com.tw.core 安装。
这里不宜把 installNotExists 简单描述为"一个漏洞开关"。公开资料能确认的是:这一合法更新能力被用于把设备原本不存在的恶意 APK 静默送入车机。 至于攻击者究竟是绕过了更新指令认证、利用了更新包校验缺陷,还是已经取得服务端合法下发权限,Kaspersky 并未公开说明。
2. Stage 1:JarService 无界面投放器
TWCore 安装的 JarService 没有任何用户界面。其代码使用单字节 XOR 对后续载荷信息进行加密,并通过 Java 反射把执行流程交给下一阶段。
这种设计的价值很直接:用户看不到图标,也很难从日常使用体验中察觉异常。
3. Stage 2:从 C2 获取下一阶段载荷
Stage 2 Loader 会通过 HTTP POST 向攻击者服务器上报植入信息,并从 C2 响应中的 dexUrl 获取下一阶段载荷。Kaspersky 给出的示例中,Stage 3 被伪装成 .png 文件下载,再通过密钥解密后执行。
研究人员沿版本号回溯,共获得 7 个 Stage 3 变体,最早版本为 3.57。这说明攻击链并非一次性脚本,而是持续演进的软件化基础设施。
4. Stage 3:周期轮询、下发任务、加载代理模块
Stage 3 默认每 90 分钟向 /cpc/api/task 发起 POST 请求,上报显示分辨率、设备型号、已连接 Wi-Fi 的 SSID、MAC 地址等信息,并获取最新配置和任务。
Kaspersky 发现其代码实现了 9 类命令,包括 HTTP 请求、WebView、深链、代码加载等;在实际观测中,攻击者主要使用 loadlib2 和 http 两类命令。其中 loadlib2 可以下载并执行额外代码。
最终载荷是名为 zhima 的反向代理模块。它把受感染设备变成可远程使用的代理节点,使第三方流量可以通过设备的网络出口转发。
Kaspersky 还发现 admin.uipoxy[.]com、128.14.210[.]58 与 PXYEDGE、ProxyForU 等住宅代理基础设施存在明显关联。其本质不是"黑客接管方向盘",而是把车机的网络连接变成可交易的代理资源。
三、为什么偏偏是车机:它正在变成一种新的 IoT 资产
从黑产经济模型看,车机并不需要存储银行卡、钱包密钥或企业机密,才有攻击价值。
对代理僵尸网络而言,真正有价值的是:
- 联网能力:很多 Head Unit 具备 SIM、Wi-Fi 等联网能力,用于导航、内容服务和软件更新;
- 真实终端环境:相比数据中心代理,来自真实消费设备和真实网络环境的流量更难仅靠 IP 信誉规则区分;
- 低用户可见性:车主通常关注导航、音乐、语音等前台功能,很少检查后台进程和网络连接;
- Android 生态复用:Kaspersky 明确指出,大量 Android 应用同样可以运行在 Android Head Unit 上,恶意软件也不例外。
对于低成本、非认证 AOSP 设备,这些问题更加突出。FBI 在 2025 年针对 BADBOX 2.0 的公共安全公告中,已经把 aftermarket vehicle infotainment systems(售后车载信息娱乐系统) 列入受影响设备类型,并提醒用户关注未通过 Play Protect 认证的 Android 设备和异常网络流量。
因此,这次事件并不是"汽车突然被黑客盯上",而是更大的趋势:任何同时具备通用计算能力、网络出口和远程更新能力的终端,都可能被纳入僵尸网络商业化链条。
四、它与 BADBOX 2.0 有什么关系:规模要分清,归因也要分清
BADBOX 2.0 是一个更广泛的消费级 Android 僵尸网络生态,影响设备包括电视盒子、平板、投影仪以及售后车载信息娱乐系统等。
公开数据需要分口径理解:
- HUMAN Security 在 2025 年披露,BADBOX 2.0 影响超过 100 万台 消费设备,并观察到相关流量来自 222 个国家和地区;
- FBI 2025 年公告使用了"数百万台受感染设备"的表述,并明确点名售后车载信息娱乐系统;
- Google 在 2025 年针对 BADBOX 2.0 运营者提起诉讼,法院随后在 2025 年 9 月作出缺席判决并发布永久禁令。法院文件认定该僵尸网络感染超过 1000 万台设备。
但是,这些数字都是 BADBOX 2.0 整体生态规模,不能拿来推算本次 DoFun 车机感染数量。Kaspersky 并未披露本次车机事件的感染规模和地域分布。
为什么 Kaspersky 把活动归因到 MoYu Group?
Kaspersky 的"高置信度"归因主要建立在三类证据上:
- 代码与命名线索 :Stage 2 中出现
mosdk-host-loader,在关联机顶盒恶意样本中又出现AdmoyuService; - 基础设施重叠:zhima 管理后台、C2 地址以及住宅代理服务之间存在明显关联;
- 独立第三方佐证:Nokia Deepfield ERT 同期在电视盒子生态中独立发现了 zhima 反向代理模块及相似基础设施。

需要注意:Google 的 BADBOX 2.0 案件已经取得针对匿名 Does 1-25 的缺席判决,但该案件并没有司法确认"MoYu Group 就是这些匿名被告"。因此,"Kaspersky 高置信度归因 MoYu Group"与"法院已经确认 MoYu Group 身份"仍然是两回事。
五、"不影响驾驶"为什么仍然是安全事件
下面用一张图梳理"不影响驾驶"但仍然是安全事件的三类风险:
#mermaid-svg-Rc7LumAzHqTu9A2D{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Rc7LumAzHqTu9A2D .error-icon{fill:#552222;}#mermaid-svg-Rc7LumAzHqTu9A2D .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Rc7LumAzHqTu9A2D .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Rc7LumAzHqTu9A2D .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Rc7LumAzHqTu9A2D .marker.cross{stroke:#333333;}#mermaid-svg-Rc7LumAzHqTu9A2D svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Rc7LumAzHqTu9A2D p{margin:0;}#mermaid-svg-Rc7LumAzHqTu9A2D .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D .cluster-label text{fill:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D .cluster-label span{color:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D .cluster-label span p{background-color:transparent;}#mermaid-svg-Rc7LumAzHqTu9A2D .label text,#mermaid-svg-Rc7LumAzHqTu9A2D span{fill:#333;color:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D .node rect,#mermaid-svg-Rc7LumAzHqTu9A2D .node circle,#mermaid-svg-Rc7LumAzHqTu9A2D .node ellipse,#mermaid-svg-Rc7LumAzHqTu9A2D .node polygon,#mermaid-svg-Rc7LumAzHqTu9A2D .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Rc7LumAzHqTu9A2D .rough-node .label text,#mermaid-svg-Rc7LumAzHqTu9A2D .node .label text,#mermaid-svg-Rc7LumAzHqTu9A2D .image-shape .label,#mermaid-svg-Rc7LumAzHqTu9A2D .icon-shape .label{text-anchor:middle;}#mermaid-svg-Rc7LumAzHqTu9A2D .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Rc7LumAzHqTu9A2D .rough-node .label,#mermaid-svg-Rc7LumAzHqTu9A2D .node .label,#mermaid-svg-Rc7LumAzHqTu9A2D .image-shape .label,#mermaid-svg-Rc7LumAzHqTu9A2D .icon-shape .label{text-align:center;}#mermaid-svg-Rc7LumAzHqTu9A2D .node.clickable{cursor:pointer;}#mermaid-svg-Rc7LumAzHqTu9A2D .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Rc7LumAzHqTu9A2D .arrowheadPath{fill:#333333;}#mermaid-svg-Rc7LumAzHqTu9A2D .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Rc7LumAzHqTu9A2D .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Rc7LumAzHqTu9A2D .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Rc7LumAzHqTu9A2D .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Rc7LumAzHqTu9A2D .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Rc7LumAzHqTu9A2D .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Rc7LumAzHqTu9A2D .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Rc7LumAzHqTu9A2D .cluster text{fill:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D .cluster span{color:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Rc7LumAzHqTu9A2D .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Rc7LumAzHqTu9A2D rect.text{fill:none;stroke-width:0;}#mermaid-svg-Rc7LumAzHqTu9A2D .icon-shape,#mermaid-svg-Rc7LumAzHqTu9A2D .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Rc7LumAzHqTu9A2D .icon-shape p,#mermaid-svg-Rc7LumAzHqTu9A2D .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Rc7LumAzHqTu9A2D .icon-shape .label rect,#mermaid-svg-Rc7LumAzHqTu9A2D .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Rc7LumAzHqTu9A2D .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Rc7LumAzHqTu9A2D .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Rc7LumAzHqTu9A2D :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk1>*{fill:#fdecec!important;stroke:#d9534f!important;color:#7c2525!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk1 span{fill:#fdecec!important;stroke:#d9534f!important;color:#7c2525!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk1 tspan{fill:#7c2525!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk2>*{fill:#fff4e5!important;stroke:#e59a3c!important;color:#7a4b12!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk2 span{fill:#fff4e5!important;stroke:#e59a3c!important;color:#7a4b12!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk2 tspan{fill:#7a4b12!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk3>*{fill:#edf7ed!important;stroke:#5cb85c!important;color:#2d5f2d!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk3 span{fill:#edf7ed!important;stroke:#5cb85c!important;color:#2d5f2d!important;}#mermaid-svg-Rc7LumAzHqTu9A2D .risk3 tspan{fill:#2d5f2d!important;} 风险 3:软件更新信任边界失守
风险 2:设备与网络指纹泄露
风险 1:网络资源被滥用
DoFun 车机被植入 zhima
车机网络出口被第三方流量占用
代理访问 / 广告欺诈
账户接管 / DDoS / OTP 盗取
周期性上报设备与网络信息
设备型号 / 分辨率
Wi-Fi SSID / MAC 地址
合法更新组件被用于静默安装新应用
更新链信任模型失效
高权限安装行为难追溯
Kaspersky 和 Dark Reading 都明确指出:就目前已分析的 DoFun 样本而言,该恶意软件属于信息娱乐系统范畴,没有发现其影响驾驶或触及关键车辆控制。
这个边界非常重要,也必须保留。
但"不影响驾驶"并不等于"没有安全影响"。至少存在三类已经可以确认或合理预期的风险。
1. 网络资源被滥用
zhima 的目标是把设备变成反向代理节点。受感染车机的网络连接可以被第三方流量占用,用于代理访问、广告欺诈,甚至为其他攻击活动提供真实终端出口。
HUMAN Security 对 BADBOX 2.0 的研究显示,住宅代理能力还可被下游攻击者用于账户接管、虚假账户创建、DDoS、恶意软件分发和 OTP 盗取等活动。
需要强调:本次车机样本实际消耗了多少流量、耗电多少,目前没有公开量化数据。 因此"高额流量费"或"明显续航损耗"不应作为已证实结论。
2. 设备与网络指纹泄露
Stage 3 会周期性上报设备型号、分辨率、Wi-Fi SSID、MAC 地址等信息。这些信息本身未必等同于高敏感个人数据,但组合后可以形成稳定的设备和网络环境指纹。
对于车主来说,真正的问题是:设备在没有可感知提示的情况下,持续把本不应提供给第三方的信息发送到攻击者基础设施。
3. 软件更新信任边界失守
这起事件对汽车行业最重要的影响,其实不在恶意软件本身,而在更新系统的信任模型。
攻击者最终利用的是一个"本来应该代表厂商可信身份"的系统更新能力。如果合法更新组件能够被用于静默安装新的应用,那么更新链就必须回答四个问题:
- 谁有权下发更新指令?
- 设备如何验证下发者身份?
- 设备如何验证安装包的来源、签名和授权范围?
- 高权限安装行为是否被记录、监测和追溯?
这四个问题,也是从本次事件中最值得车厂和 Tier-1 吸收的工程教训。
六、对车厂和 Tier-1 的启示:不要只封 IOC,要重建更新链的"可证明信任"
针对这类事件,车厂和 Tier-1 可以从五个层面重建更新链的"可证明信任":
#mermaid-svg-SEuiK6zKinoAEA56{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-SEuiK6zKinoAEA56 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-SEuiK6zKinoAEA56 .error-icon{fill:#552222;}#mermaid-svg-SEuiK6zKinoAEA56 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-SEuiK6zKinoAEA56 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-SEuiK6zKinoAEA56 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-SEuiK6zKinoAEA56 .marker.cross{stroke:#333333;}#mermaid-svg-SEuiK6zKinoAEA56 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-SEuiK6zKinoAEA56 p{margin:0;}#mermaid-svg-SEuiK6zKinoAEA56 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-SEuiK6zKinoAEA56 .cluster-label text{fill:#333;}#mermaid-svg-SEuiK6zKinoAEA56 .cluster-label span{color:#333;}#mermaid-svg-SEuiK6zKinoAEA56 .cluster-label span p{background-color:transparent;}#mermaid-svg-SEuiK6zKinoAEA56 .label text,#mermaid-svg-SEuiK6zKinoAEA56 span{fill:#333;color:#333;}#mermaid-svg-SEuiK6zKinoAEA56 .node rect,#mermaid-svg-SEuiK6zKinoAEA56 .node circle,#mermaid-svg-SEuiK6zKinoAEA56 .node ellipse,#mermaid-svg-SEuiK6zKinoAEA56 .node polygon,#mermaid-svg-SEuiK6zKinoAEA56 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-SEuiK6zKinoAEA56 .rough-node .label text,#mermaid-svg-SEuiK6zKinoAEA56 .node .label text,#mermaid-svg-SEuiK6zKinoAEA56 .image-shape .label,#mermaid-svg-SEuiK6zKinoAEA56 .icon-shape .label{text-anchor:middle;}#mermaid-svg-SEuiK6zKinoAEA56 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-SEuiK6zKinoAEA56 .rough-node .label,#mermaid-svg-SEuiK6zKinoAEA56 .node .label,#mermaid-svg-SEuiK6zKinoAEA56 .image-shape .label,#mermaid-svg-SEuiK6zKinoAEA56 .icon-shape .label{text-align:center;}#mermaid-svg-SEuiK6zKinoAEA56 .node.clickable{cursor:pointer;}#mermaid-svg-SEuiK6zKinoAEA56 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-SEuiK6zKinoAEA56 .arrowheadPath{fill:#333333;}#mermaid-svg-SEuiK6zKinoAEA56 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-SEuiK6zKinoAEA56 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-SEuiK6zKinoAEA56 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-SEuiK6zKinoAEA56 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-SEuiK6zKinoAEA56 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-SEuiK6zKinoAEA56 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-SEuiK6zKinoAEA56 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-SEuiK6zKinoAEA56 .cluster text{fill:#333;}#mermaid-svg-SEuiK6zKinoAEA56 .cluster span{color:#333;}#mermaid-svg-SEuiK6zKinoAEA56 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-SEuiK6zKinoAEA56 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-SEuiK6zKinoAEA56 rect.text{fill:none;stroke-width:0;}#mermaid-svg-SEuiK6zKinoAEA56 .icon-shape,#mermaid-svg-SEuiK6zKinoAEA56 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-SEuiK6zKinoAEA56 .icon-shape p,#mermaid-svg-SEuiK6zKinoAEA56 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-SEuiK6zKinoAEA56 .icon-shape .label rect,#mermaid-svg-SEuiK6zKinoAEA56 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-SEuiK6zKinoAEA56 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-SEuiK6zKinoAEA56 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-SEuiK6zKinoAEA56 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#mermaid-svg-SEuiK6zKinoAEA56 .design>*{fill:#e8f1fb!important;stroke:#2f6fb3!important;color:#1a3a5c!important;}#mermaid-svg-SEuiK6zKinoAEA56 .design span{fill:#e8f1fb!important;stroke:#2f6fb3!important;color:#1a3a5c!important;}#mermaid-svg-SEuiK6zKinoAEA56 .design tspan{fill:#1a3a5c!important;}#mermaid-svg-SEuiK6zKinoAEA56 .detect>*{fill:#fff4e5!important;stroke:#e59a3c!important;color:#7a4b12!important;}#mermaid-svg-SEuiK6zKinoAEA56 .detect span{fill:#fff4e5!important;stroke:#e59a3c!important;color:#7a4b12!important;}#mermaid-svg-SEuiK6zKinoAEA56 .detect tspan{fill:#7a4b12!important;}#mermaid-svg-SEuiK6zKinoAEA56 .supply>*{fill:#edf7ed!important;stroke:#5cb85c!important;color:#2d5f2d!important;}#mermaid-svg-SEuiK6zKinoAEA56 .supply span{fill:#edf7ed!important;stroke:#5cb85c!important;color:#2d5f2d!important;}#mermaid-svg-SEuiK6zKinoAEA56 .supply tspan{fill:#2d5f2d!important;} 供应链:把售后与镜像纳入准入治理
运行态:把异常行为变成可观测事件
设计态:把风险挡在安装之前
重建更新链的"可证明信任"
第一层:更新指令可认证、可授权、可追溯
第二层:更新包和新增应用独立信任校验
身份认证 / 权限边界 / 时间有效性 / 审计记录
包签名 / 版本 / 发布主体 / 允许安装范围 / 回滚策略
第三层:监控系统组件静默安装新应用
第四层:VSOC 监测车机出站行为
应用白名单 / 软件基线 / 运行时完整性监测
周期性信标 / 异常代理出口 / C2 通信 / 非业务时段外联
第五层:供应链镜像和售后设备纳入准入治理
固件镜像审计 / SBOM / 签名主体 / 入网策略 / 异常隔离
针对这类事件,单纯增加域名和 IP 黑名单只能解决一时问题。更有效的方式,是把已观测到的 TTP 转化为设计态和运行态控制。
第一层:更新指令必须可认证、可授权、可追溯
设备不能只因为"消息来自自己的 MQTT Broker"就默认执行高权限安装。更新指令应具备明确的身份认证、权限边界、时间有效性和审计记录。
对于可安装"设备原本不存在应用"的能力,应进一步限制:只允许经过白名单授权的包、场景和签名主体使用,并避免使用一个布尔参数直接扩大安装范围。
第二层:更新包和新增应用必须建立独立信任校验
无论最终根因是更新通道认证缺失、包校验缺陷,还是服务端下发凭据已经失守,设备端都应对安装对象实施独立验证,包括包签名、版本、发布主体、允许安装范围和回滚策略。
关键原则是:服务端"有权限下发"不能自动等于设备端"无条件接受"。
第三层:监控"系统组件静默安装新应用"
JarService 没有 UI,并由系统组件静默安装。对于量产车机而言,这本身就应该是一个高价值安全事件:
- 系统应用触发新增 APK 安装;
- 新应用无 UI、后台常驻;
- 应用没有进入预期软件基线;
- 高权限组件加载未知 dex / so;
- 安装后立即出现异常外联。
应用白名单、软件基线和运行时完整性监测应联合使用,而不是只依赖传统"杀毒软件"。
第四层:VSOC 需要监测车机的出站行为
本次事件提供了非常清晰的网络检测抓手,例如:
/cpc/api/task等周期性信标;- 异常代理出口行为;
- 固定或低频 C2 通信;
- 与已知 BADBOX / zhima 基础设施重叠的域名和 IP;
- 车机在非业务时段出现与正常服务不匹配的出站流量。
对车企而言,车机不应再被视为"娱乐域所以不重要"。只要它有公网连接,就应纳入整车安全运营的可观测范围。
第五层:把供应链镜像和售后设备纳入准入治理
BADBOX 2.0 的整体生态说明,低成本 Android 设备的风险往往不仅来自单一应用,也可能来自固件镜像、预装组件、第三方 SDK 或流通环节。
因此供应链治理至少应覆盖:固件镜像审计、第三方系统应用清单、SBOM、签名主体管理、出厂版本基线、远程更新权限、售后设备入网策略和异常设备隔离。
七、合规层面:软件更新安全已经不是"最佳实践",而是整车强制要求的一部分
国际上,UN R155 和 UN R156 分别围绕车辆网络安全管理体系(CSMS)和软件更新管理体系(SUMS)提出型式批准要求,并于 2021 年生效。
国内,GB 44495-2024《汽车整车信息安全技术要求》和 GB 44496-2024《汽车软件升级通用技术要求》已经进入实施阶段。工业和信息化部装备工业发展中心 2026 年 6 月的通知明确:自 2026 年 7 月 1 日起,新申请型式批准的车型应符合 GB 44495-2024 和 GB 44496-2024 要求。
需要区分适用范围:本次 DoFun 事件主要涉及售后加装、非认证 Android Head Unit,这类产品未必直接落入整车型式批准约束。但对整车厂而言,它已经证明了一个现实问题:软件更新安全不能只做流程合规,必须能在技术上证明更新主体、更新包和更新行为都是可信的。
FAQ
Q1:这是不是"黑客可以远程控制汽车"?
不是。现有公开分析没有发现本次恶意软件影响驾驶或关键车辆控制。它的主要目标是广告欺诈和住宅代理僵尸网络。
Q2:主流原厂车机是否受影响?
目前没有公开证据表明主流整车厂原厂车机受到本次 DoFun 感染链影响。Kaspersky 也表示尚不清楚其他车机厂商是否存在相似的内置更新机制弱点。
Q3:BADBOX 2.0 的"1000 万台"是不是 1000 万辆车?
不是。1000 万是 BADBOX 2.0 整体消费设备生态的数量,包括多种 Android 终端,不能外推为车机或车辆感染规模。
Q4:installNotExists 就是漏洞吗?
不能简单这么说。它是一项允许 TWCore 安装设备原本不存在应用的更新能力。Kaspersky 已确认这项能力被攻击链利用,但没有公开说明攻击者如何获得合法更新链的投放权限。
Q5:车厂最应该马上做什么?
优先检查三件事:高权限更新指令的认证和授权、系统组件静默安装新应用的审计、车机异常出站流量的 VSOC 可观测性。
Q6:车主如何判断自己的车机是否中招?
可做三步排查:检查是否有无 UI 的后台应用;观察非业务时段流量是否异常;查看是否安装非认证 APK。发现异常应联系厂商或专业安全团队处理。
Q7:车厂如何验证更新链是否安全?
可做四项验证:更新指令签名校验,确认伪造指令被拒绝;审计日志检查,确认系统组件静默安装行为可追溯;出站流量基线比对,识别异常外联与 C2 通信;供应链 SBOM 核查,确认预装组件来源可信。
这三项能同时覆盖设计态和运行态风险。
结语
这起事件最值得记住的,不是某个恶意域名,也不是某一款 Android 车机。
真正的警示是:当智能座舱越来越像一台持续联网、可远程更新的通用计算机时,软件更新系统本身就成为了最核心的安全边界之一。
过去,汽车行业更习惯把"更新"看成版本分发问题;未来,它必须同时被视为身份、权限、软件供应链和运行时安全问题。
黑产已经把住宅代理、广告欺诈和僵尸网络做成成熟的商业链条。对车厂而言,真正有效的防守也必须从"发现一个 IOC、封一个 IOC",升级为更新链可证明、软件基线可验证、车端行为可观测、供应链责任可追溯。
这比讨论"它有没有碰方向盘",重要得多。
核心数据与事实
- Kaspersky 披露时间:2026-08-21;研究首次发现时间:2026 年 6 月。
- 最早公开可见的 JarService 下载路径日期:2024-11-07(仅证明该路径在当时已存在,不代表持续活跃至今)。
- Stage 3:默认每 90 分钟轮询
/cpc/api/task;代码实现 9 类命令,研究时实际主要使用loadlib2与http。 - Kaspersky:发现 7 个 Stage 3 变体、8 个 zhima 变体。
- HUMAN Security:BADBOX 2.0 影响超过 100 万台消费设备,相关流量覆盖 222 个国家和地区。
- FBI:2025 年公告称 BADBOX 2.0 由数百万台受感染设备组成,并点名售后车载信息娱乐系统。
- Google / 美国联邦法院:BADBOX 2.0 相关案件认定感染超过 1000 万台设备;2025 年 9 月法院作出缺席判决并发布永久禁令。
- 中国:2026-07-01 起,新申请型式批准车型执行 GB 44495-2024 和 GB 44496-2024。
主要参考资料
- Kaspersky Securelist, Dmitry Kalinin, The invisible passenger in your car / First Android malware targeting automotive head units , 2026-08-21.
https://securelist.com/android-head-unit-malware/121106/ - Dark Reading, Android Malware Hijacks Update System for Car Head Units , 2026-08-26.
https://www.darkreading.com/cyberattacks-data-breaches/android-malware-hijacks-update-system-car-head-units - HUMAN Security, Satori Threat Intelligence Disruption: BADBOX 2.0 Targets Consumer Devices with Multiple Fraud Schemes , 2025-03-05, updated 2025-06-06.
https://www.humansecurity.com/learn/blog/satori-threat-intelligence-disruption-badbox-2-0/ - FBI / IC3, Home Internet Connected Devices Facilitate Criminal Activity , PSA I-060525-PSA, 2025-06-05.
https://www.ic3.gov/PSA/2025/PSA250605 - Google, We're taking legal action against the BadBox 2.0 botnet , 2025-07-17.
https://blog.google/innovation-and-ai/technology/safety-security/google-taking-legal-action-against-the-badbox-20-botnet/ - U.S. District Court, S.D.N.Y., Google LLC v. Does 1-25 , Final Default Judgment and Permanent Injunction, 2025-09.
https://docs.justia.com/cases/federal/district-courts/new-york/nysdce/1%3A2025cv04503/643466/41 - UNECE, Three landmark UN vehicle regulations enter into force , 2021-02-05.
https://unece.org/sustainable-development/press/three-landmark-un-vehicle-regulations-enter-force - 工业和信息化部装备工业发展中心,《关于做好〈公告〉标准实施及整改工作的通知》,装备中心〔2026〕347号,2026-06-22.
https://www.miit-eidc.org.cn/art/2026/6/22/art_1657_12509.html