Mit benutzerdefinierten Konformitätsinhalten können Sie eigene Sicherheitsstandards definieren, um die in SaltStack SecOps Compliance integrierte Bibliothek der Sicherheits-Benchmarks und -prüfungen zu ergänzen. Diese benutzerdefinierten Inhalte sind nützlich, um SaltStack SecOps Compliance-Richtlinien so zu verbessern, dass sie Ihren internen Anforderungen entsprechen.

Eine Prüfung ist ein Sicherheitsstandard, und SaltStack SecOps Compliance bewertet die Konformität damit. Benchmarks sind Kategorien von Sicherheitsprüfungen.

SaltStack SecOps Compliance enthält ein SDK für benutzerdefinierte Inhalte (Custom Content Software Development Kit), mit dem Sie eigene benutzerdefinierte Sicherheitsinhalte erstellen und testen können. Sie können Ihre benutzerdefinierten Sicherheitsinhalte zur Verwendung zusammen mit der integrierten Sicherheitsbibliothek von SaltStack SecOps Compliance für die Bewertung und Standardisierung importieren. Beim Importieren benutzerdefinierter Inhalte haben Sie außerdem die Möglichkeit, Ihre Inhalte mit einem Versionskontrollsystem Ihrer Wahl zu versionieren.

Für die Verwendung benutzerdefinierter Prüfungen müssen Sie zuerst das Custom Content SDK von SaltStack SecOps Compliance initialisieren. Das SDK enthält Beispieldateien, die Sie ändern können, um Ihre eigenen benutzerdefinierten Prüfungen und Benchmarks zu erstellen. Das SDK enthält auch eine Docker-basierte Testumgebung, in der Sie Ihre neuen Inhalte testen können.

Nachdem Ihre benutzerdefinierten Inhalte erstellt und getestet wurden, können Sie eine Inhaltsdatei erstellen und in SaltStack SecOps Compliance importieren, um mit der Bewertung und Standardisierung zu beginnen. Benutzerdefinierte Prüfungen enthalten ein Benutzersymbol custom-checks-user-icon, im Gegensatz zu SaltStack-Prüfungen built-in-checks-shield-icon. SaltStack SecOps Compliance verfolgt Abhängigkeiten zwischen Richtlinien und Ihren benutzerdefinierten Inhalten und stellt eine Liste der Abhängigkeiten bereit, die beim Löschen der Inhalte möglicherweise aufgelöst werden.

Voraussetzungen

Initialisieren des SDK

  1. Navigieren Sie von der Befehlszeile aus zu dem Verzeichnis, in dem sich die Datei befindet, und führen Sie je nach Betriebssystem Folgendes aus:
    • Mac OS oder Linux
      ./secops_sdk init
    • Windows
      secops_sdk.exe init

    Es wird kein Ergebnis angezeigt. Dies ist erwartungsgemäß. Ihr Verzeichnis enthält jetzt die folgenden Ordner und Dateien:

    • benchmarks
    • salt/locke/custom
    • sample_tests
    • README.md

    Weitere Informationen zu diesen Ordnern und Dateien finden Sie unter Ordner und Dateien.

  2. (Optional) Bestätigen Sie Änderungen an einem versionskontrollierten Repository.

Erstellen von benutzerdefinierten Prüfungen

Hinweis:

