C H A P I T R E  2

Sécurisation de systèmes : application d'une méthodologie

Ce chapitre décrit une méthodologie pour la sécurisation de systèmes. Il propose une méthode à appliquer avant de sécuriser des systèmes à l'aide du logiciel Solaris Security Toolkit.

Ce chapitre traite des points suivants :


Planification et préparation

Une bonne planification est essentielle à la réussite de la sécurisation de systèmes à l'aide du logiciel Solaris Security Toolkit. La phase de planification construit un profil Solaris Security Toolkit pour le système, basé sur les stratégies et les normes de sécurité de l'entreprise, ainsi que sur les conditions de fonctionnement et d'application du système. Cette phase comprend les tâches suivantes :

Même si elles ne sont pas décrites dans cet ouvrage, il est bon de faire certaines considérations sur la compréhension des risques, la maîtrise de l'infrastructure et de ses besoins en matière de sécurité, l'imputabilité, le logging et l'audit de l'usage.

Prise en compte des risques et des avantages

Cette section présente certains facteurs qui doivent être pris en compte et parfaitement compris avant toute tentative de sécurisation d'un système. Evaluez soigneusement les risques et les avantages afin de déterminer quelles sont les actions les plus appropriées à votre entreprise.

Pour le durcissement de systèmes, vous devez prendre certaines précautions afin d'assurer le fonctionnement du système après l'implémentation du logiciel Solaris Security Toolkit. De plus, il est important d'optimiser la procédure pour limiter au minimum les temps d'arrêt.



Remarque - Lors de la sécurisation d'un système déployé, il est parfois plus rapide et efficace de reconstruire le système, de le durcir au moment de l'installation puis de recharger tout le logiciel nécessaire au fonctionnement.



1. Description des besoins des services et des applications sur le système.

Vous devez identifier les services et les applications exécutés sur un système avant d'exécuter le logiciel Solaris Security Toolkit. Toutes dépendances associées aux services et aux applications doivent être énumérées afin que la configuration du logiciel Solaris Security Toolkit puisse être ajustée. L'absence d'énumération pourrait causer la désactivation des services nécessaires ou empêcher leur démarrage. Alors que la plupart des modifications apportées par le logiciel Solaris Security Toolkit peuvent être annulées, le développement d'un profil correct avant l'installation limite les temps morts lors de l'implémentation du logiciel Solaris Security Toolkit.

2. Prise en compte du fait que le système doit être déconnecté et réinitialisé.

Pour que les modifications apportées par le logiciel Solaris Security Toolkit prennent effet, le système doit être réinitialisé. Selon l'importance vitale du système, les services qu'il fournit et la disponibilité d'une fenêtre de maintenance, l'implémentation du logiciel peut poser plus ou moins de problèmes à une entreprise. Pour prendre une décision, il faut d'abord évaluer attentivement le coût d'un arrêt de l'activité par rapport aux risques encourus si la sécurité n'est pas augmentée.

3. Il peut être nécessaire de réinitialiser plusieurs fois un système pour vérifier son fonctionnement.

Dans la mesure du possible, effectuez toutes les modifications sur des systèmes hors production avant d'implémenter les systèmes dans une configuration stratégique. Ceci n'est pas toujours possible ; par exemple, en l'absence de matériel ou de logiciel suffisant pour répliquer l'environnement cible. Des tests doivent être accomplis avant et après l'installation du logiciel Solaris Security Toolkit. Des dépendances non identifiées nécessitant un dépannage après le durcissement du système pourraient être présentes. Dans la plupart des cas, ces problèmes peuvent être résolus assez rapidement en utilisant les techniques décrites dans ce chapitre. En cas de problèmes de fonctionnement après l'installation du logiciel Solaris Security Toolkit, il peut être nécessaire de réinitialiser plusieurs fois la plate-forme, soit pour annuler les effets du logiciel Solaris Security Toolkit, soit pour ajouter d'autres modifications à la configuration de sécurité du système afin de supporter et d'activer les fonctionnalités manquantes.

