C H A P I T R E 6 |
Audit de sécurité de systèmes |
Ce chapitre décrit l'audit (la validation) de la sécurité d'un système à l'aide du logiciel Solaris Security Toolkit. Utilisez les informations et les procédures figurant dans ce chapitre pour maintenir un profil de sécurité donné après la sécurisation. Pour les systèmes qui sont déjà déployés, vous pouvez utiliser les informations contenues dans ce chapitre afin d'évaluer la sécurité du système avant la sécurisation.
Ce chapitre contient les sections suivantes :
La maintenance de la sécurité est un processus permanent qui doit être périodiquement revu et vérifié. La maintenance d'un système sécurisé requiert le maximum d'attention étant donné que 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).
Solaris Security Toolkit fournit une méthode automatisée permettant de contrôler la sécurisation d'un système en déterminant son niveau de conformité par rapport à un profil de sécurité spécifique.
Remarque - Cette méthode est disponible uniquement en mode autonome à l'aide de la commande jass-execute -a et ne peut pas être utilisée pendant une installation JumpStart. |
Vérifiez périodiquement le niveau de sécurité des systèmes, selon une procédure manuelle ou automatique (par exemple, via une tâche cron ou un scriptrc). Par exemple, cinq jours après la sécurisation d'une nouvelle installation, exécutez la commande d'audit du logiciel Solaris Security Toolkit (jass-execute -a nom-pilote) pour déterminer si le niveau de sécurité du système a changé par rapport à l'état défini dans le profil de sécurité.
La fréquence d'audit 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 tous les jours et d'autres encore une fois par mois. Certains 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. La sécurisation doit absolument être vérifiée après chaque redémarrage du système, en plus des autres routines d'audits.
Vérifiez tous les composants essentiels afin de maintenir la sécurité des systèmes déployés. Si la sécurité n'est pas vérifiée périodiquement, les configurations dérivent souvent avec le temps par entropie ou suite à des modifications apportées par inadvertance ou par malveillance. Sans contrôles périodiques, ces changements ne sont pas détectés et aucune mesure corrective ne peut être prise. Le résultat en est un système de moins en moins sûr et de plus en plus vulnérable.
Outre les 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 sécurité de systèmes déployés avant leur sécurisation. 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 niveau de sécurité et, le cas échéant, de les mettre en conformité avec les profils de sécurité utilisés sur vos systèmes.
L'option d'audit est un mécanisme extrêmement flexible et extensible pour l'évaluation de l'état d'un système. Comme pour les scripts de sécurisation, vous pouvez personnaliser les actions des scripts audit. Par exemple, vous pouvez personnaliser les variables d'environnement, la structure et les fonctions auxiliaires, et 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 être utilisés comme modèles afin de personnaliser l'audit en fonction de l'environnement. Dans ce cas, utilisez les pilotes, les scripts finish, les variables d'environnement et les modèles de fichiers pour personnaliser les scripts d'audit. Les modifications de personnalisation peuvent être effectuées avec un minimum d'effort, sans modification du code. Quelles que soient les modifications introduites pour la sécurisation, le logiciel Solaris Security Toolkit les détecte automatiquement quand vous effectuez l'audit.
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 spécifiques au site, les scripts finish, les variables et les fonctions ne sont pas reconnus automatiquement par le logiciel Solaris Security Toolkit quand 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 par le script d'audit uniquement, vous devez créer le script finish correspondant.
Parfois, certains utilisateurs veulent ajouter des contrôles ou des fonctionnalités qui ne sont pas prévus par le logiciel Solaris Security Toolkit. Il faut alors ajouter les contrôles ou les nouvelles fonctionnalités dans le script audit. (Vous pouvez aussi introduire les modifications dans le script finish correspondant). Si vous ajoutez ou modifiez le code du fichier à l'aide du user.run, agissez avec une extrême précaution afin de ne pas introduire de bogues ou de failles.
Pour personnaliser ou créer de nouveaux pilotes, scripts, variables et fonctions, reportez-vous au manuel Solaris Security Toolkit 4.2 Reference Manual.
Vous pouvez avoir besoin, par exemple, d'ajouter un patch que le logiciel Solaris Security Toolkit n'installe pas. Vous avez la possibilité d'utiliser l'un des modèles standard ou spécifiques au produit, ou bien d'en créer un. Si vous créez vos propres modèles, créez un script finish pour ajouter le patch, puis le script audit correspondant pour vérifier l'installation du patch. Si vous utilisez des scripts finish (.fin) et audit (.aud) existants comme modèles vous devez copier ces deux scripts vers de nouveaux fichiers uniques.
Pour utiliser les instructions contenues dans ce chapitre, vous devez disposer d'un profil de sécurité. Pour de plus amples informations sur le développement et la mise en oeuvre d'un profil de sécurité, reportez-vous au Chapitre 2.
De nombreux profils de sécurité sont inclus sous forme de pilotes dans le logiciel Solaris Security Toolkit. Comme mentionné précédemment dans cet ouvrage, les profils de sécurité par défaut et les modifications apportées par ceux-ci peuvent ne pas convenir à vos systèmes. En général, les profils de sécurité mis en oeuvre représentent 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 par secure.driver.
Les profils de sécurité standard et spécifiques au produit conviennent aux environnements de nombreux utilisateurs du logiciel Solaris Security Toolkit. Si tel est votre cas, vous devez déterminer le profil de sécurité qui reflète le mieux le type de sécurité voulu, puis utiliser ce profil pour l'évaluation et la sécurisation de vos systèmes.
Vérifiez et personnalisez les modèles de profils de sécurité en fonction de votre environnement, ou développez-en de nouveaux. Pour obtenir des techniques et des directives sur la personnalisation des profils de sécurité, reportez-vous au manuel Solaris Security Toolkit 4.2 Reference Manual. Cette approche permet de sécuriser votre système selon les besoins de votre organisation et de minimiser le nombre de 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 vulnérabilité lors de l'évaluation de la sécurité. Ainsi, un site utilisant Telnet avec Kerberos pour l'authentification et le chiffrement ne considère pas l'utilisation de Telnet comme une vulnérabilité.
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 contient les sections suivantes :
Le synopsis de la ligne de commande suivant décrit l'audit d'un système par rapport à 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 de plus amples informations 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 produit une sortie du type suivant :
L'option -m adresse_email est un mécanisme qui permet au logiciel Solaris Security Toolkit d'envoyer automatiquement la sortie par e-mail une fois l'exécution terminée. Le rapport électronique est généré en plus des journaux éventuellement créés sur le système à l'aide d'autres options.
Échantillon d'exécution de Solaris Security Toolkit appelant sunfire_15k_sc-config.driver à l'aide de l'option de notification par e-mail :
L'option -o fichier-sortie redirige la sortie de la console de la commande jass-execute vers un fichier distinct, fichier-sortie.
Cette option n'a aucun effet sur les journaux conservés dans le répertoire JASS_REPOSITORY. Cette option est particulièrement pratique si elle est utilisée avec une connexion de terminal bas débit, car Solaris Security Toolkit génère un volume significatif de sortie.
Cette option peut être utilisée avec les options -d, -u ou -a.
L'option -o produit 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 vers le flux d'entrée/sortie standard (stdio) pendant une sécurisation.
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 quand Solaris Security Toolkit est exécuté via une tâche cron ou avec une connexion réseau bas débit.
Cette option peut être utilisée avec les options -d, -u ou -a.
L'option -q produit 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'un audit. Cette option est disponible uniquement pour les audits. Les niveaux de verbosité offrent une haute flexibilité d'affichage des résultats d'audit. Par exemple, si vous avez 100 ordinateurs à contrôler, il peut être plus pratique de limiter la sortie à une seule ligne par ordinateur afin de déterminer ceux qui ont réussi l'audit et ceux qui ont échoué. Ensuite, vous pouvez lancer un audit uniquement sur les ordinateurs ayant échoué et générer ainsi 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 à la page man jass-execute ou à la section JASS_VERBOSITY du chapitre 7 du manuel Solaris Security Toolkit 4.2 Reference Manual.
Vous pouvez configurer l'option d'audit de Solaris Security Toolkit de sorte qu'elle signale ou omette les bannières et les messages. La variable JASS_LOG_BANNER ne peut pas être utilisée avec les niveaux de verbosité 0 à 2. Ces options de sortie s'appliquent aux niveaux 3 et 4. Par exemple, vous pouvez éliminer les messages de réussite (variable JASS_LOG_SUCCESS) de la sortie afin de signaler et de vous concentrer uniquement sur les messages d'échec (variable JASS_LOG_FAILURE).
Le TABLEAU 6-3 contient 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 à la section JASS_LOG_BANNER du chapitre 7 du manuel Solaris Security Toolkit 4.2 Reference Manual). Pour de plus amples informations sur les niveaux de verbosité, reportez-vous à la page man jass-execute ou à la section JASS_VERBOSITY du chapitre 7 du manuel Solaris Security Toolkit 4.2 Reference Manual. Si la variable de consignation est définie sur 0, aucune sortie n'est générée pour les messages de ce type. En revanche, si la variable de consignation est définie sur 1, les messages sont affichés. Par défaut, ces variables sont définies de manière à afficher les messages. Le TABLEAU 6-3 décrit les variables de consignation.
L'utilisation de ces options s'avère très pratique lorsque vous souhaitez afficher uniquement des messages spécifiques. En définissant ces options, vous pouvez minimiser les messages en sortie et vous concentrer sur les messages essentiels. Par exemple, en définissant toutes les variables de consignation sur 0 à l'exception de JASS_LOG_FAILURE (définie sur la valeur par défaut 1), seuls les rapports d'audit concernant des échecs sont 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 les informations d'horodatage pour les niveaux de verbosité 0 à 2. Par exemple, si vous avez un nombre élevé d'ordinateurs à contrôler, vous pouvez trier la sortie par nom d'hôte, nom de script ou horodatage. Le TABLEAU 6-4 contient la liste des variables.
En configurant le logiciel Solaris Security Toolkit de sorte qu'il ajoute le nom d'hôte, le nom de script et l'horodatage, vous pouvez combiner de nombreux audits d'un seul système ou d'un groupe de systèmes, et les trier ensuite en fonction de ces données clé. Vous avez la possibilité d'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 échecs.
Par exemple, en définissant le paramètre JASS_DISPLAY_TIMESTAMP sur 1 et le paramètre JASS_DISPLAY_SCRIPTNAME sur 0, vous obtenez une sortie du type suivant.
L'évaluation périodique de la sécurité des systèmes fournit une référence qui permet de déterminer le niveau de conformité de la sécurité par rapport au profil de sécurité mis en oeuvre. Le plus souvent, l'évaluation de la sécurité est similaire à une tâche de maintenance exécutée un certain temps après la sécurisation de nouvelles installations. L'option d'évaluation de la sécurité est conçue pour que vous puissiez exécuter les mêmes pilotes de sécurisation que ceux employés lors de la sécurisation du système. Toutefois, vous utilisez à présent l'option -a pour contrôler l'état actuel par rapport au profil de sécurité mis en oeuvre pendant la sécurisation. Cette solution élimine la complexité tout en offrant un grande flexibilité. Par exemple, quand vous mettez à jour le profil de sécurité, les évaluations de sécurité suivantes utilisent le profil de sécurité actualisé.
Dans un autre exemple, vous pourriez être responsable de la sécurisation de systèmes qui sont déjà déployés. Avant de passer à leur sécurisation, effectuez une évaluation de la sécurité. Vous définissez dans ce cas le 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.
Pour exécuter un audit de sécurité |
Avant d'effectuer un audit, vous devez définir ou choisir un profil de sécurité. Pour de plus amples informations, reportez-vous à la section Préparation d'un audit de sécurité.
1. Choisissez le profil de sécurité (pilote de sécurisation) que vous voulez utiliser :
Par exemple, secure.driver ou abccorp-secure.driver.
Pour obtenir une liste et des informations complètes et mises à jour sur les pilotes standard et spécifiques au produit disponibles, reportez-vous à la page man security_drivers ou au chapitre 4 du manuel Solaris Security Toolkit 4.2 Reference Manual.
2. Déterminez les options de ligne de commande que vous voulez utiliser et la méthode de contrôle de la sortie.
Voir Utilisation d'options et contrôle de la sortie des audits.
3. Entrez la commande jass-execute -a, le nom du profil de sécurité et les options voulues.
L'échantillon ci-après décrit un audit utilisant abc-secure.driver.
Après le démarrage d'un 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 de base, ils n'ont pas les mêmes suffixes. Le script driver.run convertit automatiquement les scripts finish définis par la variable JASS_SCRIPTS en scripts audit, en changeant leurs suffixes .fin en .aud. Il indique également les fichiers contenant tous les messages générés à chaque niveau d'avertissement pendant l'exécution.
L'audit démarre et initialise l'état du logiciel Solaris Security Toolkit. Chaque pilote auquel le système 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 une réussite ou un é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. La valeur totale de vulnérabilité pour chaque pilote est affichée une fois l'évaluation du pilote terminée. Un total global de tous les scores 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 commence. Le logiciel Solaris Security Toolkit contrôle l'état stocké du système en inspectant les fichiers de configuration et l'état de fonctionnement du système en inspectant les informations de la table de processus, le pilote de périphérique, etc. Le logiciel Solaris Security Toolkit vérifie l'existence de chaque fichier ou service, et s'assure que le logiciel associé à un service est installé, configuré, activé et en cours d'exécution. Cette méthode fournit un instantané précis de l'état actuel d'un système.
Copyright © 2005, Sun Microsystems, Inc. Tous droits réservés.