EMBA到底是个啥?
EMBA(Embedded Firmware Security Analyzer)是专门为嵌入式设备固件做安全分析的命令行工具。它把固件提取、静态审计、动态仿真、SBOM(软件物料清单)生成、网页报告这整套流程串在一起,像一条生产线一样自动跑。无论你是渗透测试师、产品安全团队,还是负责代码的开发者,打开一份固件镜像,点几下就能看到哪些二进制文件不安全、哪些组件老旧、哪些脚本可能被利用,甚至还能抓到硬编码的密码。
小贴士:EMBA 并不替代人工审计,它只负责把“可能的风险点”挑出来,后面的验证、利用还是得靠你自己。
它解决了哪些痛点?
|
常见痛点 |
EMBA 的解决方案 |
| 固件提取繁琐 |
自动识别并解压常见固件格式(bin、img、tar 等),省去手动拆包的时间。 |
| 漏洞发现盲区 |
静态扫描找出不安全的库、过期的组件;动态仿真运行固件,捕获运行时异常。 |
| 缺少统一报告 |
一键生成交互式网页报告,全部漏洞、组件清单、风险评分一目了然。 |
| SBOM 不完整 |
自动生成完整的 SBOM,帮助合规审计和供应链安全管理。 |
| 工具链碎片化 |
将提取、分析、仿真、报告全部集成在同一个 CLI,免去多工具切换的麻烦。 |
安装 & 快速上手
-
1. 克隆源码
git clone https://github.com/e-m-b-a/emba.git
cd emba
2. 执行依赖安装脚本(会自动装好 binwalk、qemu、awk 等必备工具)
sudo ./installer.sh -d
3. 跑一次默认扫描(假设固件文件在 ~/firmware.bin)
sudo ./emba -l ~/log -f ~/firmware.bin -p ./scan-profiles/default-scan.emba
4. 想要 SBOM?换个 profile:
sudo ./emba -l ~/log -f ~/firmware.bin -p ./scan-profiles/default-sbom.emba
5. 打开报告
扫描结束后会在 ~/log/report.html 生成一个网页,直接浏览器打开即可。
小技巧:如果你想在仿真环境里跑固件,使用
default-scan-emulation.embaprofile,EMBA 会调用 QEMU 自动启动对应的硬件模型。
优缺点速览
|
优点 |
缺点 |
| 全流程自动化
,一次命令搞定提取、分析、仿真、报告 |
依赖 Linux 环境,Windows 需要 WSL 或虚拟机 |
| 开源免费
,社区活跃,更新频繁 |
对非常定制化的固件(特殊加密或自研 bootloader)可能识别不到 |
| 报告可视化
,交互式网页易于分享 |
生成报告时会占用一定磁盘空间,尤其是大固件 |
| SBOM 支持
,帮助供应链合规 |
学习曲线稍陡,需要熟悉基本的 Linux 命令和固件结构 |
| 插件式 profile
,可自行定制扫描策略 |
动态仿真对 CPU 架构要求高,部分 ARM64/ MIPS 设备仿真不完善 |
总结 – 为何值得一试
如果你每天要面对一堆嵌入式固件,手动拆包、跑工具、写报告的过程已经让你头大,EMBA 就像是给你装了个“自动驾驶”。它把最常见的安全盲点都揪出来,省下的时间可以去做更有价值的验证和修复。虽然不是完美的“全能钥匙”,但在当前 IoT 安全形势下,它已经是业界公认的“瑞士军刀”。不妨先下载试用一把,感受一下“一键出报告”的快感。
项目地址:https://github.com/e-m-b-a/emba