拆开自家电视后,他看到了让自己后背发凉的数据流

· 2026-10-25 23:43 · 23 阅读

原创 黑鸟 2026-10-25 23:43 新加坡

一台电视到底能知道你多少事,你爱看什么、跳过哪条广告、客厅里出现过哪些声音,最近一位网名叫log4j的安全研究员,因为自家2025款三星电视推来的广告精准得反常,干脆把机器拆开做了一次完整的reverse engineering(逆向工程),发现逐条发在X上,最后他用一个词概括全部发现,PRIVACY HORROR,隐私恐怖。

log4j的身份是reverse engineer(逆向工程师)兼bug bounty(漏洞赏金)猎手,平时的工作就是拆开设备、读懂代码、找出没人注意的缝隙。这次触发他动手的原因很日常,三星电视里冒出的广告和他近期的关注点贴得太近,他形容为weirdly targeted ads,精准得让人发毛,广告怎么知道得这么细,答案只能去系统内部找。

三星电视跑的是自研的Tizen操作系统,常规做法是先把firmware(固件)从机器里抽出来解包,静态读代码,可这台电视的固件被AES加密,没有密钥,解包工具面对的就是一堆密文,想拿密钥就得物理拆开设备,走UART/JTAG这类硬件调试接口,也就是主板上留给工程师的调试通道。

图1 log4j发布的首条帖子,配终端截图显示已在新款三星电视上拿到root shell

常规路走不通,他最后靠一枚zero day(零日漏洞)撬开系统,拿到root shell(系统最高权限外壳),从这里开始,Tizen里的服务列表、配置文件和运行中的进程才真正对他敞开。

拿到权限后,log4j先做packet logging(网络抓包),把电视进出的数据包逐份记下,从中整理出一套相当详细的telemetry(遥测数据),也就是设备自动回传给服务器的运行与使用记录。他在代码里陆续找到几类处理逻辑,先看最基础的几项。

第一项是audio categorization(音频分类),系统不需要听懂完整对话,只要给声音打类别标签,比如笑声、人声、动物声;第二项是screenshots(屏幕截图),定时把当前画面存下来;第三项是AID,全称cross-device ad tracking ID,跨设备广告追踪标识,作用是让广告商在手机、平板、电视之间认出同一个人,把画像拼完整。

比这更进一层的是computer vision(计算机视觉)处理,模型直接在电视本地运行,画面不必整块上传,电视自己就能判断屏幕上正在播放什么。log4j还找到一个按地区加载的CNN,全称convolutional neural network(卷积神经网络),配套文件是LogoCNN.bin和cnn.mapping,作用类似在电视里复刻了一套YouTube式的观看统计,你点开了什么视频、跳过了哪条广告、播放条走到哪里,都会被记下来喂给广告模型。

社区讨论里还流传着另外两类说法,一是电视本地运行INT8量化的视觉模型来猜测屏幕内容,二是语音客户端能够改动电源指示灯的状态,这两条目前只散见于转述,要等完整技术报告和第三方复现才能定论,先放在待验证清单里。

log4j发现,即使一台电视机身根本没有内置麦克风,系统也会去扫描已经连上的设备,找到soundbar(回音壁)或者Bluetooth(蓝牙)配件身上的麦克风,借过来采集环境声音,供语音相关功能调用。

换句话说,问题不一定出在电视自带的话筒上,你为了听电影音效配的回音壁、连着电视的蓝牙耳机,都可能成为声音入口,这件事的关键不在电视录不录音,而在权限边界划在哪里。

帖子发出后,Hugging Face工程师ngxson主动拿自己的Tizen电视做了独立验证,他用Flipper Zero这台便携硬件调试设备监听麦克风状态,观察到的现象是,麦克风恰好打开5秒后就停止,之后连续等了几个小时,也没有第二次启动。

这个结果要打个折扣看,ngxson自己的电视已经获取root权限,而且多项设置提前关闭,出厂状态下未经改装的电视行为可能完全不同,5秒更像一次唤醒握手而不是持续监听,但仅凭现有观察还不能下结论,需要更多未改装设备的复测数据。

顺带一提,很多三星用户早就在抱怨电视用几年就变慢,过去主流解释是bloatware(预装臃肿软件),后台塞了太多用不上的应用。

log4j给出另一种推测,电视之所以sluggish(迟滞),是因为本地同时跑着音频处理、截屏、AID比对和视觉模型这一串计算,硬件资源被数据加工占掉一截,留给系统界面的自然就少了。

要强调的是,这是一条合理推测,不是经过测量的因果链,慢到底来自预装软件、后台计算还是二者叠加,目前没有官方性能测试数据支撑。

比较有趣的是,调查过程中,log4j借助OpenAI的工具辅助本地分析,结果中途收到OpenAI一封邮件,账号以cyber abuse(网络滥用)为由被停用。他的申辩很直接,工具只用于本地reverse engineering,既没有拿它挖漏洞,也没有对任何系统发起攻击,谈不上违反使用条款。

他在评论区猜测,封号很可能来自primitive classifier(初级自动分类器)的关键词误判,系统扫到逆向、漏洞这类字眼就先拦截再说,OpenAI一方没有公开具体的停用理由。(黑鸟可见,安全研究和恶意攻击之间的边界,现在全靠AI自动分类器拿捏。)

然后他又买了几台。

研究者在旁观察后给出评价,这份文档已经是他在实机上见过对Tizen关键问题最完整的拆解之一,光是滚动浏览就要花不少时间,目前按单项功能累计写出约44份writeup,正式release(公开发布)预计在几天后,他还在让自己的agent继续补充。

