Gentoo Logo

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


13. Detección de intrusos

Contenido:

13.a. AIDE (Entorno Avanzado de Detección de Intrusos)

AIDE es un sistema de detección de intrusos basado en host (HIDS, Host-Based Intrusion Detection System), una alternativa libre a Tripwire (si ya conoce Tripwire no debería tener dificultades para aprender a configurar AIDE). Los HIDS se usan para detectar cambios en los ficheros de configuración y binarios importantes, generalmente generando un resumen cifrado ("hash") único de los ficheros a ser verificados, y almacenándolos en un lugar seguro. Con un procedimiento regular (tal que una vez al día), los resúmenes "buenos" se comparan con los generados a partir de la copia actual de cada fichero, para determinar si el fichero ha cambiado. Los HIDS son una gran herramienta para detectar cambios no permitidos en un sistema, pero necesitan un poco de trabajo para implementarlos adecuadamente y hacer un buen uso de ellos.

El fichero de configuración está basado en expresiones regulares, macros y reglas para ficheros y directorios. Tenemos la macros siguientes:

Macro Descripción Sintaxis
ifdef Si está definido @@ifdef "name"
ifndef Si no está definido @@ifndef "name"
define Define una variable @@define "name" "value"
undef Elimina la definición de una variable @@undef "name"
ifhost Si "hostname" @@ifhost "hostname"
ifnhost Si no "hostname" @@ifnhost "hostname"
endif Endif puede ser usado después de cualquiera de las macros anteriores excepto define y undef @@endif

Esas macros se convierten en algo muy práctico si tiene más de un sistema Gentoo y quiere usar AIDE en todos ellos, pero no todas las máquinas ejecutan los mismos servicios o incluso tienen los mismos usuarios.

A continuación tenemos conjuntos de marcas ("flags") para comprobar en ficheros y directorios. Son una combinación de permisos, propiedades de archivos y resúmenes criptográficos (es decir, sumas de control).

Flag Descripción
p permisos
i inode
n número de enlaces
u usuario
g grupo
s tamaño
b 'block count'
m mtime
a atime
c ctime
S verifica el tamaño creciente
md5 suma de control md5
sha1 suma de control sha1
rmd160 suma de control rmd160
tiger suma de control tiger
R p+i+n+u+g+s+m+c+md5
L p+i+n+u+g
E Grupo vacío
> Crecimiento del fichero de log p+u+g+i+n+S

Y si AIDE se compila con soporte para mhash también soporta otras características:

Flag Descripción
haval suma de control haval
gost suma de control gost
crc32 suma de control crc32

Ahora puede crear sus propias reglas basadas en los indicadores anteriores, combinándolas tal que así:

Listado de Código 1.1: Creación de un conjunto de reglas para AIDE

All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160

Lo último que necesita para crear su propio fichero de configuración es ver cómo añadir una regla a un fichero o directorio. para introducir una regla, combine el nombre de fichero o directorio y la regla. AIDE añadirá todos los archivos recursivamente a no ser que especifique alguna regla alternativa.

Flag Descripción
! No añadir este fichero o directorio.
= Añadir este directorio, pero sin recursividad.

Veamos, pues, un ejemplo completo:

Listado de Código 1.2: /etc/aide/aide.conf

@@ifndef TOPDIR
@@define TOPDIR /
@@endif

@@ifndef AIDEDIR
@@define AIDEDIR /etc/aide
@@endif

@@ifhost smbserv
@@define smbactive
@@endif

# La ubicación de la base de datos a ser leída
database=file:@@{AIDEDIR}/aide.db

# La ubicación de la base de datos donde escribir
database_out=file:aide.db.new

verbose=20
report_url=stdout

# Definición de reglas
All=R+a+sha1+rmd160
Norm=s+n+b+md5+sha1+rmd160

@@{TOPDIR} Norm
!@@{TOPDIR}etc/aide
!@@{TOPDIR}dev
!@@{TOPDIR}media
!@@{TOPDIR}mnt
!@@{TOPDIR}proc
!@@{TOPDIR}root
!@@{TOPDIR}sys
!@@{TOPDIR}tmp
!@@{TOPDIR}var/log
!@@{TOPDIR}var/run
!@@{TOPDIR}usr/portage
@@ifdef smbactive
!@@{TOPDIR}etc/smb/private/secrets.tdb
@@endif
=@@{TOPDIR}home Norm

