Skip to main content

Firmware Security Workbench defensive firmware analysis toolkit

Project description

Firmware Security Workbench

Firmware Security Workbench is an open-source firmware analysis platform for developers, security learners, and embedded engineers.

The goal is to upload or scan firmware images such as .bin, .elf, .hex, and .uf2, extract useful security evidence, detect risky artifacts, compare versions, and generate clear reports.

Why This Exists

Firmware security tools are often either very advanced research tools or small command-line utilities. This project aims to sit in the middle:

  • beginner-friendly enough to learn from
  • practical enough for real firmware review
  • modular enough for open-source contributors
  • polished enough to showcase as a serious portfolio project

Planned Capabilities

  • CLI firmware scanner
  • Local web dashboard
  • Firmware metadata extraction
  • Hashing and entropy analysis
  • Strings and suspicious keyword detection
  • Secret and credential detection
  • YARA rule scanning
  • SBOM-style component discovery
  • Possible CVE matching with confidence levels
  • Firmware version diffing
  • Firmware Risk DNA profile
  • Hardening Simulator with what-if security action planning
  • HTML, Markdown, and JSON reports
  • Sample vulnerable firmware corpus for demos

Signature Feature: Firmware Risk DNA

Firmware Risk DNA will create a behavior-style risk fingerprint for a firmware image. Instead of only listing raw strings, it will summarize evidence into categories such as:

  • networking behavior
  • debug leftovers
  • OTA update logic
  • credential exposure
  • cryptography usage
  • risky service endpoints
  • risk added or removed between versions

This feature is designed to make reports more useful to developers than a long unstructured list of findings.

Repository Workflow

This project is built phase by phase.

  • main is the stable branch.
  • Each phase uses a branch named phase/XX-short-name.
  • Work is committed to the phase branch first.
  • At the end of the phase, the phase branch is merged back into main.

Example:

git checkout main
git checkout -b phase/02-cli-scanner-mvp

Current Status

Current status: Phase 17 - Hardening Simulator

The project includes the full roadmap feature set through v1.0.0 and an innovation extension: Hardening Simulator for prioritized remediation actions and projected risk reduction scenarios.

Quick Start

Run the scanner:

./scripts/fwb scan samples/demo-firmware.bin

Run scanner without saving:

./scripts/fwb scan samples/demo-firmware.bin --no-save

Scan Intel HEX:

./scripts/fwb scan samples/demo-firmware.hex --json

Print full JSON output:

./scripts/fwb scan samples/demo-firmware.bin --json

Run with an additional custom YARA rule file:

./scripts/fwb scan samples/demo-firmware.bin --rules-file rules/yara/fwb_core_rules.yar

Write CycloneDX SBOM JSON:

./scripts/fwb scan samples/demo-firmware.bin --sbom-out reports/generated/demo-sbom.json

Compare two firmware images:

./scripts/fwb diff samples/corpus/esp32-lab-vuln.bin samples/corpus/stm32-lab-vuln.bin --json --out reports/generated/esp32-vs-stm32.diff.json

Render report from saved JSON:

./scripts/fwb report reports/generated/esp32-vs-stm32.diff.json --kind diff --format html --out reports/generated/esp32-vs-stm32.diff.html

Write JSON report to disk:

./scripts/fwb scan samples/demo-firmware.bin --out reports/generated/demo-scan.json

Run full showcase script:

./scripts/demo-showcase.sh

List saved scan history:

./scripts/fwb history list

Show one saved scan:

./scripts/fwb history show 1 --json

Run tests:

python3 -m unittest discover -s tests -v

Run API server:

uvicorn backend.app:app --reload --port 8000

Run with Docker:

docker build -t fwb:latest .
docker run --rm -p 8000:8000 fwb:latest

API docs:

http://127.0.0.1:8000/docs

Dashboard:

http://127.0.0.1:8000/dashboard

Safety Scope

This project is for defensive firmware analysis, developer education, and security auditing. It does not include exploit generation, unauthorized device access, credential abuse, or malware deployment.

Repo Layout

backend/          FastAPI backend
cli/              Command-line scanner
docs/             Project docs, architecture, learning notes
frontend/         Dashboard UI
.github/          CI workflow
Dockerfile        Container packaging
reports/          Report templates and generated report output
rules/            Detection rules, including YARA rules
samples/          Safe sample firmware and test fixtures
scripts/          Utility scripts
tests/            Automated tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firmware_security_workbench-1.0.0.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firmware_security_workbench-1.0.0-py3-none-any.whl (38.0 kB view details)

Uploaded Python 3

File details

Details for the file firmware_security_workbench-1.0.0.tar.gz.

File metadata

File hashes

Hashes for firmware_security_workbench-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ccd10c7178c3cc00159ea58f76a7270ca857365da09536717701caa027e460b5
MD5 e7a6d0f70cbd56c20588a474d17ad3a6
BLAKE2b-256 7d7a39bb7f8cb270d8b27d7742501b3828f5c54fbfc0059ba37cfe3929a4b486

See more details on using hashes here.

File details

Details for the file firmware_security_workbench-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for firmware_security_workbench-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b40e28083ba12393f3520ea18b60bd77277584f7bfffd60d116b22e4d4bde751
MD5 6f392ca9dda1ec7be26f3639c5d1eb78
BLAKE2b-256 4345fc5452a06ab3fbfc908cc97a0655a5f65b91af3c06ea29fbef90a91deff2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page