Met aangepaste conformiteitsinhoud kunt u uw eigen beveiligingsstandaarden definiëren als aanvulling op de bibliotheek met beveiligingsbenchmarks en -controles die zijn in ingebouwd in SaltStack SecOps Compliance. Deze aangepaste inhoud is nuttig voor het verbeteren van SaltStack SecOps Compliance-beleidsregels om deze aan te passen aan uw interne vereisten.

Een controle is een beveiligingsstandaard die door SaltStack SecOps Compliance wordt beoordeeld op conformiteit. Benchmarks zijn categorieën van beveiligingscontroles.

SaltStack SecOps Compliance bevat een Custom Content Software Development Kit (SDK) die u kunt gebruiken om uw eigen aangepaste beveiligingsinhoud te maken, te testen en te bouwen. U kunt uw aangepaste beveiligingsinhoud importeren om te gebruiken naast ingebouwde beveiligingsbibliotheken van SaltStack SecOps Compliance voor beoordeling en correctie. De mogelijkheid om aangepaste inhoud te importeren geeft u ook de mogelijkheid om uw versies van inhoud te maken met een versiecontrolesysteem dat u kiest.

Als u aangepaste controles wilt gebruiken, moet u eerst de Custom Content SDK van SaltStack SecOps Compliance initialiseren. De SDK bevat voorbeeldbestanden die u kunt aanpassen om uw eigen aangepaste controles te maken, evenals benchmarks. De SDK bevat ook een Docker-gebaseerde testomgeving waarin u uw nieuwe inhoud kunt testen.

Wanneer uw aangepaste inhoud is gemaakt en getest, kunt u een inhoudsbestand bouwen en importeren in SaltStack SecOps Compliance om te beginnen met het beoordelen en corrigeren. Aangepaste controles bevatten een gebruikerspictogram gebruikerspictogram-aangepaste-controles, in tegenstelling tot SaltStack-controles schildpictogram-ingebouwde-controles. SaltStack SecOps Compliance houdt afhankelijkheden bij tussen beleidsregels en uw aangepaste inhoud, en biedt een lijst met afhankelijkheden die kunnen worden verbroken als u de inhoud verwijdert.

Vereisten

De SDK initialiseren

  1. Navigeer vanaf de commandoregel naar de directory met het bestand en voer het volgende uit op basis van uw besturingssysteem.
    • Mac OS of Linux
      ./secops_sdk init
    • Windows
      secops_sdk.exe init

    Er wordt geen uitvoer weergegeven. Dit is zoals verwacht. Uw directory bevat nu de volgende mappen en bestanden:

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

    Zie Mappen en bestanden voor meer informatie over deze mappen en bestanden.

  2. (Optioneel) Voer wijzigingen door in een versiegecontroleerde opslagplaats.

Aangepaste controles maken

Opmerking:

Het initialiseren van de SDK is een voorwaarde voor het maken van aangepaste inhoud. Zie De SDK initialiseren.

  1. Ga in de Custom Content SDK naar salt/locke/custom. Deze directory bevat verschillende subdirectory's met de voorbeeldstatus (.sls) en metabestanden (.meta).
    Opmerking: Alle aangepaste controles moeten in zowel een statusbestand ( .sls) als een bijbehorend metabestand ( .meta) zijn geconfigureerd.
  2. Maak een kopie van zowel een voorbeeldstatus (.sls) als het bijbehorende metabestand (.meta), en wijzig de naam van beide in een beschrijvende naam voor uw aangepaste controle.

    Beide bestanden die aan een controle zijn gekoppeld, moeten in dezelfde directory staan en beginnen met dezelfde naam, bijvoorbeeld:

    • my_first_check.meta
    • my_first_check.sls

    U kunt deze twee bestanden samen opslaan in een subdirectory van salt/locke/custom.

  3. Bewerk de inhoud van het metabestand om de controle aan te passen op basis van uw behoeften. Het bestand wordt in YAML geschreven. Zie Mappen en bestanden voor een lijst met verschillende opties die zijn opgenomen in het bestand.
    Opmerking: Metabestanden voor controle bevatten verwijzingen naar verschillende benchmarks. Wanneer u aangepaste inhoud maakt, moet u alle gekoppelde benchmarks in uw metabestand voor controle opnemen.
  4. Bewerk de inhoud van het statusbestand. Zie Mappen en bestanden voor meer informatie.
  5. Zorg ervoor dat beide bestanden in dezelfde directory zijn opgeslagen.

    U hebt nu de minimale stappen voltooid die vereist zijn om een aangepaste controle te maken. U kunt doorgaan met het testen van de controle, het doorvoeren van versiecontrole of het bouwen van uw inhoudsbibliotheek.

