Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Guía de administración del sistema: servicios de seguridad |
Parte I Descripción general de la seguridad
1. Servicios de seguridad (descripción general)
Parte II Seguridad de sistemas, archivos y dispositivos
2. Gestión de seguridad de equipos (descripción general)
3. Control de acceso a sistemas (tareas)
4. Control de acceso a dispositivos (tareas)
5. Uso de la herramienta básica de creación de informes de auditoría (tareas)
6. Control de acceso a archivos (tareas)
7. Uso de la herramienta automatizada de mejora de la seguridad (tareas)
Parte III Roles, perfiles de derechos y privilegios
8. Uso de roles y privilegios (descripción general)
9. Uso del control de acceso basado en roles (tareas)
10. Control de acceso basado en roles (referencia)
Parte IV Servicios criptográficos
13. Estructura criptográfica de Oracle Solaris (descripción general)
14. Estructura criptográfica de Oracle Solaris (tareas)
15. Estructura de gestión de claves de Oracle Solaris
Parte V Servicios de autenticación y comunicación segura
16. Uso de servicios de autenticación (tareas)
19. Uso de Oracle Solaris Secure Shell (tareas)
20. Oracle Solaris Secure Shell (referencia)
21. Introducción al servicio Kerberos
22. Planificación del servicio Kerberos
23. Configuración del servicio Kerberos (tareas)
24. Mensajes de error y resolución de problemas de Kerberos
25. Administración de las políticas y los principales de Kerberos (tareas)
26. Uso de aplicaciones Kerberos (tareas)
27. El servicio Kerberos (referencia)
Parte VII Auditoría de Oracle Solaris
28. Auditoría de Oracle Solaris (descripción general)
29. Planificación de la auditoría de Oracle Solaris
30. Gestión de la auditoría de Oracle Solaris (tareas)
Auditoría de Oracle Solaris (mapa de tareas)
Configuración de archivos de auditoría (mapa de tareas)
Configuración de archivos de auditoría (tareas)
Cómo modificar el archivo audit_control
Cómo configurar registros de auditoría syslog
Cómo cambiar las características de auditoría de un usuario
Cómo agregar un clase de auditoría
Cómo cambiar una pertenencia a clase de un evento de auditoría
Configuración y habilitación del servicio de auditoría (mapa de tareas)
Configuración y habilitación del servicio de auditoría (tareas)
Cómo crear particiones para los archivos de auditoría
Cómo configurar el alias de correo electrónico audit_warn
Cómo configurar la política de auditoría
Cómo habilitar el servicio de auditoría
Cómo deshabilitar el servicio de auditoría
Cómo actualizar el servicio de auditoría
Configuración del servicio de auditoría en las zonas (tareas)
Cómo configurar todas las zonas de forma idéntica para la auditoría
Cómo configurar la auditoría por zona
Gestión de registros de auditoría (mapa de tareas)
Gestión de registros de auditoría
Cómo visualizar formatos de registros de auditoría
Cómo fusionar archivos de auditoría de la pista de auditoría
Cómo seleccionar eventos de auditoría de la pista de auditoría
Cómo visualizar el contenido de los archivos de auditoría binarios
Cómo depurar un archivo de auditoría not_terminated
Cómo evitar el desbordamiento de la pista de auditoría
Resolución de problemas de la auditoría de Oracle Solaris (tareas)
Resolución de problemas de la auditoría de Oracle Solaris (mapa de tareas)
Cómo determinar que la auditoría de Oracle Solaris se está ejecutando
Cómo reducir el volumen de los registros de auditoría que se producen
Cómo auditar todos los comandos por usuarios
Cómo buscar registros de auditoría de los cambios realizados en archivos específicos
Cómo modificar una máscara de preselección de usuario
Cómo evitar la auditoría de determinados eventos
Cómo limitar el tamaño de los archivos de auditoría binarios
El siguiente mapa de tareas hace referencia a los procedimientos para la resolución de problemas de la auditoría de Oracle Solaris.
|
Si cree que la auditoría se ha activado, pero no hay registros de auditoría en el directorio principal de auditoría, intente lo siguiente.
Antes de empezar
Que se ha configurado correctamente la base de datos hosts en su servicio de nombres y su funcionamiento. Para depurar los problemas del servicio de nombres, consulte lo siguiente:
Guía de administración del sistema: Servicios de nombres y directorios (DNS, NIS y LDAP)
System Administration Guide: Naming and Directory Services (NIS+)
# modinfo | grep c2audit
Si no se proporciona ninguna lista, significa que la auditoría no se está ejecutando. La siguiente lista indica que la auditoría se está ejecutando:
40 132ce90 14230 186 1 c2audit (C2 system call)
Compruebe el estado del servicio auditd. La siguiente lista indica que la auditoría no se está ejecutando:
# 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 siguiente lista indica que el servicio de auditoría se está ejecutando:
# svcs auditd STATE STIME FMRI online 10:10:10 svc:/system/auditd:default
La siguiente lista indica que la auditoría no se está ejecutando:
# auditconfig -getcond auditconfig: auditon(2) failed. auditconfig: error = Operation not supported(48)
La siguiente lista indica que la auditoría se está ejecutando:
# auditconfig -getcond audit condition = auditing
Si el servicio de auditoría no se está ejecutando, habilítelo. Para conocer el procedimiento, consulte Cómo habilitar el servicio de auditoría.
# 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.
Corrija los errores. El mensaje syntax ok indica que el archivo es correcto desde el punto de vista sintáctico.
# grep flags /etc/security/audit_control flags:lo naflags:na,lp
Si el archivo audit_control tiene valores no válidos, proporcione valores válidos. En el ejemplo anterior, lp es una clase no válida.
# tail audit_user ... # User Level Audit User File # # File Format # # username:always:never # root:lo:no admin:lp:no
Si el archivo audit_user tiene valores no válidos, proporcione valores válidos. En el ejemplo anterior, lp es una clase no válida.
Por ejemplo, el siguiente archivo audit_control contiene una clase que el software de Oracle Solaris no entregó:
# grep flags /etc/security/audit_control flags:lo,pf naflags:na,lo
Para obtener una descripción de la creación de la clase pf, consulte Cómo agregar un clase de auditoría.
La máscara de clase de auditoría debe ser única.
# grep pf /etc/security/audit_class 0x10000000:pf:profile command
Si la clase no está definida, defínala. De lo contrario, elimine la clase de los archivos audit_control y audit_user.
# grep pf /etc/security/audit_event 6180:AUE_prof_cmd:profile command:ua,as,pf
Si los eventos no están asignados a la clase, asigne los eventos adecuados a esta clase.
# audit -s
Para conocer el procedimiento, consulte Cómo habilitar el servicio de auditoría.
Cuando haya determinado qué eventos deben auditarse en su ubicación, use las siguientes sugerencias para crear archivos de auditoría manejables.
En concreto, evite agregar eventos y tokens de auditoría a la pista de auditoría. Las siguientes políticas afectan el tamaño de la pista de auditoría.
Política arge: agrega variables de entorno a los eventos de auditoría exec.
Política argv: agrega parámetros de comandos a los eventos de auditoría exec.
Política public: si va a auditar eventos de archivos, agregue un evento a la pista de auditoría en el archivo público cada vez que ocurra un evento auditable. Las clases de archivos incluyen fa, fc , fd, fm, fr, fw y cl. Para la definición de un archivo público, consulte Conceptos y terminología de auditoría.
Política path: agrega un token path a los eventos de auditoría que incluyen un token pathopcional.
Política group: agrega un token de grupo a los eventos de auditoría que incluyen un token newgroups opcional.
Política seq: agrega un token de secuencia a cada evento de auditoría.
Política trail: agrega un token de ubicador a cada evento de auditoría.
Política windata_down: en un sistema configurado con Trusted Extensions, agrega eventos cuando se disminuye el nivel de la información en una ventana con etiqueta.
Política windata_up: en un sistema configurado con Trusted Extensions, agrega eventos cuando se aumenta el nivel de la información en una ventana con etiqueta.
Política zonename: agrega el nombre de zona a cada evento de auditoría. Si la zona global es la única zona configurada, agrega zone, global a cada evento de auditoría.
El siguiente registro de auditoría muestra el uso del comando ls. La clase ex se está auditando y la política predeterminada está en uso:
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
A continuación, se muestra el mismo registro cuando se activan todas las políticas:
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
Esta estrategia funciona sólo si no es necesario mantener registros binarios de los eventos de auditoría que envía a los registros syslog. Mediante el comando auditreduce, puede segregar los archivos binarios de estos registros y reducir de esta forma el tamaño de los archivos binarios.
Reduzca la cantidad de auditoría para todos los usuarios mediante la reducción del número de clases de auditoría en el archivo audit_control. En el archivo audit_user, puede agregar clases de auditoría para usuarios y roles específicos.
Puede crear clases de auditoría en el sitio. En estas clases, coloque todos los eventos de auditoría que necesita supervisar. Para conocer el procedimiento, consulte Cómo agregar un clase de auditoría.
Nota - Si modifica asignaciones de clase de auditoría existentes, las modificaciones pueden perderse al actualizar a una versión más reciente del SO Oracle Solaris. Lea atentamente los registros de instalación.
Como parte de la política de seguridad del sitio, algunos sitios requieren registros de auditoría de todos los comandos ejecutados por el usuario root o por los roles administrativos. Algunos sitios también requieren registros de auditoría de todos los comandos que ejecutan los usuarios.
La clase ex audita todas las llamadas a las funciones exec() y execve(). La clase lo audita los inicios de sesión, los cierres de sesión y los bloqueos de pantalla. La siguiente salida muestra todos los eventos de las clases ex y 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
En el siguiente ejemplo, el sitio ha creado tres roles, sysadm, auditadm y netadm. Estos roles y la cuenta root se auditan para las clases exec y 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 ...
El resultado es similar al siguiente:
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 ...
El token exec_args registra los argumentos de los comandos:
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 ...
El token exec_env registra el entorno de los comandos:
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 ...
El resultado es similar al siguiente:
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 tiene como objetivo registrar las escrituras de los archivos en comparación con un número limitado de archivos, como /etc/passwd y los archivos en el directorio /etc/default, debe utilizar el comando auditreduce para ubicar los archivos.
Si agrega la clase al archivo audit_user, genera menos registros que si agrega la clase al archivo 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
El comando auditreduce busca en la pista de auditoría todas las instancias del argumento file. El comando crea un archivo binario con el sufijo filechg que contiene todos los registros que incluyen los nombres de ruta de los archivos de interés. Consulte la página del comando man auditreduce(1M) para conocer la sintaxis de la opción-o file=nombre_ruta.
# /usr/sbin/praudit *filechg
Si modifica el archivo audit_control o audit_user , la máscara de preselección de los usuarios que ya iniciaron sesión no cambia. Debe forzar la máscara de preselección para que cambie.
Antes de empezar
Debe haber habilitado la auditoría, los inicios de sesión de los usuarios y, luego, debe haber cambiado el valor de flags o naflags en el archivo audit_control . Quiere que los usuarios que ya iniciaron sesión se auditen en estas clases de auditoría recientemente seleccionadas.
Dispone de dos opciones. Puede terminar las sesiones existentes o utilizar el comando auditconfig para actualizar las máscaras de preselección de los usuarios.
Los usuarios pueden cerrar sesión y volver a iniciarla, o el administrador puede terminar manualmente (finalizar) las sesiones activas. Las nuevas sesiones heredan la nueva máscara de preselección. Sin embargo, cerrar la sesión de los usuarios puede ser poco práctico.
Supongamos que el atributo flags en el archivo audit_control se ha cambiado de lo a lo,ex.
En primer lugar, busque los usuarios comunes. En el siguiente ejemplo, el administrador busca todos los procesos que no sean responsabilidad de root, daemon o lp:
# /usr/bin/pgrep -v -u root,daemon,lp | more .. 3941 3948 3949 10640 ...
A continuación, utilice uno de los procesos de usuario para buscar ID de auditoría del usuario:
# 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
Tenga en cuenta que la máscara de preselección del usuario incluye la clase lo y no incluye la clase ex recién agregada.
El ID de auditoría del usuario es 1002. El ID de sesión de auditoría del usuario es 713.
Utilice uno de los dos métodos siguientes:
# /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
Con fines de mantenimiento, a veces, un sitio quiere evitar que se auditen eventos de auditoría.
Por ejemplo, los eventos 26 y 27 pertenecen a la clase 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 ...
Cambie estos eventos a la clase 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 clase pm está asiendo auditada actualmente, las sesiones existentes aún auditarán los eventos 26 y 27. Para evitar que estos eventos se auditen, debe actualizar las máscaras de preselección de los usuarios.
Precaución - Nunca quite el comentario de eventos en el archivo audit_event. Este archivo es utilizado por el comando praudit para leer archivos binarios de auditoría. Los archivos de auditoría almacenados pueden contener eventos que se muestran en el archivo. |
Los archivos de auditoría binarios crecen sin límite. Para facilitar el archivado y la búsqueda, puede que desee limitar el tamaño. También puede crear archivos binarios más pequeños a partir del archivo original.
El atributo p_fsize en el complemento audit_binfile.so lo habilita a limitar el tamaño de un archivo de auditoría. El valor predeterminado es cero (0), que le permite al archivo crecer sin límite. El valor se especifica en bytes, de 512.000 a 2.147.483.647. Cuando se alcanza el tamaño especificado, se cierra el archivo de auditoría actual y se abre un nuevo archivo.
En el siguiente ejemplo, se limita el tamaño de un archivo de auditoría a 1 Mbyte:
plugin:name=audit_binfile.so; p_dir:/var/audit; p_fsize=1024000
Las opciones auditreduce -minúscula buscan registros específicos.
Las opciones auditreduce -mayúscula escriben las selecciones en un archivo. Para obtener más información, consulte la página del comando man auditreduce(1M).
Oracle Solaris puede auditar todos los inicios de sesión, independientemente del origen.
Esta clase audita los inicios de sesión, los cierres de sesión y los bloqueos de pantalla.
## audit_control file flags:lo naflags:lo ...
Nota - Para auditar inicios de sesión ssh, su sistema Oracle Solaris debe ejecutar el daemon ssh de Oracle Solaris. Este daemon se ha modificado para la auditoría de Oracle Solaris. Para obtener más información, consulte Oracle Solaris Secure Shell y el proyecto OpenSSH.
El servicio FTP crea registros de sus transferencias de archivos. El servicio SFTP, que se ejecuta en el protocolo SSH, se puede auditar mediante la auditoría de Oracle Solaris. Los inicios de sesión de ambos servicios se pueden auditar mediante la auditoría de Oracle Solaris.
Para conocer las opciones de registro disponibles, lea la sección de “capacidades de registro”. En particular, las opciones log commands y log transfers pueden proporcionar registros útiles.
Las transferencias de archivos a través de una conexión SSH utilizan el comando sftp. Estas transferencias se pueden registrar mediante el indicador de auditoría +fr. Para auditar las transferencias de archivos sftp fallidas, audite el indicador de auditoría-fr.
El siguiente resultado es de una sesión sftp satisfactoria:
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
La opción -v se puede repetir hasta tres veces.
# sftp -vvv [ other options ] hostname
Como indica el siguiente resultado, el inicio y cierre de sesión del daemon ftpd generan registros de auditoría.
% 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 ...
El inicio de sesión SSH registra todos los accesos al comando 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