Le contenu de conformité personnalisé vous permet de définir vos propres normes de sécurité, pour compléter la bibliothèque de références et de contrôles de sécurité intégrés dans SaltStack SecOps Compliance. Ce contenu personnalisé est utile pour améliorer les stratégies SaltStack SecOps Compliance pour répondre à vos besoins internes.
Un contrôle est une norme de sécurité dont SaltStack SecOps Compliance évalue la conformité. Les évaluations sont des catégories de contrôles de sécurité.
SaltStack SecOps Compliance inclut un SDK (Software Development Kit) à contenu personnalisé que vous pouvez utiliser pour créer, tester et créer votre propre contenu de sécurité personnalisé. Vous pouvez importer votre contenu de sécurité personnalisé à utiliser en complément de la bibliothèque de sécurité intégrée de SaltStack SecOps Compliance pour évaluation et correction. La possibilité d'importer du contenu personnalisé vous permet également de gérer les versions de votre contenu à l'aide d'un système de contrôle de version de votre choix.
Pour utiliser les contrôles personnalisés, commencez par initialiser le SDK à contenu personnalisé de SaltStack SecOps Compliance. Le SDK inclut des exemples de fichiers que vous pouvez modifier pour créer vos propres contrôles personnalisés, ainsi que des évaluations. Le SDK inclut également un environnement de test basé sur Docker dans lequel vous pouvez tester votre nouveau contenu.
Une fois votre contenu personnalisé créé et testé, vous pouvez créer un fichier de contenu et l'importer dans SaltStack SecOps Compliance pour commencer l'évaluation et la correction. Les contrôles personnalisés incluent une icône utilisateur , contrairement aux contrôles SaltStack
. SaltStack SecOps Compliance suit les dépendances entre les stratégies et votre contenu personnalisé, et fournit une liste des dépendances qui peuvent être compromises si vous supprimez le contenu.
Conditions préalables
- Téléchargez le SDK de contenu personnalisé de SaltStack SecOps Compliance.
- Installez Docker. Consultez la documentation d'installation de Docker.
Initialisation du SDK
- À partir de la ligne de commande, accédez au répertoire contenant le fichier et exécutez ce qui suit en fonction de votre système d'exploitation.
- Mac OS ou Linux
./secops_sdk init
- Windows
secops_sdk.exe init
Aucune sortie ne s'affiche. Cette situation est normale. Votre répertoire contient désormais les dossiers et fichiers suivants :
benchmarks
salt/locke/custom
sample_tests
README.md
Pour plus d'informations sur ces dossiers et fichiers, reportez-vous à la section Dossiers et fichiers.
- Mac OS ou Linux
- (Facultatif) Validez les modifications apportées à un référentiel contrôlé par la version.
Création de contrôles personnalisés
L'initialisation du SDK est une condition préalable à la création de contenu personnalisé. Reportez-vous à la section Initialisation du SDK.
- Dans le SDK de contenu personnalisé, accédez à
salt/locke/custom
. Ce répertoire contient divers sous-répertoires avec des exemples de fichiers d'état (.sls
) et de fichiers méta (.meta
).Note : Tous les contrôles personnalisés doivent être configurés dans un fichier d'état (.sls
) et un fichier méta (.meta
) correspondant. - Copiez un exemple de fichier d'état (
.sls
) et son fichier méta (.meta
) correspondant, en renommant les deux avec un nom descriptif pour le contrôle personnalisé.Les deux fichiers associés à un contrôle doivent se trouver dans le même répertoire et commencer par le même nom, par exemple :
my_first_check.meta
my_first_check.sls
Vous pouvez enregistrer ces deux fichiers ensemble dans n'importe quel sous-répertoire de
salt/locke/custom
. - Modifiez le contenu du méta-fichier pour personnaliser la vérification en fonction de vos besoins. Le fichier est écrit en YAML. Pour consulter la liste des opérations incluses dans le fichier, reportez-vous à la section Dossiers et fichiers.
Note : Vérifiez que les fichiers méta font référence à différentes évaluations. Lors de la création d'un contenu personnalisé, veillez à inclure toutes les évaluations associées dans votre fichier méta de contrôle.
- Modifiez le contenu du fichier d’état. Pour plus d'informations, reportez-vous à la section Dossiers et fichiers.
- Assurez-vous que les deux fichiers sont enregistrés dans le même répertoire.
Vous avez maintenant terminé les étapes minimales requises pour créer un contrôle personnalisé. Vous pouvez continuer à tester le contrôle, valider le contrôle de version ou créer votre bibliothèque de contenu.
Création d’évaluations personnalisées
- Dans le SDK de contenu personnalisé, accédez au répertoire
benchmarks
. Il contient un exemple de fichier méta (.meta
) d'évaluation. - Faites une copie de
Sample_Benchmark.meta
, en le renommant avec un nom descriptif pour votre évaluation. - Modifiez le contenu du méta-fichier pour personnaliser l’évaluation en fonction de vos besoins. Le fichier est écrit en YAML. Pour une description des différentes options incluses dans le fichier, reportez-vous à la section Dossiers et fichiers.
Test du contenu personnalisé
- Une fois que vous avez créé le contenu personnalisé, ouvrez la ligne de commande et accédez au répertoire
sample_tests
du SDK de contenu personnalisé. - Créez une image docker de CentOS7 avec Salt pour les tests.
./build.sh
- Démarrez le conteneur de test.
./up.sh
- Exécutez des exemples de tests sur les contrôles que vous avez créés dans le répertoire
salt/locke/custom
. Vous pouvez exécuter des contrôles personnalisés comme vous le feriez avec des états Salt normaux, par exemple :./test.sh salt-call --local state.apply locke.custom.mounts.my_first_check test=True
Pour obtenir d'autres exemples de tests, reportez-vous à la section Tester du contenu personnalisé dans le fichier LISEZ-MOI du SDK. Pour plus d'informations sur les états Salt, consultez la documentation de Salt : comment utiliser les états Salt ?.
- Lorsque le test est terminé, fermez le conteneur de test.
./down.sh
Création de la bibliothèque de contenu personnalisée
- Une fois que vous avez créé le contenu personnalisé, ouvrez la ligne de commande et accédez au répertoire racine du SDK de contenu personnalisé.
- Créez votre bibliothèque de contenu personnalisée.
./secops_sdk build -a
Le répertoire racine du SDK inclut désormais le sous-répertoire
_dist
. Cela inclut deux fichierstar.gz
que vous pouvez utiliser pour importer votre contenu via l'interface utilisateur de SaltStack Config ou l'API (RaaS). Pour obtenir une description de tous les fichiers inclus dans le répertoire, reportez-vous à la section Dossiers et fichiers.
Importation du contenu personnalisé
- Cliquez sur Administration > SecOps dans le menu latéral.
- Sous Contenu de conformité - SaltStack, cliquez sur Vérifier les mises à jour.
Note : Si vous avez déjà téléchargé du contenu SaltStack SecOps Compliance pendant votre session actuelle, vous pouvez ignorer cette étape.
- Cliquez sur Charger le module et sélectionnez le fichier
.tar.gz
dans l'explorateur de fichiers.Note : Pour faciliter la navigation de vos contrôles personnalisés, utilisez le fichier contenant un timestamp dans le nom de fichier. Pour en savoir plus sur les fichiers, reportez-vous à la section Dossiers et fichiers.Votre contenu personnalisé est désormais disponible dans SaltStack SecOps Compliance pour la création de stratégies, l'exécution d'évaluations et la correction de vos systèmes. Les contrôles personnalisés incluent une icône utilisateur
, contrairement aux contrôles SaltStack
.
Note :Vous pouvez également importer du contenu à l'aide de l'API (RaaS) ou via la ligne de commande lors de l'installation. Consultez l'interface Sec API ou le Guide d'installation dans l'entreprise.
Suppression des vérifications personnalisées
- Dans l'interface utilisateur, accédez à SecOps > Contrôles.
- Cliquez sur le menu
en regard du contrôle que vous souhaitez supprimer, puis cliquez sur Supprimer.
Note : Seul du contenu personnalisé peut être supprimé. Le contenu personnalisé inclut une icône d'utilisateur, par opposition au contenu SaltStack
.
- Dans la boîte de dialogue Supprimer le contrôle, sous En cours d'utilisation, vérifiez la liste de stratégies et d'évaluations qui incluent le contrôle. Cela est utile pour prédire les dépendances dans votre environnement pouvant être compromises si vous supprimez le contrôle.
Lorsque vous avez terminé d'examiner les dépendances en cours d'utilisation, cliquez sur Suivant.
- Sous Supprimer le contrôle > Avertissement, cliquez sur Supprimer. La boîte de dialogue confirme que le contrôle a été supprimé.
- Cliquez sur Terminé pour fermer la boîte de dialogue.
Suppression des références personnalisées
- Dans l'interface utilisateur, accédez à SecOps > Évaluations.
- Cliquez sur le menu
en regard du contrôle que vous souhaitez supprimer, puis cliquez sur Supprimer.
Note :Seul du contenu personnalisé peut être supprimé. Le contenu personnalisé inclut une icône d'utilisateur
, par opposition au contenu SaltStack
.
- Dans la boîte de dialogue Supprimer l'évaluation, sous En cours d'utilisation, examinez la liste des stratégies et des contrôles associés à l'évaluation. Cela est utile pour prédire les dépendances de votre environnement pouvant être compromises si vous supprimez l'évaluation.
Lorsque vous avez terminé d'examiner les dépendances en cours d'utilisation, cliquez sur Suivant.
- Sous Supprimer l'évaluation > Avertissement, cliquez sur Supprimer. La boîte de dialogue confirme que l’évaluation a été supprimée.
- Cliquez sur Terminé pour fermer la boîte de dialogue.
Dossiers et fichiers
Après l'initialisation du SDK, votre répertoire inclut les dossiers et fichiers suivants :
benchmarks
: contient les fichiers méta d'évaluations personnalisées (.meta
)salt/locke/custom
: contient les fichiers d'état de contrôle personnalisé (.sls
) et les fichiers méta (.meta
)sample_tests
: contient des exemples de fichiers à tester à l'aide de DockerREADME.md
: fournit des informations plus détaillées sur le SDK
Les fichiers importants sont décrits de façon plus détaillée ci-dessous.
Fichiers d'évaluations personnalisées
Les évaluations sont des catégories de contrôles de sécurité. Les évaluations intégrées de SaltStack SecOps Compliance sont définies par des experts largement reconnus. Cependant, les évaluations personnalisées peuvent être définies par les normes de votre organisation. Chaque évaluation contient une liste de recommandations, appelée contrôles, et dispose d'un fichier .meta
correspondant dans le répertoire benchmarks
. Pour plus d'informations sur les évaluations dans SaltStack SecOps Compliance, reportez-vous à la section Évaluations.
En créant un fichier méta d'évaluation, vous créez une catégorie de contrôles. Vous pouvez ensuite ajouter des contrôles à cette évaluation en nommant l'évaluation dans un fichier méta de contrôle sous benchmark_id
. Reportez-vous à la section Dossiers et fichiers.
Le fichier méta est écrit en YAML et inclut les options suivantes que vous pouvez personnaliser pour votre contenu :
- name
-
Nom de l'évaluation
- display_name
-
Nom de l'évaluation tel qu'il figurera dans la liste des évaluations dans SaltStack SecOps Compliance
- desc
-
Description de l'évaluation
Outre les options ci-dessus, le fichier méta inclut également divers éléments réservés, tels que version
, authority
et ids
. Ne modifiez pas ces éléments réservés, sauf si votre administrateur vous le demande.
Fichiers de contrôles personnalisés
Un contrôle est une norme de sécurité dont SaltStack SecOps Compliance évalue la conformité. Il s’agit d’une recommandation associée à une évaluation. La recommandation fournit des informations sur la description, l’explication, l’audit et la correction. Chaque contrôle est défini par au moins deux fichiers : un fichier d'état (.sls
) et un fichier méta (.meta
) correspondant.
Les deux fichiers associés à un contrôle doivent se trouver dans le même répertoire et commencer par le même nom, par exemple :
my_first_check.meta
my_first_check.sls
Vous pouvez enregistrer ces deux fichiers ensemble dans n'importe quel sous-répertoire de salt/locke/custom
.
Chaque type de fichier est décrit plus en détail ci-dessous.
Fichiers méta de contrôle
Les fichiers méta de contrôle incluent la description d'un contrôle, ainsi que des détails supplémentaires relatifs au contrôle, tels que sa version, les systèmes d'exploitation applicables, etc. Les fichiers méta sont écrits en YAML et utilisent l'extension de fichier .meta
.
Les fichiers méta de contrôle personnalisés incluent les options suivantes :
- version
-
Version du contenu du contrôle. Seule une valeur de
1
est prise en charge pour le moment. - display_name
-
Nom de ce contrôle tel qu'il figure dans la liste des contrôles dans l'interface utilisateur de SaltStack Config.
- global_description
-
Description détaillée du contrôle. Il s'agit de la possibilité de fournir plus d'informations que celles fournies par les noms de contrôle et d'évaluation.
- osfinger
-
Liste des systèmes d’exploitation autorisés à exécuter ce contrôle. Si l'hôte n'a pas de valeur
osfinger
correspondant à une valeur de cette liste, le résultat de l'évaluation du contrôle revient sous la formenotapplicable
. - références
-
Informations de référence croisée sur d'autres contrôles ou dans d'autres normes d'évaluation ou de sécurité satisfaites avec ce contrôle.
- benchmark_id
-
Liste de chaque évaluation à laquelle appartient le contrôle.
Chaque entrée d’évaluation crée une nouvelle section qui inclut les sous-options suivantes :
- type
-
Type d'évaluation. Entrez
custom
lors de la définition d'un contrôle personnalisé non fourni par une autorité spécifique. - desc
-
Titre de la recommandation de sécurité telle qu'elle figurera dans la liste des contrôles dans l'interface utilisateur de SaltStack Config.
- control_id
-
Numéro de recommandation, par exemple d'un document CIS correspondant.
- noté
-
Ce champ est modélisé selon les recommandations CIS qui peut être Noté ou Non noté. Les recommandations CIS qui ne sont pas notées ne sont pas comptabilisées pour ou par rapport à une note de sécurité.La valeur true indique noté et
false
indique non noté. Vous pouvez choisir de noter ou non un contrôle, en fonction de vos besoins internes. - profil
-
CIS et les autres évaluations sont divisés en profils. Par exemple, l'évaluation CIS CentOS Linux 7 a quatre profils, représentés sous la forme :
profile: server:level1 workstation:level1 server:level2 workstation:level3
- information
-
Description du contrôle. Cela peut être semblable au champ
global_description
du contrôle. - logique
-
Description de la logique de mise en œuvre du contrôle.
- correction
-
Instructions sur la correction d’un système dans un état non conforme.
Fichiers d'état du contrôle
Vérifiez que les fichiers d’état appliquent des états Salt pour effectuer des évaluations et des corrections. Une fonction d’état est une fonction contenue dans un module d’état qui peut gérer l’application d’un état particulier à un système . Les fonctions d’état appellent fréquemment un ou plusieurs modules d’exécution pour effectuer une tâche donnée. Les fichiers d'état sont écrits en YAML et Jinja, et utilisent l'extension de fichier .sls
.
Le résultat d'une évaluation est le résultat de l'exécution du fichier d'état en mode test=True
. Si le résultat indique que l’application de l’état aurait entraîné une modification, l’hôte est considéré comme non conforme. Si l’application de l’état n’entraîne pas de modification, l’hôte est considéré comme conforme.
Pour plus d'informations sur les états Salt, consultez la documentation de Salt : comment utiliser les états Salt ?.
Fichiers de bibliothèque de contenu personnalisés
Après la création de la bibliothèque de contenu personnalisé, votre répertoire inclut le répertoire _dist
qui contient les fichiers supplémentaires suivants :
digest.json
: contient des hachages et d'autres informations sur le contenusecops_custom.tar.gz
: fichier .tar .gzip prêt pour ingestion. Cela convient au téléchargement via l'interface utilisateur de SaltStack Config. Pour plus d'informations sur l'ingestion de contenu, consultez le Guide d'installation en entreprise.secops_custom.txt
: version codée en base64 desecops_custom.tar.gz
. Cela est utile lors d'appels d'APIsecops_custom_YYYY-MM-DDTHH:MM:SS.SSSSSS...tar.gz
: copie identique desecops_custom.tar.gz
, préférée pour le téléchargement via l'interface utilisateur de SaltStack Config en raison de son nom de fichier descriptif, qui inclut la date de création et l'UUID tarball