4. La sécurisation d'une plate-forme ne se limite pas au durcissement et à la réduction.

Si vous envisagez la mise à niveau de la configuration de votre système pour améliorer sa sécurité, il est essentiel de comprendre que le durcissement et la réduction d'une plate-forme ne représente qu'une fraction des tâches nécessaires à la sécurisation d'un système, de services et de données. Ce document ne traite pas des mesures et contrôles additionnels ; il est toutefois conseillé de considérer des questions telles que la gestion des comptes, la gestion des privilèges, l'intégrité des systèmes de fichiers et des données, les contrôles d'accès basés sur les hôtes, la détection des intrusions, l'exploration et l'analyse de la vulnérabilité et la sécurité des applications.

5. Le système pourrait avoir déjà été exploité ou avoir des vulnérabilités exploitables.

La plate-forme en cours de durcissement pourrait déjà avoir fait l'objet d'une attaque. Le logiciel Solaris Security Toolkit a probablement été implémenté trop tard pour assurer une protection contre les vulnérabilités exploitables. Dans ce cas, réinstallez le système puis installez et utilisez le logiciel Solaris Security Toolkit pour le sécuriser.

Vérification de la stratégie, des normes et de la documentation en matière de sécurité

Le premier pas pour la sécurisation d'un système est la compréhension des principales stratégies de sécurité, des normes et des documents de référence adoptés par votre entreprise en matière de sécurité de plate-forme. Déterminez le profil de Solaris Security Toolkit à partir de ces documents, qui décrivent les besoins et les mesures à mettre en oeuvre pour tous les systèmes de votre entreprise. Si votre entreprise ne dispose pas de documentation, sa préparation augmentera votre capacité à personnaliser le logiciel Solaris Security Toolkit (SST).



Remarque - Lorsque vous recherchez ces documents, n'oubliez pas que vous pouvez trouver du matériel dans les exercices pratiques ou autre documentation.



Pour de plus amples informations sur les stratégies en matière de sécurité, reportez-vous à l'article Sun BluePrints OnLine « Developing a Security Policy ». Ce document vous permettra de mieux comprendre le rôle des stratégies de sécurité à l'échelle de l'entreprise.

Les deux exemples qui suivent illustrent comment les stratégies de sécurité peuvent avoir des conséquences directes sur la configuration du profil de Solaris Security Toolkit.

Exemple 1



Remarque - Les services Telnet et FTP peuvent être configurés de manière à supporter une authentification et un chiffrement plus puissant en utilisant des extensions telles que Kerberos. Ces services sont toutefois cités à titre d'exemple parce que leurs configurations par défaut ne supportent pas ces niveaux de sécurité supplémentaires.



Exemple 2

Stratégie - Tous les utilisateurs doivent obligatoirement changer leurs mots de passe tous les 30 jours.

Impact du profil - Le logiciel Solaris Security Toolkit peut être configuré pour permettre le vieillissement du mot de passe. Par défaut, le logiciel Solaris Security Toolkit accepte les mots de passe pendant une période maximale de 8 semaines (56 jours). Pour se conformer à la stratégie, il faut changer le profil du logiciel Solaris Security Toolkit. Reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.

Même si, par défaut, le logiciel Solaris Security Toolkit permet le vieillissement du mot de passe lorsqu'il est exécuté sur un système, cette modification n'affecte pas les utilisateurs existants. Pour permettre le vieillissement du mot de passe des utilisateurs existants, utilisez la commande passwd(1) sur chaque compte utilisateur.

Détermination des besoins de l'application et du service

Cette tâche permet d'assurer que les services restent fonctionnels après le durcissement du système. Cette tâche comprend les étapes suivantes :

Inventaire des applications et des services opérationnels

Inventaire des applications, services et fonctions opérationnelles ou de gestion. Cet inventaire est nécessaire pour déterminer quel logiciel est en cours d'utilisation sur un système. Les systèmes sont souvent dotés de logiciels non utilisés et de logiciels qui ne prennent pas en charge les fonctions de l'entreprise.

