Skip to main content

Universal Honeypot Benchmarking Standard (UHBS)

CI Docs CodeQL OpenSSF Best Practices PyPI DOI License Spec UHQS

Open-source beta framework for lab / sandbox evaluation of honeypots and decoys — vendor-neutral UHQS scoring (0–100) with a non-linear Safety Gate.

UHBS v4.3.5 measures deception realism, containment, scale, and telemetry quality by class and protocol. It is not an industry consortium standard or multi-party governed body. See ROADMAP.md for maturity goals.

Docs Landing · MkDocs
PyPI uhbs
Python ≥ 3.11
License Apache-2.0

NOTICE: UHBS/AEP are for lab/sandbox evaluation of decoys. Do not run them against production or unauthorized real services. CLI tools print this reminder on stderr when commands run.

Table of contents

Project status

Status: Beta / Experimental — specification status

Topic Reality today
Maintainer @mziqudhd92MAINTAINERS.md
Governance Single maintainer; no Steering Committee yet — Phase 6 roadmap
Evaluation scope Laboratory / sandbox only
Suggested internal gate After lab grading, orgs MAY use UHQS > 80 + passing Safety Gate before they deploy a decoy — not a standards-body mandate

What you get

Capability Package / surface
Spec + schemas (TPS, scorecard, evidence) Repo docs/ · schemas/
Validate profiles & scorecards; recompute UHQS pip install uhbsuhbs
Live Modules A–F lab harness (36 protocols) pip install 'uhbs[lab]'uhbs lab / uhbs-lab
AI-host MCP tools (validate/score fixtures; no live probes) pip install 'uhbs[mcp]'uhbs-mcp
Offline Advanced Evidence Profile (optional; does not change UHQS) pip install 'uhbs[aep]'uhbs aep
Published lab grades / fixtures docs/conformance/

Vendor neutrality: normative docs use classes and protocols. Named products appear only under conformance as evaluation proof, not as UHBS requirements.

Pillar Detail
Protocol-agnostic IT, OT/ICS, AI, and cloud decoy classes
Quantitative UHQS 0–100 with Safety Gate (\delta_C) from Module D
Dual-plane Static audit (F) + dynamic Modules A–E
Optional AEP Lab decoy-vs-reference evidence (VoD, FSV, DTDR, EER)

Install

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate

# Core CLI (validate / score)
pip install uhbs

# Common lab install
pip install 'uhbs[lab]'

# Optional extras (install only what you need)
pip install 'uhbs[mcp]'   # AI-host MCP server
pip install 'uhbs[aep]'   # offline Advanced Evidence Profile
pip install 'uhbs[all]'   # lab + mcp + scapy (convenience; still not an attack runner)
Extra Purpose
(none) Validators + UHQS math
lab Controlled live Modules A–F harness
mcp Local AI-host scorecard tools (stdio MCP)
aep Offline advanced evidence analysis
scapy Optional protocol-encoding backend
dev pytest, ruff, mypy (+ lab/mcp for contributors)
all lab + mcp + scapy

Development checkout:

git clone https://github.com/mziqudhd92/uhbs-standard.git
cd uhbs-standard
pip install -e ".[lab,dev]"
# optional: pip install -e ".[aep,mcp]"
pytest -q

Quickstart

1. Validate a profile or scorecard

# From a git checkout (templates ship in the repo)
cp templates/profile.yaml ./my-honeypot.profile.yaml
uhbs validate-profile my-honeypot.profile.yaml

uhbs validate-scorecard path/to/scorecard.json
uhbs score --class Low-Interaction --scores scores.json

2. Run the lab harness (isolated decoy only)

pip install 'uhbs[lab]'
uhbs lab --list-protocols
# Example shape — point only at a lab decoy you control:
# uhbs lab --tps low_interaction --protocol ssh \
#   --target 127.0.0.1 --port 2222 --out ./.local/bench-reports/my-target

3. Optional AEP (offline lab evidence)

pip install 'uhbs[aep]'
uhbs aep example beginner --out aep-beginner
uhbs aep validate aep-beginner/experiment.yaml
uhbs aep analyze --experiment aep-beginner/experiment.yaml \
  --trials aep-beginner/trials.jsonl \
  --scorecard aep-beginner/linked-scorecard.json \
  --out advanced-evidence.json
