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.



Remarque - Le terme audit est utilisé dans ce chapitre et dans cet ouvrage pour définir le processus automatisé de validation de la sécurité par rapport à un profil de sécurité prédéfini effectué par Solaris Security Toolkit. L'utilisation de ce terme dans cet ouvrage ne signifie pas que le système est complètement sécurisé après l'utilisation de l'option d'audit.



Ce chapitre contient les sections suivantes :


Maintenance de la sécurité

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.


Contrôle de la sécurité avant la sécurisation

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.


Personnalisation des audits de sécurité

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.


Préparation d'un audit de sécurité

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é.


Utilisation d'options et contrôle de la sortie des audits

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 :

Options de ligne de commande

Le synopsis de la ligne de commande suivant décrit l'audit d'un système par rapport à un profil de sécurité :


# jass-execute -a pilote [ -V [0-4]] [ -q | -o fichier_sortie ] [ -m adresse_e-mail ]

 

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.


TABLEAU 6-1 Utilisation des options de ligne de commande avec la commande d'audit

Option

Description

-a pilote

Détermine si un système est conforme au profil de sécurité.

-m adresse_e-mail

Indique une adresse e-mail pour le support interne.

-o fichier_sortie

Indique un nom de fichier pour la sortie de l'exécution de Solaris Security Toolkit.

-q

Spécifie le mode silencieux. Les messages ne s'affichent pas pendant l'exécution de cette commande. La sortie est stockée dans JASS_REPOSITORY/.

-V niveau_verbosité

Spécifie le niveau de verbosité (0 à 4) de l'audit.


 

Pour de plus amples informations sur les options disponibles avec la commande jass-execute -a, reportez-vous aux sections suivantes :

Option d'affichage de l'aide

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 :


EXEMPLE DE CODE 6-1 Échantillon de sortie de l'option -h
# ./jass-execute -h
 
Pour appliquer ce kit d'outils à un système, en utilisant la syntaxe suivante :
  jass-execute [-r répertoire_racine -p version_es ]
  [ -q | -o fichier_sortie ] [ -m adresse_e-mail ]
  [ -V [3|4] ] [ -d ] driver
 
Pour annuler une application précédente du kit d'outils à partir d'un système :
  jass-execute -u [ -b | -f | -k ] [ -q | -o fichier_sortie ]
     [ -m adresse_e-mail ] [ -V [3|4] ]
 
Pour l'audit d'un système en fonction d'un profil prédéfini :
  jass-execute -a driver [ -V [0-4] ] [ -q | -o fichier_sortie ]
     [ -m adresse_e-mail ]
 
Pour afficher l'historique des applications du kit d'outils sur un système :
  jass-execute -H
 
Pour afficher la dernière application du kit d'outils sur un système :
  jass-execute -l
 
Pour afficher ce message d'aide :
  jass-execute -h
  jass-execute -?
 
Pour afficher les informations sur la version de ce programme :
  jass-execute -v

 

Option de notification par e-mail

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 :


# ./jass-execute -m root -a sunfire_15k_sc-config.driver
[...]

 

Option de sortie de fichier

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 :


EXEMPLE DE CODE 6-2 Échantillon de sortie de l'option -o
# ./jass-execute -o jass-output.txt -a secure.driver
[NOTE] Executing driver, secure.driver
[NOTE] Recording output to jass-output.txt
#

 

Option de sortie silencieuse

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 :


EXEMPLE DE CODE 6-3 Échantillon de sortie de l'option -q
# ./jass-execute -q -a secure.driver
[NOTE] Executing driver, secure.driver

 

Option de verbosité

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é.


TABLEAU 6-2 Niveaux de verbosité d'un audit

Niveau

Sortie

0

Affiche une ligne unique indiquant la réussite ou l'échec.

1

Affiche, pour chaque script, une ligne unique indiquant la réussite ou l'échec, puis une ligne de score total sous toutes les lignes de script.

2

Affiche, pour chaque script, les résultats de tous les contrôles.

3

Affiche plusieurs lignes avec une sortie complète, y compris les messages de bannière et d'en-tête. Ce niveau est la valeur par défaut.

4

Affiche plusieurs lignes (toutes les données à partir du niveau 3), ainsi que toutes les entrées qui sont générées par la fonction de consignation logDebug. Ce niveau s'utilise pour le débogage.


 

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.