Bevor Sie benutzerdefinierte Inhalte erstellen können, müssen Sie erst das SDK initialisieren. Weitere Informationen hierzu finden Sie unter Initialisieren des SDK.

  1. Wechseln Sie im Custom Content SDK zu salt/locke/custom. Dieses Verzeichnis enthält verschiedene Unterverzeichnisse mit Beispielen für Zustands- (.sls) und Metadateien (.meta).
    Hinweis: Alle benutzerdefinierten Prüfungen müssen sowohl in einer Zustandsdatei ( .sls) als auch in einer entsprechenden Metadatei ( .meta) konfiguriert werden.
  2. Erstellen Sie eine Kopie sowohl von einer Beispielzustandsdatei (.sls) als auch von der zugehörigen Metadatei (.meta), indem Sie beide Dateien mit einem beschreibenden Namen für Ihre benutzerdefinierte Prüfung umbenennen.

    Die beiden Dateien, die einer Prüfung zugeordnet sind, müssen sich im selben Verzeichnis befinden und mit demselben Namen beginnen, z. B.:

    • my_first_check.meta
    • my_first_check.sls

    Sie können diese beiden Dateien zusammen in einem beliebigen Unterverzeichnis von salt/locke/custom speichern.

  3. Bearbeiten Sie die Inhalte der Metadatei, um die Prüfung Ihren Anforderungen entsprechend anzupassen. Die Datei wird in YAML geschrieben. Eine Liste der verschiedenen in der Datei enthaltenen Optionen finden Sie unter Ordner und Dateien.
    Hinweis: Die Metadaten der Prüfung enthalten Referenzen zu verschiedenen Benchmarks. Achten Sie beim Erstellen von benutzerdefinierten Inhalten darauf, dass alle zugehörigen Benchmarks in der Metadatei für Ihre Prüfung enthalten sind.
  4. Bearbeiten Sie den Inhalt der Zustandsdatei. Weitere Informationen finden Sie unter Ordner und Dateien.
  5. Stellen Sie sicher, dass beide Dateien im selben Verzeichnis gespeichert werden.

    Sie haben die erforderlichen Mindestschritte zum Erstellen einer benutzerdefinierten Prüfung jetzt abgeschlossen. Sie können die Prüfung weiterhin testen, für die Versionskontrolle bestätigen oder Ihre Inhaltsbibliothek erstellen.

Erstellen von benutzerdefinierten Benchmarks

Hinweis: Bevor Sie benutzerdefinierte Inhalte erstellen können, müssen Sie erst das SDK initialisieren. Weitere Informationen hierzu finden Sie unter Initialisieren des SDK.
  1. Wechseln Sie im Custom Content SDK zum benchmarks-Verzeichnis. Dieses enthält ein Beispiel für die Benchmark-Metadatei (.meta).
  2. Erstellen Sie eine Kopie von Sample_Benchmark.meta, indem Sie die Datei mit einem beschreibenden Namen der Benchmark umbenennen.
  3. Bearbeiten Sie die Inhalte der Metadatei, um die Benchmark Ihren Anforderungen entsprechend anzupassen. Die Datei wird in YAML geschrieben. Eine Beschreibung der verschiedenen Optionen in der Datei finden Sie unter Ordner und Dateien.

Testen benutzerdefinierter Inhalte

Hinweis: Die folgenden Vorgänge setzen die Installation von Docker voraus. Weitere Informationen zum Herunterladen und Installieren von Docker finden Sie in der Dokumentation zur Docker-Installation.
  1. Nachdem Sie Ihre benutzerdefinierten Inhalte erstellt haben, öffnen Sie die Befehlszeile und navigieren Sie zum sample_tests-Verzeichnis des Custom Content SDK.
  2. Erstellen Sie zum Testen ein Docker-Image von CentOS7 mit Salt.
    ./build.sh
  3. Starten Sie den Testcontainer.
    ./up.sh
  4. Führen Sie Beispieltests für Prüfungen aus, die Sie im salt/locke/custom-Verzeichnis erstellt haben. Sie können benutzerdefinierte Prüfungen wie normale Salt-Zustände ausführen, z. B.:
    ./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True

    Weitere Testbeispiele finden Sie unter „Testen von benutzerdefinierten Inhalten“ in der README-Datei zum SDK. Weitere Informationen zu Salt-Zuständen finden Sie in der Salt-Dokumentation: Wie verwende ich Salt-Zustände?

  5. Wenn der Test abgeschlossen ist, fahren Sie den Testcontainer herunter.
    ./down.sh

Erstellen der Bibliothek für benutzerdefinierte Inhalte

  1. Nachdem Sie Ihre benutzerdefinierten Inhalte erstellt haben, öffnen Sie die Befehlszeile und navigieren Sie zum Root-Verzeichnis des Custom Content SDK.
  2. Erstellen Sie eine Bibliothek mit Ihren benutzerdefinierten Inhalten.
    ./secops_sdk build -a

    Das Root-Verzeichnis des SDK enthält jetzt das _dist-Unterverzeichnis. Dieses enthält zwei tar.gz-Dateien, die Sie zum Importieren Ihrer Inhalte über die Benutzeroberfläche von SaltStack Config oder über die API (RaaS) verwenden können. Eine Beschreibung aller im Verzeichnis enthaltenen Dateien finden Sie unter Ordner und Dateien.

