1 Examinando a fondo de manera gradual

1.1 Concepto Clave

Los mensajes menos frecuentes probablemente sean más importantes que aquellos que ocurren todo el tiempo.

El primer paso es identificar los mensajes que ocurren más frecuentemente. Para esto, debería mirar manualmente el/los fichero/s de registros, y tomar nota de los mensajes que no se consideren importantes. Cómo se haría esto dependerá de la aplicación.

Por ejemplo, en el comando greo de abajo hemos filtrado para eliminar las siguientes cadenas:

[xxx ejemplos del fichero de registros]

pam_unix    - information about login/logout
publickey   - successful login with an SSH public key
Invalid     - an invalid login attempt (more on this below)
disconnect  - someone has disconnected
sudo        - use of the sudo command
BREAK-IN ATTEMPT - in fact, simply a warning about a mismatch between forward
              and reverse DNS
Timeout     - a connection terminated due to timeout
Bad protocol - warnings about protocol errors
identification  - ...

Si queremos filtrar todo lo de arriba en una búsqueda, podríamos utilizar:

$ egrep -v '(pam_unix|publickey|Invalid|disconnect|sudo|BREAK-IN ATTEMPT|Timeout|Bad protocol|identification)' auth.log| cut -c16- |less

... esto también eliminaría los primeros 16 caracteres (el sello temporal) de forma que sea más fácil ordenar/comparar mensajes basándonos en el parecido del contenido.

(Explicar como encontrar mensajes "raros", y luego decidir añadirlos a la lista de "interesantes" que añadiremos a swatch/tenshi)

2 Identificar ataques dirigidos/intentos de escaneo en su sistema

En el paso anterior, excluimos el mensaje 'Invalid user' ya que ocurre muy frecuentemente, y no era de interés inmediato para nosotros. Pero miremos ahora más de cerca un mensaje típico:

Aug 12 09:48:14 nsrc sshd[20111]: Invalid user oracle from 106.186.28.45
--- --  ------  ---  ---------    ------  ---   ----  ---  -------------
 1   2     3      4       5         6       7     8     9       10

2.1 ¿Qué IPs están escaneando de manera más activa?

$ grep 'Invalid' auth.log | awk '{ print $10 }' | sort | uniq -c | sort -n -k 1

Puedes considerar el uso de herramientas como fail2ban:

2.2 ¿Qué nombre de usuario?

$ grep 'Invalid' auth.log | awk '{ print $8 }' | sort | uniq -c | sort -n -k 1

Si ve, en la lista de nombres de usuarios, un nombre de usuario que es conocido/existe en su sistema (un usuario real, no una cuenta genérica como root/admin/...), entonces debería empezar a preocuparse, o al menos poner atención! Tambíen puede querer enviar un email al contacto de abuso (abuse) definido para el bloque de direcciones que contiene esta IP.