Sortie de bannières et de messages

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.


TABLEAU 6-3 Affichage des bannières et des messages dans la sortie d'un audit

Variable de consignation

Préfixe de journal

Description

JASS_LOG_BANNER

Sortie de toutes les bannières

Ce paramètre contrôle l'affichage des messages de bannières. Ces messages sont généralement entourés de séparateurs contenant un signe égale (=) ou un tiret (-).

JASS_LOG_ERROR

[ERR]

Ce paramètre contrôle l'affichage des messages d'erreur. S'il est réglé sur 0, aucun message d'erreur n'est généré.

JASS_LOG_FAILURE

[FAIL]

Ce paramètre contrôle l'affichage des messages d'échec. S'il est réglé sur 0, aucun message d'échec n'est généré.

JASS_LOG_NOTICE

[NOTE]

Ce paramètre contrôle l'affichage des messages d'avis. S'il est réglé sur 0, aucun message d'avis n'est généré.

JASS_LOG_SUCCESS

[PASS]

Ce paramètre contrôle l'affichage des messages de réussite. S'il est réglé sur 0, aucun message de réussite n'est généré.

JASS_LOG_SUMMARY

[SUMMARY]

Ce paramètre contrôle l'affichage des messages de résumé. S'il est réglé sur 0, aucun message de résumé n'est généré.

JASS_LOG_WARNING

[WARN]

Ce paramètre contrôle l'affichage des messages d'avertissement. S'il est réglé sur 0, aucun message d'avertissement n'est généré.


 

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.


EXEMPLE DE CODE 6-4 Échantillon de sortie d'un rapport d'audit contenant uniquement les échecs
# JASS_LOG_FAILURE=1
# export JASS_LOG_FAILURE
# JASS_LOG_BANNER=0
# JASS_LOG_ERROR=0
# JASS_LOG_NOTICE=0
# JASS_LOG_SUCCESS=0
# JASS_LOG_SUMMARY=0
# JASS_LOG_WARNING=0
# export JASS_LOG_BANNER JASS_LOG_ERROR
# export JASS_LOG_NOTICE JASS_LOG_SUCCESS
# export JASS_LOG_WARNING
# bin/jass-execute -a abc.driver -V2
update-at-deny     [FAIL] User adm is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User zz999999 is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User gdm is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User lp is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User nobody4 is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User root is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User smmsp is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User sys is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User uucp is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] User webservd is not listed in /etc/cron.d/at.deny.
update-at-deny     [FAIL] Script Total: 10 Errors
update-inetd-conf  [FAIL] Service svc:/network/telnet:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/ftp:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/finger:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/login:rlogin was enabled.
update-inetd-conf  [FAIL] Service svc:/network/shell:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/login:eklogin was enabled.
update-inetd-conf  [FAIL] Service svc:/network/login:klogin was enabled.
update-inetd-conf  [FAIL] Service svc:/network/shell:kshell was enabled.
update-inetd-conf  [FAIL] Service svc:/application/font/stfsloader:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/security/ktkt_warn:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/rpc/smserver:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/rpc/rstat:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/rpc/rusers:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/nfs/rquota:default was enabled.
update-inetd-conf  [FAIL] Service svc:/network/rpc/gss:default was enabled.
update-inetd-conf  [FAIL] Service 100235 is enabled in /etc/inet/inetd.conf.
update-inetd-conf  [FAIL] Service 100083 is enabled in /etc/inet/inetd.conf.
update-inetd-conf  [FAIL] Service 100068 is enabled in /etc/inet/inetd.conf.
update-inetd-conf  [FAIL] Script Total: 18 Errors
abc.driver         [FAIL] Driver Total: 28 Errors
abc.driver         [FAIL] Grand Total: 28 Errors
#

 

Sortie de nom d'hôte, de nom de script et d'horodatage

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.


TABLEAU 6-4 Affichage du nom d'hôte, du nom de script et de l'horodatage

Nom de la variable

Description de la variable

JASS_DISPLAY_HOSTNAME

Lorsque ce paramètre est défini sur 1, le logiciel Solaris Security Toolkit ajoute à chaque entrée de journal le nom d'hôte du système. Cette information se base sur le paramètre JASS_HOSTNAME. Par défaut, ce paramètre est vide et le kit d'outils n'affiche pas cette information.

JASS_DISPLAY_SCRIPTNAME

