Skip to main content

NIS2 Compliance Tool — Article 21 coverage with TIBET audit trail, incident response, and supply chain verification

Project description

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.

Project details


Download files

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

Source Distribution

tibet_nis2-0.1.1.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

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

tibet_nis2-0.1.1-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file tibet_nis2-0.1.1.tar.gz.

File metadata

  • Download URL: tibet_nis2-0.1.1.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_nis2-0.1.1.tar.gz
Algorithm Hash digest
SHA256 64494f38d1a72acbc1d2fcc90ee0e8d92338784e245f04ff2b4b68475dd7aa9e
MD5 9594b234d460a4ed598c4b0c3e34ce8f
BLAKE2b-256 064fc1ca67d8cc99934906c233e732442f515b1ee36e67974c1ce393a026cd1e

See more details on using hashes here.

File details

Details for the file tibet_nis2-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tibet_nis2-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_nis2-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56c20061bd3632f2e71052e3dbfb16dee346e00a6e0756d9fa6f5205aab84274
MD5 ebcc4bde3616ec6677754f5ce07ad279
BLAKE2b-256 b84c033c74d73930caf6b7b559ab92c46836f56928f005bf2f7e9e736a24e74b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page