Universal Honeypot Benchmarking Standard (UHBS)
An objective, repeatable, quantitative methodology for deception technology evaluation — a personal open-source beta framework for comparing and grading honeypots and decoy systems by class and protocol.
UHBS v4.2.0 is a protocol-agnostic, vendor-neutral evaluation framework for measuring deception realism, safety containment, operational scale, and telemetry quality. It is not an industry consortium standard or multi-party governed body — see ROADMAP.md for what maturity would require.
Project status
Status: Beta / Experimental · personal project (specification status).
- Author / maintainer: @mziqudhd92 — see MAINTAINERS.md
- Governance claims: no Steering Committee, no independent adopter list yet — those are roadmap goals
- Suggested use: organizations MAY use the Production Baseline Profile (UHQS > 80 + passing Safety Gate) as an internal evaluation gate; that is a recommendation in the beta, not a mandate from any standards body
Why UHBS?
| Pillar | What it delivers |
|---|---|
| Protocol-Agnostic | Architecture-neutral testing across IT, OT/ICS, AI, and Cloud |
| Vendor-Neutral | Class- and protocol-based evaluation — no product or brand endorsements |
| Quantitative Scoring | Normalized UHQS 0–100 composite with a non-linear Safety Gate |
| Six Evaluation Modules | Modules A–F covering fidelity, behavior, telemetry, safety, scale, and audit |
| Production Baseline | UHQS > 80 suggested as an internal gate (RECOMMENDED in the beta) |
Vendor-neutral beta framework: compare any deception by class and protocol. UHBS-Lab harness:
pip install -e '.[lab]'→uhbs-lab/uhbs lab. Named product proof lives only under conformance fixtures. Maturity goals (committee, adopters, neutral org): ROADMAP.md.
Quickstart
Validate a honeypot against a Target Profile Specification (profile.yaml) in three steps:
# 1. Install the CLI (add [lab] for the Modules A–F harness)
pip install -e ".[lab]"
# 2. Create or adapt a target profile
cp templates/profile.yaml ./my-honeypot.profile.yaml
# 3. Validate the profile against the official schema
uhbs validate-profile my-honeypot.profile.yaml
Run a full scorecard validation once your audit harness produces results:
uhbs validate-scorecard path/to/scorecard.json
uhbs score --profile my-honeypot.profile.yaml --scores scores.json
MCP (AI hosts — Cursor, Claude, VS Code, …)
Install the optional MCP extra so agents can call validators / UHQS scoring over the Model Context Protocol (local stdio):
pip install -e ".[mcp]"
# Configure your host — see docs/tooling/mcp.md
# Cursor / Claude example uses: python -m uhbs_mcp (set UHBS_ROOT to this checkout)
Registry metadata: server.json. Live Docker lab probes stay on the CLI (uhbs lab), not MCP.
MCP honeypot grading (uhbs[lab])
Grade network-facing MCP decoys (JSON-RPC over HTTP/SSE) with the in-tree mcp protocol plugin — distinct from the AI-host MCP server above:
pip install -e ".[lab]"
uhbs-lab --list-protocols # includes mcp
uhbs-lab \
--inventory docs/conformance/labs/beelzebub/inventory.yaml \
--target beelzebub-mcp \
--tps docs/conformance/labs/beelzebub/web_api_mcp_quick.yaml \
--protocol mcp \
--out ./reports/mcp
Details: docs/architecture/mcp-honeypot-grading.md.
Docker (grade without a local Python install)
Build the grading image (CLI + UHBS-Lab harness):
docker build -t uhbs:4.2.0 .
# or: docker compose build
Mount your working directory at /work and pass the same uhbs commands:
# Validate a scorecard on disk
docker run --rm -v "$PWD:/work" -w /work uhbs:4.2.0 \
validate-scorecard ./docs/conformance/fixtures/cowrie-low-interaction.scorecard.json
# Compute UHQS from module scores
docker run --rm -v "$PWD:/work" -w /work uhbs:4.2.0 \
score --class Low-Interaction --scores ./scores.json
# List protocol plugins / run a lab probe against a reachable honeypot
docker run --rm -v "$PWD:/work" -w /work uhbs:4.2.0 lab --list-protocols
docker run --rm -v "$PWD:/work" -w /work \
-e UHBS_QUICK=1 -e UHBS_AIRGAP_ATTESTED=1 \
uhbs:4.2.0 lab \
--tps low_interaction \
--protocol ssh \
--target host.docker.internal --port 2222 \
--source-root /work \
--phases profile,static,dynamic,score \
--quick \
--out /work/.local/bench-reports/my-target
Compose shorthand: docker compose run --rm uhbs validate-profile ./my-honeypot.profile.yaml.
Documentation site: https://mziqudhd92.github.io/uhbs-standard/ (landing hub) · docs / MkDocs
Maturity roadmap: ROADMAP.md · Reference harness: docs/reference-implementation.md · CLI guide: docs/tooling/cli.md
Discovery for search & AI agents (SEO / AEO / GEO)
| File | Purpose |
|---|---|
| llms.txt (repo) · site llms.txt | Curated index for coding / answer agents |
| AGENTS.md | Rules for assistants editing this repo |
| CITATION.cff | Formal citation metadata |
| Site robots.txt · sitemap.xml | Crawler hints |
Scoring Summary (UHQS 4.2.0)
The Universal Honeypot Quality Score (UHQS) is a normalized composite from 0 to 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) ]
- (S_A \ldots S_F) — normalized module scores (0–100)
- (w_A \ldots w_F) — profile-adaptive weights (sum to 1.00)
- (\delta_C) — Safety Gate from Module D (Containment):
(\delta_C = 1.0) if (C \ge 95); otherwise (\delta_C = (C/100)^2)
Production deployment requires UHQS > 80 and a passing Safety Gate. A decoy with excellent deception scores can still fail evaluation if Module D falls below the gate. See Scoring Formula.
Audit Workflow (5 Phases)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Phase 1 │──▶│ Phase 2 │──▶│ Phase 3 │──▶│ Phase 4 │──▶│ Phase 5 │
│ Profile & │ │ Static │ │ Sandbox │ │ Dynamic │ │ Score & │
│ Config │ │ Audit (F) │ │ Provision │ │ Modules A–E│ │ Report │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
- Configuration & Profile Setup — Define
profile.yaml, protocol expectations, baselines - Static Audit Execution — Analyze repository, container build manifests, and system prompts
- Sandbox Environment Provisioning — Isolated runtime with egress monitors
- Dynamic Adversarial Execution — Modules A–E via automated harnesses
- Score Computation & Reporting — Apply (\delta_C) and emit the standard scorecard
Repository Layout
uhbs-standard/
├── docs/ # Website + Docs-as-Code (MkDocs → GitHub Pages)
│ └── conformance/
│ ├── fixtures/ # Sanitized scorecard JSON
│ └── reports/ # Quick + full lab artifacts + tutorials (named proof)
├── schemas/ # JSON Schemas for profiles & scorecards
├── templates/ # Starter profile.yaml for framework users
├── src/uhbs_cli/ # Validation CLI
├── src/uhbs_core/ # UHBS-Lab reference harness
├── Dockerfile # Grading image (uhbs CLI + lab)
├── Dockerfile.full # Grading image + Module F SAST tools
├── docker-compose.yml # Mount-cwd helper for the grading image
├── GOVERNANCE.md # Project notes (personal maintainer; not a committee)
├── SECURITY.md # Vulnerability disclosure policy
└── CITATION.cff # Citation metadata
Modules at a Glance
| 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 Performance |
| F | White-Box Static Code Audit |
Embed Your Grade
After publishing an official scorecard, maintainers can embed:

