Kai Ole Hartwig
19 Min. Lesezeit
Niedrig
Von

Grundschutz++ gegen die eigene Dokumentation

Für alle, die ein ISMS pflegen und sich fragen, ob es dem neuen BSI-Grundschutz standhält. Ich habe meines gegen die Stand-der-Technik-Bibliothek geprüft. Jede Anforderung habe ich gegen das laufende System beantwortet, nicht gegen die Seite, die sie behauptet. Und ich zeige, wie sich der maschinenlesbare Katalog direkt mit Infrastructure as Code und GitOps abgleichen lässt.

Dieser Beitrag eröffnet die Serie „Grundschutz++ als Code“. Die Übersicht aller Teile steht weiter unten.

01 — Die Ausgangslage

Mein ISMS ist nach ISO 27001 aufgebaut. Es gibt eine Anwendbarkeitserklärung, Register für Risiken, Assets und Lieferanten und Nachweise für jede Maßnahme. Alles liegt versioniert als Markdown in einem Repository. Das Setup ist klein: ein Betrieb, eine Plattform, ein paar Kunden.

Mit Grundschutz++ stellt das BSI den IT-Grundschutz neu auf. Die Anforderungen liegen maschinenlesbar vor, in der Stand-der-Technik-Bibliothek. Die Frage war einfach. Hält mein ISMS dem stand, und wo nicht?

02 — Grundschutz++ und ISO 27001 zusammenführen

Grundschutz++ ordnet die Anforderungen nicht mehr nach Bausteinen wie IT-Grundschutz bisher. Die Anforderungen sind nach Praktiken gruppiert, zum Beispiel DET für Detektion, KONF für Konfiguration oder NOT für die Notfallplanung. Jede Anforderung hat eine Kennung, einen Text und ein Niveau. Das Niveau ist normal oder erhöht und richtet sich nach dem Schutzbedarf.

Der größte Unterschied liegt im Format. Das BSI veröffentlicht die Anforderungen in OSCAL, einem offenen Standardformat, in der Stand-der-Technik-Bibliothek. Man braucht dazu keinen eigenen Parser mehr. Ein Skript kann die Liste vollständig einlesen, und keine Anforderung geht beim Übertragen verloren.

Die Brücke zu ISO 27001

Ein ISMS nach ISO 27001 hat bereits eine Anwendbarkeitserklärung. Abschnitt 6.1.3 d verlangt sie. Sie listet die 93 Maßnahmen aus Anhang A der Fassung von 2022, jeweils mit Begründung, ob sie gelten. Die Bibliothek enthält ein Mapping von diesen Maßnahmen auf Grundschutz++.

Über dieses Mapping entsteht die Prüfliste. Jede angewandte Anhang-A-Maßnahme zieht die zugeordneten Grundschutz++-Anforderungen nach sich. In meinem Fall waren das 280. Wer sein ISMS nach ISO 27001 führt, muss also nicht bei null anfangen. Die Anwendbarkeitserklärung legt fest, was zu prüfen ist.

03 — Basis und erhöht: wo der Unterschied technisch liegt

Das normale Niveau ist die Basis für jeden Betrieb. Das erhöhte Niveau gilt dort, wo die Schutzbedarfsfeststellung einen hohen Bedarf ergibt. Welches Niveau eine Anforderung hat, steht in der Bibliothek. Ob es für den eigenen Betrieb gilt, entscheidet der eigene Schutzbedarf. Das Mapping auf ISO 27001 nimmt einem diese Entscheidung nicht ab.

Der Unterschied an Beispielen

Die folgenden Paare zeigen, wie weit die Niveaus auseinanderliegen. Es sind sinngemäße Zusammenfassungen, nicht der Wortlaut des BSI.

Wie ich das erhöhte Niveau behandelt habe

Die Anforderungen auf normalem Niveau habe ich vollständig beantwortet. Beim erhöhten Niveau gab es drei Klassen:

Die dritte Klasse ist die wichtigste. Eine offene Anforderung mit Begründung ist eine Entscheidung. Eine offene Anforderung ohne Begründung ist eine Lücke. In ISO 27001 gehört diese Entscheidung in den Risikobehandlungsplan, freigegeben vom Risikoeigentümer.

