C H A P I T R E  1

Introduction

Ce chapitre décrit la logique et l'objectif du logiciel Solaris Security Toolkit. Il couvre les composants clés, les fonctionnalités, les avantages et les plates-formes prises en charge. Ce chapitre contient des directives pour le contrôle de version des modifications et des déploiements, et fournit des informations importantes sur la personnalisation du logiciel Solaris Security Toolkit.

Ce chapitre contient les sections suivantes :


Sécurisation de systèmes à l'aide du logiciel Solaris Security Toolkit

Le logiciel Solaris Security Toolkit, couramment appelé kit d'outils JASS (JumpStart Architecture and Security Scripts), propose un mécanisme automatisé, extensible et évolutif permettant de construire des systèmes d'exploitation Solaris et de maintenir ces derniers sécurisés. À l'aide du logiciel Solaris Security Toolkit, vous pouvez sécuriser vos systèmes et effectuer des audits de sécurité.

La liste suivante répertorie les termes de ce guide qu'il est important de maîtriser :



Remarque - Le terme audit désigne le processus automatisé qui permet au logiciel Solaris Security Toolkit de valider un niveau de sécurité par rapport à un profil de sécurité prédéfini. L'emploi de ce terme dans cet ouvrage ne garantit pas la complète sécurisation du système contrôlé après l'utilisation de l'option d'audit.



Il existe deux modes d'installation du logiciel Solaris Security Toolkit décrits brièvement dans la dernière partie de cette section :

Indépendamment du mode d'installation d'un système, vous pouvez vous servir du logiciel Solaris Security Toolkit pour sécuriser et minimiser les systèmes. Utilisez ensuite périodiquement le logiciel Solaris Security Toolkit pour vérifier que le profil de sécurité des systèmes sécurisés n'a pas été modifié par accident ou par malveillance.

Mode JumpStart

L'installation et la configuration du système doivent être automatisées autant que possible. L'idéal serait qu'elles soient automatisées à 100 %. Ces tâches comprennent l'installation et la configuration du système d'exploitation, la configuration du réseau, les comptes utilisateurs, les applications et la sécurisation. Le logiciel JumpStart est une technologie qui permet d'automatiser les installations du SE Solaris. Il fournit un mécanisme d'installation de systèmes sur un réseau sans intervention humaine ou presque. Le logiciel Solaris Security Toolkit propose une structure et des scripts permettant la mise en oeuvre et l'automatisation de la plupart des tâches associées à la sécurisation de systèmes SE Solaris dans les installations basées sur le logiciel JumpStart. Pour obtenir JumpStart Enterprise Toolkit (JET), qui facilite les installations basées sur JumpStart et inclut des modules prenant en charge la sécurisation au moyen du logiciel Solaris Security Toolkit, consultez le site de téléchargement de Sun à l'adresse suivante :

http://www.sun.com/download/

Pour de plus amples informations sur la technologie JumpStart, reportez-vous à l'ouvrage Sun BluePrintstrademark JumpStart Technology: Effective Use in the Solaris Operating Environment.

Mode autonome

Le logiciel Solaris Security Toolkit dispose d'un mode autonome. Ce mode donne accès à la même fonctionnalité de sécurisation que le mode JumpStart, mais sur des systèmes déployés. Dans les deux modes, les modifications de sécurité peuvent, et doivent être, personnalisées afin de remplir les conditions de sécurité requises par votre système.

Indépendamment du mode d'installation d'un système, vous pouvez utiliser le logiciel Solaris Security Toolkit pour sécuriser les systèmes. Utilisez ensuite périodiquement le logiciel Solaris Security Toolkit pour vérifier que la configuration des systèmes sécurisés n'a pas été modifiée par accident ou par malveillance.


Composants du logiciel

Cette section présente la structure des composants du logiciel Solaris Security Toolkit. Le logiciel Solaris Security Toolkit se compose d'une collection de fichiers et de répertoires. La FIGURE 1-1 illustre la structure du logiciel.


FIGURE 1-1 Structure des composants du logiciel

Diagramme illustrant la structure des composants logiciels.


Les fichiers programme ou de commande suivants se trouvent dans le répertoire /bin :

Répertoires

Les composants de l'architecture Solaris Security Toolkit sont organisés dans les répertoires suivants :

Chacun de ces répertoires est décrit dans cette section. Le cas échéant, chaque script, fichier de configuration ou sous-répertoire est mentionné dans la liste. Pour de plus amples informations, cette section renvoie également à d'autres chapitres.