Importieren benutzerdefinierter Inhalte

  1. Klicken Sie im Seitenmenü auf Verwaltung > SecOps.
  2. Klicken Sie unter Konformitätsinhalte – SaltStack auf Nach Updates suchen.
    Hinweis: Wenn Sie während Ihrer aktuellen Sitzung bereits SaltStack SecOps Compliance-Inhalte heruntergeladen haben, können Sie diesen Schritt überspringen.
  3. Klicken Sie auf Paket hochladen und wählen Sie im Datei-Explorer die .tar.gz-Datei aus.
    Hinweis: Um die Navigation Ihrer benutzerdefinierten Prüfungen zu vereinfachen, verwenden Sie die Datei mit einem Zeitstempel im Dateinamen. Weitere Informationen zu Dateien finden Sie unter Ordner und Dateien.

    Ihre benutzerdefinierten Inhalte sind jetzt in SaltStack SecOps Compliance verfügbar, um Richtlinien zu erstellen, Bewertungen auszuführen und Ihre Systeme zu standardisieren. Benutzerdefinierte Prüfungen enthalten ein Benutzersymbol custom-checks-user-icon, im Gegensatz zu SaltStack-Prüfungen built-in-checks-shield-icon.

    Hinweis:

    Sie können Inhalte auch mithilfe der API (RaaS) oder alternativ während der Installation über die Befehlszeile importieren. Weitere Informationen finden Sie in der Sec API-Schnittstelle oder im Enterprise-Installationshandbuch.

Löschen von benutzerdefinierten Prüfungen

  1. Wechseln Sie in der Benutzeroberfläche zu SecOps > Prüfungen.
  2. Klicken Sie neben der Prüfung, die Sie löschen möchten, auf das Menü menu-icon-light und anschließend auf Löschen.
    Hinweis: Nur benutzerdefinierte Inhalte können gelöscht werden. Benutzerdefinierte Inhalte enthalten ein Benutzersymbol custom-checks-user-icon, im Gegensatz zu SaltStack-Inhalten built-in-checks-shield-icon.
  3. Überprüfen Sie im Dialogfeld „Prüfung löschen“ unter „Wird verwendet“ die Liste der Richtlinien und Benchmarks, die die Prüfung enthalten. Dies ist nützlich für die Vorhersage, welche Abhängigkeiten in Ihrer Umgebung beim Löschen der Prüfung möglicherweise aufgelöst werden.

    Wenn Sie die Überprüfung der verwendeten Abhängigkeiten abgeschlossen haben, klicken Sie auf Weiter.

  4. Klicken Sie unter Prüfung löschen > Warnung auf Löschen. Das Dialogfeld bestätigt, dass die Prüfung gelöscht wurde.
  5. Klicken Sie zum Schließen des Dialogfelds auf Fertig.

Löschen von benutzerdefinierten Benchmarks

  1. Wechseln Sie in der Benutzeroberfläche zu SecOps > Benchmarks.
  2. Klicken Sie neben der Prüfung, die Sie löschen möchten, auf das Menü menu-icon-light und anschließend auf Löschen.
    Hinweis:

    Nur benutzerdefinierte Inhalte können gelöscht werden. Benutzerdefinierte Inhalte enthalten ein Benutzersymbol custom-checks-user-icon, im Gegensatz zu SaltStack-Inhalten built-in-checks-shield-icon.

  3. Überprüfen Sie im Dialogfeld „Benchmark löschen“ unter „Wird verwendet“ die Liste der mit der Benchmark verknüpften Richtlinien und Prüfungen. Dies ist nützlich für die Vorhersage, welche Abhängigkeiten in Ihrer Umgebung beim Löschen der Benchmark möglicherweise aufgelöst werden.

    Wenn Sie die Überprüfung der verwendeten Abhängigkeiten abgeschlossen haben, klicken Sie auf Weiter.

  4. Klicken Sie unter Benchmark löschen > Warnung auf Löschen. Das Dialogfeld bestätigt, dass die Benchmark gelöscht wurde.
  5. Klicken Sie zum Schließen des Dialogfelds auf Fertig.