Les logiciels installés sur les systèmes doivent autant que possible être réduits au minimum. En effet, les logiciels non utilisés pour la prise en charge d'une fonction de l'entreprise ne doivent pas être installés. Les applications inutiles augmentent d'autant les failles du système et donc ses vulnérabilités exploitables. Par ailleurs, davantage de logiciels sur un système équivaut généralement à davantage de patchs à appliquer. Pour de plus amples informations sur la réduction du SE Solaris, reportez-vous à l'article Sun BluePrints OnLine « Minimizing the Solaris Operating Environment for Security ».

Lors de l'inventaire des logiciels, pensez à inclure les composants d'infrastructure, tels que les logiciels de gestion, de contrôle et de sauvegarde, en plus des applications résidant sur le système.

Détermination des besoins du service

Après avoir terminé un inventaire des applications et des services, déterminez si des composants quelconques ont des dépendances qui pourraient avoir une incidence sur le durcissement. De nombreuses applications tierce partie n'utilisent pas directement les services fournis par le SE Solaris. Vous trouverez, dans les sections qui suivent, des informations utiles sur ces applications.

Bibliothèques partagées

Il est important de comprendre quelles bibliothèques sont nécessaires pour la prise en charge d'une application. Ceci est surtout utile en cas de débogage, mais l'est également pour la préparation d'un système avant son durcissement. Si vous ne connaissez pas l'état d'un système, recueillez autant d'informations que possible de manière à bien comprendre certains faits, tels que les dépendances logicielles.

Pour déterminer quelles bibliothèques sont utilisées par une application, vous avez le choix entre trois méthodes, selon la version du SE Solaris installée :

Prenons un exemple : détermination des bibliothèques nécessaires au support du logiciel d'un serveur DNS.

Pour la collecte d'informations sur un objet système de fichiers, utilisez la commande /usr/bin/ldd.


EXEMPLE DE CODE 2-1 Collecte d'informations sur les objets système de fichiers
# ldd /usr/sbin/in.named
libresolv.so.2 => /usr/lib/libresolv.so.2
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 =>    /usr/lib/libnsl.so.1
libc.so.1 =>      /usr/lib/libc.so.1
libdl.so.1 =>    /usr/lib/libdl.so.1
libmp.so.2 =>    /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1

 

Pour la collecte d'informations depuis un processus en cours, utilisez la commande /usr/proc/bin/pldd (disponible sur les SE Solaris versions 8 et 9).


EXEMPLE DE CODE 2-2 Collecte d'informations depuis un processus en cours
# pldd 20307
20307:  /usr/sbin/in.named
/usr/lib/libresolv.so.2
/usr/lib/libsocket.so.1
/usr/lib/libnsl.so.1
/usr/lib/libc.so.1
/usr/lib/libdl.so.1
/usr/lib/libmp.so.2
/usr/platform/sun4u/lib/libc_psr.so.1
/usr/lib/dns/dnssafe.so.1
/usr/lib/dns/cylink.so.1

 

La commande pldd montre les bibliothèques partagées qui sont chargées de manière dynamique par l'application, en plus des bibliothèques par rapport auxquelles est reliée l'application. Cette information peut également être obtenue en utilisant la commande truss suivante.



Remarque - La sortie suivante a été raccourcie.




EXEMPLE DE CODE 2-3 Identification d'applications chargées de manière dynamique
# truss -f -topen,open64 /usr/sbin/in.named
20357:  open("/usr/lib/libresolv.so.2", O_RDONLY)       = 3
20357:  open("/usr/lib/libsocket.so.1", O_RDONLY)       = 3
20357:  open("/usr/lib/libnsl.so.1", O_RDONLY)          = 3
20357:  open("/usr/lib/libc.so.1", O_RDONLY)            = 3
20357:  open("/usr/lib/libdl.so.1", O_RDONLY)           = 3
20357:  open("/usr/lib/libmp.so.2", O_RDONLY)           = 3
20357:  open("/usr/lib/nss_files.so.1", O_RDONLY)       = 4
20357:  open("/usr/lib/nss_files.so.1", O_RDONLY)       = 4
20357:  open("/usr/lib/dns/dnssafe.so.1", O_RDONLY)     = 4
20357:  open("/usr/lib/dns/cylink.so.1", O_RDONLY)      = 4
20357:  open("/usr/lib/dns/sparcv9/cylink.so.1", O_RDONLY) = 4

 

