YukiCodepth/firmware-security-workbench

GitHub: YukiCodepth/firmware-security-workbench

一款面向嵌入式开发与安全研究的防御性固件分析工作台,集成固件扫描、密钥检测、SBOM 生成、CVE 匹配与风险评分于一体。

Stars: 0 | Forks: 0

# Firmware Security Workbench

Firmware Security Workbench logo

一款专为嵌入式开发人员、Linux 工程师和安全研究人员设计的防御性固件分析工作台。

CI Desktop Packages PyPI Desktop Release License

Firmware Security Workbench 帮助您通过本地控制面板和桌面应用程序来检查固件镜像、揭示风险证据、对比版本、生成报告并解释结果。它专为防御性研究、安全固件审查、作品集级学习以及开源协作而构建。 ## 功能概述 | 领域 | 功能 | | --- | --- | | 固件导入 | 扫描 `.bin`、`.hex`、`.elf`、`.uf2` 以及原始类固件文件 | | 元数据 | 文件大小、哈希值、熵、格式推测、提取的字符串 | | 检测 | 可疑字符串、密钥、端点、调试遗留信息、OTA 线索 | | 规则 | 兼容 YARA 的本地规则引擎及匹配元数据 | | SBOM | 从固件证据中提取 CycloneDX 风格的组件候选 | | CVE 威胁情报 | 本地 CVE 候选匹配,附带审查记录和置信度 | | 风险 DNA | 固件指纹、评分、等级、标签以及风险趋势 | | 差异比对 | 对比固件版本并解释新增或移除的风险 | | 加固建议 | 用于预估风险降低效果的假设模拟器 | | 接口 | CLI、FastAPI、Web 控制面板以及桌面应用外壳 | | 报告 | JSON、Markdown 和 HTML 导出 | | 打包 | PyPI 包、Docker 镜像,以及适用于 macOS、Windows 和 Linux 的桌面安装程序 | ## 下载应用程序 桌面安装程序已作为 GitHub Release 资产发布: | 平台 | 安装包 | | --- | --- | | macOS Apple Silicon | [Firmware Security Workbench_0.5.0_aarch64.dmg](https://github.com/YukiCodepth/firmware-security-workbench/releases/download/desktop-v0.5.0/Firmware.Security.Workbench_0.5.0_aarch64.dmg) | | Windows x64 | [Firmware Security Workbench_0.5.0_x64_en-US.msi](https://github.com/YukiCodepth/firmware-security-workbench/releases/download/desktop-v0.5.0/Firmware.Security.Workbench_0.5.0_x64_en-US.msi) | | Ubuntu/Debian x64 | [Firmware Security Workbench_0.5.0_amd64.deb](https://github.com/YukiCodepth/firmware-security-workbench/releases/download/desktop-v0.5.0/Firmware.Security.Workbench_0.5.0_amd64.deb) | 所有发布文件均可在 [desktop-v0.5.0](https://github.com/YukiCodepth/firmware-security-workbench/releases/tag/desktop-v0.5.0) 获取。 ### Ubuntu 安装 ``` cd ~/Downloads sudo apt install ./Firmware.Security.Workbench_0.5.0_amd64.deb ``` 如果 Ubuntu 提示缺少依赖: ``` sudo apt --fix-broken install ``` ### macOS Gatekeeper 注意事项 macOS 应用尚未经过 Apple 公证。如果 macOS 提示应用已损坏,请将其移动到“应用程序”文件夹并运行: ``` xattr -dr com.apple.quarantine "/Applications/Firmware Security Workbench.app" open "/Applications/Firmware Security Workbench.app" ``` ## 安装 CLI 从 PyPI 安装: ``` python3 -m pip install firmware-security-workbench ``` 运行: ``` fwb scan samples/demo-firmware.bin ``` 或者从源码运行: ``` git clone https://github.com/YukiCodepth/firmware-security-workbench.git cd firmware-security-workbench python3 -m pip install -r requirements.txt ./scripts/fwb scan samples/demo-firmware.bin ``` ## 快速演示 运行完整展示: ``` ./scripts/demo-showcase.sh ``` 扫描固件并导出 JSON: ``` ./scripts/fwb scan samples/corpus/esp32-lab-vuln.bin --json --out reports/generated/esp32.scan.json ``` 生成 CycloneDX 风格的 SBOM: ``` ./scripts/fwb scan samples/corpus/stm32-lab-vuln.bin --sbom-out reports/generated/stm32.sbom.json ``` 对比两个固件镜像: ``` ./scripts/fwb diff samples/corpus/esp32-lab-vuln.bin samples/corpus/stm32-lab-vuln.bin --json --out reports/generated/esp32-vs-stm32.diff.json ``` 渲染 HTML 报告: ``` ./scripts/fwb report reports/generated/esp32-vs-stm32.diff.json --kind diff --format html --out reports/generated/diff.html ``` 运行测试: ``` python3 -m unittest discover -s tests -v ``` ## 运行控制面板 ``` uvicorn backend.app:app --reload --port 8000 ``` 打开: ``` http://127.0.0.1:8000/dashboard ``` API 文档: ``` http://127.0.0.1:8000/docs ``` ## Docker ``` docker pull ghcr.io/yukicodepth/firmware-security-workbench:v1.0.0 docker run --rm -p 8000:8000 ghcr.io/yukicodepth/firmware-security-workbench:v1.0.0 ``` 或者在本地构建: ``` docker build -t fwb:latest . docker run --rm -p 8000:8000 fwb:latest ``` ## 系统工作流 ``` flowchart LR A["Firmware Image
.bin .hex .elf .uf2"] --> B["Input + Format Detection"] B --> C["Core Scanner"] C --> D["Metadata
hashes, size, entropy"] C --> E["Strings + Endpoint Extraction"] C --> F["Secret Scanner"] C --> G["YARA-Compatible Rules"] C --> H["SBOM Component Candidates"] H --> I["CVE Candidate Engine"] D --> J["Risk DNA Engine"] E --> J F --> J G --> J I --> J J --> K["Reports
JSON, Markdown, HTML"] J --> L["SQLite Scan History"] L --> M["FastAPI Backend"] M --> N["Web Dashboard"] M --> O["Desktop App"] J --> P["Firmware Diff + Hardening Simulator"] classDef input fill:#ecfeff,stroke:#0891b2,color:#0f172a; classDef engine fill:#fef3c7,stroke:#d97706,color:#0f172a; classDef risk fill:#fee2e2,stroke:#dc2626,color:#0f172a; classDef ui fill:#dcfce7,stroke:#16a34a,color:#0f172a; class A,B input; class C,D,E,F,G,H,I engine; class J,P risk; class K,L,M,N,O ui; ``` ## 开发者架构 ``` flowchart TB subgraph Interfaces["User Interfaces"] CLI["CLI
scripts/fwb + fwb"] API["FastAPI Backend
backend/app.py"] WEB["Web Dashboard
frontend/"] DESKTOP["Desktop App
desktop/ Tauri"] end subgraph Engines["Analysis Engines"] SCAN["Scanner
cli/scanner.py"] RULES["Rule Engine
cli/rule_engine.py"] SBOM["SBOM + CVE
cli/cve_engine.py"] DNA["Risk DNA
cli/risk_dna.py"] DIFF["Diff Engine
cli/diff_engine.py"] HARDEN["Hardening Simulator
cli/hardening_simulator.py"] REPORT["Report Exporter
cli/report_exporter.py"] end subgraph Data["Local Data"] SAMPLES["Safe Sample Corpus
samples/"] YARA["Rules
rules/yara/"] DB["SQLite History
reports/generated/"] OUT["Generated Reports
reports/generated/"] end CLI --> SCAN API --> SCAN WEB --> API DESKTOP --> API SCAN --> RULES SCAN --> SBOM SCAN --> DNA SCAN --> HARDEN DIFF --> DNA REPORT --> OUT SAMPLES --> SCAN YARA --> RULES SCAN --> DB DB --> API classDef interface fill:#e0f2fe,stroke:#0284c7,color:#0f172a; classDef engine fill:#fef9c3,stroke:#ca8a04,color:#0f172a; classDef data fill:#f1f5f9,stroke:#475569,color:#0f172a; class CLI,API,WEB,DESKTOP interface; class SCAN,RULES,SBOM,DNA,DIFF,HARDEN,REPORT engine; class SAMPLES,YARA,DB,OUT data; ``` ## 发布流程 ``` sequenceDiagram autonumber participant Dev as Developer participant Main as main branch participant CI as GitHub Actions participant Rel as GitHub Releases participant Users as Users Dev->>Main: Merge phase branch Main->>CI: Run tests Dev->>Main: Push desktop-vX.Y.Z tag Main->>CI: Build macOS, Windows, Linux installers CI->>Rel: Upload DMG, MSI, DEB assets Users->>Rel: Download installer ``` ## 标志性功能:固件风险 DNA 固件风险 DNA 将原始证据转化为紧凑的固件风险特征: - `score`:数值风险评分 - `band`:低、中、高、严重 - `tags`:行为标记,例如 `CREDS`、`CVE`、`NET`、`RULES`、`SBOM` - `fingerprint`:稳定的对比身份标识 - `risk_shift`:固件版本之间新增或移除的风险 - `hardening_shift`:缓解措施的预期改善效果 这使本项目超越了单纯的字符串扫描器。它为开发人员提供了一种解释不同构建版本之间固件安全性变化的方法。 ## 示例发现 ``` [high/high] 0x56 password wifi_password=demo1234 [medium/medium] 0x6d mqtt:// mqtt://broker.internal.local:1883 [medium/medium] 0x8f http://,ota,update ota_update_url=http://updates.internal.local/fw.bin [low/low] 0xc3 debug DEBUG: boot complete ``` ## 仓库结构 ``` backend/ FastAPI backend and local HTTP API cli/ Scanner, rules, SBOM, CVE, diff, Risk DNA, hardening logic desktop/ Tauri desktop app shell and next-gen UI docs/ Architecture, roadmap, learning path, phase notes frontend/ Browser dashboard UI reports/ Templates and generated reports rules/ Detection rules, including YARA-compatible rules samples/ Safe firmware-like demo corpus scripts/ CLI wrapper and showcase automation tests/ Unit tests and integration checks .github/ CI and desktop package workflows ``` ## 面向开发者 创建功能分支: ``` git checkout main git pull git checkout -b phase/XX-short-name ``` 安装依赖: ``` python3 -m pip install -r requirements.txt ``` 运行验证: ``` python3 -m unittest discover -s tests -v git diff --check ``` 桌面端预览: ``` cd desktop npm install npm run preview ``` 本地构建桌面端: ``` cd desktop npm run build ``` ## 开源贡献领域 | 赛道 | 适合新手的贡献 | | --- | --- | | 规则 | 添加用于固件指标的安全 YARA 兼容规则 | | 固件格式 | 改进 `.elf`、`.hex`、`.uf2` 和原始二进制文件的检测 | | SBOM | 添加更多组件版本提取器 | | CVE 候选 | 改进本地目录覆盖范围和置信度说明 | | 报告 | 添加更清晰的报告模板和导出格式 | | 控制面板 | 改进可视化分析、筛选功能和助手解答 | | 桌面端 | 改进安装程序、签名、更新流程和原生优化 | | 语料库 | 添加用于测试和演示的安全合成固件样本 | ## 安全范围 Firmware Security Workbench 适用于防御性分析、安全开发、教育和授权审计。 它不包含漏洞利用生成、未授权的设备访问、凭据滥用、持久化、恶意软件部署或攻击性自动化。 ## 当前状态 项目当前状态: - 核心项目版本:`v1.0.0` - 桌面应用版本:`desktop-v0.5.0` - PyPI 包:`firmware-security-workbench==1.0.0` - Docker 镜像:`ghcr.io/yukicodepth/firmware-security-workbench:v1.0.0` - 桌面安装程序:macOS `.dmg`、Windows `.msi`、Linux `.deb` ## 路线图 本项目是以发布为导向,而非以阶段为导向。阶段分支用于开发;发布版本面向用户。 请参阅: - [ROADMAP.md](ROADMAP.md) - [docs/final-roadmap.md](docs/final-roadmap.md) - [docs/release-plan.md](docs/release-plan.md) - [docs/architecture.md](docs/architecture.md) - [docs/learning-path.md](docs/learning-path.md)
标签:CVE情报, CycloneDX, DNS信息、DNS暴力破解, IoT安全, LLM防护, Python, SBOM生成, YARA规则, 二进制分析, 云安全运维, 固件安全, 固件提取, 固件逆向工程, 安全工作台, 实时处理, 嵌入式安全, 敏感信息扫描, 无后门, 机密检测, 桌面应用, 熵分析, 版本对比, 物联网安全, 请求拦截, 逆向工具, 防御性安全, 风险评分