heygrc
NIS 2 Cyber-Hygiene und Patching im Code

Bekannte Schwachstellen, ungepatcht belassen.

NIS 2 Art. 21(2)(g) zählt grundlegende Cyber-Hygiene-Maßnahmen zu den geforderten Maßnahmen, und eine der grundlegendsten ist das Aktualisieren von Software gegen bekannte Schwachstellen. Wenn ein Patch für eine veröffentlichte Sicherheitswarnung existiert und Sie diesen nicht anwenden, betreiben Sie bewusst eine bekannte Schwachstelle. Diese Entscheidung wird in der Regel in einer Manifestdatei oder einem Basis-Image, also im Code, getroffen.

How it shows up in a diff

The shapes the same control failure takes.

Cyber-Hygiene verschlechtert sich, wenn eine Änderung eine bekannte, behebbare Schwachstelle bestehen lässt. Die wiederkehrenden Muster:

  • Eine Abhängigkeit wird von ihrem Patch ausgeschlossen

    Eine Bibliothek mit einer veröffentlichten Sicherheitswarnung wird auf die betroffene Version festgehalten, anstatt auf die gepatchte Version aktualisiert zu werden, um erneute Tests zu vermeiden.

  • Ein Basis-Image ist eingefroren und nicht mehr gewartet

    Ein Basis-Image ist auf ein altes Tag festgehalten, das keine Sicherheitsupdates mehr erhält, sodass sich bekannte Schwachstellen ansammeln.

  • Ein automatisierter Update-Mechanismus ist deaktiviert

    Die Automatisierung für Abhängigkeits- oder Image-Updates ist abgeschaltet oder deren Pull Requests werden regelmäßig geschlossen, sodass keine Patches mehr eingespielt werden.

  • Ein Sicherheits-Patch wird zurückgesetzt

    Ein Update, das eine Schwachstelle geschlossen hat, wird aufgrund von Problemen zurückgesetzt, wodurch die Schwachstelle erneut geöffnet wird.

  • End-of-Life-Software bleibt im Einsatz

    Eine Laufzeitumgebung oder Bibliothek, die das Ende ihres Lebenszyklus erreicht hat und keine Patches mehr erhält, wird beibehalten, anstatt migriert zu werden.

Worked example

Eine Abhängigkeit wird auf eine Version mit bekannter Sicherheitswarnung zurückgesetzt.

Eine Bibliothek hat eine veröffentlichte Sicherheitswarnung, und eine gepatchte Version ist verfügbar. Die Anwendung des Patches würde erneute Integrationstests erfordern, daher wird die Bibliothek in einer Änderung auf die betroffene Version zurückgesetzt. Die Anwendung funktioniert weiter, aber mit einer bekannten, ungepatchten Schwachstelle.

package.json+1 -1
  "dependencies": {-    "image-parser": "1.4.2"+    "image-parser": "1.3.0"  }
heygrcNIS 2 Art. 21(2)(g)

Das Zurücksetzen von image-parser auf Version 1.3.0 behält eine Version mit einer bekannten, veröffentlichten Sicherheitswarnung bei, obwohl eine gepatchte Version (1.4.2) verfügbar ist. Art. 21(2)(g) (grundlegende Cyber-Hygiene-Maßnahmen) umfasst das Schließen bekannter Schwachstellen durch Patches. Wenden Sie die gepatchte Version an und testen Sie erneut, anstatt die betroffene Version beizubehalten.

What an auditor does with this

Cyber-Hygiene wird anhand dessen überprüft, was noch ausgeführt wird.

Eine Prüfung nach NIS 2 sucht nach Belegen für grundlegende Hygiene: dass bekannte Schwachstellen in angemessener Zeit erfasst und gepatcht werden und dass Software unterstützt bleibt. Eine Änderung, die eine Abhängigkeit auf eine anfällige Version zurücksetzt, ein nicht mehr gewartetes Basis-Image einfriert oder die Update-Automatisierung deaktiviert, ist der konkrete Verstoß dahinter, und er ist im Diff der Manifestdatei, Lockfile oder des Images sichtbar.

What this is, and is not

Eine Überprüfung, kein Schwachstellenscanner.

heygrc markiert Änderungen, die eine NIS 2-Hygienemaßnahme betreffen, und verweist auf die entsprechende Stelle, damit die Behebung im Pull Request erfolgt. Es führt keine Schwachstellenscans oder Patch-Pipelines aus. Es erkennt den Moment, in dem eine Änderung eine bekannte, behebbare Schwachstelle bestehen lässt, direkt im Diff.