Aangepaste benchmarks maken

Opmerking: Het initialiseren van de SDK is een voorwaarde voor het maken van aangepaste inhoud. Zie De SDK initialiseren.
  1. Ga in de Custom Content SDK naar de directory benchmarks. Deze bevat een voorbeeldmetabestand voor een benchmark (.meta).
  2. Maak een kopie van Sample_Benchmark.meta en gebruik een beschrijvende naam voor uw benchmark.
  3. Bewerk de inhoud van het metabestand om de benchmark aan te passen aan uw behoeften. Het bestand wordt in YAML geschreven. Zie Mappen en bestanden voor een beschrijving van de verschillende opties in het bestand.

Aangepaste inhoud testen

Opmerking: Het installeren van Docker is een vereiste voor het volgende. Zie de installatiedocumentatie voor Docker voor meer informatie over het downloaden en installeren van Docker.
  1. Nadat u uw aangepaste inhoud hebt gemaakt, opent u de commandoregel en navigeert u naar de directory sample_tests voor de Custom Content SDK.
  2. Bouw een Docker-image van CentOS7 met Salt voor testdoeleinden.
    ./build.sh
  3. Start de testcontainer.
    ./up.sh
  4. Voer voorbeeldtests uit op controles die u hebt gemaakt in de directory salt/locke/custom. U kunt aangepaste controles uitvoeren zoals in de normale Salt-statussen, bijvoorbeeld:
    ./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True

    Zie Aangepaste inhoud testen (Test Custom Content) in het SDK-leesmijbestand voor meer testvoorbeelden. Zie de Salt-documentatie: Hoe gebruik ik Salt States? voor meer informatie over Salt-statussen.

  5. Wanneer de test is voltooid, sluit u de testcontainer af.
    ./down.sh

De aangepaste inhoudsbibliotheek maken

  1. Nadat u uw aangepaste inhoud hebt gemaakt, opent u de commandoregel en gaat u naar de rootdirectory voor de Custom Content SDK.
  2. Bouw uw aangepaste inhoudsbibliotheek.
    ./secops_sdk build -a

    De SDK-rootdirectory bevat nu de subdirectory _dist. Deze bevat twee tar.gz-bestanden die u kunt gebruiken om uw inhoud te importeren via de gebruikersinterface van SaltStack Config of de API (RaaS). Zie Mappen en bestanden voor een beschrijving van alle bestanden in de directory.

Aangepaste inhoud importeren

  1. Klik op Beheer > SecOps (Administration > SecOps) in het zijmenu.
  2. Klik onder Conformiteitsinhoud -SaltStack (Compliance Content - SaltStack) op Controleren op updates (Check for updates).
    Opmerking: Als u de inhoud van SaltStack SecOps Compliance al hebt gedownload tijdens de huidige sessie, kunt u deze stap overslaan.
  3. Klik op Pakket uploaden (Upload Package) en selecteer het .tar.gz-bestand in de bestandsverkenner.
    Opmerking: Om eenvoudiger te navigeren in uw aangepaste controles, gebruikt u het bestand met een tijdstempel in de bestandsnaam. Zie Mappen en bestanden voor meer informatie over bestanden.

    Uw aangepaste inhoud is nu beschikbaar in SaltStack SecOps Compliance voor het bouwen van beleidsregels, het uitvoeren van beoordelingen en het corrigeren van uw systemen. Aangepaste controles bevatten een gebruikerspictogram gebruikerspictogram-aangepaste-controles, in tegenstelling tot SaltStack-controles schildpictogram-ingebouwde-controles.

    Opmerking:

    U kunt ook inhoud importeren met behulp van de API (RaaS) of via de commandoregel tijdens de installatie. Zie de Sec API-interface of Enterprise-installatiehandleiding.