文档里的一个审查样本是Contents Recognition Service(内容识别服务),承担channel-number OCR(频道号光学字符识别)和界面识别。静态走查发现,source-triggered(源码触发)的启动路径先请求screen analysis(屏幕分析),之后才读取viewing agreement(观看协议),协议被拒绝并不会中止这条路径;agreement-change callback(同意状态变更回调)只刷新本地存储的viewing flag(观看标记)并写日志,函数体内找不到engine stop、reset或停止消息这类调用。审查者给出的控制流草图如下。

if (!startScreenAnalysis(sourceType)) return false;

initializeResultHandler(); // reads viewing agreement; denial does not abort

if (!getSupportedLanguage()) return false;

startUiAndChannelRecognition();

页面上的标签把话说得很克制,STATIC PATH REVIEWED意为静态路径已审查,RUNTIME UNTESTED和RUNTIME UNVERIFIED意为运行时未测试、运行时未验证,COLLECTION-CONTROL GAP IN SELECTED CODE意为所选代码存在采集控制缺口。也就是说,这是一次静态代码走查,用户退出授权之后机器实际怎么反应还没有测,不能直接等同于实机坐实违规。

独立技术报告的一页,标题为观看协议不否决这条识别启动路径,标注静态已审、运行时未验证

顺着代码继续挖,另一位研究员在固件里找到一个TensorFlow Lite模型,文件名就叫alex.tflite,网络结构对应torchvision.models.alexnet,也就是经典图像分类网络AlexNet。它每隔几秒对一张960×540的画面跑一次INT8量化推理,目标说出来很直接,判断你正在玩什么游戏。

识别方式并不高明,模型抽出特征向量后拿去和本地数据库做nearest neighbor(最近邻)比对,研究者自述这套东西99%的情况下根本认不出来,却每隔几秒白耗一次CPU。更耐人寻味的是,算完的结果似乎直接被丢掉,因为consent gate(同意检查门)排在更后面,模型先跑、授权后查,输出在到达检查门前就进了真空。

他同时dump了一些中间文件,包括capture.json、latest.png、rb-swapped.png这些,看起来是在对输入图像做通道处理、对比或者保存推理结果。整个过程发生在内容识别服务里,而用户的观看协议确认(consent gate)被放在后面。

也就是说,模型先开始分析屏幕,结果先写出来,然后才轮到询问你是否同意。

屏幕分析的启动路径并不依赖用户同意,拒绝协议也不会中止这条路径。实际运行时即使你关掉相关开关,识别引擎是否真的停下来,目前还没被完全验证。

从性能角度看,电视CPU每隔几秒就要为这个几乎不准确的任务做一次完整前向推理,再做一次特征比对。

即使结果最后被丢弃,电力和算力已经花掉了。

对普通用户来说,这可能只是后台多了点负载,让电视偶尔显得卡一点。

他同时放出了模型计算图和一批dumped captures(转储截图),证据目录里有capture.json、channel-comparison.png、latest.png、latest.rgb和rb-swapped.png,属于留给第三方核对的原始材料。

研究者整理的证据目录,包含抓包记录capture.json、画面对比图与转储帧

除此之外,社区还流传着一条待验证说法,语音客户端能够改动电源指示灯的状态,这条只见于转述,要等完整技术报告和第三方复现才能定论。

不过,智能电视采集观看行为并不是三星独有的做法,行业里有个标准术语叫ACR,Automatic Content Recognition(自动内容识别),原理就是电视通过截屏或者声音指纹识别你正在播放的节目,再回传给广告系统,多数品牌的隐私协议里都写着这一项,只是普通用户很少逐字读完。

过往LG等品牌也被类似指控过,智能电视的隐私问题从来不是某一家厂商的孤案。只是目前,来自单台机器,具体型号、firmware版本、raw log(原始日志)和抓包数据包都还没公开,第三方暂时无法复现;log4j表示完整write-up(技术报告)正在撰写,会附上让别人重复验证的方法;三星和Tizen官方截至报道时没有给出回应。

还有一层容易被忽略,三星公开开发者文档里,SmartThings平台本身支持婴儿哭声、狗叫声识别,用于宠物照护等可开关的家庭自动化功能,逆向看到的代码有可能和这些正常功能重叠,被放大解读成全程窃听。现阶段更严谨的表述是,系统里存在一套值得核查的数据处理逻辑,而不是已经坐实电视在持续录制全家对话。

在官方报告出来之前,普通用户可以这么做:

第一,进入设置关掉个性化广告和基于观看习惯的推荐,这一步直接切断AID驱动的广告画像。第二,关闭语音唤醒(Bixby wake-up),需要时按遥控器上的麦克风键再说话,避免常开监听。第三,检查外接回音壁和蓝牙设备的麦克风授权,不用的外设直接断开配对。第四,找到ACR或观看信息收集类选项关闭。如果只看有线电视盒或者流媒体盒子,最彻底的办法是拔掉网线,电视立刻退回成一块普通屏幕。

最后,研究员说:我们终于找到一家真正倾听用户心声的公司。

虽说是玩笑,但黑鸟认为背后是个很实际的问题,智能电视出厂那天,用户在冗长的隐私协议里到底点头授权了什么,大部分人其实答不上来,而这正是每一次类似事件真正值得讨论的部分。

相关阅读:智能电视正在成为全球AI数据爬虫的住宅代理节点

跳转微信打开

本文转载自微信公众号「黑鸟」,查看原文。版权归原作者所有,如有侵权请联系删除。