Skip to main content

Universal Honeypot Benchmarking Standard (UHBS)

CI Docs PyPI 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.4 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.4 .
docker run --rm -v "$PWD:/work" -w /work uhbs:4.4.4 \
  validate-scorecard ./docs/conformance/fixtures/cowrie-low-interaction.scorecard.json
docker run --rm -v "$PWD:/work" -w /work uhbs:4.4.4 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.4](https://img.shields.io/badge/UHBS%20v4.4.4-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.4},
  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.4.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.4-py3-none-any.whl (247.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: uhbs-4.4.4.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.4.tar.gz
Algorithm Hash digest
SHA256 4a1ca6d6ce7d00fff1cbada515d5c893144bb272c7ead3b19715e11e500d43b8
MD5 e24bf84c4007730f7d20f47a8adc22f7
BLAKE2b-256 2e0412e4da447e7eb08c5aa9d505133879f70508f6592a3c8f3fc4ae0a5db13e

See more details on using hashes here.

Provenance

The following attestation bundles were made for uhbs-4.4.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: uhbs-4.4.4-py3-none-any.whl
  • Upload date:
  • Size: 247.8 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d4b8c13c8aff6058bb26c2273f8e56370e8ce370e2d55e0438e15525555b24d1
MD5 ee4f1197ace928e2e86267335ddb3fe0
BLAKE2b-256 be493bc46e4c89131b9286c1e8b5abe388a21f7e79b3e5446865ab32be74e27f

See more details on using hashes here.

Provenance

The following attestation bundles were made for uhbs-4.4.4-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

4.4.5

2 files

This release

4.4.4 This release

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