Skip to main content

Universal Honeypot Benchmarking Standard (UHBS)

CI Snyk Security Docs PyPI OpenSSF Best Practices License Spec UHQS DOI

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.4.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. Source and docs: github.com/uhbs/uhbs-standard · uhbs.github.io/uhbs-standard · ROADMAP.

Link
Docs Landing · MkDocs
Install pip install uhbs · extras: lab, mcp, aep
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
AEP SLM trial generator (alpha; off until you edit config) pip install 'uhbs[aep-slm]'uhbs aep slm
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[aep-slm]'   # alpha SLM trial helper (still off until you edit config)
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
aep-slm Alpha AEP SLM trial generator (disabled until you edit aep-slm.yaml)
scapy Optional protocol-encoding backend
dev pytest, ruff, mypy (+ lab/mcp for contributors)
all lab + mcp + scapy

Development checkout:

git clone https://github.com/uhbs/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

3b. Optional AEP SLM alpha (off by default)

Draft AEP trial JSONL with a deterministic mock or a loopback-only local model. Install does not enable it — edit aep-slm.yaml first. Does not change UHQS. Guide: SLM evaluator (alpha).

pip install 'uhbs[aep-slm]'
uhbs aep slm init --out aep-slm.yaml
uhbs aep slm status aep-slm.yaml          # shows LOCKED until you edit the file
# Edit aep-slm.yaml: enabled + unlock phrase + attestations (see docs)
# uhbs aep slm generate aep-slm.yaml

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.4.5 .
docker run --rm -v "$PWD:/work" -w /work uhbs:4.4.5 \
  validate-scorecard ./docs/conformance/fixtures/cowrie-low-interaction.scorecard.json
docker run --rm -v "$PWD:/work" -w /work uhbs:4.4.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://uhbs.github.io/uhbs-standard/mkdocs/advanced-evidence/
Beginner tutorial https://uhbs.github.io/uhbs-standard/mkdocs/advanced-evidence/tutorial-beginner/
CLI https://uhbs.github.io/uhbs-standard/mkdocs/advanced-evidence/cli/
SLM evaluator (alpha, opt-in) https://uhbs.github.io/uhbs-standard/mkdocs/advanced-evidence/slm-alpha/
Landing hub (AEP section) https://uhbs.github.io/uhbs-standard/#advanced-evidence
Related frameworks https://uhbs.github.io/uhbs-standard/mkdocs/mappings/related-frameworks/

Documentation map

Resource Link
Landing hub https://uhbs.github.io/uhbs-standard/
Specification https://uhbs.github.io/uhbs-standard/mkdocs/specification/core-principles/
Sitemap index (SEO) https://uhbs.github.io/uhbs-standard/sitemap.xml
CLI guide docs/tooling/cli.md
MCP (AI hosts) docs/tooling/mcp.md
AEP SLM (alpha) https://uhbs.github.io/uhbs-standard/mkdocs/advanced-evidence/slm-alpha/
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 / AEO index llms.txt · AGENTS.md · humans.txt

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.4.5](https://img.shields.io/badge/UHBS%20v4.4.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.4.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.4.5.tar.gz (243.9 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.4.5-py3-none-any.whl (248.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for uhbs-4.4.5.tar.gz
Algorithm Hash digest
SHA256 79a1c4200ec3fcdf973c4021d320df1bdf01b0a9e129801c96dd407c9e5a30a7
MD5 f80e24536ba704e4427f965384657d85
BLAKE2b-256 aa9698164033d05bdf08cdfb8a49151f3e8e884c5eee56a1b4986705eec758d6

See more details on using hashes here.

Provenance

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

Publisher: release.yml on uhbs/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.4.5-py3-none-any.whl.

File metadata

  • Download URL: uhbs-4.4.5-py3-none-any.whl
  • Upload date:
  • Size: 248.0 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.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 96f2fb24100c4ce575d4648ff45b169cfbed695c37f6f532803e7e8ca3a523fc
MD5 5888ab1ea75b4f4a01ab21968fc14237
BLAKE2b-256 8a9160d9a14cb7ec299edc06f9c606da60caf20683aec7e3dcc2612146cf906f

See more details on using hashes here.

Provenance

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

Publisher: release.yml on uhbs/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

This release

4.4.5 This release

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

4.3.5

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