La structure du répertoire Solaris Security Toolkit se base sur la structure illustrée dans l'ouvrage Sun BluePrints JumpStart Technology: Effective Use in the Solaris Operating Environment.

Répertoire Audit

Ce répertoire contient les scripts audit qui permettent d'évaluer la conformité du système par rapport à un profil de sécurité ou un ensemble de scripts audit défini. Les scripts de ce répertoire sont organisés en plusieurs catégories :

Pour une liste détaillée des scripts de chaque catégorie et une description de chaque script, reportez-vous au manuel Solaris Security Toolkit 4.2 Reference Manual.

Répertoire Documentation

Ce répertoire contient des fichiers texte destinés à l'utilisateur, tels que les fichiers README, EOL_NOTICE et INSTALL.

Répertoire man

Ce répertoire contient des sous-répertoires correspondant aux sections des pages man de commandes, de fonctions et de pilotes. Il inclut également le fichier windex, index des commandes fourni à titre gracieux.

Pour de plus amples informations sur les pages man, reportez-vous à celles-ci ou au manuel Solaris Security Toolkit 4.2 Man Page Guide.

Répertoire Drivers

Ce répertoire contient des fichiers d'informations de configuration indiquant les fichiers exécutés et installés quand vous utilisez le logiciel Solaris Security Toolkit. Il inclut des pilotes, des scripts et des fichiers de configuration.

Exemple de pilotes et de scripts présents dans le répertoire Drivers :

Tous les pilotes inclus avec le logiciel Solaris Security Toolkit possèdent trois fichiers :

Ces trois fichiers sont placés entre parenthèses dans la liste précédente, par exemple sunfire_15k_sc-{config|hardening|secure}.driver. Les noms de ces fichiers sont indiqués par souci de précision. Toutefois, pour exécuter un pilote, utilisez uniquement secure.driver ou le nom-secure.driver. Ce pilote appelle automatiquement les pilotes associés.

L'architecture de Solaris Security Toolkit comprend des informations de configuration pour que vous puissiez utiliser les scripts driver, finish et audit dans différents environnements, sans avoir à les modifier. Toutes les variables utilisées dans les scripts finish et audit sont conservées dans un ensemble de fichiers de configuration. Ces fichiers de configuration sont importés par les pilotes, afin que les scripts finish et audit puissent disposer de ces variables quand elles sont appelées par les pilotes.

Le logiciel Solaris Security Toolkit contient quatre fichiers principaux de configuration, qui se trouvent tous dans le répertoire Drivers :

Le fichier user.run est le fichier dans lequel vous écrivez les versions améliorées ou de remplacement des fonctions de Solaris Security Toolkit, qui, le cas échéant, sont automatiquement utilisées.



caution icon

Attention - Modifiez les définitions de variable dans le fichier de configuration user.init uniquement, jamais dans les fichiers de configuration driver.init et finish.init.



Les scripts finish appelés par les pilotes se trouvent dans le répertoire Finish. Les scripts audit appelés par les pilotes se trouvent dans le répertoire Audit. Les fichiers installés par les pilotes sont lus à partir du répertoire Files. Pour de plus amples informations sur les scripts finish, reportez-vous au chapitre 4 du manuel Solaris Security Toolkit 4.2 Reference Manual. Pour de plus amples informations sur les scripts audit, reportez-vous au chapitre 5 du manuel Solaris Security Toolkit 4.2 Reference Manual.

La FIGURE 1-2 représente un organigramme du flux de contrôle du pilote.


FIGURE 1-2 Flux de contrôle du pilote

Diagramme illustrant le flux de contrôle du pilote.


1. Lorsque JumpStart n'est pas utilisé, le pilote exécute la commande jass-execute. JumpStart appelle directement le pilote et non la commande jass-execute.

2. Le pilote risque de définir explicitement les variables.

3. Le pilote importe toutes les variables d'environnement des différents fichiers .init.

4. Il définit les variables d'environnement JASS_FILES et JASS_SCRIPTS. Ces définitions sont facultatives ; il est possible de définir un seul environnement, les deux ou aucun.

Pour de plus amples informations sur la définition des variables d'environnement JASS_FILES et JASS_SCRIPTS, reportez-vous au chapitre 7 du manuel Solaris Security Toolkit 4.2 Reference Manual.

5. Le pilote appelle driver.run pour l'exécution des tâches définies par les variables d'environnement JASS_FILE et JASS_SCRIPTS.

