Defensive IoT evidence graph CLI for authorized security testing and operator-ready reporting.
Project description
Sentra
Sentra is a defensive IoT evidence graph CLI for authorized security testing, asset visibility, firmware inspection, and operator-ready reporting.
Sentra helps operators move from collection to correlation to prioritization without turning into an offensive framework or a heavyweight platform.
Why Sentra
Many IoT assessment tools fall into one of two camps:
- raw scanners that leave correlation and reporting to the operator
- large platforms that are harder to run, review, or share
Sentra is designed to sit in the middle:
- guided enough for fast first-run workflows
- structured enough for repeatable evidence handling
- explainable enough for reports, reviews, and lab use
- safe enough to stay focused on defensive discovery and analysis
Sentra does not include exploit execution, credential attacks, brute forcing, persistence, evasion, or destructive functionality.
Quick Start
Install for local development:
python -m pip install -e .[dev]
python -m sentra --help
sentra --help
Start with the recommended first workflow:
python -m sentra quick-scan --target 192.168.1.0/24 --yes
That guided flow:
- discovers reachable devices and services
- saves artifacts in the workspace
- correlates evidence into the graph
- generates a report
Recommended First Workflow
quick-scan is the default hero workflow and the best first command for most users.
python -m sentra quick-scan --target 192.168.1.0/24 --yes
python -m sentra quick-scan --target 10.0.0.15 --firmware-path ./firmware.zip --workspace ./lab --yes
Use it when you want a guided end-to-end run without stepping through each command manually.
Common Workflows
Step-by-step assessment
Use the explicit workflow when you want more control over collection and reporting stages.
python -m sentra scan net --target 192.168.1.0/24 --yes
python -m sentra scan firmware --path ./firmware.zip --workspace ./lab
python -m sentra correlate --workspace ./lab
python -m sentra report --workspace ./lab --format html
Firmware-only analysis
python -m sentra scan firmware --path ./firmware.zip --workspace ./lab
python -m sentra correlate --workspace ./lab
python -m sentra report --workspace ./lab --format markdown
Passive-summary intake
python -m sentra scan passive --summary-file ./captures/passive-summary.txt --workspace ./lab
python -m sentra correlate --workspace ./lab
python -m sentra report --workspace ./lab --format terminal
Reporting and review
python -m sentra report --workspace ./lab
python -m sentra report --workspace ./lab --format markdown --output ./reports/
python -m sentra report --workspace ./lab --format html --output ./reports/sentra-report.html
python -m sentra diff --before-workspace ./baseline --after-workspace ./lab --format html --output ./reports/
Workspace and intelligence checks
python -m sentra status --workspace ./lab
python -m sentra inspect-workspace --workspace ./lab
python -m sentra fingerprints validate --workspace ./lab
python -m sentra vulns inspect --workspace ./lab --json
CLI Reference
Root usage
sentra [OPTIONS] COMMAND [ARGS]...
Global options
--workspace PATH: default workspace for Sentra artifacts--json: emit JSON to stdout by default--quiet: reduce terminal output--verbose: show extra terminal detail--version: show the installed Sentra version
Primary workflows
quick-scan: recommended first assessment that scans, correlates, and reports in one guided passscan net: discover reachable hosts, exposed services, and protocol clues from a host or CIDR targetscan firmware: inspect a firmware image or archive for defensive evidence, findings, and software signalsscan passive: parse an authorized passive-summary file into structured observationscorrelate: connect saved evidence into an explainable graph with ranked risk insightsreport: generate operator-facing terminal, Markdown, JSON, or HTML reportsdiff: compare two workspaces to highlight changed devices, findings, firmware signals, and correlationswizard: run the guided prompt-driven workflow for network or firmware assessments
Workspace and intelligence commands
status: show what has been collected, analyzed, and reported in the current workspaceinspect-workspace: inspect saved artifacts, report files, and firmware extraction directoriesfingerprints validate: validate built-in and custom fingerprint catalogsvulns inspect: inspect the offline vulnerability feed in a workspace
Useful command examples
python -m sentra --help
python -m sentra quick-scan --target 192.168.1.0/24 --yes
python -m sentra scan net --target 192.168.1.0/24 --yes
python -m sentra scan firmware --path ./firmware.zip --workspace ./lab
python -m sentra correlate --workspace ./lab
python -m sentra report --workspace ./lab --format html
python -m sentra diff --before-workspace ./baseline --after-workspace ./lab --format html
python -m sentra status --workspace ./lab
python -m sentra inspect-workspace --workspace ./lab
python -m sentra fingerprints validate --workspace ./lab
python -m sentra vulns inspect --workspace ./lab
Reports And Outputs
Sentra keeps machine-readable outputs deterministic while making human-facing outputs easier to review and share.
Terminal output
- guided summaries for scans, correlation, and reports
- top-risk context for devices and paths
- workspace-aware artifact visibility
Markdown output
- stable and review-friendly
- suitable for commit history, ticketing, and email review
JSON output
- deterministic and script-friendly
- suitable for automation and downstream processing
HTML output
- self-contained static report
- inline graph visualization
- structured sections for assets, findings, risky devices, risky paths, firmware evidence, and vulnerability intelligence
Report previews
Terminal quick-scan
HTML evidence report
Workspace Model
Sentra stores artifacts in the current workspace by default.
.sentra/
network_scan.json
passive_scan.json
firmware_scan.json
correlation.json
report.md
report.html
cve_feed.json
fingerprint_overrides.json
.sentra-fw/
...
sentra status gives a high-level summary of the workspace, and sentra inspect-workspace shows saved artifact and report paths more directly.
Safety And Scope
Sentra is built for:
- authorized security assessments
- asset visibility
- firmware inspection
- local lab research
- defensive enrichment, correlation, and reporting
Sentra is not built for:
- exploitation
- credential attacks
- brute forcing
- persistence
- evasion
- destructive activity
Advanced Notes
Fingerprint intelligence
The built-in fingerprint catalog is split into category files for maintainability and reviewability:
- cameras
- gateways
- general embedded systems
- industrial and OT classes
- NAS and storage classes
- printers
- routers
- smart plugs and relay-style devices
Sentra keeps compatibility with older simple override files while supporting richer matching concepts such as:
aliasesfamilyclass_contextoptional_indicatorsconflict_indicatorsevidence_groups
Merge behavior is deterministic:
- built-in category files load first
- workspace overrides replace matching built-in names
- explicit user override files take highest precedence
- ranking uses evidence quality, specificity, confidence, and source precedence
Validation and packaging
Run tests:
python -m pytest -v
If Windows temp-directory permissions are noisy:
python -m pytest -v --basetemp .pytest_tmp
Verify entrypoints:
python -m sentra --help
sentra --help
Build artifacts locally:
python -m pip install -e .[dev]
python -m build
python -m twine check dist/*
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sentra_iot-0.1.0.tar.gz.
File metadata
- Download URL: sentra_iot-0.1.0.tar.gz
- Upload date:
- Size: 93.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65e4f7211d6f4898ae01bc5523e9feaf9d89810d674b179d959d8ccb683671f1
|
|
| MD5 |
9cd1cf617e235b6d47fec940a0c8dff7
|
|
| BLAKE2b-256 |
80be20b8be143f42ac031be230fcc93bf1e8af5351aad3c2104c7a9af0b87d41
|
File details
Details for the file sentra_iot-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sentra_iot-0.1.0-py3-none-any.whl
- Upload date:
- Size: 91.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c4b4b1d2761e3412843841c3c0867d9c8695d808373be833b03e2b2b698c748
|
|
| MD5 |
abb6e175f3d49ce8b5f4459839ebb5b2
|
|
| BLAKE2b-256 |
72c08fbf7c3f62417049497ade0a2f0446cffe389a4edbd3aced93014e992230
|