Ce type de sortie contient l'identificateur de processus, l'appel système (dans ce cas open) et ses arguments, ainsi que la valeur renvoyée par l'appel système. En utilisant la valeur renvoyée, il est clair que l'appel système réussit à trouver et ouvrir la librairie partagée.

Après avoir pris connaissance des bibliothèques partagées, utilisez la commande suivante pour savoir à quels packages du SE Solaris elles appartiennent.


# grep `/usr/lib/dns/cylink.so.1' /var/sadm/install/contents
/usr/lib/dns/cylink.so.1 f none 0755 root bin 63532 24346 \
1018126408 SUNWcsl

 

La sortie de la commande indique que la bibliothèque partagée en question appartient au package SUNWcsl (Core, Shared Libs). Cette procédure est particulièrement utile lors de la réduction d'une plate-forme, car elle permet d'identifier les packages requis pour la prise en charge d'une application ou d'un service.

Fichiers de configuration

Les fichiers de configuration peuvent également être utilisés pour la collecte d'informations. Cette méthode a des conséquences plus directes sur la manière dont un système est durci du fait que les fichiers de configuration peuvent être renommés ou supprimés pour désactiver des services. Pour plus d'informations, reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual.

Pour savoir si un fichier de configuration est en cours d'utilisation, utilisez la commande truss.



Remarque - La sortie suivante a été raccourcie.




EXEMPLE DE CODE 2-4 Déterminer l'état d'utilisation d'un fichier de configuration
# truss -f -topen,open64 /usr/sbin/in.named 2>&1 | \grep -v "/usr/lib/.*.so.*"
20384:  open("/etc/resolv.conf", O_RDONLY)              = 3
20384:  open("/dev/conslog", O_WRONLY)                  = 3
20384:  open("/usr/share/lib/zoneinfo/US/Eastern", O_RDONLY) = 4
20384:  open("/var/run/syslog_door", O_RDONLY)          = 4
20384:  open("/etc/nsswitch.conf", O_RDONLY)            = 4
20384:  open("/etc/services", O_RDONLY)                 = 4
20384:  open("/etc/protocols", O_RDONLY)                = 4
20384:  open("/etc/named.conf", O_RDONLY)               = 4
20384:  open("/etc/services", O_RDONLY)                 = 5
20384:  open("named.local", O_RDONLY)                   = 5
20384:  open("db.192.168.1", O_RDONLY)                  = 5
20384:  open("db.internal.net", O_RDONLY)               = 5

 

Dans cet exemple, le service DNS utilise des fichiers de configuration, tels que/etc/named.conf. Comme dans l'exemple précédent, si la valeur renvoyée pour un service indique une erreur, il est probable qu'il y ait un problème. Une documentation attentive des résultats avant et après le durcissement peut contribuer à l'accélération de l'ensemble du processus de validation.

Structures des services

Cette catégorie comprend des structures ou des métaservices sur lesquels sont construites des applications plus grosses et plus complexes. Les structures types appartenant à cette catégorie sont les services d'attribution de noms (par exemple, NIS, NIS+ et LDAP), les services d'authentification (par exemple, Kerberos et LDAP) et des services tels que le portmapper utilisé par les RPC.

On ne sait pas toujours avec précision quand une application dépend de ces types de services. Lorsque des ajustements particuliers sont nécessaires pour configurer une application, par exemple lorsqu'il faut l'ajouter à un domaine Kerberos, on connaît parfaitement la dépendance. Dans certains cas, les dépendances des applications ne nécessitent aucune tâche supplémentaire ce qui fait que la dépendance actuelle peut ne pas être documentée par le vendeur.

