解密SonicOSX固件:逆向工程与密钥提取全解析
摘要
Bishop Fox研究人员成功逆向工程了SonicWall SonicOSX固件的加密保护机制,通过分析VMware OVA镜像提取密钥,并逐步解密固件文件系统。研究团队在DistrictCon Year 0会议上展示了完整流程,并开源了自动化工具Sonicrack,用于从VMware虚拟机组中提取密钥并解密NSv固件镜像。
背景
SonicWall生产一系列下一代防火墙设备,广泛用于大型企业网络边界保护。设备运行SonicOS操作系统,当前支持主要版本5至8。自版本7.0.1起,操作系统升级为SonicOSX,带来了平台功能、OS架构、文件系统组织和固件打包方式的重大变化。值得注意的是,版本7.1.1及以后的NSv虚拟机使用与硬件设备相同的专有SIG加密格式。
操作步骤第一部分:提取密钥
- 解包OVA镜像:OVA包为tar归档文件,解包后获得VMDK虚拟磁盘文件。
- 分析虚拟磁盘:使用7zip解包VMDK文件,发现多个嵌入卷,仅BOOT和INSTALL-CACHE卷包含文件。
- 检查固件加密:对SIG格式固件运行binwalk,显示高熵值,表明文件已加密。
- 分析引导加载程序:在EFI引导加载程序中,通过Grub配置发现initramfs.gz初始RAM磁盘。
- 解密初始RAM磁盘:解包initramfs.gz,发现onetime.key和加密的sunup.cpio.gz.enc文件。
- 解密sunup镜像:使用openssl和onetime.key解密sunup镜像,获得第二阶段initramfs(sunup安装程序)。
操作步骤第二部分:解密固件
- 分析sunup初始化脚本:在/usr/bin/installer中找到解密函数fwEncrypt和sw-crypt-package。
- 解密SIG固件:
- 使用FW-crypt-release.key作为密钥加密密钥(KEK)解密AES密钥。
- 使用AES密钥解密SSDH包。
- 解密SW包:
- 使用SCX-crypt-release.key作为KEK解密第二层AES密钥。
- 使用AES密钥解密SW包,获得根文件系统。
- 验证结果:解压SW包后,成功获取SonicOSX根文件系统,确认包含主二进制文件sonicosv。
工具发布:Sonicrack
研究团队开源了Sonicrack工具,自动化执行密钥提取和固件解密过程。工具支持Docker容器运行,首次针对OVA镜像提取密钥,后续可解密任何VMware SIG固件(版本7.1.1及以后)。
|
|
结论
通过逆向工程SonicOSX固件加密机制,研究团队揭示了多层解密流程,并提供了自动化工具支持安全研究。此举旨在平衡善意研究人员与恶意攻击者之间的能力差距,提升消费者保护水平。
本文基于Bishop Fox公开研究内容,详细技术细节和工具代码可参考官方发布。