七百家超市的冰箱一夜变成烤箱只差一个没人装的补丁"

admin 2026-10-22 13:58:41 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

七百家超市的冰箱一夜变成烤箱 只差一个没人装的补丁

原创

紫禁
紫禁

紫禁玄科

2026年10月18日 13:53
四川

去阅读

SECURITY · INTELLIGENCE

七百家超市的冰箱一夜变成烤箱 只差一个没人装的补丁

2026年10月17日 · 8 min

网络安全#科普#物联网安全

01

凌晨一点十分 监控屏上一片绿

10月12日深夜,法国中部一家 Intermarché 超市的值班室里,监控大屏是让人安心的那种绿。冷柜温度曲线平稳,制冷机组运转正常,报警列表空空如也。值夜班的人大概还想着明早的到货单。

你猜怎么着,就在同一时刻,这家店的冷藏柜正在悄悄制热。不是故障,不是误操作,是有人坐在不知道哪个国家的屏幕前,把冷冻柜的设定温度改成了50摄氏度。

这一夜,同样的事情在700多家门店同时上演。超市的冰箱,被人改造成了烤箱。

当冷柜开始制热

02

天亮之后 冷柜里全是温的

第二天早上,店员拉开冷柜门的那一刻,故事就从\"有点不对劲\"变成了灾难。牛奶是温的,肉在渗水,冷冻披萨软得能对折。个别门店还冒了小火——制冷剂管路被加热到设计极限之外,谁也没想到冰箱有一天会着火。

按各家自己报的数字:受影响门店700家以上,同一晚。连锁巨头 Intermarché 一家就报了数千万欧元损失,行业整体的账单在数千万到上亿欧元之间。

法国的邻居们一个也没躲掉。安全公司 Sekoia 的分析师对路透社说,西班牙、葡萄牙、波兰、德国、比利时都有门店中招,荷兰一家大型连锁干脆预防性关停了全部系统——宁可不做生意,也不想第二天早上拉柜门。

我做渗透测试这些年,在门店和工厂类客户里见过太多一模一样的拓扑:一台控制器,一根网线,一条厂商的远程维护通道,所有人都默认\"厂家的东西是安全的\"。这次的故事,就是这个默认值的总账单。

03

最阴的一手 是让加热看起来像除霜

讲到这里得科普一小段:冷冻柜为什么会\"除霜\"。

冷柜运行久了,蒸发器上会结冰,冰多了制冷效率就掉,所以控制器每天会安排几次\"除霜周期\"——短暂停止制冷、轻微加热,把霜化掉再回到制冷。这是每台商用冷柜的日常,温度曲线上会看到几个规律的小鼓包,值班员看一百遍也不会多看一眼。

这次的幕后操作者,把这一手玩明白了。他们不光改温度,还把除霜周期拉得又长又密,让冷柜持续加热。于是监控屏上的升温,看起来就像一次\"例行除霜\"。

换句话说:曲线在说谎,事件日志也在说谎。值班员看到的一切都\"正常\",而柜子里的温度一路爬到 50 度。这已经不是砸锁进屋,是把警报器调成了静音再放火。

除霜伪装成了掩护

这里有个可带走的认知:告警的语义比告警本身值钱。如果门店只监控\"温度超没超\",那攻击者把加热包装成除霜就绕过去了;如果监控的是\"除霜期间温度该降不降、除霜频率异常\"这类行为特征,凌晨两点就该有人被叫醒。

04

凶器不神秘 是一份公开了两个月的补丁

看到\"700家门店一夜沦陷\",你可能以为对方手里攥着什么军火级的零日漏洞。抱歉,剧情没那么科幻。

8月9日,安全公司 Claroty 的研究团队 Team82 公开了丹麦丹佛斯(Danfoss)AK-SM 800A 冷藏控制平台的三个漏洞:CVE-2025-41450、CVE-2025-41451、CVE-2025-41452。其中最重的可以远程执行代码,最轻的也能让设备拒绝服务——对攻击者来说,这等于\"能把冷柜改成我想要的任何样子\"。

丹佛斯很快发了补丁。但注意这句话里的魔鬼细节:补丁发了,装不装是客户自己的事。而这些门店的冷柜控制器,绝大多数跑的是 AK-SM 800 或更老的 AK-SC355——前者 2021 年就停止支持,后者 2016 年就停止支持了。

补丁发了不等于装了