Le RPC portmapper en est un exemple type. Par défaut, le logiciel Solaris Security Toolkit désactive le RPC portmapper. Cette opération peut donner lieu à des comportements inattendus dans d'autres services reposant sur ce service. D'après les expériences passées, l'abandon, l'interruption ou l'échec des services dépend de la qualité d'écriture du code de l'application pour gérer les exceptions. Pour savoir si une application utilise le RPC portmapper, utilisez la commande rpcinfo. Par exemple :


EXEMPLE DE CODE 2-5 Identification des applications utilisant le RPC
# rpcinfo -p
100000    3   tcp    111  rpcbind
100000    4   udp    111  rpcbind
100000    2   udp    111  rpcbind
100024    1   udp  32777  status
100024    1   tcp  32772  status
100133    1   udp  32777
100133    1   tcp  32772
100021    1   udp   4045  nlockmgr
100021    2   udp   4045  nlockmgr
100021    3   udp   4045  nlockmgr
100021    4   udp   4045  nlockmgr
100021    1   tcp   4045  nlockmgr

 

Les informations figurant dans la colonne du service proviennent du fichier /etc/rpc et/ou d'un service d'attribution de noms configuré, tel que LDAP.

Si ce fichier ne possède pas d'entrée pour un service, comme c'est souvent le cas pour les produits tiers, le champ du service peut être vide. L'identification des applications enregistrées par d'autres applications devient donc encore plus difficile.

Par exemple, prenons la commande rusers. Cette commande repose sur le service RPC portmapper. Si le RPC portmapper n'est pas en cours d'exécution, il semble que la commande rusers s'interrompt. Après un délai d'attente, le programme renvoie le message d'erreur suivant :


# rusers -a localhost
localhost: RPC: Rpcbind failure

 

Ce problème survient parce que le programme est dans l'impossibilité de communiquer avec le service. Toutefois, après le démarrage du service RPC portmapper depuis /etc/init.d/rpc, le programme renvoie immédiatement son résultat.

Comme autre exemple, prenons le cas où le service RPC portmapper est en cours d'exécution alors que le service rusers n'est pas configuré pour fonctionner. Dans ce cas, la réponse générée est complètement différente et relativement facile à valider.


EXEMPLE DE CODE 2-6 Validation du service rusers
# rusers -a localhost
localhost: RPC: Program not registered
# grep rusers /etc/rpc
rusersd         100002  rusers
# rpcinfo -p | grep rusers
<No output generated>

 

Vu que la commande rpcinfo ne possède pas de registre pour le service rusers, il est sage de supposer que le service n'est pas configuré pour être exécuté. Cette hypothèse est validée en regardant l'entrée du service dans le fichier /etc/inet/inetd.conf.


# grep rusers /etc/inet/inetd.conf
# rusersd/2-3   tli     rpc/datagram_v,circuit_v     wait root
/usr/lib/netsvc/rusers/rpc.rusersd     rpc.rusersd

 

La marque de commentaire (#) au début de la ligne du service indique que le service rusers est désactivé. Pour activer le service, éliminez le commentaire de la ligne et envoyez un signal SIGHUP au processus /usr/sbin/inetd, comme suit.


# pkill -HUP inetd

 

Remarque - La commande pkill est uniquement disponible sur les SE Solaris versions 7 à 9. Pour les autres versions, utilisez les commandes ps et kill pour, respectivement, rechercher et signaler le processus.



Pour déterminer si une application utilise RPC, il est également possible d'utiliser la commande ldd décrite ci-avant.


EXEMPLE DE CODE 2-7 Méthode alternative pour la détermination des applications qui utilisent RPC
# ldd /usr/lib/netsvc/rusers/rpc.rusersd
libnsl.so.1 =>   /usr/lib/libnsl.so.1
librpcsvc.so.1 =>        /usr/lib/librpcsvc.so.1
libc.so.1 =>     /usr/lib/libc.so.1
libdl.so.1 =>    /usr/lib/libdl.so.1
libmp.so.2 =>    /usr/lib/libmp.so.2
/usr/platform/SUNW,Ultra-250/lib/libc_psr.so.1

 

L'entrée pour librpcsvc.so.1 indique, avec le nom de fichier, que ce service repose sur le RPC portmapper.

En plus du RPC portmapper, les applications peuvent également reposer sur d'autres services OS courants, tels que FTP, SNMP ou NFS. Vous pouvez utiliser des techniques similaires pour déboguer ces services et déterminer s'ils sont effectivement nécessaires pour la prise en charge d'une fonction donnée de l'entreprise. L'une des méthodes consiste à utiliser la commande netstat comme suit.


# netstat -a | egrep "ESTABLISHED|TIME_WAIT"

 

Cette commande renvoie une liste de services qui sont en cours d'utilisation ou ont récemment été utilisés, par exemple :


TABLEAU 2-1 Liste des services récemment utilisés
localhost.32827      localhost.32828      49152      0 49152      0 ESTABLISHED
localhost.35044      localhost.32784      49152      0 49152      0 ESTABLISHED
localhost.32784      localhost.35044      49152      0 49152      0 ESTABLISHED
localhost.35047      localhost.35046      49152      0 49152      0 ESTABLISHED
localhost.35046      localhost.35047      49152      0 49152      0 ESTABLISHED
filefly.ssh 192.168.0.3.2969     17615      1 50320      0 ESTABLISHED

 

Dans cet exemple, de nombreux services sont utilisés, mais on ne sait pas quels ports appartiennent à quels services ou quelles applications. Pour le savoir, on peut inspecter les processus à l'aide de la commande pfiles (disponible sur les SE Solaris versions 8 et 9).


EXEMPLE DE CODE 2-8 Identification des ports appartenant aux services ou applications
# for pid in `ps -aeo pid | grep -v PID`; do
> pfiles ${pid} | egrep "^${pid}:|sockname:"
> done

 

Ces dépendances peuvent être déterminées plus efficacement en utilisant la commande lsof (pour obtenir la liste des fichiers ouverts). Cette commande permet de savoir quels processus utilisent quels fichiers et quels ports. Par exemple, pour savoir quels processus de l'exemple précédent utilisent le port 35047, lancez la commande suivante.


EXEMPLE DE CODE 2-9 Identification des processus utilisant des fichiers et des ports
# ./lsof -i | grep 35047
ttsession   600 root 9u  IPv4 0x3000b4d47e8     0t1  TCP
localhost:35047->localhost:35046 (ESTABLISHED)
dtexec     5614 root 9u  IPv4 0x3000b4d59e8     0t0  TCP
localhost:35046->localhost:35047 (ESTABLISHED)

 

La sortie delsof indique que le port 35047 est utilisé pour la communication entre les processus dtexec et ttsession.

L'utilisation du programme lsof peut vous permettre de déterminer plus rapidement les dépendances entre systèmes ou entre applications nécessitant l'emploi d'un système de fichiers ou d'un réseau. Presque tout ce qui est signalé dans cette section peut être capturé à l'aide d'options du programmelsof.

Vous pouvez télécharger le programme lsof depuis l'adresse :

ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/



Remarque - Il peut arriver que les méthodes décrites pour la détermination des dépendances ne trouvent pas les éléments qui sont rarement utilisés. En plus de l'utilisation de ces méthodes, consultez la documentation et la documentation du fournisseur.




Développement et implémentation d'un profil Solaris Security Toolkit

Une fois la phase de planification et de préparation terminée, développez et implémentez un profil de sécurité. Un profil de sécurité consiste en un pilote de durcissement comme, par exemple, nom-hardening.driver, et tous les pilotes, scripts et fichiers nécessaires pour l'implémentation des stratégies de sécurité spécifiques à votre site.

Personnalisez l'un des profils de sécurité fournis avec le logiciel Solaris Security Toolkit ou développez-en un nouveau. Les stratégies, les normes et les besoins en applications diffèrent, même légèrement, d'une entreprise à l'autre.

Pour personnaliser le logiciel Solaris Security Toolkit, ajustez ses actions à l'aide de scripts finish, de scripts audit, de variables d'environnement, de fonctions de structure et de modèles de fichiers.

Vous trouverez de plus amples informations dans les chapitres suivants :

Si nécessaire, consultez les chapitres relatifs aux scripts, aux fonctions de structure, aux variables d'environnement et aux fichiers du Solaris Security Toolkit 4.1 Reference Manual. Parmi les variables d'environnement, vous pouvez vouloir personnaliser JASS_FILES et JASS_SCRIPTS.

Pour l'application de normes communes à la majorité des plates-formes, tout en préservant des différentes spécifiques à chaque plate-forme, utilisez une technique connue comme profils de sécurité imbriqués ou hiérarchiques. Pour plus d'informations, reportez-vous au manuel le Solaris Security Toolkit 4.1 Reference Manual. Comparez le profil de sécurité résultant des stratégies, normes et besoins de votre entreprise pour éviter que des modifications ne soient apportées par inadvertance ou par erreur.


Installation du logiciel

La procédure d'installation du logiciel Solaris Security Toolkit est la même que le système soit déployé ou nouveau. Pour des instructions détaillées, consultez le Chapitre 3.

Pour les systèmes déployés, certains cas particuliers peuvent rendre l'installation plus simple et plus rapide. Ces cas ne sont pas centrés sur le processus de durcissement, mais sur les tâches qui précèdent et suivent l'installation.

Exécution des tâches de préinstallation

Avant le durcissement d'un système déployé, vous devez étudier et planifier deux tâches importantes--sauvegarde et vérification. Ces tâches facilitent la détermination de l'état du système déployé et la résolution des problèmes de configuration pouvant se poser avant le durcissement du système.

Sauvegarde des données

Cette tâche est centrée sur la planification prévisionnelle. En cas de problème, il est indispensable que la configuration et les données du système soient archivées sous une forme ou une autre. Vous devez sauvegarder le système, vous assurer que la copie de sauvegarde peut être lue et confirmer que son contenu peut être récupéré. Cette opération doit être accomplie avant toute modification significative de la configuration d'un système.

Vérification de la stabilité du système

La vérification est une tâche presque aussi importante que la sauvegarde. La vérification permet d'assurer la stabilité et le fonctionnement du système avant l'implémentation de modifications de configuration, telles que les modifications introduites par le processus de durcissement. Ce processus de vérification comporte une réinitialisation suivie de tests positifs des applications ou services. Bien qu'il soit préférable d'avoir un programme de test et d'acceptation bien défini, la documentation peut ne pas être toujours disponible. Dans ce cas, testez raisonnablement le système en fonction de son type d'utilisation. Cette tâche a pour objectif d'assurer que la configuration utilisée correspond bien à la configuration enregistrée.

Analysez tous les messages d'erreur ou d'avertissement qui s'affiche à l'initialisation du système ou au démarrage d'une application. Si vous n'arrivez pas à corriger les erreurs, consignez-les de manière à éviter qu'elle ne soient considérées comme des problèmes potentiels au cours du processus de durcissement. Lorsque vous examinez les fichiers journaux, n'oubliez pas d'inclure les journaux de système, service et application tels que :

Cette tâche est terminée quand vous redémarrez le système sans rencontrer de messages d'erreur ou d'avertissement ni d'erreurs ou d'anomalies inconnues (toutes les erreurs ou anomalies connues sont documentées). Le système doit redémarrer dans un état connu et stable. Au cours d'une vérification, si vous découvrez que les configurations en cours d'utilisation et stockées ne sont pas les mêmes, réévaluez les stratégies et processus de contrôle des changements de votre entreprise pour identifier le problème à l'origine de cette situation.

Exécution des tâches suivant l'installation

Les tâches suivant l'installation sont un prolongement des tâches préalables à l'installation. Leur objectif est d'assurer que le processus de durcissement n'a pas causé de nouvelles défaillances dans le système ou les applications. Cette tâche consiste avant tout à examiner les fichiers journaux du système et des applications. Les fichiers journaux créés après le durcissement et la réinitialisation doivent être similaires à ceux qui avaient été collectés avant le durcissement du système. Ils peuvent parfois contenir moins de messages parce que les services démarrés sont moins nombreux. Mais il est fondamental qu'il ne contiennent pas de nouveaux messages d'erreur ou d'avertissement.

Après avoir examiné les fichiers journaux, testez les fonctionnalités, parce que certaines applications pourraient rencontrer des problèmes sans consigner de messages dans le fichier journal. Consultez la section suivante pour des informations détaillées sur la vérification.


Vérification du fonctionnement des applications et des services

La dernière tâche de ce processus consiste à vérifier que les applications et services offerts par le système fonctionnent tous correctement. Cette tâche vérifie également que le profil de sécurité a été correctement implémenté en conformité avec les stratégies de l'entreprise en matière de sécurité. Effectuez cette tâche avec soin et immédiatement après la réinitialisation de la plate-forme durcie, afin d'assurer la détection des anomalies ou problèmes éventuels et leur correction immédiate. Cette procédure comporte deux tâches : vérification de l'installation du profil de sécurité et vérification du fonctionnement des applications et des services.

Vérification de l'installation du profil de sécurité

Pour vérifier que le logiciel Solaris Security Toolkit a installé correctement le profil de sécurité et sans erreurs, examinez le fichier journal de l'installation. Ce fichier est installé dans JASS_REPOSITORY/jass-install-log.txt.



Remarque - Examinez ce fichier journal pour comprendre ce que le logiciel Solaris Security Toolkit a fait au système. Pour chaque exécution sur le système, un nouveau fichier journal est enregistré dans un répertoire en fonction de l'heure de démarrage de l'exécution.



Après avoir vérifié que le profil a été installé, évaluez la configuration de sécurité du système. Effectuez un examen manuel ou utilisez un outil pour automatiser le processus.

Vérification du fonctionnement des applications et des services

Pour vérifier les applications et les services du processus, lancer un plan de test et d'acceptation. Il teste les différents composants d'un système ou d'une application et s'assure de leur disponibilité et de leur bon état de marche. En l'absence d'un tel plan, testez raisonnablement le système en vous basant sur la manière dont il est utilisé. L'objectif est de s'assurer que le durcissement n'a pas altéré le fonctionnement des applications ou services.

Si vous découvrez qu'une application ou un service ne fonctionne pas correctement après le durcissement du système, recherchez la cause du problème en examinant les fichiers journaux de cette application. Le plus souvent, vous pouvez utiliser la commande truss pour localiser le problème. Un fois le problème localisé, vous pouvez le cibler et remonter à la modification apportée par le logiciel Solaris Security Toolkit.


Maintenance de la sécurité du système

Une erreur commune à de nombreuse entreprises est de considérer la sécurité qu'au moment de l'installation, et d'y revenir rarement voire jamais. La maintenance de la sécurité est un processus permanent. La sécurité d'un système doit être vérifiée périodiquement.

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. Par exemple, les failles du systèmes deviennent connues. Les indications ci-après vous serviront de guide pour la maintenance de la sécurité.

Le logiciel Solaris Security Toolkit peut vous assister lors de l'application de patchs, parce qu'il supports les exécution répétées sur un système de sorte que vous pouvez sécuriser le système après l'application de patchs. Exécutez le logiciel après l'installation de chaque patch, en utilisant les pilotes appropriés, pour toujours assurer la cohérence de votre configuration avec vos stratégies en matière de sécurité. Effectuez également un examen manuel du système, parce que la version de Solaris Security Toolkit utilisée pourrait ne pas prendre en charge les nouvelles fonctionnalités ajoutées par les patchs installés.

Le logiciel Solaris Security Toolkit incorpore des profils de sécurité par défaut que vous pouvez utiliser comme point de départ.