Compliance-Funktionen
Regulierungen, Kapitel, Controls, Findings, Massnahmen, Richtlinien und Kennzahlen in swark sowie die mitgelieferten NIS2-Inhalte.
Überblick
swark verknüpft regulatorische Anforderungen mit der eigenen Strategie und Architektur:
Regulierung ─ Kapitel ─ Control
│ │
│ ├─ Finding ─ Massnahme ─ KPI (Metrik, Messung)
│ └─ Massnahme
Strategie ─ Ziel ┴─ Finding / Massnahme / KPI
Richtlinie ─ Regel ─ Geltungsbereich (Scope) ─ betroffene Objekte (z. B. Zonen)
Regulierungen
Eine Regulierung (Tabelle regulation) hat einen Namen und eine Scomp-ID, zum Beispiel nis2. Sie entsteht über das Excel-Blatt «Regulations», über den Markdown-Import (Ordner regulations/<scomp-id>/) oder im Panel Compliance.
Kapitel
Ein Kapitel (regulation_chapter) gehört zu einer Regulierung und hat:
| Feld | Bedeutung | Quelle beim Markdown-Import |
|---|---|---|
external_id |
Kapitelnummer, zum Beispiel 21 oder 1.2.d |
Ordnername |
name |
Überschrift | Frontmatter heading in law.md |
official_content |
Amtlicher Text | Inhalt von law.md |
summary |
Zusammenfassung | Inhalt von summary.md |
actual_status |
Ist-Zustand im eigenen Unternehmen | Inhalt von actual.md |
target_status |
Soll-Zustand | Inhalt von target.md |
relevancy |
Relevanz: none, low, middle, high | Frontmatter relevancy in law.md: yes → high, partly → middle, no → none |
Ist- und Sollzustand sind die eigentliche Arbeitsfläche: Hier wird pro Kapitel festgehalten, wie die Anforderung heute erfüllt ist und was erreicht werden soll. Das ist im Panel Compliance (Abschnitt «Context» eines Kapitels) oder über Dateien actual.md und target.md möglich.
Ziele und strategische Fragen lassen sich Kapiteln zuordnen (Excel-Blatt «Strategy objectives», Spalte «Answers questions» mit regulation_chapter:<regulierung>:<kapitel>).
Einschränkung 0.2.1: Das Frontend hat keine eigene Seite für Regulierungen und Kapitel. Sie sind nur im Panel Compliance sichtbar.
Controls
Ein Control (regulation_control) ist ein prüfbarer Punkt einer Regulierung, optional einem Kapitel zugeordnet. Felder: external_id (eindeutig je Regulierung), Name, Inhalt. Controls sind die Andockstelle für Findings und Massnahmen.
Findings
Ein Finding (finding) ist eine Feststellung, zum Beispiel eine Lücke aus einer Analyse.
| Feld | Werte |
|---|---|
| Typ | improvement, risk, bug |
| Status | open, in_progress, in_review, done |
| Impact, Known deficits | Freitext |
| Probability, Extend of damage | Zahl (frei, keine Skala vorgegeben) |
| Priorität | Kritikalität (criticality) |
| Behandlungsstrategie | accept, fix |
Ein Finding kann an Controls und an strategische Ziele gehängt werden (finding_assigned). Im Frontend erscheinen nur Findings, die an Ziele der neuesten Strategie gehängt sind (Seite Findings). Der Excel-Import setzt Name, Beschreibung, Priorität und Zuordnungen; Typ, Status und Behandlungsstrategie erhalten Standardwerte (Status «open») und werden im Panel Auditing gepflegt.
Massnahmen (Actions)
Eine Massnahme (action) hat Name, Beschreibung, Status (wie Findings), Beginn und Ende. Sie kann an Findings, Controls und Ziele gehängt werden (action_assigned). Im Frontend erscheinen Massnahmen von Findings auf der Seite Findings (Details und Planung) und Massnahmen mit KPI auf der Seite Zielerreichung.
swark ist kein Ticketsystem: Massnahmen haben keine Verantwortlichen, keine Kommentare und keine Benachrichtigungen.
Metriken, KPIs und Messperioden
| Begriff | Tabelle | Bedeutung |
|---|---|---|
| Metrik | metric |
Was gemessen wird. Typ: boolean, decimal, percentage, time_seconds, time_minutes, time_hours, time_days. Genauigkeit (Nachkommastellen), Zielrichtung (higher oder lower). Flags is_measurable und is_system_parameter. |
| KPI | kpi |
Zielwert und zwei Schwellwerte für eine Metrik (bei decimal als integer_threshold, bei percentage als percentage_threshold gespeichert) |
| Zuordnung | kpi_assigned |
KPI gilt für ein Ziel oder eine Massnahme |
| Messperiode | measurement_period |
Zeitraum, zum Beispiel «2025 1. Halbjahr» |
| Messung | measurement |
Aktueller Wert eines KPI in einer Periode, Flag is_goal_reached |
Pflege in 0.2.1 ausschliesslich über den Excel-Import (Blätter «Measurement periods» und «Metrics»). Dabei gilt:
- Ein KPI entsteht nur, wenn in der Metrik-Zeile ein Zielwert steht.
- Die Messung wird immer der ersten Messperiode des Blatts «Measurement periods» zugeordnet; bei jedem Import werden die bisherigen Messungen dieses KPI gelöscht und neu geschrieben. Eine Messhistorie über mehrere Perioden lässt sich über den Import nicht aufbauen.
is_goal_reachedwird nicht berechnet; Schwellwerte werden nicht ausgewertet.- Das Flag
is_measurablewird gesetzt, wenn «Threshold 1» befüllt ist;is_system_parameterwird gesetzt, wenn «Threshold 2» leer ist. Metriken ohne Schwellwerte (zum Beispiel RTO, RPO) stehen damit als Systemparameter zur Verfügung.
Richtlinien, Regeln und Geltungsbereiche
- Richtlinie (
policy): Name und Beschreibung (Markdown); im Frontend je eine Seite unter/swark/policies/{id}. - Regel (
rule): gehört zu einer Richtlinie, Name, Beschreibung (HTML). - Scope-Vorlage (
scope_template): PHP-Klasse, die Objekte auswählt. In 0.2.1 existiert genau eine Klasse:Swark\DataModel\Infrastructure\Repository\Scope\ItemsByScompId, und sie unterstützt nur logische Zonen (Instanzparameter{"type":"logical_zone"}). - Geltungsbereich (
rule_scope): verbindet Regel und Vorlage mit Optionen, zum Beispiel{"scomp_ids":["b2x"]}. - Nach jedem Import mit Kategorie Compliance ermittelt swark die betroffenen Objekte neu (
rule_scope_itemmit «zuletzt gefunden» und «fehlt seit»). Die Seite IT-Architektur zeigt so je Zone die geltenden Regeln.
Richtlinien, Regeln und Vorlagen werden in 0.2.1 nur über den Excel-Import gepflegt. Die Zuordnung Richtlinie zu Regulierungskapitel (policy_for_regulation_chapter) ist im Schema vorhanden, aber nicht befüllbar.
Mitgelieferte NIS2-Inhalte
Das swark-Paket enthält im Ordner default-importables/regulations/nis2/ die NIS2-Richtlinie in deutscher Sprache:
| Inhalt | Umfang |
|---|---|
| Regulierung | Scomp-ID nis2, Name «NIS 2» (aus data.yaml) |
| Kapitel (Artikel) | 46 Ordner 1 bis 46, je mit law.md (amtlicher Text, Frontmatter heading, relevancy, reference, regulation.scomp_id) und summary.md (Zusammenfassung) |
| Relevanz | 9 Artikel yes, 15 partly, 22 no |
| Controls | 33 Controls in den Artikeln 20 (2), 21 (10), 23 (7), 24 (2), 27 (2), 28 (6) und 29 (4) (controls/<n>.md mit Frontmatter name und external_id, zum Beispiel 21.2.a) |
Import (im Container, Arbeitsverzeichnis /var/www/html):
php artisan swark:import:datamodel --markdown-only default-importables
Die Frontmatter-Felder reference und regulation.scomp_id werden beim Import nicht ausgewertet. Die Relevanzwerte sind eine Voreinschätzung der swark-Autoren und gehören für jede Organisation geprüft. Ist- und Sollzustand sind leer und werden von der Organisation befüllt.
Eigene Regulierungen
Weitere Regulierungen (zum Beispiel ISG, DSG, ISO 27001, DORA) lassen sich auf zwei Wegen erfassen:
- Markdown-Ordner nach dem Muster von NIS2 (siehe Kapitel Datenimport, Abschnitt Markdown- und YAML-Import). Geeignet für umfangreiche Texte.
- Excel-Blätter «Regulations», «Regulation chapters», «Regulation controls». Geeignet für kurze Kapitel. Achtung: Der Excel-Import sucht Kapitel nur über die Kapitelnummer, nicht über die Regulierung. Kapitelnummern müssen deshalb über alle per Excel gepflegten Regulierungen eindeutig sein (zum Beispiel
vait-1.2statt1.2), sonst überschreibt ein Kapitel das andere.
Urheberrechtlich geschützte Normtexte (zum Beispiel ISO-Normen) dürfen nicht als amtlicher Text hinterlegt werden; in diesen Fällen nur Kapitelnummer, Überschrift und eigene Zusammenfassung erfassen.