我的安全摄像头在登录页面中泄露了一个 GitHub 管理员令牌
Hacker News 摘要原标题:My security camera shipped a GitHub admin token in its login page
作者最近再次关注安全摄像头领域,特别是因为 AXIS 公司开始推动在其摄像头上运行 Linux 应用程序,这使得此类设备在企业环境中成为更重要的安全目标。作者在研究韩华视觉(Hanwha Vision)时,发现其网站提供了各型号摄像头的固件包。
固件提取过程
作者下载了固件镜像并使用 binwalk 尝试提取。镜像内部包含一个针对 AI 功能的压缩包以及一个名为 fwimage.tgz 的文件,后者被标记为已加密。
通过参考 Matt Brown 之前的研究,作者尝试使用 HTW 加上型号(如 HTWXNP-9300RW)作为密码,成功解开了第一层加密。然而,内部还有一个嵌套的 fwimage.tgz 文件,采用了不同的加密方案。
作者在外部压缩包中发现了一个名为 fwupgrader 的二进制文件。通过将该文件放入 Ghidra 反汇编工具,并结合 Claude Code 辅助分析,作者理清了其加密逻辑。韩华视觉在固件升级程序中对解密方式进行了混淆:AES 密钥与二进制文件中的小型静态键表进行异或运算后在运行时重新组装,而初始化向量 IV 则是以明文形式存储。该程序直接调用 OpenSSL 命令行工具进行解密。
经过重构,作者获取了该系列型号通用的密钥和初始化向量:
• KEY: dfa049bb922e63e2decc764af5628068e5b7a2662e479a615b14643e567579b0
• IV: 53f926801b81454a4f889c9a390db6e6
发现 GitHub 令牌
成功解密并获得完整的根文件系统后,作者使用 trufflehog 扫描敏感信息。结果在约 30 个文件中发现了重复的 GitHub 令牌。经过验证,该令牌拥有韩华 GitHub 组织中数百个代码仓库的管理权限。
造成泄露的原因是韩华使用 Vite 构建摄像头的用户界面。在构建过程中,一个变量被设置为整个 process.env,导致持续集成 CI 任务的所有环境变量都被写入了这些文件中。这意味着任何能够访问该摄像头管理界面的用户,都可能在无意中接收到这个 GitHub 令牌。
可疑的 IP 地址与背景调查
除了令牌,环境变量中还包含了指向美国国防部的 IP 地址,例如:
• SWARM_MASTER_NFS_ADDRESS: 55.101.212.23
• OTEL_ELASTIC_URL: 相关地址也指向 55.网段
作者对此感到困惑,并调查了韩华视觉的背景。韩华视觉前身为三星泰科,是韩华集团的子公司。韩华集团旗下的其他业务涉及 K9 自走炮、K10 弹药补给车以及 SGR-A1 哨兵机器人等军事装备。作者推测,这可能是因为其 CI 平台是由集团内部某个中心团队提供的,因此共享了韩华航天或韩华防务等关联公司的环境配置。
深入调查与漏洞披露
为了确认这是否为普遍现象,作者抓取了韩华网站上约 500 个摄像头的固件,并成功解密了其中 62% 的固件。调查结果显示,只有三个固件包含 GitHub 令牌,且均属于同一个令牌。
作者随后向韩华报告了该安全问题。韩华在 12 小时内做出了响应,并确认已撤销该令牌。作者对韩华处理漏洞的高效率表示赞赏。