tibet-nis2 — NIS2 Directive Compliance Tool
NIS2 (Directive 2022/2555) deadline has passed. Every essential and important entity in the EU must comply. No exceptions, no extensions, no excuses.
tibet-nis2 is a standalone compliance tool covering all ten sub-articles of NIS2 Article 21(2) — from risk analysis to multi-factor authentication — with a full TIBET audit trail for every assessment, decision, and incident.
Why This Exists
The EU adopted NIS2 because cyber incidents keep escalating:
- Odido hack (2024) — Millions of customer records exposed. A telecom provider that should have had supply chain security and incident response in place. NIS2 Art. 21(2)(d) was written exactly for this.
- Politie cookies hack — Dutch police systems compromised through a trivial web vulnerability. Basic cyber hygiene (Art. 21(2)(g)) would have prevented it.
- Ransomware across EU hospitals — Patient data held hostage because backup and business continuity plans (Art. 21(2)(c)) were missing.
NIS2 is not bureaucracy. It is the minimum bar for operating critical infrastructure in 2025.
What It Covers
All ten cybersecurity risk-management measures from NIS2 Art. 21(2):
| Sub-article | Requirement | tibet-nis2 |
|---|---|---|
| (a) | Risk analysis & information system security policies | Asset inventory + risk assessment |
| (b) | Incident handling | 24h/72h/final report templates |
| (c) | Business continuity & crisis management | Continuity checks |
| (d) | Supply chain security | Dependency mapping + verification |
| (e) | Security in acquisition of network/information systems | Procurement checks |
| (f) | Assessing effectiveness of risk management | Scoring + gap analysis |
| (g) | Basic cyber hygiene & cybersecurity training | Hygiene checklist |
| (h) | Cryptography & encryption policies | Crypto audit |
| (i) | HR security, access control, asset management | Access + asset checks |
| (j) | Multi-factor authentication | MFA verification |
Every check produces a TIBET token — an immutable provenance record linking the assessment to the asset, the auditor, and the NIS2 article.
Installation
pip install tibet-nis2
Or from source:
git clone https://github.com/jaspertvdm/tibet-nis2.git
cd tibet-nis2
pip install -e .
Quick Start
from tibet_nis2 import NIS2Auditor, Asset
auditor = NIS2Auditor(organization="Acme BV", sector="essential")
# Register assets
auditor.add_asset(Asset(
id="srv-prod-01",
name="Production Database",
category="ESSENTIAL",
asset_type="database",
owner="infra-team",
criticality=5,
))
auditor.add_asset(Asset(
id="fw-edge-01",
name="Edge Firewall",
category="ESSENTIAL",
asset_type="network",
owner="security-team",
criticality=5,
dependencies=["srv-prod-01"],
))
# Run full compliance check
report = auditor.check_compliance()
print(f"Score: {report.overall_score}/100")
print(f"Compliant: {report.compliant}")
print(f"Gaps: {len(report.gaps)}")
# Incident response
incident = auditor.incident_report(
asset_id="srv-prod-01",
incident_type="data_breach",
description="Unauthorized access to customer database detected",
)
print(f"Early warning deadline: {incident.early_warning_deadline}")
print(f"Full report deadline: {incident.full_report_deadline}")
CLI Commands
# NIS2 overview — what it is, who must comply, deadlines
tibet-nis2 info
# Run compliance check (demo mode with sample assets)
tibet-nis2 check
# Show asset inventory
tibet-nis2 assets
# Incident response demo (simulates Odido-style breach)
tibet-nis2 incident
# Full demo: assets → risks → compliance → incident → deadlines
tibet-nis2 demo
# Show all Art. 21(2) sub-articles and coverage status
tibet-nis2 articles
# JSON output (all commands)
tibet-nis2 check --json
tibet-nis2 assets --json
TIBET Audit Trail
Every assessment produces provenance tokens with the TIBET structure:
- ERIN — What was assessed, what was found
- ERAAN — Related assets, dependencies, JIS identity
- EROMHEEN — Auditor node, timestamp, NIS2 article reference
- ERACHTER — The "why": which NIS2 article this satisfies
auditor = NIS2Auditor(organization="Acme BV")
# ... add assets, run checks ...
chain = auditor.provenance.chain()
# Every token is linked, hashed, and traceable
Part of the TIBET Ecosystem
tibet-nis2 is part of the TIBET protocol family:
- tibet-core — Provenance token engine
- tibet-pol — Policy enforcement (no action without proof)
- tibet-twin — Digital twin synchronicity guard
- tibet-y2k38 — Y2038 time overflow protection
- tibet-edge — Edge device provenance
- tibet-nis2 — NIS2 compliance (this package)
Authors: J. van de Meent & R. AI (Root AI) License: MIT — Humotica AI Lab 2025
License
MIT
Credits
Designed by Jasper van de Meent. Built by Jasper and Root AI as part of HumoticaOS.
Stack-positie: Groep evidence · Bootstrap = OSAPI-handshake naar tibet + jis (fail → snaft-rule + tibet-pol-rapport) · ← tibet-wayback · tibet-report → · See STACK.md · See demo/golden-path/ for the spine end-to-end.
Enterprise
For private hub hosting, SLA support, custom integrations, or compliance guidance:
| Enterprise | enterprise@humotica.com |
| Support | support@humotica.com |
| Security | security@humotica.com |
See ENTERPRISE.md for details.
Metadata
Release files for tibet-nis2 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tibet_nis2-0.1.1.tar.gz | 19.5 kB | Without provenance | Details for tibet_nis2-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tibet_nis2-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for tibet_nis2-0.1.1-py3-none-any.whl |
Total release size: 41.2 kB
Release files / tibet_nis2-0.1.1.tar.gz
| Download URL | tibet_nis2-0.1.1.tar.gz |
|---|---|
| Size | 19.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
64494f38d1a72acbc1d2fcc90ee0e8d92338784e245f04ff2b4b68475dd7aa9e
|
|
BLAKE2b-256 checksum How to use checksums |
064fc1ca67d8cc99934906c233e732442f515b1ee36e67974c1ce393a026cd1e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / tibet_nis2-0.1.1-py3-none-any.whl
| Download URL | tibet_nis2-0.1.1-py3-none-any.whl |
|---|---|
| Size | 21.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
56c20061bd3632f2e71052e3dbfb16dee346e00a6e0756d9fa6f5205aab84274
|
|
BLAKE2b-256 checksum How to use checksums |
b84c033c74d73930caf6b7b559ab92c46836f56928f005bf2f7e9e736a24e74b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for tibet-nis2 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.