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 , in tegenstelling tot SaltStack-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
- Download de Custom Content SDK van SaltStack SecOps Compliance.
- Installeer Docker. Zie de installatiedocumentatie voor Docker.
De SDK initialiseren
- 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.
- Mac OS of Linux
- (Optioneel) Voer wijzigingen door in een versiegecontroleerde opslagplaats.
Aangepaste controles maken
Het initialiseren van de SDK is een voorwaarde voor het maken van aangepaste inhoud. Zie De SDK initialiseren.
- 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. - 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
. - 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.
- Bewerk de inhoud van het statusbestand. Zie Mappen en bestanden voor meer informatie.
- 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
- Ga in de Custom Content SDK naar de directory
benchmarks
. Deze bevat een voorbeeldmetabestand voor een benchmark (.meta
). - Maak een kopie van
Sample_Benchmark.meta
en gebruik een beschrijvende naam voor uw benchmark. - 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
- Nadat u uw aangepaste inhoud hebt gemaakt, opent u de commandoregel en navigeert u naar de directory
sample_tests
voor de Custom Content SDK. - Bouw een Docker-image van CentOS7 met Salt voor testdoeleinden.
./build.sh
- Start de testcontainer.
./up.sh
- 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.
- Wanneer de test is voltooid, sluit u de testcontainer af.
./down.sh
De aangepaste inhoudsbibliotheek maken
- Nadat u uw aangepaste inhoud hebt gemaakt, opent u de commandoregel en gaat u naar de rootdirectory voor de Custom Content SDK.
- Bouw uw aangepaste inhoudsbibliotheek.
./secops_sdk build -a
De SDK-rootdirectory bevat nu de subdirectory
_dist
. Deze bevat tweetar.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
- Klik op Beheer > SecOps (Administration > SecOps) in het zijmenu.
- 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.
- 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 , in tegenstelling tot SaltStack-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
- Ga in de gebruikersinterface naar SecOps > Controles (SecOps > Checks).
- Klik op het menu naast de controle die u wilt verwijderen, en klik op Verwijderen.
Opmerking: Alleen aangepaste inhoud kan worden verwijderd. Aangepaste inhoud bevat een gebruikerspictogram , in tegenstelling tot SaltStack-inhoud .
- 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).
- Klik op Controle verwijderen > Waarschuwing (Delete Check > Warning) op Verwijderen (Delete). In het dialoogvenster wordt bevestigd dat de controle is verwijderd.
- Klik op Gereed (Done) om het dialoogvenster te sluiten.
Aangepaste benchmarks verwijderen
- Ga in de gebruikersinterface naar SecOps > Benchmarks.
- Klik op het menu naast de controle die u wilt verwijderen, en klik op Verwijderen.
Opmerking:
Alleen aangepaste inhoud kan worden verwijderd. Aangepaste inhoud bevat een gebruikerspictogram , in tegenstelling tot SaltStack-inhoud .
- 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).
- Klik onder Benchmark verwijderen > Waarschuwing (Delete Benchmark > Warning) op Verwijderen (Delete). In het dialoogvenster wordt bevestigd dat de benchmark is verwijderd.
- 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 benchmarkssalt/locke/custom
- bevat aangepaste statusbestanden (.sls
) en metabestanden (.meta
) voor controlessample_tests
- bevat voorbeeldbestanden voor het testen met DockerREADME.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
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
).
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, wordtnotapplicable
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 inhoudsecops_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 vansecops_custom.tar.gz
. Dit is handig voor API-oproepensecops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz
- een identieke kopie vansecops_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