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)
Audit Oracle Solaris (liste des tâches)
Configuration des fichiers d'audit (liste des tâches)
Configuration des fichiers d'audit (tâches)
Modification du fichier audit_control
Configuration des journaux d'audit syslog
Modification des caractéristiques d'audit d'un utilisateur
Modification de l'appartenance à une classe d'un événement d'audit
Configuration et activation du service d'audit (liste des tâches)
Configuration et activation du service d'audit (tâches)
Création des partitions pour les fichiers d'audit
Configuration de l'alias de messagerie audit_warn
Configuration de la stratégie d'audit
Désactivation du service d'audit
Mise à jour du service d'audit
Configuration du service d'audit dans les zones (tâches)
Configuration identique de toutes les zones pour l'audit
Configuration de l'audit par zone
Gestion des enregistrements d'audit (liste des tâches)
Gestion des enregistrements d'audit
Affichage des formats d'enregistrement d'audit
Fusion des fichiers d'audit de la piste d'audit
Sélection des événements d'audit de la piste d'audit
Affichage du contenu des fichiers d'audit binaires
Nettoyage d'un fichier d'audit not_terminated
Contrôle du dépassement de la piste d'audit
Dépannage de l'audit Oracle Solaris (tâches)
Dépannage de l'audit Oracle Solaris (liste des tâches)
Vérification de l'exécution de l'audit Oracle Solaris
Atténuation du volume des enregistrements d'audit produits
Audit de toutes les commandes par les utilisateurs
Recherche des enregistrements d'audit concernant des modifications de fichiers spécifiques
Modification d'un masque de présélection utilisateur
Suppression de certains événements de la liste d'audit
Limitation de la taille des fichiers d'audit binaires
Audit des connexions à partir d'autres systèmes d'exploitation
La liste des tâches suivante présente les procédures de dépannage de l'audit Oracle Solaris.
|
Si vous pensez que l'audit a été activé, mais constatez qu'aucun enregistrement d'audit n'apparaît dans votre répertoire d'audit principal, essayez d'effectuer l'une des opérations suivantes.
Avant de commencer
Vous avez correctement configuré la base de données hosts dans votre service de nommage et elle fonctionne. Pour déboguer des problèmes de service de nommage, reportez-vous aux sections suivantes :
Page de manuel nsswitch.conf(4)
Guide d’administration système : Services d’annuaire et de nommage (DNS, NIS et LDAP)
System Administration Guide: Naming and Directory Services (NIS+)
# modinfo | grep c2audit
Aucune liste n'indique que l'audit n'est pas en cours d'exécution. La liste suivante indique que l'audit est en cours d'exécution :
40 132ce90 14230 186 1 c2audit (C2 system call)
Vérifiez l'état du service auditd. La liste suivante indique que l'audit n'est pas en cours d'exécution :
# svcs -x auditd svc:/system/auditd:default (Solaris audit daemon) State: disabled since Fri Aug 14 19:02:35 2009 Reason: Disabled by an administrator. See: http://sun.com/msg/SMF-8000-05 See: auditd(1M) See: audit(1M) Impact: This service is not running.
La liste suivante indique que le service d'audit est en cours d'exécution :
# svcs auditd STATE STIME FMRI online 10:10:10 svc:/system/auditd:default
La liste suivante indique que l'audit n'est pas en cours d'exécution :
# auditconfig -getcond auditconfig: auditon(2) failed. auditconfig: error = Operation not supported(48)
La liste suivante indique que l'audit est en cours d'exécution :
# auditconfig -getcond audit condition = auditing
Si le service d'audit n'est pas activé, activez-le. Pour connaître la procédure, reportez-vous à la section Activation du service d'audit .
# audit -v /etc/security/audit_control audit: audit_control must have either a valid "dir:" entry or a valid "plugin:" entry with "p_dir:" specified.
Corrigez les erreurs. Le message syntaxe ok indique que le fichier est syntaxiquement correct.
# grep flags /etc/security/audit_control flags:lo naflags:na,lp
Fournissez des valeurs valides si le fichier audit_control possède des valeurs non valides. Dans l'exemple précédent, lp est une classe non valide.
# tail audit_user ... # User Level Audit User File # # File Format # # username:always:never # root:lo:no admin:lp:no
Fournissez des valeurs valides si le fichier audit_user possède des valeurs non valides. Dans l'exemple précédent, lp est une classe non valide.
Par exemple, le fichier audit_control suivant contient une classe non fournie par le logiciel Oracle Solaris :
# grep flags /etc/security/audit_control flags:lo,pf naflags:na,lo
Pour obtenir une description de la création de la classe pf, reportez-vous à la section Ajout d'une classe d'audit .
Le masque de classe d'audit doit être unique.
# grep pf /etc/security/audit_class 0x10000000:pf:profile command
Si la classe n'est pas définie, définissez-la. Dans le cas contraire, supprimez la classe des fichiers audit_control et audit_user.
# grep pf /etc/security/audit_event 6180:AUE_prof_cmd:profile command:ua,as,pf
Si des événements ne sont pas affectés à la classe, affectez-y les événements appropriés.
# audit -s
Pour connaître la procédure, reportez-vous à la section Activation du service d'audit .
Une fois que vous avez déterminé les événements à auditer sur votre site, utilisez les suggestions suivantes pour créer des fichiers d'audit faciles à gérer.
Évitez en particulier d'ajouter des événements et des jetons d'audit à la piste d'audit. Les stratégies suivantes ont une incidence sur la taille de la piste d'audit.
Stratégie arge : ajoute des variables d'environnement aux événements d'audit exec.
Stratégie argv : ajoute des paramètres de commande aux événements d'audit exec.
Stratégie public : si des événements de fichier sont en cours d'audit, ajoute un événement à la piste d'audit chaque fois qu'un événement auditable se produit dans un fichier public. Les classes de fichier comprennent fa, fc, fd, fm, fr, fw et cl. Pour la définition d'un fichier public, reportez-vous à la section Terminologie et concept de l'audit.
Stratégie path : ajoute un jeton path aux événements d'audit qui comprennent un jeton path facultatif.
Stratégie group : ajoute un jeton group aux événements d'audit qui comprennent un jeton newgroups facultatif.
Stratégie seq : ajoute un jeton sequence à chaque événement d'audit.
Stratégie trail : ajoute un jeton trailer à chaque événement d'audit.
Stratégie windata_down : sur un système configuré avec Trusted Extensions, ajoute les événements lorsque les informations dans une fenêtre étiquetée sont réduites.
Stratégie windata_up : sur un système configuré avec Trusted Extensions, ajoute les événements lorsque les informations dans une fenêtre étiquetée sont détaillées.
Stratégie zonename : ajoute le nom de zone à chaque événement d'audit. Si la zone globale est la seule zone configurée, ajoute zone, global à chaque événement d'audit.
L'enregistrement d'audit suivant montre l'utilisation de l'instruction de la commande ls. La classe ex est auditée et la stratégie par défaut est en cours d'utilisation :
header,375,2,execve(2),,mach1,2009-08-06 11:19:57.388 -07:00 path,/usr/bin/ls subject,jdoe,root,root,root,root,1401,737,0 0 mach1 return,success,0
Ci-dessous, le même enregistrement lorsque toutes les stratégies sont activées :
header,375,2,execve(2),,mach1,2009-08-06 11:19:57.388 -07:00 path,/usr/bin/ls attribute,100555,root,bin,136,432,0 exec_args,1,ls exec_env,9,HOME=/,HZ=,LANG=C,LOGNAME=root,MAIL=/var/mail/root,PATH=/u sr/sbin:/usr/bin,SHELL=/sbin/sh,TERM=xterm,TZ=US/Pacific path,/lib/ld.so.1 attribute,100755,root,bin,136,4289,0 subject,jdoe,root,root,root,root,1401,737,0 0 mach1 group,root,other,bin,sys,adm,uucp,mail,tty,lp,nuucp,daemon return,success,0 zone,global sequence,313540 trailer,375
Cette stratégie fonctionne uniquement si vous n'êtes pas obligé de conserver des enregistrements binaires des événements d'audit que vous envoyez aux journaux syslog. En utilisant la commande auditreduce, vous pouvez éliminer les fichiers binaires de ces enregistrements, et, par conséquent, réduire la taille des fichiers binaires.
Diminuez l'audit pour l'ensemble des utilisateurs en réduisant le nombre de classes d'audit dans le fichier audit_control. Dans le fichier audit_user, ajoutez des classes d'audit pour des utilisateurs et des rôles spécifiques.
Vous pouvez créer des classes d'audit sur votre site. Dans ces classes, placez tous les événements d'audit que vous avez besoin de surveiller. Pour connaître cette procédure, reportez-vous à la section Ajout d'une classe d'audit .
Remarque - Si vous modifiez des affectations de classes d'audit existantes, vos modifications risquent d'être perdues lors de la mise à niveau vers une version plus récente du SE Oracle Solaris. Lisez attentivement les journaux d'installation.
Dans le cadre de leur stratégie de sécurité, certains sites nécessitent des enregistrements d'audit pour toutes les commandes en cours d'exécution par l'utilisateur root ou par des rôles d'administration. Certains sites nécessitent également des enregistrements d'audit pour toutes les commandes exécutées par les utilisateurs.
La classe ex audite tous les appels des fonctions exec() et execve(). La classe lo audite les connexions, déconnexions et blocages d'écran. La sortie suivante répertorie tous les événements des classes ex et lo.
7:AUE_EXEC:exec(2):ps,ex 23:AUE_EXECVE:execve(2):ps,ex ... 6152:AUE_login:login - local:lo 6153:AUE_logout:logout:lo 6154:AUE_telnet:login - telnet:lo 6155:AUE_rlogin:login - rlogin:lo 6158:AUE_rshd:rsh access:lo 6159:AUE_su:su:lo 6162:AUE_rexecd:rexecd:lo 6163:AUE_passwd:passwd:lo 6164:AUE_rexd:rexd:lo 6165:AUE_ftpd:ftp access:lo 6171:AUE_ftpd_logout:ftp logout:lo 6172:AUE_ssh:login - ssh:lo 6173:AUE_role_login:role login:lo 6212:AUE_newgrp_login:newgrp login:lo 6213:AUE_admin_authenticate:admin login:lo 6221:AUE_screenlock:screenlock - lock:lo 6222:AUE_screenunlock:screenlock - unlock:lo 6227:AUE_zlogin:login - zlogin:lo
Dans l'exemple suivant, le site a créé trois rôles, sysadmin, auditadm et netadm. Ces rôles et le compte root sont audités pour les classes exec et lo :
## audit_user file root:lo,ex:no sysadm:lo,ex:no auditadm:lo,ex:no netadm:lo,ex:no
## audit_control file ... naflags:lo ...
## audit_control file flags:lo,ex naflags:lo ...
La sortie se présente de la manière suivante :
header,375,2,execve(2),,mach1,2009-08-06 11:19:57.388 -07:00 path,/usr/bin/ls subject,jdoe,root,root,root,root,1401,737,0 0 mach1 return,success,0
## audit_startup script ... auditconfig -setpolicy +argv ...
Le jeton exec_args enregistre les arguments de commande :
header,375,2,execve(2),,mach1,2009-08-06 11:19:57.388 -07:00 path,/usr/bin/ls exec_args,1,ls subject,jdoe,root,root,root,root,1401,737,0 0 mach1 return,success,0
## audit_startup script ... auditconfig -setpolicy +arge ...
Le jeton exec_env enregistre l'environnement de commande :
header,375,2,execve(2),,mach1,2009-08-06 11:19:57.388 -07:00 path,/usr/bin/ls exec_env,9,HOME=/,HZ=,LANG=C,LOGNAME=root,MAIL=/var/mail/root, PATH=/usr/sbin:/usr/bin,SHELL=/sbin/sh,TERM=xterm,TZ=US/Pacific subject,jdoe,root,root,root,root,1401,737,0 0 mach1 return,success,0
## audit_startup script ... auditconfig -setpolicy +argv auditconfig -setpolicy +arge ...
La sortie se présente de la manière suivante :
header,375,2,execve(2),,mach1,2009-08-06 11:19:57.388 -07:00 path,/usr/bin/ls exec_args,1,ls exec_env,9,HOME=/,HZ=,LANG=C,LOGNAME=root,MAIL=/var/mail/root, PATH=/usr/sbin:/usr/bin,SHELL=/sbin/sh,TERM=xterm,TZ=US/Pacific subject,jdoe,root,root,root,root,1401,737,0 0 mach1 return,success,0
Si vous avez l'intention de consigner les écritures d'un nombre limité de fichiers, par exemple, /etc/passwd et les fichiers du répertoire /etc/default, utilisez la commande auditreduce pour localiser les fichiers.
L'ajout de la classe au fichier audit_user génère moins d'enregistrements que si vous ajoutez la classe au fichier audit_control.
## audit_user file root:fw:no sysadm:fw:no auditadm:fw:no netadm:fw:no
## audit_control file flags:lo,fw ...
# /usr/sbin/auditreduce -o file=/etc/passwd,/etc/default -O filechg
La commande auditreduce effectue la recherche dans la piste d'audit pour toutes les instances de l'argument file. Cette commande crée un fichier binaire avec le suffixe filechg qui contient tous les enregistrements incluant le chemin d'accès aux fichiers concernés. Reportez-vous à la page de manuel auditreduce(1M) pour plus d'informations sur la syntaxe de l'option -o file=chemin.
# /usr/sbin/praudit *filechg
Si vous modifiez le fichier audit_control ou audit_user, le masque de présélection des utilisateurs déjà connectés ne change pas. Vous devez forcer la modification du masque de présélection.
Avant de commencer
Vous avez activé l'audit, les utilisateurs se sont connectés, puis vous avez modifié la valeur flags ou naflags du fichier audit_control. Vous voulez activer l'audit des classes d'audit que vous venez de sélectionner pour les utilisateurs déjà connectés.
Deux options s'offrent à vous : Vous pouvez terminer la session existante ou utiliser la commande auditconfig pour mettre à jour les masques de présélection de ces utilisateurs.
Les utilisateurs peuvent se connecter et se reconnecter, ou l'administrateur peut mettre fin manuellement (kill) aux sessions actives. La nouvelle session va hériter du nouveau masque présélection. Toutefois, l'arrêt des sessions utilisateurs n'est pas très pratique.
Supposons que l'attribut flags du fichier audit_control a changé de lo en lo,ex.
Tout d'abord, recherchez tous les utilisateurs normaux. Dans l'exemple suivant, l'administrateur détecte tous les processus qui n'appartiennent pas à root, daemon ou lp:
# /usr/bin/pgrep -v -u root,daemon,lp | more .. 3941 3948 3949 10640 ...
Ensuite, utilisez l'un des processus de l'utilisateur pour rechercher l'ID d'audit de l'utilisateur :
# auditconfig -getpinfo 3941 audit id = jdoe(1002) process preselection mask = lo(0x1000,0x1000) terminal id (maj,min,host) = 9426,65559,mach1(192.168.123.234) audit session id = 713
Notez que le masque de présélection utilisateur inclut la classe lo et n'inclut pas la classe ex récemment ajoutées.
L'ID d'audit de l'utilisateur est 1002. L'ID de session de l'audit utilisateur est 713.
Utilisez l'une des méthodes suivantes :
# /usr/sbin/auditconfig -setsmask lo,ex 713
# /usr/sbin/auditconfig -setumask lo,ex 1002
# auditconfig -getpinfo 3941 audit id = jdoe(1002) process preselection mask = ex,lo(0x40001000,0x40001000) terminal id (maj,min,host) = 9426,65559,mach1(192.168.123.234) audit session id = 713
Pour des raisons de maintenance, il arrive parfois qu'un site veuille empêcher les événements d'audit d'être soumis à un audit.
Par exemple, les événements 26 et 27 appartiennent à la classe pm.
## audit_event file ... 25:AUE_VFORK:vfork(2):ps 26:AUE_SETGROUPS:setgroups(2):pm 27:AUE_SETPGRP:setpgrp(2):pm 28:AUE_SWAPON:swapon(2):no ...
Modifiez ces événements pour la classe no.
## audit_event file ... 25:AUE_VFORK:vfork(2):ps 26:AUE_SETGROUPS:setgroups(2):no 27:AUE_SETPGRP:setpgrp(2):no 28:AUE_SWAPON:swapon(2):no ...
Si la classe pm est actuellement en cours d'audit, les sessions existantes sont toujours les événements d'audit 26 et 27. Pour arrêter ces événements en cours d'audit, vous devez mettre à jour les masques de présélection des utilisateurs.
Attention - Ne commentez jamais les événements dans le fichier audit_event. Ce fichier est utilisé par la commande praudit binaire pour lire les fichiers d'audit binaires. Les fichiers d'audit archivés peuvent contenir des événements répertoriés dans le fichier. |
Les fichiers d'audit binaires augmentent sans limite. Pour faciliter la tâche de l'archivage et de la recherche, vous pouvez être amené à limiter la taille. Vous pouvez également créer de plus petits fichiers binaires à partir du fichier d'origine.
L'attribut p_fsize sur le plug-in audit_binfile.so vous permet de limiter la taille d'un fichier d'audit. La valeur par défaut est zéro (0), ce qui permet au fichier de croître sans limite. La valeur est spécifiée en octets, de 512 000 à 2 147 483 647. Lorsque la taille spécifiée est atteinte, le fichier d'audit en cours est fermé et un nouveau fichier est ouvert.
Dans l'exemple suivant, vous pouvez limiter la taille du fichier d'audit à 1 Mo :
plugin:name=audit_binfile.so; p_dir:/var/audit; p_fsize=1024000
Les options auditreduce -minuscules recherchent des enregistrements spécifiques.
Les options auditreduce -majuscules écrivent vos sélections vers un fichier. Pour plus d'informations, reportez-vous à la page de manuel auditreduce(1M).
Oracle Solaris peut auditer les connexions, quelle que soit la source.
Cette classe audite les connexions, déconnexions, et blocages d'écran.
## audit_control file flags:lo naflags:lo ...
Remarque - Pour effectuer l'audit des connexions ssh, votre système Oracle Solaris doit exécuter le démon ssh Oracle Solaris. Ce démon est modifié pour l'audit Oracle Solaris. Pour plus d'informations, reportez-vous à la section Oracle Solaris Secure Shell et le projet OpenSSH.
Le service FTP crée des journaux pour les transferts de fichiers. Le service SFTP, qui s'exécute sous le protocole SSH, peut être contrôlé par l'audit Oracle Solaris. Les informations de connexion pour ces deux services peuvent être contrôlées par l'audit Oracle Solaris.
Pour connaître les options de journalisation disponibles, reportez-vous à la section concernant les fonctions de journalisation. Les options log commands et log transfers peuvent notamment fournir des journaux utiles.
Les transferts de fichiers par le biais d'une connexion SSH utilisent la commande sftp. Ces transferts peuvent être enregistrés en utilisant l'indicateur d'audit +fr. Pour auditer les transferts de fichiers sftp ayant échoué, auditez l'indicateur d'audit -fr.
La sortie suivante provient d'une session sftp réussie :
header,138,2,open(2) - read,,ma2,2009-08-25 14:48:58.770 -07:00 path,/home/jdoe/vpn_connect attribute,100644,jdoe,staff,391,437,0 subject,jdoe,jdoe,staff,jdoe,staff,4444,120289379,8457 65558 ma1 return,success,6
L'option -v peut être répétée jusqu'à trois reprises.
# sftp -vvv [ other options ] hostname
Comme indiqué dans la sortie suivante, la connexion et la déconnexion du démon ftpd génèrent des enregistrements d'audit.
% bsmrecord -c lo | more ... in.ftpd program /usr/sbin/in.ftpd See ftp access event ID 6165 AUE_ftpd class lo (0x00001000) header subject [text] error message return in.ftpd program /usr/sbin/in.ftpd See ftp logout event ID 6171 AUE_ftpd_logout class lo (0x00001000) header subject return ...
La connexion SSH enregistre tous les accès à la commande sftp.
... /usr/lib/ssh/sshd program /usr/lib/ssh/sshd See login - ssh event ID 6172 AUE_ssh class lo (0x00001000) header subject [text] error message return