6. (Facultatif) Le pilote définit un comportement de pilote spécifique qui peut être utilisé pour ignorer les valeurs système par défaut de finish.init ouuser.init. Dans l'EXEMPLE DE CODE 1-1, le pilote définit explicitement la variable JASS_PASS_HISTORY sur 4.

L'EXEMPLE DE CODE 1-1 illustre le code de flux de contrôle du pilote.


EXEMPLE DE CODE 1-1 Code de flux de contrôle du pilote
DIR="`/bin/dirname $0`"
JASS_PASS_HISTORY="4"
export DIR
. ${DIR}/driver.init
 
JASS_FILES="
                         /etc/cron.d/cron.allow
                         /etc/default/ftpd
                         /etc/default/telnetd
"
 
JASS_SCRIPTS="
                         install-at-allow.fin
                         remove-unneeded-accounts.fin
"
. ${DIR}/driver.run

 

1. Cet exemple de code définit et exporte la variable d'environnement DIR de sorte que les pilotes reconnaissent le répertoire de départ.

2. Le pilote définit explicitement la variable JASS_PASS_HISTORY sur 4.

3. Il lit les différents fichiers .init (en commençant par le fichier driver.init).

4. La variable d'environnement JASS_FILES est définie comme contenant les fichiers copiés du répertoire JASS_HOME_DIR/Files sur le client.

5. La variable d'environnement JASS_SCRIPTS est alors définie avec les scripts finish exécutés par le logiciel Solaris Security Toolkit.

6. L'exécution de la sécurisation commence par l'appel du pilote driver.run. Le pilote driver.run copie les fichiers spécifiés parJASS_FILES et exécute les scripts spécifiés par JASS_SCRIPTS.

Répertoire Files

Ce répertoire est utilisé par la variable d'environnement JASS_FILES et le script driver.run pour stocker les fichiers copiés sur le client JumpStart.

Ce répertoire contient les fichiers suivants :

Répertoire Finish

Ce répertoire contient les scripts finish qui introduisent les modifications et les mises à jour du système lors de l'exécution. Les scripts de ce répertoire sont organisés en plusieurs catégories :

Pour une liste détaillée des scripts de chaque catégorie et une description de chaque script, reportez-vous au manuel Solaris Security Toolkit 4.2 Reference Manual.

Répertoire OS

Ce répertoire contient uniquement les images du SE Solaris. Ces images sont utilisées par le processus d'installation du logiciel JumpStart comme source du SE Solaris pour les installations client. Le script add_client accepte les versions du SE Solaris contenues dans ce répertoire comme arguments, à condition que les noms de répertoires respectent les conventions d'attribution de nom du SE Solaris Security Toolkit suivantes.

Pour de plus amples informations sur le chargement et la modification des images du SE Solaris, reportez-vous à l'ouvrage Sun BluePrints JumpStart Technology: Effective Use in the Solaris Operating Environment.

Les noms attribués lors de l'installation respectent les conventions indiquées ci-après.

SE Solaris

Utilisez la convention d'attribution de nom suivante pour le SE Solaris :

Solaris_version du SE_année (4 chiffres)_mois (2 chiffres) de la version du CD-ROM

Par exemple, le nom de répertoire du CD-ROM du SE Solaris 10, daté de mars 2005, est Solaris_10_2005-03. En séparant les mises à jour et les versions du SE Solaris, il est possible d'exercer un contrôle précis en vue des tests et des déploiements.

Plates-formes Solaris pour x86/x64

Le répertoire du SE Solaris pour les plates-formes x86/x64 doit avoir le nom suivant :

Solaris_version du SE_année (4 chiffres)_mois (2 chiffres) de la version du CD-ROM_ia

Par exemple, si la date de version du SE Solaris pour les plates-formes x86/x64 est mars 2005, le répertoire doit avoir le nom suivant : Solaris_10_2005-03_ia.

Répertoire Packages

Ce répertoire contient les packages qui peuvent être installés avec un script finish et vérifiés par un script audit. Par exemple, le package Open Secure Shell peut être stocké dans le répertoire Packages de sorte que le script finish approprié installe le logiciel, au besoin.

Plusieurs scripts finish et audit inclus dans le logiciel Solaris Security Toolkit effectuent l'installation du logiciel, des tâches de configuration de base et de vérification. Les scripts qui installent et vérifient le logiciel à partir du répertoire Packages comprennent les éléments suivants :

Répertoire Patches