En el ejemplo anterior especificamos con algunas macros donde comienza el directorio de nivel superior y donde está el directorio de AIDE. AIDE comprueba el fichero /etc/aide/aide.db cuando comprueba la integridad de un fichero. Pero cuando actualiza o crea un nuevo fichero almacena la información en /etc/aide/aide.db.new. Esto se hace porque no se puede sobrescribir automáticamente el antiguo fichero de base de datos. La opción report_URL no está todavía implementada, pero la intención del autor es que sea capaz de enviar correo electrónico o quizá también ejecutar guiones ("scripts").

El ebuild AIDE incluye ahora un fichero de configuración funcional, un guión de ayuda ("helper") y un guión de programación de trabajos ("crontab"). El guión de ayuda realiza ciertas tareas por nosotros y proporciona una interfaz que resulta ser un pequeño guión más amigable. Para ver todas las opciones disponibles, puede ejecutarse aide --help. Para empezar, todo lo que se necesita hacer es aide -i y el guión de programación de trabajos debería detectar la base de datos y enviar los mensajes apropiados cada día. Es recomendable revisar el fichero /etc/aide/aide.conf y asegurarse que la configuración recoge escrupulosamente que todo está en su lugar en la máquina.

Nota: Dependiendo de su CPU, velocidad de acceso a disco y los indicadores configurados para los ficheros, el proceso puede llevar algún tiempo.

Nota: Recuerde establecer una alias para leer los mensajes de correo para root. En caso contrario nunca conocerá lo que está informando AIDE.

Note que almacenar localmente los ficheros de base de datos tiene algunos riesgos, puesto que los atacantes (si conocen que AIDE está instalado) intentarán sin duda alterar el fichero de base de datos, actualizarlo o modificar /usr/bin/aide. Por esto, debería crear un CD o otro medio donde dejar una copia del fichero .db y los binarios de AIDE.

Puede encontrar más información en la página del proyecto AIDE.

13.b. Snort

Snort es un Sistema de Detección de Intrusiones de Red (Network Intrusion Detection System, NIDS). Para instalarlo y configurarlo use los ejemplos siguientes.

Listado de Código 2.1: /etc/conf.d/snort

SNORT_IFACE="eth0"
PIDFILE=/run/snort_eth0.pid
MODE="full"
NETWORK="192.168.0.0/24
LOGDIR="/var/log/snort"
SNORT_CONF=/etc/snort/snort.conf
SNORT_OPTS="-q -D -u snort -d -l $LOGDIR -h $NETWORK -c $SNORT_CONF"

Copie /etc/snort/snort.conf.distrib a /etc/snort/snort.conf.

Listado de Código 2.2: /etc/snort/snort.conf

~# cd /etc/snort && cp snort.conf.distrib snort.conf

Puede que necesite comentar las entradas en las listas blancas y negras si no se creó ninguna lista.

Más información en el sitio web de Snort.

13.c. Detección de malware con chkrootkit

Tanto HIDS como AIDE son una gran forma de detectar cambios en su sistema, pero nunca perjudica tener otra línea de defensas. chkrootkit es una utilidad que que examina los ficheros de sistema comunes buscando rootkits --software diseñado para esconder las acciones de un intruso y permitirle conservar el acceso-- y examina el sistema buscando trazas de registradores de teclados ("keyloggers") y otro "malware". chkrootkit y alternativas como rkhunter son herramientas prácticas, tanto para el mantenimiento del sistema como seguimiento de un intruso tras un ataque, sin embargo no garantizan que su sistema sea seguro.

La mejor manera para emplear chkrootkit como detección de intrusos es ejecutarlo de forma rutinaria desde cron. Para empezar, instale app-forensics/chkrootkit. chkrootkit puede ejecutarse desde la línea de comandos con la orden homónimo, o desde cron con un línea como ésta:

Listado de Código 3.1: Programar chkrootkit como un cronjob

0 3 * * * /usr/sbin/chkrootkit

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 10 de abril, 2014

Sumario: Detecte intrusos.

Kim Nielsen
Autor

John P. Davis
Editor

Eric R. Stockbridge
Editor

Carl Anderson
Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

Benny Chuang
Editor

Sune Jeppesen
Editor

Tiemo Kieft
Editor

Zack Gilburd
Editor

Dan Margolis
Editor

Joshua Saddler
Editor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Postel
Traductor

Carles Ferrer Peris
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.