Ordner und Dateien

Nach der Initialisierung des SDK enthält Ihr Verzeichnis die folgenden Ordner und Dateien:

  • benchmarks – enthält benutzerdefinierte Benchmark-Metadateien (.meta).
  • salt/locke/custom – enthält benutzerdefinierte Zustandsprüfungs- (.sls) und Metadateien (.meta).
  • sample_tests – enthält Beispieldateien für Tests mit Docker.
  • README.md – enthält genauere Informationen zum SDK.

Wichtige Dateien werden unten genauer beschrieben.

Benutzerdefinierte Benchmark-Dateien

Benchmarks sind Kategorien von Sicherheitsprüfungen. Integrierte Benchmarks in SaltStack SecOps Compliance werden von weltweit anerkannten Experten definiert. Benutzerdefinierte Benchmarks können hingegen den Standards Ihrer Organisation entsprechend definiert werden. Jede Benchmark enthält eine Liste von Empfehlungen, die als Prüfungen bezeichnet werden, und verfügt über eine entsprechende .meta-Datei im benchmarks-Verzeichnis. Weitere Informationen zu Benchmarks in SaltStack SecOps Compliance finden Sie unter Benchmarks.

Durch das Erstellen einer Benchmark-Metadatei erstellen Sie eine Kategorie von Prüfungen. Sie können dann Prüfungen zu dieser Benchmark hinzufügen, indem Sie die Benchmark in einer Prüfungs-Metadatei unter benchmark_id benennen. Weitere Informationen hierzu finden Sie unter Ordner und Dateien.

Die Metadatei wird in YAML geschrieben und enthält die folgenden Optionen, die Sie für Ihre Inhalte anpassen können:

name

Name der Benchmark

display_name

In der Liste der Benchmarks in SaltStack SecOps Compliance angezeigter Name der Benchmark

desc

Beschreibung der Benchmark

Hinweis:

Zusätzlich zu den oben genannten Optionen enthält die Metadatei auch eine Reihe von reservierten Elementen, wie z. B. version, authority und ids. Ändern Sie diese reservierten Elemente nur auf entsprechende Anweisung durch den Administrator.

Benutzerdefinierte Prüfungsdateien

Eine Prüfung ist ein Sicherheitsstandard, und SaltStack SecOps Compliance bewertet die Konformität damit. Dies ist eine Empfehlung, die einer Benchmark zugeordnet ist. Die Empfehlung enthält eine Beschreibung, eine Begründung, Informationen zur Prüfung und zur Standardisierung. Jede Prüfung wird durch mindestens zwei Dateien definiert: eine Zustandsdatei (.sls) und eine entsprechende Metadatei (.meta Datei).

Hinweis:

Die beiden Dateien, die einer Prüfung zugeordnet sind, müssen sich im selben Verzeichnis befinden und mit demselben Namen beginnen, z. B.:

  • my_first_check.meta
  • my_first_check.sls

Sie können diese beiden Dateien zusammen in einem beliebigen Unterverzeichnis von salt/locke/custom speichern.

Die einzelnen Dateitypen werden unten detaillierter beschrieben.

Prüfungsmetadateien

Die Prüfungsmetadateien enthalten eine Beschreibung der Prüfung sowie zusätzliche Details in Bezug auf die Prüfung: z. B. Version, kompatible Betriebssysteme usw. Metadateien werden in YAML geschrieben und verwenden die Dateierweiterung .meta.

Metadateien für benutzerdefinierte Prüfungen enthalten die folgenden Optionen:

Version

Version der Prüfungsinhalte. Nur ein Wert von 1 wird derzeit unterstützt.

display_name

Der in der Liste der Prüfungen auf der SaltStack Config-Benutzeroberfläche angezeigte Name dieser Prüfung.

global_description

Eine detaillierte Beschreibung der Prüfung. Hier besteht die Möglichkeit, neben den Namen von Prüfung und Benchmark noch weitere Informationen anzugeben.

osfinger