Ce répertoire doit être utilisé pour le stockage de clusters de patchs recommandés et de sécurité pour le SE Solaris. Les patchs requis doivent être téléchargés et extraits dans ce répertoire.

Le stockage et l'extraction des patchs dans ce répertoire optimise l'installation. Lorsque les patchs ont été extraits dans ce répertoire, le script d'installation des patchs du logiciel Solaris Security Toolkit automatise l'installation. Ainsi, vous n'avez pas à extraire manuellement les clusters de patchs chaque fois que vous installez un système.

Créez des sous-répertoires pour chaque version du SE Solaris utilisée. Par exemple, le répertoire Patches peut contenir les répertoires 9_Recommended et 10_Recommended.

Le logiciel Solaris Security Toolkit prend en charge les clusters de patchs du SE Solaris pour les plates-formes x86/x64. La convention d'attribution de nom pour ces clusters de patchs est la même que celle du service SunSolve OnLineSM.

Le format est <version>_x86_Recommended. Le cluster de patchs du SE Solaris 10 pour les plates-formes x86/x64 se trouve dans un répertoire intitulé 10_x86_Recommended.

Répertoire Profiles

Ce répertoire contient tous les profils JumpStart. Ces profils renferment des informations de configuration utilisées par le logiciel JumpStart afin de déterminer les clusters du SE Solaris nécessaires à l'installation (installation de base, d'utilisateur final, de développeur ou de distribution complète, par exemple), à l'organisation des disques et au type d'installation (autonome, par exemple).

Les profils JumpStart sont répertoriés et utilisés dans le fichier rules pour définir la création de systèmes spécifiques ou de groupes de systèmes.

Répertoire Sysidcfg

Le répertoire Sysidcfg, similaire au répertoire Profiles, contient des fichiers utilisés uniquement lors d'installations en mode JumpStart. Ces fichiers automatisent les installations du SE Solaris en fournissant les informations d'installation requises. Les informations spécifiques au SE Solaris sont stockées dans une arborescence de répertoires distincte.

Chaque version du SE Solaris possède son propre répertoire. Le répertoire contenant chaque version est intitulé Solaris_version du SE. Le logiciel Solaris Security Toolkit contient des fichiers échantillon sysidcfg pour les versions 2.5.1 à 10 du SE Solaris.

Les fichiers échantillon sysidcfg peuvent être étendus à d'autres types de fichiers, réseau ou hôte par exemple. Le logiciel Solaris Security Toolkit prend en charge les fichiers arbitraires sysidcfg.

Pour de plus amples informations sur les fichiers sysidcfg, reportez-vous à l'ouvrage Sun BluePrints JumpStart Technology: Effective Use in the Solaris Operating Environment.

Référentiel de données

Bien que n'appartenant pas à la structure de répertoires JASS_HOME_DIR, le référentiel de données, ou JASS_REPOSITORY, prend en charge les annulations de Solaris Security Toolkit, enregistre les données relatives à chaque exécution et les données du journal d'exécution, et maintient un fichier manifeste des fichiers modifiés par le logiciel. Ce répertoire se trouve à l'emplacement suivant : /var/opt/SUNWjass/runs/horodatage.

Maintien du contrôle de version

Il est essentiel de maintenir le contrôle de version de tous les fichiers et scripts utilisés par le logiciel Solaris Security Toolkit pour deux raisons.

1. L'un des objectifs de cet environnement est d'offrir la possibilité de recréer une installation du système. Cet objectif serait impossible sans un instantané de toutes les versions de fichier utilisées pendant une installation.

2. Étant donné que ces scripts remplissent des fonctions de sécurité, et constituent des processus vitaux pour de nombreuses organisations, vous devez faire preuve de la plus grande prudence afin que seules les modifications nécessaires et testées soient mises en oeuvre.

Un package de contrôle de version Source Code Control System (SCCS) est inclus dans le package du SE Solaris SUNWsprot. Vous pouvez utiliser un autre logiciel de contrôle de version disponible en freeware ou en vente dans le commerce pour gérer les informations de version. Quel que soit le produit de contrôle de version employé, établissez une procédure de gestion des mises à jour et capturez les informations de version lors de recréations ultérieures.

