¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Alertas, triaje y falsos positivos

Después de esta lección: Puedo ordenar las alertas según lo que más importa.

Lección de 55 min4 comandosLaboratorio de respuesta a incidentes y forense: investiga un servidor comprometido

Trescientas cuarenta alertas el lunes

Una alerta es un aviso automático de que un suceso puede ser un ataque. El triaje consiste en decidir cuál mirar primero cuando llegan muchas a la vez.

El lunes, el equipo de seguridad de una universidad abre su cola y encuentra 340 alertas. Solo son dos personas. Si las leen por orden de llegada, puede que la grave espere hasta la tarde.

Al final de esta lección

Nota

Puedo ordenar las alertas según lo que más importa.

Palabras clave

PalabraQué significaEjemplo
Alertaun aviso automático de un posible ataque
Triajedecidir qué alerta se atiende primero
Gravedadcuánto daño haría el suceso si fuera ciertode 1 a 4
Activolo que quieres proteger: un servidor, una base de datos, un portátil
Falso positivouna alerta que salta sin que haya ataque
Falso negativoun ataque que no hace saltar ninguna alerta

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Cómo se decide qué alerta va primero

Dos preguntas bastan para empezar. ¿Cuánto daño haría el suceso si fuera cierto? ¿Y a qué activo afecta?

Una contraseña incorrecta en un portátil de prueba importa poco. El mismo aviso en la base de datos de pagos importa mucho. Por eso se mira la gravedad y el valor del activo juntos.

Ejemplo: ordenar cuatro alertas

AlertaQué diceGravedadActivo críticoPuntos
A1Escaneo de puertos contra la web de la cafetería1No10
A2Cinco contraseñas incorrectas en el correo del personal2No20
A3Acceso de un administrador desde otro país a la base de pagos3Sí35
A4El antivirus bloquea un archivo en el portátil de contabilidad2Sí25

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una regla sencilla de puntos

Los puntos son la gravedad por diez, más cinco si el activo es crítico. La tabla da A3 con 35, A4 con 25, A2 con 20 y A1 con 10.

Se atiende de más a menos puntos: A3, A4, A2 y A1. Si dos alertas empatan, se atiende primero la que llegó antes.

Ordena una cola por puntos

Comando
printf '20 A2\n35 A3\n10 A1\n25 A4\n' | sort -rn

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Falso positivo y falso negativo

Un falso positivo es una alerta que salta sin ataque. Cansa al equipo, que acaba ignorando las alertas.

Un falso negativo es un ataque que no hace saltar nada. Es peor porque nadie lo sabe.

Si afinas la regla para que salte menos, bajan los falsos positivos y suben los falsos negativos. Siempre hay que elegir un punto medio.

Cuatro casos posibles de una alerta

La alertaHay ataqueNo hay ataque
Salta la alertaVerdadero positivo: buen avisoFalso positivo: aviso inútil
No saltaFalso negativo: ataque ocultoVerdadero negativo: todo en calma

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Cuántas alertas saltarían en el laboratorio

Imagina una regla muy simple sobre el registro de autenticación: una alerta por cada contraseña incorrecta. Los dos primeros comandos cuentan cuántas saltarían en un día. El tercero cuenta las líneas de tareas programadas, que son ruido.

Aún no buscas ningún ataque. Solo compruebas cuánto trabajo daría una regla mal afinada.

Cuántas contraseñas incorrectas hay en un día

Comando
grep -c "Failed password" case/var/log/auth.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cuántos accesos aceptados hay en el mismo día

Comando
grep -c "Accepted" case/var/log/auth.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cuántas sesiones de tareas programadas se abren

Comando
grep -c "pam_unix(cron:session): session opened" case/var/log/auth.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Calcular los puntos de una alerta con Python

La regla de puntos cabe en una función. Ejecuta el ejemplo y comprueba que A3 da 35 y A2 da 20. Después cambia la regla para que un activo crítico sume diez y mira qué alerta pasa por delante.

La función de puntos

Código: python
def points(severity, is_critical):
    # La gravedad vale diez veces su número; un activo crítico suma cinco.
    total = severity * 10
    if is_critical:
        total = total + 5
    return total


print(points(3, True))
print(points(2, False))

Un error frecuente

Advertencia

Mucha gente cree que la alerta que más se repite es la más grave. Se repite porque la regla es ruidosa, no porque el daño sea mayor. Ordena por gravedad y por activo, no por cuántas veces salta.

Para ir más lejos

La regla de puntos es una decisión de tu equipo, no una ley. Propón otra que tenga en cuenta si la alerta ya se repitió hoy. Después busca un caso en que tu regla nueva ponga delante una alerta que no debería ir primera.

Sobre este laboratorio y su código: Laboratorio de respuesta a incidentes y forense: investiga un servidor comprometido

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.