04 — Die Methode: Konfiguration statt Dokument

Die wichtigste Regel der Prüfung: Eine Anforderung gilt als erfüllt, wenn das System es zeigt. Dass eine Seite es behauptet, reicht nicht.

Drei Arten von Nachweis

Die Art des Nachweises steht an jeder Zeile, zusammen mit dem Datum der Messung. Das klingt pedantisch. Es ist aber der Unterschied zwischen einer Prüfung und einem Abgleich zweier Texte. Wer nur Dokumente gegen Dokumente legt, prüft, ob die Doku mit sich selbst übereinstimmt. Das tut sie fast immer.

Klare Bewertungsregeln

Eine Regel hat sich als besonders wichtig herausgestellt: Eine Maßnahme, die nur auf dem Papier existiert, zählt als nicht erfüllt, nicht als teilweise. Sonst wird die Mitte der Skala zum Versteck.

05 — Der Katalog als Datenmodell: Abgleich mit IaC und GitOps

Grundschutz++ ist das erste BSI-Regelwerk in OSCAL, einem Standardformat des NIST für Compliance-Daten. Es lässt sich damit ohne eigenen Parser verarbeiten. Jede Anforderung ist ein JSON-Objekt mit festen Feldern. Wer seine Infrastruktur als Code führt, hat damit zwei Datenbestände, die sich vergleichen lassen. Das macht die Prüfung reproduzierbar.

Anatomie einer Anforderung

Eine Anforderung ist kein Fließtext mit Spielraum. Sie ist ein Satz mit fester Grammatik, und die Bibliothek zerlegt ihn in Felder. Gekürzt sieht das so aus:

 

{
  "id": "KONF.3.2",
  "title": "Speicherverschlüsselung",
  "props": [
    { "name": "sec_level",       "value": "normal-SdT" },
    { "name": "effort_level",    "value": "3" },
    { "name": "confidentiality", "value": "2" },
    { "name": "threats",         "value": "G 0.19, G 0.14" }
  ],
  "parts": [{
    "name": "statement",
    "props": [
      { "name": "target_object_categories", "value": "IT-Systeme" },
      { "name": "documentation", "value": "Konfigurationshistorie" },
      { "name": "result",        "value": "integrierte Festspeichermedien" },
      { "name": "action_word",   "value": "verschlüsseln" },
      { "name": "modal_verb",    "value": "SOLLTE" }
    ],
    "prose": "Konfiguration für IT-Systeme SOLLTE integrierte Festspeichermedien verschlüsseln."
  }]
}

 

Quelle: BSI, Stand-der-Technik-Bibliothek, CC BY-SA 4.0, gekürzt.

Für eine technische Prüfung zählen fünf Felder:

Dazu kommen Niveau, Aufwandsstufe, die betroffenen Schutzziele und Verweise auf die elementaren Gefährdungen. Damit lässt sich filtern, bevor man eine einzige Zeile Text liest.

Das Handlungswort bestimmt den Nachweis

Das Handlungswort ist das nützlichste Feld. Es trennt die Anforderungen, die man im Repository prüfen kann, von denen, die ein Protokoll oder einen Termin brauchen. Für meine 280 Anforderungen ergab das vier Gruppen:

Knapp 40 Prozent der Prüfliste lassen sich also direkt gegen Code beantworten. Ein weiteres Sechstel gegen Daten aus Pipeline und Monitoring, die ohnehin anfallen. Nur der Rest braucht Handarbeit am Dokument.

Vom Zielobjekt zum Repository-Pfad

Das Zielobjekt sagt, in welchem Teil des Codes man sucht. Die Zuordnung habe ich einmal festgelegt und dann für alle Anforderungen benutzt:

Die Konfigurationshistorie ist Git

Die häufigste Dokumentationsvorgabe im ganzen Katalog ist die Konfigurationshistorie. Sie steht an 183 von 1.000 Anforderungen. Wer mit GitOps arbeitet, hat sie bereits. Jede Änderung ist ein Commit, jeder Commit hängt an einem Merge Request, jede Freigabe an einer Pipeline. Man muss nichts nachträglich aufschreiben. Man muss nur auf den richtigen Commit zeigen.