Utilisez une solution de gestion d'intégrité en plus du contrôle de version pour déterminer si le contenu des fichiers a été modifié. Bien que les utilisateurs privilégiés d'un système aient la possibilité de contourner le système de contrôle de version, ils ne peuvent pas facilement éviter le système de gestion de l'intégrité, qui maintient sa base de données d'intégrité sur un système distant. Les solutions de gestion de l'intégrité fonctionnent mieux si elles sont centralisées, car les bases de données locales pourraient être modifiées par malveillance.


Configuration et personnalisation du logiciel Solaris Security Toolkit

Le logiciel Solaris Security Toolkit contient des valeurs par défaut pour les scripts, les fonctions de structure et les variables qui mettent en oeuvre toutes les directives de sécurité de l'ouvrage Sun BluePrints intituléEnterprise Security: Solaris Operating Environment Security Journal, Solaris Operating Environment Versions 2.5.1, 2.6, 7, and 8, et des articles Sun BluePrints en ligne concernant la sécurité. Ces paramètres ne conviennent pas à tous les systèmes ; vous devez donc personnaliser le logiciel Solaris Security Toolkit de sorte qu'il remplisse les conditions de sécurité requises de vos systèmes.

L'une des principales caractéristiques du logiciel Solaris Security Toolkit est que vous pouvez facilement le personnaliser en fonction de votre environnement, de vos systèmes et de vos besoins en sécurité. Pour personnaliser le logiciel Solaris Security Toolkit, ajustez ses actions à l'aide de pilotes, de scripts finish, de scripts audit, de fonctions de structure, de variables d'environnement et de modèles de fichiers.

La plupart des utilisateurs n'ont pas besoin de modifier le code de Solaris Security Toolkit. S'il s'avère absolument nécessaire de modifier le code pour utiliser le logiciel Solaris Security Toolkit dans votre environnement, copiez ce code vers un nom de fonction unique dans user.run, afin de pouvoir ensuite retrouver facilement les modifications (voir Directives).

Vous trouverez tout au long de ce document des directives et des instructions pour la personnalisation du logiciel Security Toolkit. Pour des informations utiles sur la personnalisation des pilotes, reportez-vous au manuel Solaris Security Toolkit 4.2 Reference Manual. La personnalisation suppose la modification et la création de fichiers ou de variables.

Ce guide fournit des exemples de personnalisation du logiciel Solaris Security Toolkit. Ces exemples ne sont que quelques illustrations de personnalisation du logiciel Solaris Security Toolkit ; les possibilités de personnalisation sont très nombreuses.

Les sections suivantes contiennent des informations que vous devez impérativement connaître avant de tenter toute personnalisation du logiciel Solaris Security Toolkit. Ces informations se basent sur l'expérience acquise après de nombreux déploiements et vous éviteront nombre d'embûches et de pièges.

Stratégies et conditions requises

La personnalisation et le déploiement du logiciel Solaris Security Toolkit nécessitent une planification adéquate pour que le résultat soit conforme aux attentes de votre organisation et que la configuration de la plate-forme soit correcte.

En phase de planification, veillez à recueillir le maximum de données, y compris sur les stratégies et les normes de sécurité, sur les réglementations et directives du secteur, ainsi que sur les pratiques préférées des fournisseurs.

Outre ces informations, il est essentiel de prendre en compte les conditions de fonctionnement et d'application requises afin de garantir que la configuration résultante n'a aucune conséquence négative sur la capacité de la plate-forme à remplir les fonctions prévues.

Directives

Pour la personnalisation du logiciel Solaris Security Toolkit, respectez les directives suivantes. La compréhension et le respect de ces directives simplifiera le déploiement tout en le rendant plus efficace.

Pour personnaliser un fichier, vous devez d'abord en faire une copie, puis apporter les modifications dans la copie en laissant ainsi l'original intact. Il n'existe qu'une seule exception à cette instruction :

   

Remarque - N'oubliez pas que si vous supprimez SUNWjass à l'aide de la commandepkgrm, les fichiers user.init et user.run, s'ils ont été créés, ne sont pas supprimés. Ceci se produit également pour tous les fichiers client qui sont ajoutés à la structure de répertoires Solaris Security Toolkit et qui ne sont pas inclus dans la distribution logicielle originale.





Remarque - Le logiciel Solaris Security Toolkit 4.2 propose une nouvelle amélioration de la commande pkgrm. La présente version de la commande pkgrm vérifie en premier lieu l'intégrité de tous les fichiers inclus dans la distribution. Si certains fichiers sont différents, la commande pkgrm s'arrête et affiche un message d'erreur destiné à l'administrateur système pour que celui-ci place le fichier correct ou supprime le fichier modifié.