uhbs aep report advanced-evidence.json --format markdown --out ADVANCED-EVIDENCE.md

MCP for AI hosts (Cursor, Claude, VS Code, …)

pip install 'uhbs[mcp]'
# Configure the host — see docs/tooling/mcp.md
# uhbs-mcp   or:  python -m uhbs_mcp

Registry metadata: server.json. Live lab probes stay on uhbs lab, not the AI-host MCP server.

Grade MCP honeypot surfaces (JSON-RPC over HTTP/SSE) with the in-tree mcp protocol plugin (uhbs[lab]) — different from the AI-host server above. See MCP honeypot grading.

Docker

docker build -t uhbs:4.3.5 .
docker run --rm -v "$PWD:/work" -w /work uhbs:4.3.5 \
  validate-scorecard ./docs/conformance/fixtures/cowrie-low-interaction.scorecard.json
docker run --rm -v "$PWD:/work" -w /work uhbs:4.3.5 lab --list-protocols

Compose: docker compose run --rm uhbs validate-profile ./my-honeypot.profile.yaml.

Demo

Terminal walkthrough: install UHBS + Cowrie/Conpot, start lab decoys, full UHQS (Cowrie SSH · Conpot Modbus · HellPot HTTP).

UHBS lab demo — install honeypots + full UHQS

Replay: docs/assets/uhbs-lab-demo.cast (asciinema play docs/assets/uhbs-lab-demo.cast).

Scoring (UHQS)

The Universal Honeypot Quality Score is a normalized composite 0–100:

[ \mathrm{UHQS} = \delta_C \cdot (w_A S_A + w_B S_B + w_C S_C + w_E S_E + w_F S_F) ]

Symbol Meaning
(S_A \ldots S_F) Module scores 0–100
(w_A \ldots w_F) Profile-adaptive weights (sum to 1.00)
(\delta_C) Safety Gate from Module D: (1.0) if (C \ge 95), else ((C/100)^2)
Module Focus
A Protocol & syntax fidelity
B Behavioral & stateful realism
C Telemetry quality & pipeline resilience
D Safety, containment & boundary controls (Safety Gate)
E Scalability, latency & stress
F White-box static code audit

A decoy with strong deception scores can still fail lab evaluation if Module D is weak. Normative math: uhqs_math.py · scoring formula.

Lab audit workflow (5 phases)

Profile & config → Static audit (F) → Sandbox provision → Dynamic A–E → Score & report

Optional Advanced Evidence Profile (AEP)

UHQS remains the normative lab grade. AEP is an optional, informative layer for controlled lab decoy-vs-reference experiments. AEP does not change UHQS.

When Use
Lab release / conformance UHBS scorecard alone
Comparative lab study Add AEP (VoD, FSV, DTDR, EER + uncertainty)
  • Offline analysis of local experiment/trial files only — no attack launch
  • Status vocabulary: valid | inconclusive | control_failed (not letter grades)
  • Packaged examples: uhbs aep example beginner|advanced|template

Academic credit (citation ≠ endorsement): Zhu (2019), Collins et al. (2024), Ersok et al. (2022), Li et al. (2020) — full ledger: Research foundations & credits.

Doc URL
Overview https://mziqudhd92.github.io/uhbs-standard/mkdocs/advanced-evidence/
Beginner tutorial https://mziqudhd92.github.io/uhbs-standard/mkdocs/advanced-evidence/tutorial-beginner/
CLI https://mziqudhd92.github.io/uhbs-standard/mkdocs/advanced-evidence/cli/
Related frameworks https://mziqudhd92.github.io/uhbs-standard/mkdocs/mappings/related-frameworks/

Documentation map

Resource Link
Landing hub https://mziqudhd92.github.io/uhbs-standard/
Specification https://mziqudhd92.github.io/uhbs-standard/mkdocs/specification/core-principles/
CLI guide docs/tooling/cli.md
MCP (AI hosts) docs/tooling/mcp.md
Reference harness docs/reference-implementation.md
Conformance & lab reports docs/conformance/index.md
Framework mappings docs/mappings/index.md
Maturity roadmap ROADMAP.md
Agent / SEO index llms.txt · AGENTS.md