法国国家应急响应中心 CERT-FR 周二进一步确认,另一套制冷控制器平台 XWEB(Dixell 及其母公司 Copeland 旗下)也卷入其中。无独有偶,还是 8 月 9 日那一天,同一批研究员公开了 XWEB Pro 的 23 个漏洞,其中 21 个高危。丹佛斯在全球有超过 5 万套装机——这两套系统的覆盖面,大到你无法绕开。

所以这次的故事本质上不是\"黑客太强\",而是补丁太慢。漏洞从公开到被大规模利用,中间隔着两个月,这两个月里只要有一家门店做了升级,那一夜它的冷柜就还能制冷。

05

八月二十六日 有人提前看见了幽灵

故事还有一条平行时间线,比法国那晚早了快两个月。

8月26日起,美国多个军事基地的超市(军营福利社)陆续报告怪事:冷柜一台台\"死掉\"。每个基地起初都以为是电路问题,直到报告的基地越来越多——最后统计,至少14个空军基地、海军设施和陆军驻地的福利社冷柜出现同类故障。

一位独立记者 M. Elizabeth 在 Substack 上写下了那句著名的直觉:\"我自己也知道这听起来很疯狂,但你先听我说完——我觉得军营超市的冷柜有非零概率是被人动了手脚。\"

美军至今没有确认原因。但有个细节让\"巧合\"这个解释变得很难说出口:美国国防福利社管理机构 DeCA 在 2022 年 6 月给承包商的技术规范模板里,白纸黑字把丹佛斯 AK-SM 800A 写成了\"设计基础\"。而冷柜集体出事,恰好在丹佛斯漏洞公开两周之后。

我特别喜欢这条支线,因为它展示了一种很稀缺的能力:对\"荒谬\"保持敏感。在安全这行待久了就知道,最响的警报往往不是仪表盘上的红字,而是\"这件事按常理不应该发生\"的那股违和感。

06

真正的窟窿 在服务商通道上

漏洞是入口,但真正让 700 家门店一夜塌方的,是门后面那条路。

Intermarché 的母企 Les Mousquetaires 给 CNBC 的说法很直白:这次事件是经由其部分门店冷藏系统的外包服务商进来的。

Xona Systems 的 CEO Bill Moore 的吐槽更扎心,我原话引一下:\"很多企业把自己网络分段做得不错,但 OT 这边,有一堆 OEM 厂商和第三方需要访问,而企业基本没管过这些连接。这些连接几乎没有可见性、没有治理。我敢说一半以上的案例都是这样——厂商各自为政,而我们见过太多攻击者从这些第三方通道摸进来。\"

你以为的边界:门店内网是门店的,冷柜是冷柜的。

实际的边界:每一家装维服务商、每一个 OEM 厂商,都可能带着一条不受监控的远程通道直通你的设备。

账单来的时候:为几十家店服务的那家服务商被打穿,你的 700 家店就一起进了报表。

说实话,这条教训跟超市没半点绑定关系。你家的路由器、摄像头、智能门锁,背后一样有厂商云、有装维师傅的远程工具、有\"方便售后\"留下的远程管理端口。门店的冷柜只是把结局演得更惨烈而已。

07

把镜头拉回你家

Waterfall Security 的工业安全副总裁 Andrew Ginter 在这次事件后只给了一句总结:\"把你的设备从互联网上撤下来。\"听上去像废话?

看看数据就不像了。就在本周,用 Shodan 搜一下就能搜到几千台暴露在公网上的丹佛斯系统,光法国就有大约1500台。

换句话说,法国那 700 家门店的故事,素材库里还躺着成千上万份续集。而你家的情况,大概率是没人拿 Shodan 扫过、也没人给你发过补丁通知。

别慌,普通人能做的事很具体。我把自己巡检门店客户时用的两个小脚本简化成了家用版,都只在本地跑,不联网不扫描任何人的设备:

FRIDGE\_WATCH.PY 温度日志体检

\"\"\"冷柜温度日志体检:识别\"制热伪装成除霜\"的异常(纯本地分析,不联网)\"\"\"

from datetime import datetime