Liste der Betriebssysteme, die diese Prüfung ausführen dürfen. Wenn der Host keinen osfinger-Wert hat, der mit einem Wert in dieser Liste übereinstimmt, wird als Bewertungsergebnis der Prüfung notapplicable zurückgegeben.

refs

Querverweisende Informationen zu anderen Prüfungen in anderen Benchmarks oder Sicherheitsstandards, die mit dieser Prüfung erfüllt werden.

benchmark_id

Liste der einzelnen Benchmarks, zu denen die Prüfung gehört.

Für jeden Benchmark-Eintrag wird ein neuer Abschnitt mit den folgenden Unteroptionen erstellt:

Typ

Benchmarktyp. Geben Sie custom ein, wenn Sie eine benutzerdefinierte Prüfung definieren, die nicht von einer bestimmten Stelle bereitgestellt wird.

desc

Der in der Liste der Prüfungen auf der SaltStack Config-Benutzeroberfläche angezeigte Titel dieser Sicherheitsempfehlung.

control_id

Nummer der Empfehlung, z. B. aus einem entsprechenden CIS-Dokument.

scored

Dieses Feld wird nach CIS-Empfehlungen modelliert, die entweder bewertet oder nicht bewertet sein können. Nicht bewertete CIS-Empfehlungen zählen nicht im Hinblick auf eine Sicherheitsbewertung.„True“ steht für bewertet und false für nicht bewertet. Je nach Ihren internen Anforderungen können Sie auswählen, ob eine Prüfung bewertet werden soll oder nicht.

profile

CIS- und andere Benchmarks sind in Profile unterteilt. Beispielsweise verfügt die CIS CentOS Linux 7-Benchmark über vier Profile, die wie folgt dargestellt werden:

profile:
  server:level1
  workstation:level1
  server:level2
  workstation:level3
information

Beschreibung der Prüfung. Diese kann ähnlich wie das Feld global_description der Prüfung sein.

rationale

Beschreibung der Begründung für die Implementierung der Prüfung.

remediation

Anweisungen zum Standardisieren eines Systems in einem nicht konformen Zustand.

Prüfungszustandsdateien

Prüfungszustandsdateien wenden Salt-Zustände an, um Bewertungen und Standardisierungen auszuführen. Bei einer Statusfunktion handelt es sich um eine in einem Statusmodul enthaltene Funktion, die die Anwendung eines bestimmten Status auf ein System verwalten kann. Statusfunktionen rufen häufig ein oder mehrere Ausführungsmodule zum Durchführen einer bestimmten Aufgabe auf. Zustandsdateien werden sowohl in YAML als auch in Jinja geschrieben und verwenden die Dateierweiterung .sls.

Das Ergebnis einer Bewertung ist das Ergebnis der Ausführung der Zustandsdatei im test=True-Modus. Wenn das Ergebnis zeigt, dass eine Anwendung des Zustands eine Änderung verursacht hätte, gilt der Host als nicht konform. Wenn eine Anwendung des Zustands keine Änderung zur Folge hätte, gilt der Host als konform.

Weitere Informationen zu Salt-Zuständen finden Sie in der Salt-Dokumentation: Wie verwende ich Salt-Zustände?

Dateien der Bibliothek für benutzerdefinierte Inhalte

Nach dem Erstellen Ihrer Bibliothek für benutzerdefinierte Inhalte enthält Ihr Verzeichnis das _dist-Verzeichnis, das die folgenden zusätzlichen Dateien enthält:

  • digest.json – enthält Hashes und andere Informationen über die Inhalte.
  • secops_custom.tar.gz – zur Erfassung bereite TAR.GZ-Datei. Dies eignet sich zum Hochladen über die Benutzeroberfläche von SaltStack Config. Weitere Informationen zur Erfassung von Inhalten finden Sie im Enterprise-Installationshandbuch.
  • secops_custom.txt – Base64-codierte Version von secops_custom.tar.gz. Dies ist bei API-Aufrufen nützlich.
  • secops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz – eine identische Kopie von secops_custom.tar.gz, die aufgrund des beschreibenden Dateinamens, der das Erstellungsdatum und die TAR-Datei-UUID enthält, für den Upload über die Benutzeroberfläche von SaltStack Config bevorzugt wird.