Par défaut, ce paramètre est défini sur 1 et le logiciel Solaris Security Toolkit ajoute à chaque entrée de journal le nom d'hôte du script d'audit en cours d'exécution. Définissez ce paramètre sur une autre valeur pour que le kit d'outils n'affiche pas cette information.

JASS_DISPLAY_TIMESTAMP

Lorsque ce paramètre est défini sur 1, le logiciel Solaris Security Toolkit ajoute à chaque entrée de journal l'horodatage associé à l'audit. Cette information se base sur le paramètre JASS_TIMESTAMP. Par défaut, ce paramètre est vide et le logiciel n'affiche pas cette information.


 

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.


EXEMPLE DE CODE 6-5 Échantillon de sortie de journal d'audit
# JASS_DISPLAY_TIMESTAMP=1
# JASS_DISPLAY_SCRIPTNAME=0
# export JASS_DISPLAY_TIMESTAMP JASS_DISPLAY_SCRIPTNAME
# bin/jass-execute -a abc.driver -V2
20050716132908 [FAIL] User adm is not listed in /etc/cron.d/at.deny.
20050716132908 [PASS] User bin is listed in /etc/cron.d/at.deny.
20050716132908 [FAIL] User zz999999 is not listed in /etc/cron.d/at.deny.
...
...
...
20050716132908 [FAIL] Script Total: 18 Errors
20050716132908 [FAIL] Driver Total: 28 Errors
20050716132908 [FAIL] Grand Total: 28 Errors
20050716132908 [SUMMARY] Results Summary for AUDIT run of dan.driver
20050716132908 [SUMMARY] The run completed with a total of 2 scripts run.
20050716132908 [SUMMARY] There were  Failures in   2 Scripts
20050716132908 [SUMMARY] There were  Errors   in   0 Scripts
20050716132908 [SUMMARY] There were  Warnings in   0 Scripts
20050716132908 [SUMMARY] There was a Note     in   1 Script
20050716132908 [SUMMARY] Failure Scripts listed in: 
/var/opt/SUNWjass/run/20050716132908/jass-script-failures.txt
20050716132908 [SUMMARY] Notes Scripts listed in: 
/var/opt/SUNWjass/run/20050716132908/jass-script-notes.txt
#

 


Exécution d'un audit de sécurité

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.


procedure icon  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é.



caution icon

Attention - Si vous effectuez une évaluation de la sécurité sur un système déployé que vous n'avez pas encore sécurisé, sauvegardez d'abord l'ordinateur et redémarrez-le pour vérifier que sa configuration est connue et cohérente, et qu'elle fonctionne. Les erreurs ou les avertissements détectés lors du redémarrage préliminaire doivent être corrigés ou notés avant de passer à l'évaluation de la sécurité du système.



1. Choisissez le profil de sécurité (pilote de sécurisation) que vous voulez utiliser :

Par exemple, secure.driver.

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.


EXEMPLE DE CODE 6-6 Échantillon de sortie d'un audit
# ./jass-execute -a abc-secure.driver
[NOTE] Executing driver, abc-secure.driver
 
[...]
 
================================================================
abc-secure.driver: Audit script: enable-rfc1948.aud
================================================================
 
#---------------------------------------------------------------
# RFC 1948 Sequence Number Generation
# 
# Rationale for Verification Check:
# 
# L'objectif de ce script est de vérifier que le système
# est configuré et qu'il utilise RFC 1948 pour son algorithme de génération de numéros de séquence TCP
# (ID par connexion unique). Pour cela,
# le paramètre 'TCP_STRONG_ISS' doit être défini sur '2' dans le fichier
# the /etc/default/inetinit.
#
# Détermination de la conformité :
#
[...]
#---------------------------------------------------------------
 
[PASS] TCP_STRONG_ISS is set to '2' in /etc/default/inetinit.
[PASS] System is running with tcp_strong_iss=2.
 
# Score total de vulnérabilité de ce script audit
 
[PASS] Audit Check Total : 0 Error(s)
 
================================================================
 
# Score total de vulnérabilité de ce profil de pilote
 
[PASS] Driver Total : 0 Error(s)
 
================================================================
abc-secure.driver: Driver finished.
================================================================
 
# Score total global de vulnérabilité de cette exécution
 
[PASS] Grand Total : 0 Error(s)

 

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.