LOG = [

# 时间, 温度(摄氏度), 控制器事件

(\"2026-10-12 22:10\", -18.2, \"normal\"),

(\"2026-10-12 23:40\", -12.5, \"defrost\"),

(\"2026-10-13 00:10\", -16.8, \"normal\"),

(\"2026-10-13 01:30\",  -6.0, \"defrost\"),

(\"2026-10-13 02:30\",  12.4, \"defrost\"),

(\"2026-10-13 03:30\",  38.9, \"defrost\"),

(\"2026-10-13 04:30\",  49.7, \"defrost\"),

]

HOT\_LIMIT = 4          # 冷藏区高于4摄氏度即风险

DEFROST\_GAP\_MIN = 240  # 正常一天除霜不超过两三次

def parse(ts):

return datetime.strptime(ts, \"%Y-%m-%d %H:%M\")

def audit(log):

print(\"== 冷柜温度体检 %s ==\" % datetime.now().strftime(\"%Y-%m-%d %H:%M:%S\"))

warn = 0

last\_defrost = None

for ts, temp, ev in log:

t = parse(ts)

stamp = t.strftime(\"%m-%d %H:%M\")

if ev == \"defrost\" and temp > HOT\_LIMIT:

print(\"[!] %s 事件写着除霜,温度却是 %.1fC——加热伪装成除霜\" % (stamp, temp))

warn += 1

elif temp > HOT\_LIMIT:

print(\"[!] %s 温度 %.1fC 超标\" % (stamp, temp))

warn += 1

if ev == \"defrost\" and last\_defrost:

gap = (t - last\_defrost).total\_seconds() / 60

if gap < DEFROST\_GAP\_MIN:

print(\"[!] %s 距上次除霜仅 %.0f 分钟,除霜被加密了\" % (stamp, gap))

warn += 1

if ev == \"defrost\":

last\_defrost = t

if warn:

print(\"结论: 发现 %d 条异常,先断开控制器网络再核查固件\" % warn)

else:

print(\"结论: 未见异常\")

return warn

if \\_name\\ == \"\\main\\_\":

audit(LOG)

实测输出 运行 python3 fridge\_watch.py

== 冷柜温度体检 2026-10-17 08:13:09 ==

[!] 10-13 01:30 距上次除霜仅 110 分钟,除霜被加密了

[!] 10-13 02:30 事件写着除霜,温度却是 12.4C——加热伪装成除霜

[!] 10-13 02:30 距上次除霜仅 60 分钟,除霜被加密了

[!] 10-13 03:30 事件写着除霜,温度却是 38.9C——加热伪装成除霜

[!] 10-13 03:30 距上次除霜仅 60 分钟,除霜被加密了

[!] 10-13 04:30 事件写着除霜,温度却是 49.7C——加热伪装成除霜

[!] 10-13 04:30 距上次除霜仅 60 分钟,除霜被加密了

结论: 发现 7 条异常,先断开控制器网络再核查固件

第一个脚本盯着\"行为\"而不是\"数值\":除霜期间温度不降反升、除霜频率异常加密,都会被抓出来——这正是这次事件里被伪装过去的那两个特征。

HOME\_IOT\_CHECK.PY 固件支持状态自查

\"\"\"家庭/门店 IoT 固件支持状态自查(只读本地台账,不联网)\"\"\"

from datetime import date, datetime

TODAY = date.today()

DEVICES = [

# 名称, 型号, 当前固件, 官方最新, 停止支持日期(None=仍在维护)

(\"路由器\", \"AX3000\", \"1.0.2\", \"1.0.9\", None),

(\"客厅摄像头\", \"IPC-2C\", \"3.1.4\", \"3.1.4\", None),

(\"门店冷柜控制器\", \"AK-SM 800\", \"2.8.1\", \"2.8.1\", \"2021-12-31\"),

(\"车库智能门\", \"G2\", \"0.9.7\", \"1.2.0\", \"2016-06-30\"),

]

def check(devices):

print(\"== IoT 固件体检 %s ==\" % datetime.now().strftime(\"%Y-%m-%d %H:%M:%S\"))

bad = 0

for name, model, cur, latest, eos in devices:

issues = []

if eos and date.fromisoformat(eos) < TODAY:

issues.append(\"厂家已停止支持(%s)\" % eos)

if cur != latest:

issues.append(\"固件 %s 落后于 %s\" % (cur, latest))

if issues:

bad += 1

print(\"[!] %s %s: %s\" % (name, model, \";\".join(issues)))

else:

print(\"[OK] %s %s 已是最新且仍在维护\" % (name, model))

print(\"结论: %d 台设备需要处理,停止支持的优先换新\" % bad)

return bad

if \\_name\\ == \"\\main\\_\":

check(DEVICES)

实测输出 运行 python3 home\_iot\_check.py

== IoT 固件体检 2026-10-17 08:12:16 ==

[!] 路由器 AX3000: 固件 1.0.2 落后于 1.0.9

[OK] 客厅摄像头 IPC-2C 已是最新且仍在维护

[!] 门店冷柜控制器 AK-SM 800: 厂家已停止支持(2021-12-31)

[!] 车库智能门 G2: 厂家已停止支持(2016-06-30);固件 0.9.7 落后于 1.2.0

结论: 3 台设备需要处理,停止支持的优先换新

第二个脚本只干一件事:找出你家里已经\"停止支持\"的设备。就像门店里那些 2016 年就停止支持的控制器,你家的旧路由器、旧摄像头很可能也在这个名单上。厂家不再发补丁的设备,暴露在公网一天就是赌一天。

08

冰箱不会自己变安全

Ginter 给门店开的方子朴素到有点无聊,但每一条都是这次事故的解药:

默认拒绝。防火墙规则先写 deny all,再逐条放行。

白名单 IP。只允许指定的 IP 连进来。

密码加双因素。远程连接必须过这两道。

防火墙自动更新。别把\"记得更新\"交给记性。

用商用或工业级设备。消费级设备常常根本不提供更新。

每四年换一次防火墙。没有安全团队的单位,不会有人发现设备早已停止支持、自动更新悄悄停了。

他的原话值得贴在机房门口:\"这些基础做法挡不住重型关键基础设施里的对手,但足够把随手乱摸的人挡在你的冷柜之外。把你的东西从互联网上撤下来,当急事办。\"

冷柜风险链与防护

回到开头那家超市。监控屏上那片绿,绿得很称职——它按设计监控温度、监控机组、监控除霜,只是没被告知\"除霜\"两个字也可以被别人写进日志。设备不会自己变安全,补丁不会自己装上,服务商的通道也不会自己关门。这些事,都得有人当成事去办。

如果这篇只记住一句话,我希望是这句:\"发了补丁\"和\"装了补丁\",中间差着一整个次元。下次你看到\"固件更新\"的红点,想想法国那 700 家温掉的冷柜。

觉得有用?点个「在看」让更多人看到

紫禁玄科

专注网络安全 · 深度分析

七百家超市的冰箱一夜变成烤箱只差一个没人装的补丁" 网络安全文章

七百家超市的冰箱一夜变成烤箱只差一个没人装的补丁"

法国Intermarché等700多家超市冷柜遭远程攻击,攻击者利用丹佛斯AK-SM800A等冷藏控制平台已公开漏洞(CVE-2025-41450等),将冷柜温度改为50摄氏度并伪装成除霜周期,造成数千万欧元损失。事件暴露第三方服务商远程通道缺乏治理、补丁更新滞后等核心问题。文章提供两个Python脚本用于检测异常温度日志和固件支持状态,建议默认拒绝防火墙规则并加强OT设备可见性。
七国集团拟开展前沿AI网络攻击桌面演练,强化金融系统协同防御" 网络安全文章

七国集团拟开展前沿AI网络攻击桌面演练,强化金融系统协同防御"

七国集团拟开展前沿AI网络攻击桌面演练以强化金融系统协同防御。同时发生多起安全事件:卡通频道数据泄露200GB内部素材;联邦破产法院因承包商遭攻击致系统中断;Next.js存在关键SVG漏洞可致RCE;VibeTech数据库泄露1370万条记录;Ubuntu网站遭DDoS攻击;微软凭证钓鱼活动利用虚假日历邀请;PaloAlto修复被积极利用的PAN-OSRCE漏洞。
AI实战漏洞靶场攻防录" 网络安全文章

AI实战漏洞靶场攻防录"

本文记录AI实战漏洞靶场攻防实验,涵盖信息泄露与提示词注入攻击。通过Flask调试接口泄露系统提示词与API密钥,Chroma和Ollama未授权访问风险。提示词注入绕过黑名单、LLM防护及输出过滤,利用多轮铺垫、角色扮演及伪装管理员等技巧成功获取flag。建议加强接口鉴权、访问控制与输入输出过滤。
[1019]一周重点情报汇总|天际友盟情报站" 网络安全文章

[1019]一周重点情报汇总|天际友盟情报站"

天际友盟发布一周重点情报汇总,涵盖热点威胁、APT攻击分析、技术洞察及暗网数据泄露事件。主要发现包括GhostAction攻击影响数百GitHub代码库、微软补丁日通告、银狐木马专项、Kimsuky组织多路径投递攻击等。暗网方面,国内集装箱航运企业遭勒索及香港酒店数据泄露。建议关注相关威胁情报并加强防护。
评论:0   参与:  0