固件安全分析方法论,围绕嵌入式设备固件与 IoT 设备安全评估展开,核心流程为:获取固件 → 解包提取文件系统 → 静态分析敏感信息 → 动态模拟运行 → 漏洞挖掘 → 固件修改重打包。
一、固件获取 提供固件获取途径决策树,包括厂商官网下载(支持页/FTP/CDN,可用 Google dork 检索)、云存储扫描(S3Scanner、GrayhatWarfare)、设备直接提取(UART 串口连接、JTAG/SWD 调试接口、SPI Flash 芯片直读、eMMC 直读)、中间人截获 OTA 更新包、移动应用提取、从 bootloader dump。 文档给出从 SPI Flash 直接读取的命令(flashrom -p ch341a_spi -r flash.bin 及读取一致性校验)、通过 UART 获取 Shell 的方法(picocom -b 115200 /dev/ttyUSB0,以及修改 U-Boot env 强制 shell 的思路)、从移动应用提取固件的路径(apktool 解包后查找 assets/firmware/ 等目录)。
二、解包与文件系统提取 提供固件解包决策树,首选 binwalk 自动提取(binwalk -ev),提取失败时手动 dd 切割并用对应工具解压:squashfs→unsquashfs、jffs2→jefferson、cramfs→cramfsck、cpio→cpio -ivd、ubifs→ubireader_extract_images、yaffs2→unyaffs,并可用 firmware-mod-kit 辅助。 对加密固件,通过熵值分析判断是否加密(binwalk -E),高熵可能为加密或压缩,低熵则未加密;寻找解密密钥、逆向加密逻辑,部分厂商使用 AES-CBC 加硬编码 key/IV。完全未知格式则用 hexdump 分析 magic bytes。文档给出 binwalk 标准流程、手动文件系统提取命令以及基础文件信息收集命令(file、strings、hexdump、fdisk)。
三、静态分析 静态分析重点目标包括硬编码凭据(/etc/shadow、/etc/passwd、配置文件默认账户密码)、加密材料(SSL 证书与私钥、SSH 密钥、API 密钥/Token)、后门与调试接口(telnetd/dropbear 配置、隐藏 CGI 端点、调试用 web shell)、网络服务配置(lighttpd/uhttpd/mini_httpd、MQTT 凭据与 broker 地址、云平台 API endpoint)、启动脚本分析、二进制安全检查。 文档提供凭据与敏感信息搜索命令(grep 搜索密码、密钥、URL/IP、base64 编码内容),自动化分析工具(Firmwalker、EMBA、LinPEAS),二进制保护检查(checksec),云凭据与 MQTT 配置提取命令。
四、动态分析 提供动态分析决策树:单个二进制模拟(按架构选择 qemu-mips/qemu-mipsel/qemu-arm/qemu-aarch64,需 chroot 或 --root 指向文件系统)、全系统模拟(Firmadyne、Firmware Analysis Toolkit、手动 QEMU system 模拟)、真实设备动态调试(gdbserver 远程调试、Frida hook)。 文档给单个二进制模拟的命令示例(安装 qemu-user-static、chroot 执行、带 strace 的模拟)、Firmadyne 全流程命令(提取、识别架构、创建镜像、推断网络配置、启动模拟)以及远程调试方法(gdbserver + gdb-multiarch)。
五、漏洞挖掘 列出常见固件漏洞类型:命令注入(Web CGI 参数未过滤、system/popen/exec/eval 拼接用户输入)、缓冲区溢出(strcpy/sprintf/gets 等不安全函数,嵌入式系统常缺少 ASLR/NX/Canary)、认证绕过(硬编码凭据、后门账户、session 管理缺陷)、信息泄露、降级攻击(无版本校验的签名更新机制)、MQTT/云凭据泄露(硬编码 STATIC_KEY 派生 token、明文 MQTT 凭据、弱 topic ACL)、uClibc 堆利用(嵌入式 Linux 特有)。 文档提供 Web 服务漏洞测试(nmap 识别服务、抓取 CGI 端点、命令注入定向测试)和更新机制审计命令。
六、固件修改与重打包 流程包括修改文件系统内容(添加 SSH 公钥、修改 /etc/shadow、植入 reverse shell、修改启动脚本添加持久化后门)、重打包文件系统(squashfs 用 mksquashfs、jffs2 用 mkfs.jffs2、cramfs 用 mkcramfs)、重组固件镜像(dd 拼接、firmware-mod-kit 重打包、更新 CRC/校验和)、刷入设备(Web UI 上传、TFTP/串口刷入、flashrom 直接写入 SPI)。文档给出重打包示例命令,并说明重算 CRC 需逆向分析固件头格式确定算法和位置。
工具速查 列出 binwalk(固件识别与提取)、firmware-mod-kit(解包/重打包)、flashrom(SPI Flash 读写)、OpenOCD(JTAG 调试)、QEMU(二进制/系统模拟)、Firmadyne(自动化全系统模拟)、Ghidra/radare2(二进制逆向)、gdbserver+gdb-multiarch(远程调试)、checksec(二进制保护检查)、EMBA(综合固件安全分析)、Firmwalker(敏感信息搜索)、picocom/minicom(串口通信)。
练习靶场 列出 OWASP IoTGoat、DVRF、DVAR、ARM-X、DVID 等面向 IoT 与路由器固件漏洞练习的项目。
适用场景:嵌入式设备固件分析、IoT 设备安全评估、固件敏感信息提取、固件漏洞挖掘与固件修改重打包研究。限制:需具备相应硬件接口(UART/JTAG/SPI)与工具环境,加密固件的解密依赖密钥获取或逆向,重打包刷入需匹配原始压缩算法与校验机制;具体平台、收费与价格信息暂未提供。