Aangepaste controles verwijderen

  1. Ga in de gebruikersinterface naar SecOps > Controles (SecOps > Checks).
  2. Klik op het menu menupictogram-licht naast de controle die u wilt verwijderen, en klik op Verwijderen.
    Opmerking: Alleen aangepaste inhoud kan worden verwijderd. Aangepaste inhoud bevat een gebruikerspictogram gebruikerspictogram-aangepaste-controles, in tegenstelling tot SaltStack-inhoud schildpictogram-ingebouwde-controles.
  3. Bekijk in het dialoogvenster Controle verwijderen (Delete Check) onder In gebruik (In use) de lijst met beleidsregels en benchmarks die de controle bevatten. Dit is handig voor het voorspellen van afhankelijkheden in uw omgeving die kunnen worden verbroken als u de controle verwijdert.

    Wanneer u klaar bent met het controleren van afhankelijkheden in gebruik, klikt u op Volgende (Next).

  4. Klik op Controle verwijderen > Waarschuwing (Delete Check > Warning) op Verwijderen (Delete). In het dialoogvenster wordt bevestigd dat de controle is verwijderd.
  5. Klik op Gereed (Done) om het dialoogvenster te sluiten.

Aangepaste benchmarks verwijderen

  1. Ga in de gebruikersinterface naar SecOps > Benchmarks.
  2. Klik op het menu menupictogram-licht naast de controle die u wilt verwijderen, en klik op Verwijderen.
    Opmerking:

    Alleen aangepaste inhoud kan worden verwijderd. Aangepaste inhoud bevat een gebruikerspictogram gebruikerspictogram-aangepaste-controles, in tegenstelling tot SaltStack-inhoud schildpictogram-ingebouwde-controles.

  3. Bekijk in het dialoogvenster Benchmark verwijderen (Delete Benchmark) onder In gebruik (In use) de lijst met beleidsregels en controles die aan de benchmark zijn gekoppeld. Dit is handig voor het voorspellen van afhankelijkheden in uw omgeving die kunnen worden verbroken wanneer u de benchmark verwijdert.

    Wanneer u klaar bent met het controleren van afhankelijkheden in gebruik, klikt u op Volgende (Next).

  4. Klik onder Benchmark verwijderen > Waarschuwing (Delete Benchmark > Warning) op Verwijderen (Delete). In het dialoogvenster wordt bevestigd dat de benchmark is verwijderd.
  5. Klik op Gereed (Done) om het dialoogvenster te sluiten.

Mappen en bestanden

Nadat de SDK is geïnstalleerd, bevat uw directory de volgende mappen en bestanden:

  • benchmarks - bevat aangepaste metabestanden (.meta) voor benchmarks
  • salt/locke/custom - bevat aangepaste statusbestanden (.sls) en metabestanden (.meta) voor controles
  • sample_tests - bevat voorbeeldbestanden voor het testen met Docker
  • README.md - biedt meer gedetailleerde informatie over de SDK

Belangrijke bestanden worden hieronder meer gedetailleerd beschreven.

Aangepaste benchmarkbestanden

Benchmarks zijn categorieën van beveiligingscontroles. Ingebouwde benchmarks van SaltStack SecOps Compliance zijn gedefinieerd door algemeen geaccepteerde experts. U kunt echter aangepaste benchmarks definiëren volgens de eigen standaarden van uw organisatie. Elke benchmark bevat een lijst met aanbevelingen, controles genoemd, en heeft een bijbehorend .meta-bestand in de directory benchmarks. Zie Benchmarks voor meer informatie over benchmarks in SaltStack SecOps Compliance.

Door een benchmarkmetabestand te maken, maakt u een categorie van controles. U kunt vervolgens controles aan die benchmark toevoegen door de benchmark in een controlemetabestand onder benchmark_id een naam te geven. Zie Mappen en bestanden.

Het metabestand is in YAML geschreven en bevat de volgende opties die u voor uw inhoud kunt aanpassen:

name

Naam van benchmark

display_name

Naam van de benchmark zoals deze wordt weergegeven in de lijst met benchmarks in SaltStack SecOps Compliance

desc

Beschrijving van benchmark

Opmerking:

Naast de bovenstaande opties bevat het metabestand ook een reeks gereserveerde items, zoals version, authority en ids. Pas deze gereserveerde items alleen aan als de beheerder deze instructie heeft gegeven.

Aangepaste controlebestanden

Een controle is een beveiligingsstandaard die door SaltStack SecOps Compliance wordt beoordeeld op conformiteit. Dit is een aanbeveling die is gerelateerd aan een benchmark. In de aanbeveling wordt informatie gegeven over beschrijving, audit en correctie. Elke controle wordt gedefinieerd door ten minste twee bestanden: een statusbestand (.sls) en het bijbehorende metabestand (.meta).

Opmerking:

Beide bestanden die aan een controle zijn gekoppeld, moeten in dezelfde directory staan en beginnen met dezelfde naam, bijvoorbeeld:

  • my_first_check.meta
  • my_first_check.sls

U kunt deze twee bestanden samen opslaan in een subdirectory van salt/locke/custom.

Elk bestandstype wordt hieronder gedetailleerd beschreven.

Metabestanden voor controles

Metabestanden voor controles bevatten een beschrijving van een controle, evenals aanvullende details over de controle, zoals de versie, de toepasselijke besturingssystemen, en meer. Metabestanden zijn in YAML geschreven en gebruiken de bestandsextensie .meta.

Aangepaste metabestanden voor controles bevatten de volgende opties:

version

Versie van de controle-inhoud. Op dit moment wordt alleen de waarde 1 ondersteund.

display_name

De naam van deze controle zoals deze wordt weergegeven in de lijst met controles in de gebruikersinterface van SaltStack Config.

global_description

Een gedetailleerde beschrijving van de controle. Hier kunt u meer informatie opgeven dan er via de namen van de controle en benchmark wordt gegeven.

osfinger

Lijst met besturingssystemen die deze controle mogen uitvoeren. Als de host geen waarde voor osfinger heeft die overeenkomt met een waarde in deze lijst, wordt notapplicable geretourneerd als beoordelingsresultaat van de controle.

refs

Informatie van kruisverwijzingen voor andere controles in andere benchmarks of beveiligingsstandaarden die aan deze controle voldoen.

benchmark_id

Lijst met elke benchmark waar de controle deel van uitmaakt.

Voor elke benchmarkvermelding wordt een nieuw gedeelte gemaakt met de volgende subopties:

type

Type benchmark. Voer custom in wanneer u een aangepaste controle definieert die niet door een specifieke autoriteit wordt aangeboden.

desc

Titel van de beveiligingsaanbeveliging zoals deze wordt weergegeven in de lijst met controles in de gebruikersinterface van SaltStack Config.

control_id

Aanbevelingsnummer, bijvoorbeeld uit een bijbehorend CIS-document.

scored

Dit veld wordt gemodelleerd naar de CIS-aanbevelingen en kan Score (Scored) of Geen score (Not Scored) bevatten. CIS-aanbevelingen die geen score hebben, worden niet meegeteld voor een beveiligingsscore.True geeft een score aan en false geeft geen score aan. U kunt ervoor kiezen om een controle wel of niet een score te geven, op basis van uw interne behoeften.

profile

CIS en andere benchmarks zijn onderverdeeld in profielen. De CIS CentOS Linux 7-benchmark heeft bijvoorbeeld vier profielen, die worden voorgesteld als:

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

Beschrijving van de controle. Deze gelijkt mogelijk op het veld global_description van de controle.

rationale

Beschrijving van de reden voor het implementeren van de controle.

remediation

Instructies voor het corrigeren van een systeem in een niet-conforme status.

Statusbestanden voor controles

Statusbestanden voor controles passen Salt-statussen toe om beoordelingen en correcties uit te voeren. Een statusfunctie is een functie in een statusmodule die de toepassing van een bepaalde status op een systeem kan beheren. Statusfuncties roepen regelmatig een of meer uitvoeringsmodulen aan om een bepaalde taak uit te voeren. Statusbestanden worden zowel in YAML als Jinja geschreven en gebruiken de bestandsextensie .sls.

Het resultaat van een beoordeling is het resultaat van het uitvoeren van het statusbestand in de modus test=True. Als uit het resultaat blijkt dat het toepassen van de status een wijziging heeft veroorzaakt, wordt de host als niet-conform beschouwd. Als het toepassen van de status geen wijziging veroorzaakt, wordt de host als conform beschouwd.

Zie de Salt-documentatie: Hoe gebruik ik Salt States? voor meer informatie over Salt-statussen.

Aangepaste inhoudsbibliotheekbestanden

Nadat u uw aangepaste inhoudsbibliotheek hebt gemaakt, bevat uw directory de directory _dist, die de volgende extra bestanden bevat:

  • digest.json - bevat hashes en andere informatie over de inhoud
  • secops_custom.tar.gz - gzip tar-bestand klaar voor opname. Dit is geschikt voor het uploaden via de SaltStack Config-gebruikersinterface. Zie de Enterprise-installatiehandleiding voor meer informatie over de opname van inhoud.
  • secops_custom.txt - base64-gecodeerde versie van secops_custom.tar.gz. Dit is handig voor API-oproepen
  • secops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz - een identieke kopie van secops_custom.tar.gz, die de voorkeur krijgt om te uploaden via de gebruikersinterface van SaltStack Config vanwege de beschrijvende bestandsnaam, waaronder de aanmaakdatum en tarball-UUID