I contenuti di conformità personalizzati consentono di definire i propri standard di sicurezza, per completare la libreria dei benchmark di sicurezza e i controlli integrati in SaltStack SecOps Compliance. Questi contenuti personalizzati sono utili per migliorare i criteri di SaltStack SecOps Compliance e adattarli ai requisiti interni.
Un controllo è uno standard di sicurezza sottoposto a valutazione della conformità da parte di SaltStack SecOps Compliance. I benchmark sono categorie dei controlli di sicurezza.
SaltStack SecOps Compliance include un SDK (Software Development Kit) dei contenuti personalizzati che è possibile utilizzare per creare, testare e generare contenuti di sicurezza personalizzati. È possibile importare i contenuti di sicurezza personalizzati da utilizzare con la libreria di sicurezza integrata di SaltStack SecOps Compliance per la valutazione e la correzione. La possibilità di importare contenuti personalizzati permette anche di controllare la versione dei contenuti utilizzando il sistema di controllo delle versioni preferito.
Per utilizzare i controlli personalizzati, inizializzare innanzitutto l'SDK Custom Content di SaltStack SecOps Compliance. L'SDK include file di esempio che è possibile modificare per creare controlli personalizzati, nonché benchmark. L'SDK include anche un ambiente di test basato su Docker in cui è possibile testare i nuovi contenuti.
Una volta creati e testati i contenuti personalizzati, è possibile creare un file di contenuti e importarlo in SaltStack SecOps Compliance per iniziare la valutazione e la correzione. I controlli personalizzati includono un'icona dell'utente , a differenza dei controlli di SaltStack . SaltStack SecOps Compliance monitora le dipendenze tra i criteri e i contenuti personalizzati e fornisce un elenco delle dipendenze che potrebbero interrompersi se si eliminano i contenuti.
Prerequisiti
- Scaricare l'SDK dei contenuti personalizzati di SaltStack SecOps Compliance.
- Installare Docker. Vedere la documentazione sull'installazione di Docker.
Inizializzazione dell'SDK
- Dalla riga di comando, passare alla directory contenente il file ed eseguire quanto segue in base al sistema operativo.
- Mac OS o Linux
./secops_sdk init
- Windows
secops_sdk.exe init
Nessun output mostrato. Questo comportamento è previsto. La directory ora contiene le seguenti cartelle e file:
benchmarks
salt/locke/custom
sample_tests
README.md
Per ulteriori informazioni su queste cartelle e file, vedere Cartelle e file.
- Mac OS o Linux
- (Facoltativo) Eseguire il commit delle modifiche in un repository controllato della versione.
Creazione di controlli personalizzati
L'inizializzazione dell'SDK è un prerequisito per creare contenuti personalizzati. Vedere Inizializzazione dell'SDK.
- Nell'SDK dei contenuti personalizzati, passare a
salt/locke/custom
. Questa directory contiene varie sottodirectory con file di stato di esempio (.sls
) e metadati (.meta
).Nota: Tutti i controlli personalizzati devono essere configurati in un file di stato (.sls
) e nel file di metadati (.meta
) corrispondente. - Creare una copia dello stato di esempio (
.sls
) e del file di metadati (.meta
) corrispondente, rinominando entrambi con un nome descrittivo per il controllo personalizzato.Entrambi i file associati a un controllo devono trovarsi nella stessa directory e iniziare con lo stesso nome, ad esempio:
my_first_check.meta
my_first_check.sls
È possibile salvare questi due file insieme in qualsiasi sottodirectory di
salt/locke/custom
. - Modificare i contenuti del file di metadati per personalizzare il controllo in base alle proprie esigenze. Il file è compilato in formato YAML. Per un elenco delle diverse opzioni incluse nel file, vedere Cartelle e file.
Nota: Verificare che i file di metadati contengano riferimenti a benchmark diversi. Quando si creano contenuti personalizzati, assicurarsi di includere tutti i benchmark associati nel file di metadati di controllo.
- Modificare i contenuti del file di stato. Per ulteriori informazioni, vedere Cartelle e file.
- Assicurarsi che entrambi i file siano salvati nella stessa directory.
A questo punto, sono stati completati i passaggi minimi necessari per creare un controllo personalizzato. È possibile continuare a testare il controllo, eseguire il commit nel controllo della versione o creare la libreria di contenuti.
Creazione di benchmark personalizzati
- Nell'SDK dei contenuti personalizzati, passare alla directory
benchmarks
. Contiene un file di metadati benchmark di esempio (.meta
). - Creare una copia di
Sample_Benchmark.meta
e rinominarla con un nome descrittivo per il benchmark. - Modificare i contenuti del file di metadati per personalizzare il benchmark in base alle esigenze. Il file è compilato in formato YAML. Per una descrizione delle diverse opzioni incluse nel file, vedere Cartelle e file.
Test dei contenuti personalizzati
- Dopo aver creato i contenuti personalizzati, aprire la riga di comando e passare alla directory
sample_tests
dell'SDK dei contenuti personalizzati. - Creare un'immagine docker di CentOS7 con Salt per il test.
./build.sh
- Avviare il contenitore di test.
./up.sh
- Eseguire test campione sui controlli creati nella directory
salt/locke/custom
. È possibile eseguire controlli personalizzati come si farebbe con i normali stati di Salt, ad esempio:./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True
Per ulteriori esempi di test, vedere Test dei contenuti personalizzati nel file README dell'SDK. Per ulteriori informazioni sugli stati di Salt, vedere la documentazione di Salt: come si utilizzano gli stati di Salt?.
- Al termine del test, arrestare il contenitore di test.
./down.sh
Creazione della libreria dei contenuti personalizzati
- Dopo aver creato i contenuti personalizzati, aprire la riga di comando e passare alla directory root dell'SDK dei contenuti personalizzati.
- Creare la libreria dei contenuti personalizzati.
./secops_sdk build -a
La directory root dell'SDK ora include la sottodirectory
_dist
. Include due filetar.gz
che è possibile utilizzare per importare i contenuti tramite l'API (RaaS) o l'interfaccia utente di SaltStack Config. Per una descrizione di tutti i file inclusi nella directory, vedere Cartelle e file.
Importazione dei contenuti personalizzati
- Fare clic su Amministrazione > SecOps nel menu laterale.
- In Contenuti di conformità - SaltStack, fare clic su Controlla disponibilità aggiornamenti.
Nota: Se i contenuti di SaltStack SecOps Compliance sono già stati scaricati durante la sessione corrente, è possibile ignorare questo passaggio.
- Fare clic su Carica pacchetto e selezionare il file
.tar.gz
da Esplora file.Nota: Per facilitare l'esplorazione dei controlli personalizzati, utilizzare il file contenente la data e ora nel nome file. Per ulteriori informazioni sui file, vedere Cartelle e file.I contenuti personalizzati sono ora disponibili in SaltStack SecOps Compliance per la creazione dei criteri, l'esecuzione delle valutazioni e la correzione dei sistemi. I controlli personalizzati includono un'icona dell'utente , a differenza dei controlli di SaltStack .
Nota:È inoltre possibile importare i contenuti utilizzando l'API (RaaS) oppure, in alternativa, tramite la riga di comando durante l'installazione. Vedere l'interfaccia dell'API Sec o la guida all'installazione Enterprise.
Eliminazione dei controlli personalizzati
- Nell'interfaccia utente, passare a SecOps > Controlli.
- Fare clic sul menu accanto al controllo che si desidera eliminare e fare clic su Elimina.
Nota: È possibile eliminare solo i contenuti personalizzati. I contenuti personalizzati includono un'icona utente , a differenza dei contenuti di SaltStack .
- Nella finestra di dialogo Elimina controllo, sotto In uso, rivedere l'elenco dei criteri e dei benchmark che includono il controllo. Questo è utile per prevedere eventuali dipendenze nell'ambiente che potrebbero interrompersi se si elimina il controllo.
Una volta terminata la revisione delle dipendenze in uso, fare clic su Avanti.
- In Elimina controllo > Avviso, fare clic su Elimina. La finestra di dialogo conferma l'eliminazione del controllo.
- Fare clic su Fine per chiudere la finestra di dialogo.
Eliminazione dei benchmark personalizzati
- Nell'interfaccia utente, passare a SecOps > Benchmark.
- Fare clic sul menu accanto al controllo che si desidera eliminare e fare clic su Elimina.
Nota:
È possibile eliminare solo i contenuti personalizzati. I contenuti personalizzati includono un'icona utente , a differenza dei contenuti di SaltStack .
- Nella finestra di dialogo Elimina benchmark, sotto In uso, rivedere l'elenco dei criteri e dei controlli associati al benchmark. Questo è utile per prevedere eventuali dipendenze nell'ambiente che potrebbero interrompersi se si elimina il benchmark.
Una volta terminata la revisione delle dipendenze in uso, fare clic su Avanti.
- In Elimina benchmark > Avviso, fare clic su Elimina. La finestra di dialogo conferma l'eliminazione del benchmark.
- Fare clic su Fine per chiudere la finestra di dialogo.
Cartelle e file
Dopo l'inizializzazione dell'SDK, la directory include le cartelle e i file seguenti:
benchmarks
: contiene i file di metadati (.meta
) dei benchmark personalizzatisalt/locke/custom
: contiene i file di stato dei controlli personalizzati (.sls
) e dei file di metadati (.meta
)sample_tests
: contiene i file di esempio per il test tramite DockerREADME.md
: fornisce informazioni più dettagliate sull'SDK
Di seguito sono descritti più dettagliatamente i file importanti.
File dei benchmark personalizzati
I benchmark sono categorie dei controlli di sicurezza. I benchmark integrati di SaltStack SecOps Compliance sono definiti da esperti di un certo prestigio. Tuttavia, i benchmark personalizzati possono essere definiti dagli standard della propria organizzazione. Ogni benchmark contiene un elenco di suggerimenti, denominati controlli, ed è dotato di un file .meta
corrispondente nella directory benchmarks
. Per ulteriori informazioni sui benchmark in SaltStack SecOps Compliance, vedere Benchmark.
Creando un file di metadati di benchmark, si crea una categoria di controlli. È quindi possibile aggiungere controlli a tale benchmark assegnando un nome al benchmark in un file di metadati di controllo in benchmark_id
. Vedere Cartelle e file.
Il file di metadati è compilato in formato YAML e include le seguenti opzioni che è possibile personalizzare per i contenuti:
- nome
-
Nome benchmark
- display_name
-
Nome del benchmark così come visualizzato nell'elenco dei benchmark in SaltStack SecOps Compliance
- desc
-
Descrizione benchmark
Oltre alle opzioni precedenti, il file di metadati include anche una serie di elementi riservati, ad esempio version
, authority
e ids
. Non modificare questi elementi riservati a meno che non sia indicato dall'amministratore.
File dei controlli personalizzati
Un controllo è uno standard di sicurezza sottoposto a valutazione della conformità da parte di SaltStack SecOps Compliance. Si tratta di un suggerimento associato a un benchmark. Il suggerimento fornisce una descrizione, una logica, un controllo e informazioni per la correzione. Ogni controllo è definito da almeno due file: un file di stato (.sls
) e un file di metadati (.meta
) corrispondente.
Entrambi i file associati a un controllo devono trovarsi nella stessa directory e iniziare con lo stesso nome, ad esempio:
my_first_check.meta
my_first_check.sls
È possibile salvare questi due file insieme in qualsiasi sottodirectory di salt/locke/custom
.
Ogni tipo di file è descritto più dettagliatamente di seguito.
File di metadati di controllo
I file di metadati di controllo includono una descrizione del controllo, oltre a dettagli aggiuntivi relativi al controllo, ad esempio la versione, i sistemi operativi applicabili e altro ancora. I metadati sono compilati in formato YAML e utilizzano l'estensione file .meta
.
I file di metadati di controllo personalizzati includono le seguenti opzioni:
- version
-
Versione dei contenuti di controllo. Al momento è supportato un valore di
1
. - display_name
-
Il nome di questo controllo come visualizzato nell'elenco di controlli nell'interfaccia utente di SaltStack Config.
- global_description
-
Descrizione dettagliata del controllo. Consente di fornire più informazioni rispetto a quelle fornite tramite il controllo e i nomi dei benchmark.
- osfinger
-
Elenco dei sistemi operativi autorizzati a eseguire questo controllo. Se l'host non dispone di un valore
osfinger
corrispondente a un valore in questo elenco, il risultato della valutazione del controllo verrà restituito comenotapplicable
. - refs
-
Informazioni di riferimento incrociato relative ad altri controlli in altri benchmark o standard di sicurezza soddisfatti da questo controllo.
- benchmark_id
-
Elenco di ciascun benchmark a cui appartiene il controllo.
Ogni voce di benchmark crea una nuova sezione che include le seguenti opzioni secondarie:
- type
-
Tipo di benchmark. Immettere
custom
quando si definisce un controllo personalizzato non fornito da un'autorità specifica. - desc
-
Titolo del suggerimento di sicurezza come visualizzato nell'elenco di controlli nell'interfaccia utente di SaltStack Config.
- control_id
-
Numero del suggerimento, ad esempio da un documento CIS corrispondente.
- scored
-
Questo campo è modellato in base ai suggerimenti CIS che possono essere classificati o meno. I suggerimenti CIS che non sono stati classificati non vengono considerati per o rispetto a una classificazione punteggio di sicurezza.``true`` indica classificato e
false
indica non classificato. È possibile scegliere se classificare o meno un controllo, in base alle esigenze interne. - profile
-
CIS e altri benchmark sono suddivisi in profili. Ad esempio, il benchmark CIS CentOS Linux 7 ha quattro profili, rappresentati come:
profile: server:level1 workstation:level1 server:level2 workstation:level3
- information
-
Descrizione del controllo. Questo campo può essere simile al campo
global_description
del controllo. - rationale
-
Descrizione della logica di implementazione del controllo.
- remediation
-
Istruzioni su come correggere un sistema in uno stato non conforme.
File di stato dei controlli
I file di stato dei controlli applicano gli stati di Salt per eseguire valutazioni e correzioni. Una funzione di stato è una funzione contenuta in un modulo di stato che può gestire l'applicazione di uno stato specifico a un sistema. Le funzioni di stato richiamano frequentemente uno o più moduli di esecuzione per eseguire una determinata attività. I file di stato sono compilati sia in formato YAML che Jinja, e utilizzano l'estensione file .sls
.
Il risultato di una valutazione è il risultato dell'esecuzione del file di stato in modalità test=True
. Se il risultato indica che la modifica dello stato ha causato una modifica, l'host viene considerato non conforme. Se l'applicazione dello stato non causa una modifica, l'host viene considerato conforme.
Per ulteriori informazioni sugli stati di Salt, vedere la documentazione di Salt: come si utilizzano gli stati di Salt?.
File della libreria dei contenuti personalizzati
Una volta compilata la libreria dei contenuti personalizzati, la directory include la directory _dist
, che contiene i seguenti file aggiuntivi:
digest.json
: contiene hash e altre informazioni sui contenutisecops_custom.tar.gz
: file tar gzip pronto per l'inserimento. Questa opzione è adatta per il caricamento tramite l'interfaccia utente di SaltStack Config. Per ulteriori informazioni sull'inserimento dei contenuti, vedere la guida all'installazione Enterprise.secops_custom.txt
: versione con codifica base64 del filesecops_custom.tar.gz
. Questa operazione è utile quando si effettuano chiamate APIsecops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz
: una copia identica del filesecops_custom.tar.gz
, preferita per il caricamento tramite l'interfaccia utente di SaltStack Config a causa del suo nome file descrittivo, che include la data di creazione e l'UUID del tarball