C H A P I T R E 6 |
Audit de sécurité de systèmes |
Ce chapitre explique comment contrôler (valider) la sécurité d'un système à l'aide du logiciel Solaris Security Toolkit. Utilisez les indications et les procédures figurant dans ce chapitre pour maintenir un profil de sécurité donné après le durcissement. Pour les systèmes déjà déployés, référez-vous aux informations contenues dans ce chapitre pour évaluer les mesures da sécurité existantes avant de procéder au durcissement.
Ce chapitre traite des points suivants :
La maintenance de la sécurité est un processus permanent devant être vérifié et révisé de manière régulière. La maintenance d'un système sécurisé requiert le maximum d'attention, car la configuration de sécurité par défaut de tout système tend à s'ouvrir de plus en plus avec le temps. (Pour de plus amples informations sur la maintenance de la sécurité, reportez-vous à la section Maintenance de la sécurité du système).
En nous référant à l'expérience et aux exigences des utilisateurs, nous avons conçu une méthode d'audit automatisée permettant au logiciel Solaris Security Toolkit de contrôler la politique de sécurité d'un système en déterminant le niveau de conformité à un profil de sécurité spécifié.
Remarque - Cette méthode est uniquement disponible en mode autonome via la commande jass-execute -a. Elle ne peut pas être utilisée pendant une installation JumpStart. |
Vérifiez périodiquement la politique de sécurité de vos systèmes, suivant une procédure manuelle ou automatique (par exemple, via la tâche cron ou un script rc). Par exemple, cinq jours après le durcissement d'une nouvelle installation, exécutez la commande d'audit du logiciel Solaris Security Toolkit (jass-execute -a driver-name) pour déterminer si le niveau de sécurité du système a changé par rapport à l'état défini par le profil de sécurité.
La fréquence de contrôle de la sécurité dépend de la sensibilité de l'environnement et de votre stratégie de sécurité. Certains utilisateurs effectuent un audit toutes les heures, d'autres chaque jour et d'autres encore une fois par mois. Certains utilisateurs effectuent un mini-audit (avec un nombre limité de contrôles) toutes les heures et un audit complet (avec tous les contrôles possibles) une fois par jour.
Vérifiez un composant essentiel afin de maintenir la politique de sécurité des systèmes déployés. Si la politique de sécurité n'est pas vérifiée à intervalle régulier, les configurations dérivent souvent avec le temps par entropie ou suite à des modifications apportées par inadvertance ou par malveillance. En l'absence de contrôles périodiques, ces changements ne seront pas détectés et aucune mesure corrective n'est prise. Résultat : le système devient de moins en moins sûr et de plus en plus vulnérable.
En plus des audits périodiques, effectuez des vérifications après les mises à niveau, les installations de patchs et chaque fois que des changements significatifs sont apportés à la configuration du système.
Dans certains cas, il peut s'avérer utile de vérifier la politique de sécurité de systèmes déployés avant leur durcissement. Par exemple, si vous êtes responsable de systèmes déployés administrés par une autre personne, inspectez l'état de ces systèmes afin de connaître leur politique de sécurité et, le cas échéant, de les mettre en conformité avec les profils de sécurité utilisés sur les autres systèmes.
L'option d'audit est un mécanisme extrêmement flexible et modulable visant à évaluer l'état d'un système. Comme pour les scripts de durcissement, vous pouvez personnaliser les actions des scripts d'audit. Par exemple, vous pouvez personnaliser les variables d'environnement, la structure et les fonctions d'aide, de même qu'ajouter des fonctionnalités à la structure d'audit.
Pour la plupart des utilisateurs, les scripts d'audit standard et les scripts spécifiques au produit peuvent servir de modèles pour la personnalisation de l'audit de leurs environnements. Dans ce cas de figure, on utilise les pilotes, les scripts finish, les variables d'environnement et les modèles de fichiers pour personnaliser les scripts d'audit. Vous pouvez apporter des modifications de personnalisation avec un minimum d'efforts, sans devoir toucher le code. Quelles que soient les modifications introduites pour le durcissement, le logiciel Solaris Security Toolkit les détecte automatiquement lorsque vous exécutez l'audit.
Parfois, certains utilisateurs veulent ajouter des contrôles ou des fonctionnalités qui ne sont pas prévus par le logiciel Solaris Security Toolkit. Pour cela, il faut ajouter les contrôles ou les nouvelles fonctionnalités dans le script d'audit. (Vous pouvez aussi apporter les modifications dans le script finish correspondant.) Dans certains cas, il peut s'avérer nécessaire de modifier le code. Si vous ajoutez ou modifiez un code, faites extrêmement attention à ne pas introduire de bogues ou de failles.
Certains utilisateurs doivent créer des pilotes et des scripts propriétaires ou spécifiques au site entièrement nouveaux. Utilisez les modèles et les échantillons pour vous guider lors du codage de nouveaux pilotes et scripts. Veuillez noter que les pilotes, les scripts finish, les variables et les fonctions spécifiques au site ne sont pas reconnus automatiquement pas le logiciel Solaris Security Toolkit lorsque vous utilisez l'option d'audit. Par exemple, si vous ajoutez un pilote spécifique au site nommé abcc-nj-secure.driver contenant un script finish abcc-nj-install-foo.fin, il peut être nécessaire de créer un script d'audit spécifique au site, abcc-nj-install-foo.aud. De même, si vous commencez avec seulement le script d'audit, vous devez créer le script finish correspondant.
Pour personnaliser ou créer de nouveaux pilotes, scripts, variables et fonctions, reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.
Vous devrez peut-être ajouter un patch que le logiciel Solaris Security Toolkit n'installe pas automatiquement. Vous pouvez utiliser l'un des modèles standard ou spécifiques au produit ou bien en créer un. Si vous définissez vos propres modèles, commencez par créer un script finish pour ajouter le patch, puis rédigez le script d'audit correspondant afin de contrôler l'installation du patch.
Pour utiliser les instructions contenues dans ce chapitre, vous devez disposer d'un profil de sécurité. Pour plus d'informations sur le développement et l'implémentation d'un profil de sécurité, reportez-vous au Chapitre 2.
De nombreux modèles de profils de sécurité sont inclus sous forme de pilotes dans le logiciel Solaris Security Toolkit. Comme indiqué précédemment dans cet ouvrage, le profil de sécurité par défaut et les modifications apportées par ces pilotes ne s'appliquent pas à tous les systèmes. En général, les profils de sécurité mis en oeuvre par ces pilotes constituent des limites supérieures de sécurité. Par là, nous entendons des limites qui désactivent les services inutiles et activent les fonctions de sécurité facultatives, désactivées pas défaut.
Pour de nombreux utilisateurs du logiciel Solaris Security Toolkit, les modèles de profils de sécurité standard et spécifiques au produit sont acceptables pour leurs environnements. Si tel est votre cas, déterminez le profil de sécurité correspondant le mieux au type de politique de sécurité voulu, puis utilisez-le pour l'évaluation et le durcissement des systèmes.
Vérifiez et personnalisez les modèles de profils de sécurité pur votre environnement ou développez-en de nouveaux. Vous trouverez des techniques et des directives pour la personnalisation des profils de sécurité dans le manuel le Solaris Security Toolkit 4.1 Reference Manual. Cette approche permet de sécuriser votre système selon les besoins de votre entreprise et de minimiser la quantité des fausses erreurs renvoyées lors d'une évaluation de la sécurité. Par exemple, si vous savez que Telnet doit être activé, vous pouvez personnaliser le profil de sécurité de manière à ce que le logiciel ne considère pas Telnet comme une faille lors de l'évaluation de la sécurité. Par exemple, un site utilisant Telnet avec Kerberos, pour l'authentification et le chiffrement, ne considère pas l'utilisation de Telnet comme une faille.
Cette section décrit les options disponibles pour l'exécution d'un audit et les options de contrôle de la sortie. Ce chapitre traite des points suivants :
Exemple d'utilisation pour l'audit d'un système en fonction d'un profil de sécurité :
Pendant l'exécution de la commande d'audit du logiciel Solaris Security Toolkit, vous pouvez utiliser les options indiquées dans le TABLEAU 6-1.
Pour des informations détaillées sur les options disponibles avec la commande jass-execute -a, reportez-vous aux sections suivantes :
L'option -h affiche le message d'aide de la commande jass-execute, qui présente les options disponibles.
L'option -h génère une sortie du type suivant :
L'option -m email-address est un mécanisme selon lequel le logiciel Solaris Security Toolkit envoie automatiquement la sortie par e-mail une fois la session terminée. Le rapport e-mail est en plus des journaux éventuellement générés sur le système à l'aide d'autres options.
Une session Solaris Security Toolkit appelant sunfire_15k_sc-config.driver à l'aide de l'option de notification par e-mail ressemble à ceci :
L'option -o output-file redirige la sortie de console de jass-execute vers un fichier distinct intitulé output-file.
Cette option n'a aucun effet sur les journaux conservés dans le répertoire JASS_REPOSITORY. Cette option est extrêmement pratique lorsqu'elle est utilisée sur une connexion de terminal lente, car Solaris Security Toolkit génère une quantité significative de données de sortie.
Cette option peut s'utiliser en combinaison avec les options -d, -u ou -a.
L'option -o génère une sortie du type suivant :
# ./jass-execute -o jass-output.txt -a secure.driver [NOTE] Executing driver, secure.driver [NOTE] Recording output to jass-output.txt # |
L'option -q désactive la sortie de Solaris Security Toolkit sur le flux d'entrée/sortie standard (stdio) pendant l'exécution d'un durcissement.
Cette option n'a aucun effet sur les journaux conservés dans le répertoire JASS_REPOSITORY. Comme pour l'option -o, cette option est particulièrement utile lorsque Solaris Security Toolkit est exécuté via une tâche cron ou sur une connexion réseau bas débit.
Cette option peut s'utiliser en combinaison avec les options -d, -u ou -a.
L'option -q génère une sortie du type suivant :
# ./jass-execute -q -a secure.driver [NOTE] Executing driver, secure.driver |
L'option -V spécifie le niveau de verbosité d'une session d'audit. Cette option n'est disponible que pour les audits. Les niveaux de verbosité offrent une haute flexibilité d'affichage des résultats d'un audit. Par exemple, si vous avez 100 machines à contrôler, il peut être plus pratique de limiter la sortie à une seule ligne pour chaque machine afin de savoir quelles machines sont correctes et lesquelles ne le sont pas. Ensuite, vous pouvez choisir de lancer un audit uniquement sur les machines incorrectes et de générer des informations plus complètes en sortie afin de mieux cerner le problème.
Les cinq niveaux de verbosité (0 à 4) sont contrôlés par l'option -V. Chaque niveau incrémentiel fournit des détails supplémentaires permettant de mieux comprendre les contrôles qui ont réussi et ceux qui ont échoué. Le TABLEAU 6-2 décrit les niveaux de verbosité.
Remarque - Le niveau de verbosité par défaut pour la commande jass-execute -V est 3. |
Pour une description complète des niveaux de verbosité, reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.
Vous pouvez configurer l'option d'audit de Solaris Security Toolkit pour sortir ou omettre les bannières et les messages. La variable JASS_LOG_BANNER n'est pas compatible avec les niveaux de verbosité 0 à 2. Ces options de sortie s'appliquent aux niveaux de verbosité 3 et 4. Par exemple, il est parfois souhaitable de supprimer les messages de passage (variable JASS_LOG_SUCCESS) de la sortie afin que le rapport contienne uniquement les messages relatifs aux échecs (variable JASS_LOG_FAILURE).
Le TABLEAU 6-3 dresse la liste des bannières et des messages que vous pouvez contrôler par l'intermédiaire des variables de consignation. (Pour de plus amples informations sur les variables de consignation, reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.) Si la variable de consignation est définie sur 0, aucune sortie ne sera générée pour les messages de ce type. Inversement, si la variable de consignation est définie sur 1, les messages seront affichés. Par défaut, ces variables sont configurées de manière à afficher les messages. Le TABLEAU 6-3 décrit les variables de consignation.
Ces options se révèlent très pratiques lorsque vous souhaitez uniquement afficher des messages spécifiques. En les configurant, vous pouvez minimiser les messages générés et vous concentrer sur les zones que vous estimez critiques. Par exemple, en configurant toutes les variables de consignation sur 0 à l'exception de JASS_LOG_FAILURE (en conservant sa valeur par défaut de 1), seuls les rapports d'audit concernant des failles seront générés par la fonction logFailure.
Vous pouvez configurer l'option d'audit de Solaris Security Toolkit de manière à inclure le nom d'hôte, le nom de script et l'horodatage pour les niveaux de verbosité 0 à 2. Par exemple, si vous disposez d'un nombre élevé de machines à contrôler, vous pouvez trier la sortie par nom d'hôte, par nom de script ou par horodatage. Le TABLEAU 6-4 dresse la liste des variables.
En configurant le logiciel Solaris Security Toolkit afin qu'il ajoute le nom d'hôte, le nom de script et l'horodatage, vous pouvez combiner de nombreux audits depuis un seul système ou un groupe de systèmes et les trier ensuite à partir de ces données. Vous pouvez utiliser ces informations pour rechercher les problèmes touchant plusieurs systèmes ou symptomatiques de processus de déploiement. Par exemple, en utilisant les informations de cette manière, un administrateur peut savoir si tous les systèmes construits suivant un procédé donné présentent toujours les mêmes failles.
Par exemple, en configurant le paramètre JASS_DISPLAY_TIMESTAMP sur 1 et le paramètre JASS_DISPLAY_SCRIPTNAME sur 0, on obtient en sortie un message similaire au suivant.
L'évaluation périodique de la sécurité de votre système permet savoir jusqu'à quel point la sécurité correspond au profil de sécurité que vous avez implémenté. Le plus souvent l'évaluation de la sécurité d'un système est- similaire à une tâche de maintenance parfois exécutée après le durcissement de nouvelles installations. Nous avons conçu l'option d'évaluation de la sécurité de sorte que vous puissiez exécuter le(s) même(s) pilote(s) de durcissement que ceux utilisés pour le durcissement du système, mais utiliser à présent l'option -a pour contrôler l'état actuel par rapport au profil de sécurité implémenté pendant l'opération. Cette solution élimine la complexité tout en offrant un grande flexibilité. Par exemple, quand vous mettez à jour votre profil de sécurité, les évaluations de sécurité suivantes utilisent le profil de sécurité mis à jour.
Dans un autre scénario possible, vous pourriez être responsable de la sécurisation de systèmes qui sont déjà déployés. Avant de passer à leur durcissement, vous voulez effectuer une évaluation de sécurité. Dans ce scénario, vous définissez votre profil de sécurité, personnalisez un modèle de profil de sécurité Solaris Security Toolkit ou utilisez l'un des modèles de profils de sécurité tel quel.
|
Avant d'effectuer un audit, vous devez définir ou choisir un profil de sécurité. Pour plus d'informations, reportez-vous à la section Préparation d'un audit de sécurité.
1. Choisissez le profil de sécurité (pilote de durcissement) à utiliser :
Par exemple, utilisez secure.driver ou abccorp-secure.driver.
Pour une liste complète et à jour des pilotes disponibles, téléchargez la dernière version du logiciel Solaris Security Toolkit sur le site Web suivant :
http://www.sun.com/security/jass
Consultez le Solaris Security Toolkit 4.1 Reference Manual pour de plus amples informations sur les pilotes standard et spécifiques au produit. Les pilotes les plus récents se trouvent dans le répertoire Drivers.
2. Déterminez les options de ligne de commande que vous voulez utiliser et comment vous souhaitez contrôler la sortie.
Reportez-vous à la section Utilisation d'options et contrôle de la sortie des audits.
3. Indiquez la commande jass-execute -a, le nom du profil de sécurité et les options voulues.
L'exemple suivant illustre un audit exécuté à l'aide du script sunfire_15k_sc-secure.driver.
Après le démarrage d'une session d'audit, le logiciel Solaris Security Toolkit a accès aux fichiers du répertoire JASS_HOME_DIR/Audit. Bien que les fichiers contenus dans les répertoires JASS_HOME_DIR/Audit et JASS_HOME_DIR/Finish partagent les mêmes noms de fichiers, ils n'ont pas les mêmes suffixes. Le script driver.runtraduit automatiquement les scripts finish définis par la variable JASS_SCRIPTS dans des scripts d'audit, en changeant leurs suffixes de .fin à .aud.
L'audit démarre et initialise l'état du logiciel Solaris Security Toolkit. Chaque pilote auquel on accède pendant l'audit évalue l'état de l'ensemble de ses modèles de fichiers et scripts d'audit. Le résultat de chaque contrôle est sa réussite ou son échec, ce qui est représenté par une valeur de vulnérabilité respectivement égale à zéro ou différente de zéro. Dans la plupart des cas, l'échec est représenté par le numéro 1. Chaque script exécuté produit un score total de sécurité basé sur la valeur totale de vulnérabilité de chaque contrôle contenu à l'intérieur d'un script. Par ailleurs, la valeur totale de vulnérabilité pour chaque pilote est affichée une fois l'évaluation du pilote terminée. Un total général de tous les résultats est présenté à la fin de l'audit.
L'option d'évaluation de la sécurité permet d'avoir une vue complète de l'état d'un système au moment où l'évaluation a commencé. Le logiciel Solaris Security Toolkit contrôle l'état stocké du système en inspectant les fichiers de configuration et l'état en cours du système en inspectant les informations sur la table du processus, le pilote de périphérique et ainsi de suite. Le logiciel Solaris Security Toolkit contrôle l'existence de chaque fichier ou service et vérifie qu le logiciel associé avec un service est installé, configuré, activé et en cours d'exécution. Cette méthode fournit un instantané précis de l'état courant d'un système.
Copyright © 2004, Sun Microsystems, Inc. Tous droits réservés.