Deshalb nennt jede Zeile der Prüfung Repository und Commit. Eine Aussage wie „Verschlüsselung aktiv“ ist ohne Commit eine Behauptung. Mit Commit ist sie nachprüfbar, auch noch in einem Jahr.

Soll, Ist und Behauptung

IaC beschreibt den Soll-Zustand. Das reicht nicht, denn das laufende System kann abweichen. Für jede Konfigurationsanforderung habe ich deshalb drei Quellen gegeneinander gelegt:

Erfüllt ist eine Anforderung erst, wenn Soll und Ist übereinstimmen. Die interessanten Befunde liegen dort, wo die Behauptung von beiden abweicht. Das passiert öfter als erwartet, und in beide Richtungen.

Reproduzierbar machen

Die Bibliothek wird laufend neu veröffentlicht. Eine Prüfung gegen „die aktuelle Fassung“ lässt sich deshalb nicht wiederholen. Drei Regeln haben das gelöst:

Was sich messen lässt, wird danach selbst zur Prüfung in der Pipeline. Ein nächtlicher Job prüft etwa, ob alle Release-Tags geschützt sind. Ein täglicher tofu plan meldet Drift. So bleibt eine einmal erfüllte Anforderung erfüllt, oder jemand erfährt es.

Das Werkzeug

Das Skript habe ich als grundschutz-worksheets auf GitHub veröffentlicht, unter MIT-Lizenz. Es ist ein Node-Programm ohne Abhängigkeiten und ohne Installation. Es lädt Katalog und Mapping zu einem festen Commit direkt aus der Bibliothek. Es löst verschachtelte Anforderungen auf, setzt Parameter ein und gruppiert nach Praxis. Heraus kommt pro Anforderung eine Zeile mit Kennung, Niveau, Modalverb, Handlungswort, Zielobjekt, Dokumentationsvorgabe und den Anhang-A-Maßnahmen, die dorthin führen. Als Markdown-Checkliste oder als CSV für die Tabellenkalkulation.

 

git clone github.com/ohartwig/grundschutz-worksheets
cd grundschutz-worksheets

C=367d775010abee641b258926bb482fcd05270059   # Commit der BSI-Bibliothek
CAT=control_layer/Grundschutz++/Grundschutz++-resolved_catalog.json
MAP=control_layer/Mappings/ISO-27001-zu-GSpp/ISO27001-AnnexA-to-GS++-mapping_collection.json

# Arbeitsblatt für die eigenen Anhang-A-Maßnahmen, als CSV
node worksheet.mjs $CAT --mapping $MAP --sources @anwendbare-massnahmen.txt \
  --format csv --commit $C > arbeitsblatt.csv

# Wo liegt die Arbeit? Zählung nach Praxis, Niveau, Modalverb und Handlungswort
node worksheet.mjs $CAT --mapping $MAP --summary --commit $C

 

Das Beantworten nimmt es nicht ab. Es sorgt nur dafür, dass keine Anforderung fehlt. Die Texte des BSI kopiert es nicht in die eigene Dokumentation. Dort stehen nur Kennungen und die eigene Bewertung, auch wegen der Lizenz.

Zweite Ebene: vom laufenden System zurück zum Code

Ein ISO-27001-Auditor, dem ich den Ansatz gezeigt habe, hat den wunden Punkt sofort benannt. Der Abgleich läuft bisher in eine Richtung, vom Code zum System. Er prüft, ob das, was im Repository steht, auch läuft. Er findet nicht, was läuft, obwohl es nirgends steht. Ein Server, der längst weg sein sollte. Ein offener Port, den niemand geplant hat. Eine Ressource, die jemand von Hand angelegt hat.

Ein Drift-Check hilft da nur halb. tofu plan vergleicht nur die Ressourcen, die der Code kennt. Was ohne Code entstanden ist, taucht dort nicht auf. Die zweite Ebene dreht die Richtung um und fragt das laufende System, was es gibt:

Erfüllt ist eine Anforderung erst, wenn beide Richtungen stimmen. Der Code beschreibt das Richtige, und das System enthält nichts darüber hinaus.

Grenzen des Ansatzes