Repository layout

uhbs-standard/
├── docs/                      # MkDocs site + conformance proof
│   ├── advanced-evidence/     # Optional AEP docs
│   ├── conformance/           # Fixtures, lab reports, tutorials
│   ├── mappings/              # ATT&CK, D3FEND, Engage, related frameworks
│   └── specification/         # Normative prose
├── schemas/                   # JSON Schemas (scorecard, AEP, …)
├── templates/                 # Starter TPS + AEP templates
├── examples/advanced-evidence/# Synthetic AEP fixtures (also packaged in wheel)
├── src/uhbs_cli/              # `uhbs` CLI (+ packaged schemas / AEP data)
├── src/uhbs_core/             # UHBS-Lab harness + UHQS math
├── src/uhbs_mcp/              # AI-host MCP server
├── tests/                     # pytest suite
├── Dockerfile                 # Grading image
├── CONTRIBUTING.md · CODE_OF_CONDUCT.md · SECURITY.md · GOVERNANCE.md
└── CITATION.cff

Embed a published grade

After you publish a scorecard (conformance / your own report), you can badge it:

![UHBS v4.3.5](https://img.shields.io/badge/UHBS%20v4.3.5-Grade%20A-brightgreen)

Contributing

Contributions are welcome under the project’s governance constraints.

  1. Read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  2. Follow GOVERNANCE.md — specification changes use an RFC process
  3. Sign off commits (DCO)
  4. Run pytest -q and ruff check on touched Python before opening a PR

Security

Please report vulnerabilities via GitHub Security Advisories per SECURITY.md. Do not use UHBS tooling against systems you are not authorized to test.

Citation

@software{uhbs2026,
  author = {Zavdi, Moran},
  title = {Universal Honeypot Benchmarking Standard (UHBS)},
  year = {2026},
  version = {4.3.5},
  publisher = {Zenodo},
  doi = {10.5281/zenodo.21631156},
  url = {https://doi.org/10.5281/zenodo.21631156}
}

Machine-readable: CITATION.cff. Concept DOI (latest deposit): 10.5281/zenodo.21631155.

License

Licensed under the Apache License 2.0.

Download files

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

Source Distribution

uhbs-4.3.5.tar.gz (229.1 kB view details)

Uploaded Source

Built Distribution

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

uhbs-4.3.5-py3-none-any.whl (234.6 kB view details)

Uploaded Python 3

File details

Details for the file uhbs-4.3.5.tar.gz.

File metadata

  • Download URL: uhbs-4.3.5.tar.gz
  • Upload date:
  • Size: 229.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for uhbs-4.3.5.tar.gz
Algorithm Hash digest
SHA256 af114e914c53563ab8f7c3b5eac477f831eb2f9f69e8dd80535450aa6160d70d
MD5 efb7a44b14608ca9b731591acc7be033
BLAKE2b-256 9f0c267b61ae4fefa13ca89ef26dd4a74ccdba00d137e827f46d3e1b59331f1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for uhbs-4.3.5.tar.gz:

Publisher: release.yml on mziqudhd92/uhbs-standard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file uhbs-4.3.5-py3-none-any.whl.

File metadata

  • Download URL: uhbs-4.3.5-py3-none-any.whl
  • Upload date:
  • Size: 234.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for uhbs-4.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 523552467b098727d3c16f7e774111a80292c7c29cd80803190255264da8fcaf
MD5 6f126815b046797cafbe1d478c1d930f
BLAKE2b-256 a61392cc3f7cc8abe67ab066d127377415983020cb0014184a675a52d6ea7d7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for uhbs-4.3.5-py3-none-any.whl:

Publisher: release.yml on mziqudhd92/uhbs-standard

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

4.5.1

2 files

4.5.0

2 files

4.4.5

2 files

4.4.4

2 files

4.4.3

2 files

4.4.2

2 files

4.4.1

2 files

4.4.0

2 files

4.3.6

2 files

This release

4.3.5 This release

2 files

4.3.0

2 files

4.2.2

2 files

4.2.1

2 files

4.2.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page