概述
议题围绕IP视频监控系统展开,分析比较的目标设备分别来自Ananke、大华和Axis,通过对比以上供应商三款产品的分析过程,提出的观点是:尽管供应商对设备固件采取加密和限制访问等措施能产生一种明显的安全感,但从长远来看,透明的设计对评估产品的安全状况以及采取及时的事件响应才有更多的好处。
接下来,将首先介绍研究背景,然后来看三款产品的分析过程对比,最后再依次展示详细分析过程。
研究背景
据统计,2020年全球视频监控市场总值超过 450亿美元,预计到 2025年将增长至 750亿美元。包括交通、城市监控、公共场所和公用事业在内的基础设施部门预计在此期间将实现最高增长。
与此同时,IP 视频监控系统和很多传统网络设备一样,也面临着诸多网络安全风险。它们不仅仅是物联网僵尸网络青睐的“猎物”,而且也是高级攻击者的战略目标。那么在这种情况下,资产所有者能否及时评估IP视频监控系统的安全态势和完整性就显得格外重要。
CISA和NSA联合发布的《选择和加固VPN的安全指南》中也强调了产品易被评估、检查的重要性。“部分VPN厂商对设备进行了加密,导致发生事故时无法及时响应。那些不允许产品所有者对设备进行全面检查的产品会引入额外的风险,并可能导致制造商成为产品支持的瓶颈。而且事件响应过程的延迟将会让攻击者有足够的时间来掩盖他们的踪迹”。
- 固件的可得性,即获得固件的难易程度;
- 固件的可分析性,即固件是否容易被分析,固件是否做了加密或者混淆的处理?
- 设备的可访问性,设备是否允许被检查?
另外,还有一点需要明确,即厂商对固件加密并不等于保证了固件在后期一定不会被篡改,因为接下来的分析成果展示中就将介绍如何修改被加密了的固件。既然加密也并不总能有效地保护固件,那该如何保护呢?作者提出,数字签名能为保证软件(包括设备固件、二进制文件等)完整性提供更有效的帮助。
Part 1三款设备分析过程对比
Annke N48PBB是一款 NVR,能够显示和记录多达 8个以太网供电 (PoE) IP 安全摄像机的镜头。
大华 DHI-ASI7213X-T1是一款人脸门禁一体机。
安讯士(Axis Communications) Recorder是一款紧凑型 NVR,能够支持多达 8个直接连接到它的 PoE IP 摄像机。
NVR 的全称是Network Video Recorders,能够连接到本地以太网并捕获来自同一网络中所有明确配置的 IP 摄像机的传入视频。在设置 IP 摄像机进行监控时,NVR 用作监控和记录所有视频的专用设备。它还提供对整个 IP 摄像机系统的集中管理。通过访问 NVR 的网络面板,操作员可以观看来自所有连接上的摄像头的实时流,并播放存储在设备上的所有视频内容。此外,管理员可以通过对所有连接的摄像机执行维护操作或为任何摄像机设置全局警报来检测特定事件来远程管理摄像机系统。
- 在网上未找到公开提供的固件;
- 联系官方支持获取,未成功;
- 最终从硬件中 dump 出固件;
- 在网上搜索到一个加/解密工具,并且是可用的;
设备的可访问性:
- SSH 是启用的,但由于 shell 保护而无法直接登录;
- 修改固件,重新打包并刷回硬件,在完整性检查的时候失败;
- 对执行完整性检查的代码进行逆向工程;
- 将更新了完整性检查的固件,重新打包并刷回硬件上去;
事件记录:
- 第一次附加调试器执行时,由于存在看门狗而失败;
- 通过逆向寻找去除看门狗的方法;
- 拆除看门狗,测试环境准备就绪;
- 有公开提供的固件;
- 固件是加密的,在网上搜索,没有找到可以直接使用的工具;
- 对内核解密部分进行逆向工程;
- 开发解密工具,在内核上成功,但在其他分区上失败;
- 对分区解密部分进行逆向工程;
- 更新工具,解密所有其他分区;
设备的可访问性:
- 启用SSH,但由于受保护而无法使用;
- 修改固件,重新打包并刷回硬件,在完整性检查的时候失败;
- 对执行完整性检查的代码进行逆向工程;
- 将更新了完整性检查的固件,重新打包并刷回硬件上去;
事件记录
- 第一次附加调试器执行时,由于存在看门狗而失败;
- 通过逆向寻找去除看门狗的方法;
- 拆除看门狗,测试环境准备就绪;
- 官网上有公开提供固件;
固件的可分析性:
- 固件可以用通用工具直接解包;
设备可访问性:
- SSH拥有完整访问权限;
事件分析:
- 第一次调试器执行,环境搭建成功;
Part 2 详细分析及成果
Web 应用程序中有三种账户类型:
- 管理员:此角色的账户拥有完整的系统权限;
- 操作员:该角色具有操作控制客户端和Web客户端上应用程序的所有权限。可以在创建用户时设置自定义权限。
- 用户:此角色具有有限的应用程序操作权限(默认情况下可实时查看、观看回放)。同样,可以在用户创建时设置自定义权限。
Annke Web 界面中允许启用设备上的SSH服务,通过该SSH服务可以执行有限数量的命令。为了获得完全不受限制的 SSH 访问,有必要直接在硬件级别上进行干预来调试系统。
最终通过连接到设备的板载存储器提取出了固件,并对提取出的固件做了如下修改:禁用所有 SSH 限制、添加了几个调试工具(例如gdbserver)。然后又重新将固件写入设备的存储器中。
下图是N48PBB的主板。
查看“ps”的输出最终确认存在漏洞的二进制文件在设备上是以 root 权限运行的。这意味着最初归类为 DoS 的内存损坏漏洞实际上是具有 root 权限的远程代码执行 (RCE) 。如果被利用,此漏洞可能会导致设备完全被控制。
由于默认情况下设备的所有用户都可以访问搜索功能,因此恶意操作员或用户可以直接利用该漏洞(在未修补的 NVR 上)来提升他们在系统上的权限。
此外,由于在该功能中没有发现反 CSRF(跨站点请求伪造)的缓解措施,因此外部攻击者可以在“drive-by download”攻击中间接利用该漏洞。管理员、操作员或用户浏览一个专门制作的网页,同时登录到设备的网络界面,就有可能导致设备本身执行外部恶意代码。
DHI-ASI7213X-T1 的Web 管理界面可用于配置访问控制。可以启用 SSH 访问,但是发现在 Web 界面设置的凭证实际上并不能用于远程 shell,估计SSH 访问仅适用于大华官方支持。
DHI-ASI7213X-T1的固件可以从官网下载,但是当使用 Binwalk 解压二进制文件时,会发现解包过程并没有按预期进行。用Binwalk成功提取到了一系列 uImage 文件,但其中大多数二进制文件的内容都使用专有方法进行了加密。特别是内核和包含最终可执行文件的分区镜像无法访问。
由于bootloader希望映射到的地址与用户空间内存布局兼容,因此编写了一个加载程序,这个加载程序将bootloader二进制文件作为输入并将其映射到正确的地址上。
该设备的内核是带有一些定制的 Linux-4.9.37。它的规模庞大且复杂,这就不得不求助于一些启发式方法来找到负责解密剩余镜像的函数。
这里将 AES 使用的常数作为起点,因为一旦可以清楚地定义 AES 实现的边界,就可以遍历所有引用分组密码算法的函数。
最后,找到了和之前在bootloader中相同的解密程序。不过需要注意的是,密钥导出函数不在解密代码附近。通过进一步分析,确定了密钥导出函数,并发现分区的加密方案与内核使用的加密方案相同。不同的只是一个简单的位置参数。
这一发现意味着接下来可以简单地调整现有的解密工具并使用它来解密剩余的固件,最终在解密后的squashfs镜像上运行Binwalk解包成功。有了对可执行二进制文件的完全访问权,之后就可以进行常规分析了。
通过分析,发现Axis Companion Recorder 中存在以下漏洞:
- 基于堆的缓冲区溢出(CVE-2021-31986、CVSSv3 6.7)
- 网络测试功能中的收件人验证不当(CVE-2021-31987、CVSSv3 4.1)
- 邮件测试功能中的 SMTP 头注入(CVE-2021-31988,CVSSv3 5.5)
通过静态分析固件可以发现blocklist,“httptest.cgi”中的漏洞代码如下:
静态查看固件可以精确识别易受攻击的参数并验证是否缺少输入验证功能,如“smtptest.cgi”中易受攻击的代码:
Part 3 绿盟科技解读
在过去几年中,确实可以看到供应商积极混淆或加密固件的趋势,目的是阻止其他人进行纯黑盒交互以外的任何类型的分析。供应商的这种思路完全可以理解,不过作者从实际经验角度提出的观点也值得深入考虑,设备尽可能透明和开放将允许设备所有者和安全研究人员拥有必要的访问权限和工具来进行分析,从长远来看,这样更有助于提升设备本身的安全性。
[2]https://www.nozominetworks.com/blog/firmware-security-research-dahua-facial-recognition-station/
[3]http://www.airportse.cn/2020/02/26/%E5%A2%83%E5%A4%96%E9%BB%91%E5%AE%A2%E7%9B%AF%E4%B8%8A%E8%A7%86%E9%A2%91%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F%EF%BC%8C%E6%9C%BA%E5%9C%BA%E5%A6%82%E4%BD%95%E9%98%B2%E8%8C%83%EF%BC%9F%EF%BC%88%E4%BA%8C/
[4]https://dahuawiki.com/Thermal/DHI-ASI7213X-T1 下载固件
[5]https://www.dahuasecurity.com/in/products/All-Products/Access-ControlTime-Attendance/AI/Standalone/ASI7213X-V1-T1
[6]https://www.nozominetworks.com/blog/firmware-security-research-dahua-facial-recognition-station/
[7]https://www.nozominetworks.com/blog/new-axis-os-security-research-aided-by-transparent-design/
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。