Mein Setup ist klein und fast vollständig als Code beschrieben. Das hat den Ansatz leicht gemacht. In einer gewachsenen Umgebung würde ich genauso anfangen, mit einem kleinen Bereich, der schon als Code vorliegt. Dort zeigt sich schnell, ob der Abgleich trägt. Größer und komplexer geht danach immer. Manches muss man ohnehin mehrfach und aus verschiedenen Richtungen prüfen.

06 — Die Zahlen

Von den 280 Anforderungen waren am Ende der Prüfung, Stand 26. September 2026:

Die große Mitte ist typisch für ein ISMS, das technisch gut aufgestellt ist. Die Maßnahme läuft, aber ein Glied der Kette fehlt. Typisch sind ein Alarm, der feuert, aber niemanden erreicht, oder ein Test, der einen älteren Aufbau prüft. Solche Lücken sieht nur, wer die ganze Kette misst.

Die 29 Lücken verteilen sich ungleich. Technische Anforderungen, etwa zu Protokollierung, Backups oder Konfiguration, ließen sich oft am selben Tag schließen. Offen blieben vor allem organisatorische Anforderungen. Die brauchen Termine, keine Merge Requests.

07 — Der eigentliche Befund

Ich hatte fehlende Maßnahmen erwartet. Gefunden habe ich vor allem Dokumentation, die nicht mehr stimmte. Und zwar in beide Richtungen.

Muster, die sich wiederholt haben

In kleinen Organisationen passiert das fast zwangsläufig. Die Doku entsteht einmal, sorgfältig und vollständig. Danach wandert das System weiter, die Doku nicht. Niemand lügt. Es prüft nur niemand nach.

08 — Was ich daraus ändere

Die Änderungen setzen dort an, wo ISO 27001 ohnehin etwas verlangt. Sie machen die Anforderung prüfbar.

09 — Was das für ein ISO-27001-Audit bedeutet

Ein Auditor prüft nicht, ob die Doku schön ist. Er prüft, ob die dokumentierten Maßnahmen wirksam sind. Dazu nimmt er Stichproben. Er lässt sich eine Einstellung zeigen, einen Alarm, einen Wiederherstellungstest.

Genau dort fällt veraltete Doku auf. Eine Maßnahme, die nur auf dem Papier existiert, ist eine Abweichung. Wiederholt sich das Muster, wird aus der Nebenabweichung schnell eine Hauptabweichung. Denn dann steht die Lenkung dokumentierter Information nach 7.5 insgesamt in Frage.

Was die Prüfung vorher leistet

Grundschutz++ ersetzt dabei keine Zertifizierung. Es ist aber ein sehr genauer Maßstab dafür, was der Stand der Technik ist. Wer seine Anwendbarkeitserklärung dagegen prüft, geht besser vorbereitet ins Audit.

10 — Meine Bewertung von Grundschutz++

Nach einem vollständigen Durchgang fällt mein Urteil gemischt aus. Insgesamt ist es klar positiv.

Was überzeugt

Was Arbeit macht

Mein Fazit zur Bewertung: Grundschutz++ taugt als Maßstab für ein ISMS nach ISO 27001, gerade in kleinen Betrieben. Den größten Nutzen hat, wer die Prüfung nicht als Formular behandelt. Man sollte sie als Messung behandeln.

11 — Die Serie im Überblick

Bisher liest die Prüfung OSCAL nur. Der Katalog kommt als Datensatz, die Antworten stehen noch als Text im Handbuch. Die Serie dreht das Schritt für Schritt um: Der Betrieb beschreibt sich selbst in OSCAL, erzeugt aus dem, was ohnehin im Repository steht.

  1. Grundschutz++ gegen die eigene Dokumentation: die Methode, der Katalog als Datenmodell, der Abgleich mit IaC und GitOps. Dieser Beitrag.
  2. Die Anwendbarkeit als Datensatz: die eigene Auswahl aus Grundschutz++ als OSCAL-Profil, erzeugt aus der Anwendbarkeitserklärung.
  3. Container, die sagen, welche Anforderungen sie erfüllen: eine signierte Komponentendefinition an jedem Image, das die Pipeline baut.
  4. Messung als Nachweis: nächtliche Prüfungen schreiben ihre Ergebnisse als OSCAL. Dazu die zweite Ebene, die im laufenden System findet, was kein Repository kennt.
  5. Das ISMS als Build-Produkt: ein Sicherheitsplan, der zusammengebaut statt geschrieben wird, mit einer ehrlichen Bilanz des Aufwands.

