一台正在街头执勤的车牌识别摄像头,被拆开之后,里面躺着2018年的安卓补丁、2017年的Linux内核,以及一串直接写死在代码里的API密钥。

这不是实验室里的退役设备,是在役的Flock ALPR摄像头。DDoSecrets公布了一批该设备分区的文件系统镜像,404 Media和Wired做了联合调查。一个叫stegan0gram的团体把设备从现场"解放"出来,拆解、逆向,然后公开了结果。

打开网易新闻 查看精彩图片

一位参与者在采访中说得很直白:"既然能逆向它们、找出那些监视我们的人的秘密,为什么只是砸掉?"

打开网易新闻 查看精彩图片

补丁停在八年前

这台摄像头跑的是定制版安卓。固件提取的时间点是2025年6月5日,构建日期很新,但系统版本是Android 8.1——2017年发布,2021年就停止官方支持。

更麻烦的是安全补丁级别:2018-06-05。也就是说,这台设备错过了过去八年里几乎所有的安卓安全更新。

底层内核同样陈旧。Linux 3.18.71,2017年发布。3.18系列维护到2019年5月,最终版本是3.18.140——这台设备连那个终点都差了69个版本,内核落后超过九年。

作者列出了两个公开漏洞,这台设备的补丁级别都早于修复时间:

  • CVE-2021-1905:高通Adreno GPU的释放后使用漏洞。设备上任何代码,包括非特权应用,都能通过GPU驱动破坏内核内存,进而完全控制设备。2021年5月修复。
  • CVE-2018-9568(代号WrongZone):内核socket类型混淆。摄像头上的程序可以借IPv6的socket处理提权到root。2018年12月修复,公开利用代码已经存在。

作者强调自己没有实机验证这些攻击是否奏效,但补丁级别早于所有漏洞的修复时间,这一点是确定的。

写死在代码里的钥匙

固件里包含20个Flock应用,其中19个共用同一个库。反编译之后,CameraSettings类里有一个方法,直接返回一串字符串——一个硬编码的API密钥

打开网易新闻 查看精彩图片

Flock在hpnotiq.flocksafety.com上跑着一个后端服务。摄像头需要新凭证时,就带着这个密钥发请求,请求体里只放MAC地址。

按照这个逻辑,只要知道任意一台Flock摄像头的MAC地址,就能用它换取对应的凭证。接口返回的是Auth0的client ID和secret,摄像头拿到之后以明文存储。

这些凭证可以进一步换取短期bearer token,用来以该摄像头的身份访问Flock的后端服务器。作者表示不确定这组凭证是否仍然有效,因为他没有尝试连接——那样做未经授权是违法的。

厂商的回应

Flock发言人在给两家媒体的声明中表示,公司重视安全,设有公开的漏洞披露政策,但没有通过该流程收到报告,基于目前有限的信息,不足以评估这些说法。声明鼓励相关人员通过漏洞报告流程提交技术发现,以便安全团队审查并采取适当行动。

作者对此的回应只有一个词。

数据集的下载地址已经公开,任何人都可以自己解包、翻看build.prop里的版本号,或者从boot分区里提取内核镜像验证Linux版本。整件事最刺眼的地方不在于漏洞本身有多新,而在于一台部署在公共空间、持续采集车牌信息的设备,其软件栈的维护状态停留在八年前。