何时能不被黑客鱼肉?D-Link 智能摄像头又出事了
近些年来各家厂商把“智能”摄像头市场做的是风生水起,许多消费者也想靠这些大眼睛来守护一方平安。对普通人来说,这些智能化的摄像头确实相当方便,只需连上网络,你就能在千里之外获取自己需要的画面。不过,在你享受方便之余又很容易掉入陷阱,因为安全漏洞背后藏着的坏人太可怕了。
最近,ESET 智能家居的研究就显示,D-Link 的 DCS-2132L 云摄像头已然中招,攻击者不但能借助安全漏洞截获并“欣赏”你的监控视频,还能操纵设备固件。
对用户来说,这款 D-Link 摄像头最严重的问题就是其未加密的视频流传输。摄像头与云端以及云端和客户端之间完全不设防的设计为“中间人”(MitM)发动攻击提供了肥沃的土壤,入侵者想调取视频流简直易如反掌。
ESET 的研究显示,客户端与摄像头是通过接口 2048 上的代理服务器进行通信的,使用了 D-Link 自有的信道协议(TCP 信道)。不幸的是,通过这些信道的数据流只有一部分得到了加密,而大部分敏感内容(比如摄像头 IP、MAC 地址、版本信息、视频与音频流请求等)都完全不设防。
追根溯源上去,这一切问题的根源都是 request.c 文件中的一个条件(D-Link自定义开源 boa Web服务器源代码的一部分),它负责处理对摄像头的 HTTP 请求。由于来自 127.0.0.1 的所有 HTTP 请求都被提升到管理员级别,因此潜在攻击者拿到了对设备的完全访问权限。
截获视频与音频流
黑客发动中间人攻击后,就能利用服务器上 TCP 连接的数据流截获 HTTP 请求(视频与音频数据包)。对其进行重构与重播后,攻击者就能在任何时间获取摄像头摄录的音频或视频流,而且是 M-JPEG 与 H.264 双格式的。
当然,重构视频流也没那么容易,攻击者还得一步一步来(这个过程也可以借助简单的程序或脚本实现自动化):
1. 识别出哪些流量代表了视频流,因为这里的流量由多个数据块组成,每个数据块都有特定的标题和定义的长度;
2. 将数据部分与标题分离开来;
3. 最后,将其中的视频合成一个文件。
需要注意的是,播放这个视频文档可能有点麻烦,因为它们还是 RAW 格式。不过,许多播放器(比如 MPlayer)只需一个插件就能吃掉这些文档。
有缺陷的插件
这还没完,“mydlink services”(网络浏览器插件)中也有重大发现。
这款网络浏览器插件不但“控制”着客户端浏览器中 TCP 信道和实时视频播放的创建,还负责通过信道转发对视频和音频数据流的请求,同时侦听着本地服务器上动态生成的端口。
由于该信道可用于整个操作系统,因此用户计算机上的任何应用或用户都能通过简单的请求轻松接入摄像头的网页界面。整个过程连授权都不需要,因为从摄像头网络服务器发出的 HTTP 请求在从本地服务 IP 访问时会自动升级到管理员级别。
这个漏洞还给攻击者行了方便,只要他们愿意,就能替换掉 D-Link 摄像头的固件,更加为所欲为。
“狸猫换太子”
最新消息显示,D-Link 已经成功修复了“mydlink services”插件。
不过,只要黑客愿意,他们还是能通过 D-Link 的信道协议替换用户固件。完成“狸猫换太子”的操作,攻击者只需修改信道中的流量即可(用特殊的 POST 请求替换视频流 GET 请求)。
当然,普通黑客肯定玩不转这一步,因为全程你都得遵守信道协议,将固件植入不同的区块。不过,成功之后就简单多了。那些自制固件能开后门、监控软件、植入木马,甚至可以让受害者的智能摄像头帮忙挖矿。由于无需授权,攻击者甚至能直接让你的设备变砖。
插件虽然修好了,但屁股还是没擦干净
去年 8 月底,ESET 就将相关情况反映给了 D-Link。后者反应也相当及时,承诺会尽快跟进并完成修复。后续测试发现,D-Link 确实解决了一部分漏洞问题,“mydlink services”插件也是绝对安全,但有些问题依旧存在。
截至发稿前,最新版本固件的更新日期依然停留在 2016 年 11 月份,容易被黑客玩“狸猫换太子”的固件漏洞还是没能解决,截获音频与视频流的 Bug 也还在。
因此,如果你正在使用或准备购入 D-Link DCS-2132L 摄像头,别忘了先检查接口 80 是否已经暴露在公共互联网上。同时,如果你要用摄像头监控高度敏感区域,远程接入功能还是不用为好。