Documente Academic
Documente Profesional
Documente Cultură
Logcheck
Gunnar Wolf
Departamento de Seguridad en Cómputo
En esta última encontraremos tanto el archivo con los fuentes (logcheck-1.1.1.tar.gz) como
la firma PGP (logcheck-1.1.1.tar.gz.asc) garantizando contra su llave --también disponible en
esta página-- la autenticidad del paquete. En el paquete vienen los fuentes del programa. Para
información acerca de la compilación y configuración, consulta las secciones 2.3 y 2.4.
http://rpmfind.net/linux/RPM/portsentry.html
Logcheck es un programa muy sencillo, y hacer ports entre diferentes sistemas Unix debe ser
muy sencillo. Dentro del árbol fuente, bajo el subdirectorio systems, aparecen los siguientes
sistemas
El autor, Craig Rowland, advierte que los ports de Digital, HP UX y Sun pueden presentar
problemas pues no ha tenido tiempo de probarlo en dichas plataformas. Claro, es posible que
funcione en otros sistemas operativos - Sugiero fuertemente que si lo logran compilar y
ejecutar correctamente en otro sistema, contribuyan con sus experiencias al equipo
desarrollador.
2.3.- Compilación
make <sistema>
Claro está, substituyendo <sistema> por nuestro tipo de sistema operativo. Dandole make
sin parámetros nos muestra las cadenas que identifican a cada sistema operativo. Por
ejemplo, en un sistema Linux:
2.4.- Configuración
Logcheck opera encontrando expresiones regulares; de hecho, itera sobre cada uno de los
archivos de bitácora tres veces (para localizar mensajes inusuales, violaciones de seguridad y
alertas de ataque) utilizando egrep para buscar los patrones. Te sugerimos consultar el
manual de egrep (man egrep) para poder construir reglas de revisión más poderosas más
fácilmente.
2.4.1.- Archivos
logcheck.sh
es el programa que correrá cada vez que sea invocado logcheck. Es un script en shell
normal, e incluye la configuración en un formato fácil de comprender.
logcheck.hacking
tiene la lista de cadenas con las que una línea será identificada como intento de entrar al
sistema o de conseguir información acerca de él, y por tanto serán reportadas como ataques
activos, llamando la atención de manera especial al administrador.
logcheck.ignore
tiene la lista de expresiones que son muy comunes y no vale la pena reportarlas al
administrador.
logcheck.violations
tiene la lista de expresiones que pueden ser consideradas moderadamente peligrosas, y son
etiquetadas como violaciones de seguridad.
logcheck.violations.ignore
permite ser más específico: Si una línea concuerda con una de las expresiones de
logcheck.violations pero también concuerda con una de éste archivo, la línea es
ignorada.
tmp
es el directorio temporal utilizado por el programa para procesar los datos.
Además de estos archivos, logcheck instala el programa logtail en /usr/local/bin. Este
programa mantiene la información de qué logs han sido analizados y hasta qué punto, para
no perder ni repetir ni una línea.
PATH
indica dónde buscará el sistema los binarios. Recuerda que correrá desde cron, por lo que no
hace daño definirlo, y tal vez limitarlo al mínimo necesario.
SYSADMIN
es la persona que recibirá el reporte por correo. Si no lleva una dirección completa, asume
que es una dirección local.
LOGTAIL
indica el path completo para el programa logtail
TMPDIR
especifica el directorio temporal en el que el programa hará su trabajo temporal. Este debe
ser un directorio seguro, que no tenga acceso de escritura más que para el usuario que esté
ejecutando Logcheck.
GREP
indica el nombre del comando grep a ejecutar. En muchos sisetmas Unix hay diferentes
grep con diferentes características, sugerimos instalar el egrep de GNU.
MAIL
es el comando empleado para mandar un correo. Típicamente será mail, aunque en algunos
sistemas puede ser Mail o mailx.
HACKING_FILE
es el pathname y nombre completos del archivo logcheck.hacking (ver2.4.1)
VIOLATIONS_FILE
es el pathname y nombre completos del archivo logcheck.violations (ver2.4.1)
VIOLATIONS_IGNORE_FILE
es el pathname y nombre completos del archivo logcheck.violations.ignore (ver2.4.1)
IGNORE_FILE
es el pathname y nombre completos del archivo logcheck.ignore (ver2.4.1)
2.4.3.- Ejecución
Logcheck no es un programa que funcione contínuamente, sino que es llamado cada que el
administrador lo vea adecuado. Como cada reporte será enviado por correo, lo más común es
hacerlo cada hora. Para ello es necesario crear una entrada en el crontab de root o de algún
usuario que tenga permiso de leer los archivos localizados en /var/log y crear o, por lo
menos, modificar los archivos que indiquen la posición. Éstos son <archivo>.offset --
típicamente messages.offset, secure.offset y maillog.offset.
0 * * * * /bin/sh /usr/local/etc/logcheck.sh
Security Violations
=-=-=-=-=-=-=-=-=-=
Sep 27 18:23:07 hostname PAM_pwdb[14075]: authentication failure; (uid=0)
-> root for ssh service
Sep 27 18:23:11 hostname PAM_pwdb[14075]: (ssh) session opened for user
root by (uid=0)
Sep 27 18:23:11 hostname sshd[14075]: log: Password authentication for
root accepted.
Sep 27 18:23:11 hostname sshd[14075]: log: ROOT LOGIN as 'root' from
hostname2.dominio.com
Sep 27 18:23:43 hostname PAM_pwdb[14075]: (ssh) session closed for user
root
En caso de haberse registrado algún evento que concuerde con alguna línea de
logcheck.hacking, para que el reporte sea visto más rápidamente por el administrador
cambiarán los encabezados, quedando así: