390 likes | 542 Views
Logs Correlación de Eventos OSSIM. Logs. ¿Qué es un log? Es una bitácora o un registro oficial de eventos durante un periodo de tiempo en particular. . ¿Para qué se utilizan?
E N D
Logs ¿Qué es un log? • Es una bitácora o un registro oficial de eventos durante un periodo de tiempo en particular.
¿Para qué se utilizan? • Los administradores de sistemas lo utilizan para registrar los datos o información sobre quién, cuándo, dónde y por qué una acción determinada ocurre. • Los sistemas operativos también trabajan con logs, por ejemplo para guardar incidencias, errores, accesos de usuarios etc.
Auditoria del Sistema - Unix • Casi todas las actividades realizadas en un sistema Unix son susceptibles de ser, en mayor o menor medida, monitorizadas: desde las horas de acceso de cada usuario al sistema hasta las páginas web más frecuentemente visitadas, pasando por los intentos fallidos de conexión, los programas ejecutados o incluso el tiempo de CPU que cada usuario consume.
El sistema de log de Unix • Dentro de Unix hay dos grandes familias de sistemas: se trata de System V y BSD. • En los sistemas System V el processaccounting está desactivado por defecto; se puede iniciar mediante /usr/lib/acct/startup, y para visualizar los informes se utiliza la orden acctcom. • En la familia BSD los equivalentes a estas órdenes son accton y lastcomm; en este caso el processaccounting está inicializado por defecto.
El demonio SYSLOGD • syslogd (SyslogDaemon) se lanza automáticamente al arrancar un sistema Unix, y es el encargado de guardar informes sobre el funcionamiento de la máquina. • Recibe mensajes de las diferentes partes del sistema (núcleo, programas...) y los envía y/o almacena en diferentes localizaciones, tanto locales como remotas, siguiendo un criterio definido en el fichero de configuración /etc/syslog.conf, donde especificamos las reglas a seguir para gestionar el almacenamiento de mensajes del sistema.
Ejemplo de syslogd • Fichero /etc/syslog.conf • Falta copiar archivo de linux!!!!!
Podemos ver que cada regla del archivo tiene dos campos: un campo de selección y un campo de acción, separados ambos por espacios o tabuladores.
Campo de Selección • Está compuesto a su vez de dos partes separadas por un punto: una que indica el servicio que envía el mensaje y otra que marca su prioridad, separadas por un punto (`.'); ambas son indiferentes a mayúsculas y minúsculas. user.err/dev/console Servicio user.errPrioridad
La parte del servicio contiene una de las siguientes palabras clave: auth, auth-priv, cron, daemon, kern, lpr, mail, mark, news, security (equivalente a auth), syslog, user, uucp y local0 hasta local7; esta parte especifica el `subsistema' que ha generado ese mensaje (por ejemplo, todos los programas relacionados con el correo generarán mensajes ligados al servicio mail).
En segundo lugar, la prioridad está compuesta de uno de los siguientes términos, en orden ascendente: debug, info, notice, warning, warn (equivalente a warning), err, error (equivalente a err), crit, alert, emerg, y panic (equivalente a emerg). La prioridad define la gravedad o importancia del mensaje almacenado.
Además de los términos mencionados hasta ahora, el demonio syslogd emplea en su fichero de configuración los siguientes caracteres especiales:
“*” Asterisco • Empleado como comodín para todas las prioridades y servicios anteriores, dependiendo de dónde son usados (si antes o después del carácter de separación `.'): • # Guardar todos los mensajes del servicio mail en /var/adm/mail • # • mail.* /var/adm/mail
Espacio en blanco “ “ • Indica que no hay prioridad definida para el servicio de la línea almacenada.
Coma “ , “ • Con este carácter es posible especificar múltiples servicios con el mismo patrón de prioridad en una misma línea. Es posible enumerar cuantos servicios se quieran: • # Guardar todos los mensajes mail.info y news.info en • # /var/adm/info • mail,news.=info /var/adm/info
Punto y coma “ ; “ • Es posible dirigir los mensajes de varios servicios y prioridades a un mismo destino, separándolos por este carácter: • # Guardamos los mensajes de prioridad "info" y "notice" • # en el archivo /var/log/messages • *.=info;*.=notice /var/log/messages
Igual “ = “ • De este modo solo se almacenan los mensajes con la prioridad exacta especificada y no incluyendo las superiores: • # Guardar todos los mensajes criticos en /var/adm/critical • # • *.=crit /var/adm/critical
Exclamación “ ! “ • Preceder el campo de prioridad con un signo de exclamación sirve para ignorar todas las prioridades, teniendo la posibilidad de escoger entre la especificada (!=prioridad) y la especificada más todas las superiores (!prioridad). Cuando se usan conjuntamente los caracteres `=' y `!', el signo de exclamación `!' debe preceder obligatoriamente al signo igual `=', de esta forma: !=. # Guardar mensajes del kernel de prioridad info, pero no de # prioridad err y superiores kern.info;kern.!err /var/adm/kernel-info # Guardar mensajes de mail excepto los de prioridad info mail.*;mail.!=info /var/adm/mail
Campo de Acción • La segunda parte de cada línea del archivo de configuración de syslogd es el campo de acción, y describe el destino de los mensajes (dónde se van a guardar o qué programa los va a procesar); este destino puede ser uno de los siguientes: user.err /dev/console user.err
Un fichero plano Normalmente los mensajes del sistema son almacenados en ficheros planos. Dichos ficheros han de estar especificados con la ruta de acceso completa. # Guardamos todos los mensajes de prioridad critica en "critical" • # • *.=crit /var/adm/critical
Un dispositivo físico Tenemos la posibilidad de enviar los registros del sistema a un dispositivo físico del mismo, típicamente un terminal o una impresora. # Enviamos todos los mensajes a tty12 (ALT+F12 en Linux) y todos # los mensajes críticos del núcleo a consola # *.* /dev/tty12 kern.crit /dev/console
Una máquina remota Se pueden enviar los mensajes del sistema a otra máquina, de manera a que sean almacenados remotamente, sin más que indicar en el campo de acción el nombre o dirección de dicho sistema precedido por el signo `@'. # Enviamos los mensajes de prioridad warning y superiores al # fichero "syslog" y todos los mensajes (incluidos los # anteriores) a la maquina "secure.upv.es" # *.warn /usr/adm/syslog *.* @secure.upv.es
Unos usuarios del sistema (si están conectados) Se especifica la lista de usuarios que deben recibir un tipo de mensajes simplemente escribiendo sus login, separados por comas: # Enviamos los mensajes con la prioridad "alert" a root y toni # *.alertroot, toni
Todos los usuarios que estén conectados Los errores con una prioridad de emergencia se suelen enviar a todos los usuarios que estén conectados al sistema, de manera que se den cuenta de que algo va mal; para ello utilizamos un asterisco en el campo de acción: # Mostramos los mensajes urgentes a todos los usuarios # conectados, mediante wall *.=emerg *
Syslog • El archivo syslog (guardado en /var/adm/ o /var/log/) es quizás el fichero de log más importante del sistema; en él se guardan, en texto claro, mensajes relativos a la seguridad de la máquina, como los accesos o los intentos de acceso a ciertos servicios. No obstante, este fichero es escrito por syslogd, por lo que dependiendo de nuestro fichero de configuración encontraremos en el archivo una u otra información. Al estar guardado en formato texto, podemos visualizar su contenido con un simple cat.
anita:/# cat /var/log/syslog Mar 5 04:15:23 anitain.telnetd[11632]: connectfromlocalhost Mar 5 06:16:52 anitarpcbind: connectfrom 127.0.0.1 togetport(R ) Mar 5 06:16:53 anitalastmessagerepeated 3 times Mar 5 06:35:08 anitarpcbind: connectfrom 127.0.0.1 togetport(R ) Mar 5 18:26:56 anitarpcbind: connectfrom 127.0.0.1 togetport(R ) Mar 5 18:28:47 anitalastmessagerepeated 1 time Mar 5 18:32:43 anitarpcbind: connectfrom 127.0.0.1 togetport(R ) Mar 6 02:30:26 anitarpcbind: connectfrom 127.0.0.1 togetport(R ) Mar 6 03:31:37 anitarpcbind: connectfrom 127.0.0.1 togetport(R ) Mar 6 11:07:04 anitain.telnetd[14847]: connectfrom rosita Mar 6 11:40:43 anitain.telnetd[14964]: connectfromlocalhost anita:/#
Messages • En este archivo de texto se almacenan datos “informativos” de ciertos programas, mensajes de baja o media prioridad destinados a más que informar a dar aviso de sucesos importantes, como información relativa al arranque de la máquina; al igual que en el fichero syslog en función de /etc/syslog.conf podemos guardar todo tipo de datos.
Wtmp • Este archivo es un fichero binario que almacena información relativa a cada conexión desconexión del sistema. Para ver su contenido lo hacemos por medio de la orden last. Daybirth:/# last -10 Los registros guardados en este archivo tienen el formato de la estructura utmp, que contiene información como nombre de usuario, la línea por la que accede, el lugar desde lo hace y la hora de acceso.
Lastlog • Es un fichero binario guardado generalmente en /var/admin y que contiene un registro para cada usuario con la fecha y la hora de su última conexión. Podemos visualizar estos datos para un usuario dado mediante ordenes como whoo finger. Daybirth:/# fingertoni
Sulog • Este es un fichero de texto donde se registran las ejecuciones de la orden su, indicando la fecha, hora, usuario que lanza el programa y usuario cuya identidad adopta, terminal asociada y éxito (+) ó fracaso (-) de la operación. Daybirth:/# head -4 /var/adm/sulog
Es la capacidad de agrupar eventos provenientes de varias fuentes, con el objetivo final de facilitar la labor de análisis, especificando lo máximo posible los detalles del mismo. • El proceso de correlación se realiza en el momento del registro de eventos en los sistemas de detección.
Funciones de un correlacionador de eventos • Determinar, en tiempo real, la probabilidad de materialización de una amenaza en un instante dado. • Conocer, en tiempo real, cuando comienza un ataque al sistema permitiendo una alerta temprana. • Conocer, si un ataque ha tenido éxito o no, y determinar el impacto real del mismo sobre el sistema. • Determinar los patrones de materialización de las amenazas, que serán utilizados posteriormente, para implantar nuevas salvaguardas o mejorar las existentes.
OSSIM es una distribución open source integrados para construir una infraestructura de monitorización de seguridad. • Su objetivo es ofrecer un marco para centralizar, organizar y mejorar las capacidades de detección y visibilidad en la monitorización de eventos de seguridad de la organización.
OSSIM cuenta con las siguientes herramientas de monitorización: • Cuadro de mandos para visibilidad a alto nivel. • Monitores de riesgo y comportamiento para la monitorización a nivel medio. • Consola forense y monitores de Red para el bajo nivel.