Contributing
Please read CONTRIBUTING.md and GOVERNANCE.md. Specification changes go through an RFC process. By contributing, you agree to the Developer Certificate of Origin (DCO) (sign-off required on commits).
Citation
@software{uhbs2026,
author = {Zavdi, Moran},
title = {Universal Honeypot Benchmarking Standard (UHBS)},
year = {2026},
version = {4.2.0},
publisher = {Zenodo},
doi = {10.5281/zenodo.21631156},
url = {https://doi.org/10.5281/zenodo.21631156}
}
Or use the machine-readable CITATION.cff. Concept DOI (always resolves to the latest deposit): 10.5281/zenodo.21631155.
License
Licensed under the Apache License 2.0.
An objective, repeatable, quantitative methodology for deception technology evaluation — providing cybersecurity professionals with a non-biased baseline for comparing and grading honeypots and decoy systems.
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 uhbs-4.2.0.tar.gz.
File metadata
- Download URL: uhbs-4.2.0.tar.gz
- Upload date:
- Size: 144.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28f3b987e88b2ab20b804e03a42a5efc1bb923dbbdcbfd540029c160cf4ba0dd
|
|
| MD5 |
7fc2522efcd2784bef96cb066d16e291
|
|
| BLAKE2b-256 |
77d0b576a5d12f59e5ce14d68fb4ffbb7c9f1f322a0425a8c4c88deea792a572
|
Provenance
The following attestation bundles were made for uhbs-4.2.0.tar.gz:
Publisher:
release.yml on mziqudhd92/uhbs-standard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uhbs-4.2.0.tar.gz -
Subject digest:
28f3b987e88b2ab20b804e03a42a5efc1bb923dbbdcbfd540029c160cf4ba0dd - Sigstore transparency entry: 2271046667
- Sigstore integration time:
-
Permalink:
mziqudhd92/uhbs-standard@a9fef9136fda3beb75261f8edae8275fc0e677e7 -
Branch / Tag:
refs/tags/v4.2.0 - Owner: https://github.com/mziqudhd92
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a9fef9136fda3beb75261f8edae8275fc0e677e7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file uhbs-4.2.0-py3-none-any.whl.
File metadata
- Download URL: uhbs-4.2.0-py3-none-any.whl
- Upload date:
- Size: 153.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
415d02e07789bf60c11723bdc4c8c7a8ad34e922d9da2c7d0de86ed106a612fd
|
|
| MD5 |
9eb3e10ff51f1fd63c2f6dd052abcaeb
|
|
| BLAKE2b-256 |
1cff308e32b12bca113d49f139301713cfa195aedec9a7cbd7ddff2bc12e5ad5
|
Provenance
The following attestation bundles were made for uhbs-4.2.0-py3-none-any.whl:
Publisher:
release.yml on mziqudhd92/uhbs-standard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
uhbs-4.2.0-py3-none-any.whl -
Subject digest:
415d02e07789bf60c11723bdc4c8c7a8ad34e922d9da2c7d0de86ed106a612fd - Sigstore transparency entry: 2271046805
- Sigstore integration time:
-
Permalink:
mziqudhd92/uhbs-standard@a9fef9136fda3beb75261f8edae8275fc0e677e7 -
Branch / Tag:
refs/tags/v4.2.0 - Owner: https://github.com/mziqudhd92
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a9fef9136fda3beb75261f8edae8275fc0e677e7 -
Trigger Event:
push
-
Statement type: