Ignorer les liens de navigation | |
Quitter l'aperu | |
Guide d'administration système : Services de sécurité |
Partie I Présentation de la sécurité
1. Services de sécurité (présentation)
Partie II Sécurité du système, des fichiers et des périphériques
2. Gestion de la sécurité de la machine (présentation)
3. Contrôle de l'accès aux systèmes (tâches)
4. Contrôle de l'accès aux périphériques (tâches)
5. Utilisation de l'outil de génération de rapports d'audit de base (tâches)
6. Contrôle de l'accès aux fichiers (tâches)
7. Utilisation d'Automated Security Enhancement Tool (Tâches)
Partie III Rôles, profils de droits et privilèges
8. Utilisation des rôles et des privilèges (présentation)
9. Utilisation du contrôle d'accès basé sur les rôles (tâches)
10. Contrôle d'accès basé sur les rôles (référence)
Partie IV Services cryptographiques
13. Structure cryptographique Oracle Solaris (présentation)
14. Structure cryptographique Oracle Solaris (tâches)
15. Structure de gestion des clés Oracle Solaris
Partie V Services d'authentification et communication sécurisée
16. Utilisation des services d'authentification (tâches)
19. Utilisation d'Oracle Solaris Secure Shell (tâches)
20. Oracle Solaris Secure Shell (référence)
21. Introduction au service Kerberos
22. Planification du service Kerberos
23. Configuration du service Kerberos (tâches)
24. Messages d'erreur et dépannage de Kerberos
25. Administration des principaux et des stratégies Kerberos (tâches)
26. Utilisation des applications Kerberos (tâches)
27. Service Kerberos (référence)
Partie VII Audit Oracle Solaris
28. Audit Oracle Solaris (présentation)
29. Planification de l'audit Oracle Solaris
30. Gestion de l'audit Oracle Solaris (tâches)
31. Audit Oracle Solaris (référence)
Profils de droits d'accès pour l'administration de l'audit
Caractéristiques de l'audit des processus
Conventions relatives aux noms de fichiers d'audit binaires
Noms de fichiers d'audit binaires
Horodatages des fichiers d'audit binaires
Structure d'enregistrement d'audit
Le service d'audit utilise les fichiers suivants :
Le fichier /etc/system contient des commandes que le noyau lit lors de l'initialisation pour personnaliser les opérations du système. Les scripts shell bsmconv et bsmunconv utilisés pour activer et désactiver l'audit modifient le fichier /etc/system. Le script shell bsmconv ajoute la ligne suivante au fichier /etc/system :
set c2audit:audit_load=1
L'entrée set c2audit:audit_load=1 génère le chargement du module du noyau à auditer lorsque le système s'initialise. Le script shell bsmunconv désactive l'audit lors du redémarrage du système. Cette commande supprime la ligne c2audit du fichier /etc/system.
Le fichier /etc/syslog.conf fonctionne avec le plug-in audit_syslog.so pour stocker les enregistrements d'audit au format texte. Le fichier syslog.conf peut être configuré de manière à activer l'utilitaire syslog pour stocker les enregistrements d'audit. La section Configuration des journaux d'audit syslog présente un exemple.
Le fichier /etc/security/audit_class définit les classes d'audit. Les classes d'audit sont des groupes d'événements d'audit. Vous pouvez utiliser le nom de classe dans le fichier audit_control pour présélectionner les classes dont vous voulez auditer les événements. Les classes acceptent les préfixes pour sélectionner uniquement les événements ayant échoué ou uniquement ceux qui ont réussi. Pour plus d'informations, reportez-vous à la section Syntaxe de classe d'audit.
Le superutilisateur, ou un administrateur dans un rôle équivalent, peut modifier les définitions des classes d'audit. Cet administrateur peut définir de nouvelles classes d'audit, renommer des classes existantes ou modifier des classes existantes en modifiant le fichier audit_class dans un éditeur de texte. Pour plus d'informations, reportez-vous à la page de manuel audit_class(4).
Sur chaque système, le fichier /etc/security/audit_control contient des informations de configuration pour le démon auditd. Ce fichier permet à chaque système de monter un système de fichiers d'audit distant pour stocker les enregistrements d'audit.
Vous pouvez préciser cinq types d'informations dans le fichier audit_control. Chaque ligne d'informations commence par un mot-clé.
Le mot-clé flags commence l'entrée qui présélectionne les classes d'événements qui seront auditées pour l'ensemble des utilisateurs du système. Les classes d'audit qui sont spécifiées ici déterminent le masque de présélection d'audit à l'échelle du système. Les classes d'audit sont séparées par des virgules.
Le mot-clé naflags commence l'entrée qui présélectionne les classes d'événements qui seront auditées lorsqu'une action ne peut pas être attribuée à un utilisateur spécifique. Les classes d'audit sont séparées par des virgules. La classe d'événement na appartient à cette entrée. L'entrée naflags peut être utilisée pour la journalisation d'autres classes d'événement qui sont normalement attribuables mais ne peuvent pas être attribuées. Par exemple, si un programme qui se lance au démarrage lit un fichier, l'ajout de fr dans l'entrée naflags est susceptible de créer un enregistrement de l'événement.
Le mot-clé minfree a été abandonné. Utilisez l'attribut p_minfree sur le plug-in audit_binfile.so.
L'attribut p_minfree définit le niveau d'espace disponible minimum pour tous les systèmes de fichiers d'audit sous la forme d'un pourcentage. Ce pourcentage doit être égal ou supérieur à 0. La valeur par défaut est 20 %. Lorsqu'un système de fichiers d'audit est rempli à 80 % de sa capacité, les données d'audit sont stockées dans le répertoire d'audit disponible suivant. Pour plus d'informations, reportez-vous à la page de manuel audit_warn(1M).
Le mot-clé dir a été abandonné. Utilisez l'attribut p_dir sur le plug-in audit_binfile.so.
L'attribut p_dir répertorie les emplacements de répertoire. Chaque valeur de ligne définit un système de fichiers d'audit et un répertoire utilisé par le système pour stocker ses fichiers d'audit. Vous pouvez spécifier un ou plusieurs emplacements de répertoire. L'ordre des valeurs est important. Le démon auditd crée des fichiers d'audit dans les répertoires en suivant l'ordre spécifié. Le premier répertoire représente le répertoire d'audit principal du système. Le second répertoire représente le répertoire d'audit secondaire dans lequel le démon auditd crée les fichiers d'audit lorsque le premier répertoire est plein, et ainsi de suite. Pour plus d'informations, reportez-vous à la page de manuel audit(1M).
Le mot-clé plugin spécifie le chemin d'accès au plug-in pour les modules de plug-in audit_binfile.so et audit_syslog.so. Le module audit_binfile.so gère la création de fichiers d'audit binaires. Le module audit_syslog.so convertit en temps réel des enregistrements d'audit Oracle Solaris en texte. Les classes d'audit qui sont spécifiées dans l'attribut p_flags du plug-in audit_syslog.so doivent être un sous-ensemble des classes d'audit présélectionnées.
Pour plus d'informations sur le fichier audit_control, reportez-vous à la page de manuel audit_control(4). Pour plus d'informations sur les plug-ins, reportez-vous à la section Plug-ins d'audit et aux pages de manuel audit_binfile(5) et audit_syslog(5).
Exemple 31-2 Exemple de fichier audit_control
L'exemple ci-après représente un fichier audit_control pour le système de fichiers noddy. noddy utilise deux systèmes de fichiers d'audit sur le serveur d'audit blinken, et un troisième système de fichiers d'audit monté sur le deuxième serveur d'audit winken. Le troisième système de fichiers n'est utilisé que lorsque les systèmes de fichiers d'audit sur clignote sont pleins ou non disponibles. La valeur minfree de 20 % indique que le script d'avertissement est exécuté lorsque les systèmes de fichiers sont à 80 % de leur capacité. Les paramètres indiquent que les opérations de connexion et d'administration seront auditées. L'audit consistera à contrôler les réussites et les échecs de ces opérations. Les échecs de tous types, à l'exception des échecs de création d'un objet système de fichiers, doivent être vérifiés. Les événements non attribuables sont également audités. Le journal d'audit syslog enregistre moins d'événements d'audit. Ce journal récapitule les échecs de connexion et d'administration au format texte.
Dans la version Solaris10, les lignes dir et minfree ont été abandonnées. Dans l'exemple suivant, les lignes plugin ne contiennent pas de retour à la ligne.
flags:lo,am,-all,^-fc naflags:lo,nt plugin:name=audit_binfile.so; p_minfree=20; p_dir=/var/audit/blinken/files, /var/audit/blinken.1/files,/var/audit/winken plugin:name=audit_syslog.so; p_flags=-lo,-am
Le fichier /etc/security/audit_event contient les mappages événements d'audit-classes par défaut. Vous pouvez modifier ce fichier pour modifier ces mappages. Pour lire un mappage de classes modifié dans le noyau, vous devez redémarrer le système ou exécuter la commande auditconfig - conf. Pour plus d'informations, reportez-vous à la page de manuel audit_event(4).
Le script /etc/security/audit_startup configure automatiquement le service d'audit lorsque le système entre en mode multiutilisateur. Le démon auditd démarre lorsque le script a :
configuré les mappages événements d'audit-classes ;
défini les options de stratégie d'audit.
Pour plus d'informations, reportez-vous à la page de manuel audit_startup(1M).
La base de données /etc/security/audit_user modifie les classes présélectionnées à l'échelle du système pour un utilisateur individuel. Les classes que vous ajoutez à une entrée utilisateur dans la base de données audit_user modifient les paramètres dans le fichier audit_control de deux manières :
Les classes d'audit spécifiées sont toujours à auditer pour cet utilisateur.
Les classes d'audit spécifiées ne doivent jamais être auditées pour cet utilisateur.
Chaque entrée utilisateur dans la base de données audit_user contient trois champs :
username:always-audit-classes:never-audit-classes
Les champs d'audit sont traités dans l'ordre.
Le champ always-audit-classes active l'audit des classes dans ce champ. Utilisez ce champ pour modifier des paramètres applicables à l'ensemble du système. Par exemple, si vous saisissez all dans le champ always-audit-classes, cela active l'audit intégral d'un utilisateur.
Le champ never-audit-classes désactive l'audit des classes dans ce champ. Utilisez ce champ pour remplacer les paramètres système. Si vous saisissez all dans le champ never-audit-classes, cela désactive l'audit de cet utilisateur, y compris celui des classes d'audit spécifiées dans le fichier audit_control.
Supposons que vous souhaitez appliquer les paramètres d'audit du système à l'utilisateur tamiko, à l'exception des lectures réussies des objets système de fichiers. Remarquez la position du second deux-points (:) dans l'entrée audit_user :
tamiko:^+fr:no modify system defaults for fr
L'entrée précédente signifie "toujours auditer tout, à l'exception des lectures de fichier réussies."
Si vous souhaitez auditer tout pour l'utilisateur tamiko à l'exception des lectures réussies, utilisez l'entrée suivante :
tamiko:all,^+fr:no audit everything except fr
Supposons que vous voulez remplacer les valeurs par défaut du système pour les lectures de fichier réussies de l'utilisateur tamiko. L'entrée suivante signifie "toujours auditer tout, mais ne jamais auditer les lectures de fichier réussie."
tamiko:all:+fr override system defaults for fr
Remarque - Les événements qui ont échoué sont traités séparément de ceux qui ont réussi. Un processus peut générer plus d'enregistrements d'audit pour les événements ayant échoué que pour ceux ayant réussi.
Le script /etc/security/audit_warn notifie un alias de messagerie lorsque le démon auditd rencontre une condition inhabituelle lors de l'écriture d'enregistrements d'audit. Vous pouvez personnaliser ce script pour votre site afin d'être prévenu des conditions qui pourraient nécessiter une intervention manuelle. Ou bien, vous pouvez indiquer comment gérer ces conditions automatiquement. Pour toutes les conditions d'erreur, le script audit_warn écrit un message dans syslog avec la gravité de daemon.alert. Vous pouvez utiliser syslog.conf pour configurer l'affichage console des messages syslog. Le script audit_warn envoie également un message à l'alias de messagerie audit_warn. Cet alias est configuré en même temps que les paramètres d'audit.
Lorsque le démon auditd détecte les conditions suivantes, il appelle le scriptaudit_warn. Le script envoie un e-mail à l'alias audit_warn.
Un répertoire d'audit contient plus de données que le volume autorisé par la valeur minfree. La valeur minfree ou une limite dépassable est un pourcentage de l'espace disponible sur un système de fichiers d'audit.
Le script audit_warn est appelé avec la chaîne soft et le nom du répertoire dont l'espace disponible est inférieur à la valeur minimale. Le démon auditd passe automatiquement au répertoire approprié suivant. Le démon écrit les fichiers d'audit dans le nouveau répertoire jusqu'à ce que le répertoire atteigne sa limite minfree. Le démon auditd passe ensuite à chaque répertoire restant en suivant l'ordre indiqué dans le fichier audit_control. Le démon écrit les enregistrements d'audit jusqu'à ce que chaque répertoire atteigne sa limite minfree.
Tous les répertoires d'audit ont atteint le seuil minfree.
Le script audit_warn est appelé avec la chaîne allsoft. Un message est écrit sur la console. L'e-mail est également envoyé à l'alias audit_warn.
Lorsque tous les répertoires d'audit mentionnés dans le fichier audit_control ont atteint leur seuil minfree, le démon auditd revient au premier répertoire. Le démon écrit des enregistrements d'audit jusqu'à ce que le répertoire soit complètement rempli.
Un répertoire d'audit est complet et n'a plus d'espace disponible.
Le script audit_warn est appelé avec la chaîne hard et le nom du répertoire. Un message est écrit sur la console. L'e-mail est également envoyé à l'alias audit_warn.
Le démon auditd passe automatiquement au répertoire suivant contenant suffisamment d'espace disponible. Le démon auditd passe ensuite à chaque répertoire restant en suivant l'ordre indiqué dans le fichier audit_control. Le démon écrit les enregistrements d'audit jusqu'à ce que chaque répertoire soit plein.
Tous les répertoires d'audit sont pleins. Le script audit_warn est appelé avec la chaîne allhard comme un argument.
Par défaut, un message est écrit sur la console. L'e-mail est également envoyé à l'alias audit_warn. Les processus qui généraient des enregistrements d'audit continuent de s'exécuter, mais ces enregistrements d'audit sont comptés et ne sont pas générés. Pour connaître un moyen de gérer cette situation, reportez-vous à l'Exemple 30-16 et à la section Contrôle du dépassement de la piste d'audit.
Une erreur interne se produit. Les erreurs internes possibles sont les suivantes :
Un problème a été détecté au niveau de la syntaxe du fichier audit_control. Par défaut, un message est envoyé à la console. L'e-mail est également envoyé à l'alias audit_warn.
Si la stratégie d'audit perzone est définie, l'instance de zone non globale d'auditd appelle le script audit_warn de cette zone. Pour plus d'informations, reportez-vous à la page de manuel audit_warn(1M).
Le script /etc/security/bsmconv active le service d'audit. La commande bsmunconv désactive le service d'audit. Une fois le script bsmconv exécuté, vous devez configurer les répertoires et fichiers de configuration de l'audit. Lors du redémarrage, l'audit est activé.
Pour plus d'informations, reportez-vous à la page de manuel bsmconv(1M).