Ein Teil erscheint erst, wenn der beschriebene Schritt im Betrieb läuft und gemessen ist. Der Code dazu liegt vorher in grundschutz-worksheets. Die Titel werden hier verlinkt, sobald der jeweilige Beitrag online ist.

Häufige Fragen

Wie oft sollte man prüfen?+

Mindestens einmal im Jahr als Teil des internen Audits nach ISO 27001 Abschnitt 9.2. Dazu nach größeren Umbauten. Die Befunde gehen als Korrekturmaßnahmen in das Maßnahmenregister.

Lohnt sich das für kleine Betriebe?+

Ja, wenn man die Anforderungen als Prüfliste nutzt und nicht als Pflichtenheft. Die maschinenlesbare Bibliothek macht den Abgleich deutlich leichter als der alte Grundschutz mit seinen Bausteinen. Der größte Aufwand ist das Messen, nicht das Lesen.

Was bedeutet normal und erhöht?+

Das ist das Niveau einer Anforderung, abgeleitet aus dem Schutzbedarf. Das normale Niveau ist die Basis. Das erhöhte Niveau gilt, wo ein Ausfall oder ein Datenabfluss besonders schwer wiegt. Es lohnt sich, die leicht erreichbaren erhöhten Anforderungen gleich mitzunehmen.

Wie kommt man von Anhang A zu den Grundschutz++-Anforderungen?+

Über das Mapping in der Stand-der-Technik-Bibliothek. Es ordnet den Maßnahmen aus Anhang A die passenden Grundschutz++-Anforderungen zu. Ausgangspunkt ist die eigene Anwendbarkeitserklärung: Jede angewandte Maßnahme bringt ihre Anforderungen mit.

Ersetzt Grundschutz++ eine ISO-27001-Zertifizierung?+

Nein. Grundschutz++ ist ein Katalog von Anforderungen, keine Zertifizierung. Er beschreibt sehr genau, was der Stand der Technik ist. Wer seine Anwendbarkeitserklärung nach ISO 27001 dagegen prüft, findet die Stellen, die ein Auditor als Stichprobe ziehen würde.

Fazit

Die Prüfung gegen Grundschutz++ hat weniger fehlende Maßnahmen gefunden als erwartet. Sie hat vor allem gezeigt, wo die Doku nicht mehr zum System passt. Das ist der Teil, der in einem ISO-27001-Audit am meisten kostet. Die Anwendbarkeitserklärung liefert die Prüfliste, das Mapping der Bibliothek liefert die Anforderungen. Weil jede Anforderung als Datensatz mit Zielobjekt und Handlungswort vorliegt, lässt sich ein großer Teil direkt gegen IaC- und GitOps-Repositories beantworten. Den Rest erledigt eine einfache Regel: nur messen, was das System zeigt, und jede Aussage mit Datum versehen.

Weiter mit Teil 2: Die Anwendbarkeit als Datensatz.

Ich prüfe dein ISMS gegen Grundschutz++. Gemessen am laufenden System, nicht an der Doku.

Abgleich deiner Anwendbarkeitserklärung mit der Stand-der-Technik-Bibliothek, Bewertung jeder Anforderung gegen Konfiguration und Messung, eine klare Liste der Lücken mit Aufwand und Reihenfolge.

Plattform-Betrieb statt Beratung auf Papier: Auf Wunsch schließe ich die technischen Lücken selbst und liefere die Nachweise für dein ISO-27001-Audit.

Termin buchen →

Über den Autor

Foto von Kai Ole Hartwig.

Kai Ole Hartwig

Freiberuflicher DevSecOps-Berater · OnlyOle Consulting

Programmiert seit 2002 – autodidaktisch gelernt, 2012 mit KO-Web selbständig gemacht. Über 100 Projekte, Fokus auf Security, Performance, Automatisierung und Qualität. Heute freiberuflich: DevSecOps-Beratung, Schulungen und Softwareentwicklung.