La falacia de la tasa base o por qué los antivirus, filtros antispam y sondas de detección funcionan peor de lo que prometen

martes, 19 de marzo de 2019

Antes de empezar la jornada, mientras saboreas tu café de la mañana, abres tu fuente favorita de información sobre noticias de ciberseguridad. Te llama la atención un anuncio de un vendedor de sistemas de detección de intrusiones:

¡NUESTRO IDS ES CAPAZ DE DETECTAR EL 99% DE LOS ATAQUES!

"Hmmm, no está mal", piensas, mientras das otro sorbo a tu café. Deslizas los ojos por unas cuantas noticias más y te aparece un nuevo anuncio sobre IDSs de otro fabricante:

¡NUESTRO IDS ES CAPAZ DE DETECTAR EL 99,9% DE LOS ATAQUES!

Así, a primera vista, ¿cuál de los dos IDSs es mejor? Parece una perogrullada: obviamente será mejor el que más ataques detecta, o sea, el que detecta el 99,9% de los ataques frente al 99%.

¿O no? Te lo voy a poner aún más fácil. Imagina que encuentras un tercer anuncio:

¡NUESTRO IDS ES CAPAZ DE DETECTAR EL 100% DE LOS ATAQUES!

Ahora sí que sí: ¡este IDS es la bomba! ¡Lo detecta todo!

Vale, sí, lo detecta todo pero, ¿a qué precio? Fíjate qué fácil es conseguir un IDS con una tasa de detección del 100%: basta con que etiquetes todos y cada uno de los paquetes de entrada como maliciosos. Conseguirás un 100% de detección a costa de un 100% de falsos positivos. Aquí acaba de entrar en escena un segundo actor a menudo ignorado cuando se proporcionan datos sobre la efectividad en la detección de ataques: ¿cuántas veces el detector hace sonar la alarma cuando no había ningún ataque?

El problema de la detección
Muchas aplicaciones de ciberseguridad afrontan el desafío de detectar un ataque, una anomalía o un comportamiento malicioso:
  • Los IDSs deben detectar paquetes maliciosos entre el tráfico legítimo.
  • Los filtros antispam deben encontrar el correo basura (spam) entre el correo convencional (ham).
  • Los antivirus deben descubrir el malware camuflado entre los archivos inocuos.
  • Los cortafuegos de aplicaciones deben separar las URL maliciosas de las benignas.
  • Los detectores de metales de los aeropuertos deben señalar las armas y objetos metálicos potencialmente peligrosos y no los inofensivos.
  • Los escaneadores de vulnerabilidades deben alertar de vulnerabilidades en servicios o códigos.
  • Las herramientas de ciberinteligencia como Aldara deben distinguir si una conversación en redes sociales se convertirá en una crisis reputacional o si una cuenta de Twitter es un bot o si pertenece a una célula terrorista.
  • Las herramientas de análisis de logs deben identificar los eventos correlados.
  • Las herramientas de identificación de protocolos de red deben etiquetar correctamente los paquetes.
  • Los detectores de mentiras deben discernir cuándo un sospechoso dice la verdad o miente.
  • Y otros muchos más. Puedes añadir más ejemplos en los comentarios. 
A pesar de su disparidad, todos estos sistemas poseen una característica en común: producen alertas cuando consideran que han encontrado un verdadero positivo (True Positive o TP). Por desgracia, no son perfectos y también producen alertas ante la ausencia de actividad maliciosa o anómala, lo que se denomina falso positivo (False Positive o FP).

La tabla siguiente muestra todos los posibles estados de respuesta de un detector ante un incidente. Si el sistema detecta un incidente cuando de verdad se ha producido, entonces funciona correctamente: se ha producido un verdadero positivo (TP). Por el contrario, el funcionamiento es incorrecto si realmente existe un incidente, pero el sistema no alerta del mismo: se ha producido un falso negativo (FN). Del mismo modo, si no hay incidente y el sistema identifica su presencia erróneamente, se ha producido un falso positivo (FP), mientras que se produce un verdadero negativo (TN) si el sistema no alerta en este caso.

Tabla alertas imagen

Las falsas alarmas importan tanto como las detecciones
Pensemos ahora en un detector cualquiera. Por ejemplo, un IDS que detecta el 99% de los ataques: es capaz de etiquetar como malicioso el 99% de los paquetes que de hecho son maliciosos. En otras palabras, la tasa de detección (Detection Rate o DR), también llamada tasa de verdaderos positivos (True Positive Rate o TPR) es 0,99. Por otro lado, cuando llega un paquete que no es malicioso es capaz de etiquetarlo como no malicioso en el 99% de los casos o, lo que es lo mismo, la tasa de falsas alarmas (False Alert Rate o FAR), también llamada tasa de falsos positivos (False Positive Rate o FPR) es 0,01. Lo cierto es que en una red convencional la proporción de paquetes maliciosos frente a paquetes legítimos resulta extremadamente baja. En este ejemplo, supongamos que solo uno de cada 100.000 paquetes es malicioso, una cifra muy conservadora. Dadas estas condiciones, nuestro IDS alerta de que un paquete es malicioso. ¿Cuál es la probabilidad de que de verdad sea malicioso? No te precipites a la hora de dar la respuesta. Piénsalo una segunda vez. 

Y ahora piénsalo aún una tercera vez. ¿Tienes ya la respuesta? Llegaremos hasta ella paso a paso. En la siguiente tabla aparecen listados los datos para un ejemplo concreto de 10.000.000 de paquetes analizados. De todos ellos, 1 de cada 100.000 son maliciosos, es decir, 100; de los cuales, el 99% habrá sido identificado correctamente como malicioso, es decir, 99 paquetes; mientras que el 1%, o sea, un solo paquete, no ha sido detectado como malicioso y no ha saltado ninguna alarma: este paquete se coló. Ya está rellena la primera columna. Por otro lado, los 9.999.900 paquetes restantes son legítimos. Ahora bien, la alarma habrá saltado erróneamente para el 1% de estos paquetes, totalizando 99.999 paquetes; mientras que para el 99% restante el detector mantuvo silencio, es decir, calló para un total de 9.899.901 paquetes. Ya está lista la segunda columna. Obviamente, filas y columnas tienen que sumar los totales mostrados en la tabla.

Tabla alarmas imagen

Armados con esta tabla, ahora podemos responder con rapidez a la pregunta anterior: ¿Cuál es la probabilidad de que un paquete en verdad sea malicioso si el detector lo ha señalado como tal?

La primera fila ofrece la respuesta: de las 100.098 alarmas generadas, sólo 99 se correspondieron con paquetes maliciosos, es decir, la probabilidad de que esa alerta corresponda a un paquete malicioso es bien exigua: ¡sólo un 0,0989031%! Sí, sí, puedes revisar los cálculos. No acertará ni siquiera una de cada mil veces que hace sonar la alarma. ¡Bienvenido al problema de los falsos positivos!

A mucha gente le choca este resultado: ¿cómo es posible que falle tanto si la tasa de detección es del 99%? ¡Porque el volumen de tráfico legítimo es abrumadoramente mayor que el de tráfico malicioso!

El siguiente diagrama de Venn ayuda a entender mejor qué está pasando. Aunque no está a escala, muestra cómo el tráfico legítimo (¬M) es muchísimo más frecuente que el malicioso (M), de hecho, es 100.000 veces más frecuente. La respuesta a nuestra pregunta se encuentra en la proporción entre el área señalado como 3) y el área completa de A. Esta área 3) es muy pequeña en comparación con A y, como consecuencia, que salte una alarma no informa mucho, en términos absolutos, respecto a la peligrosidad del paquete analizado.

Diagrama de Venn imagen

Lo más paradójico es que da igual cuánto mejore la tasa de detección (DR) de este hipotético IDS, no cambiarán las cosas mientras no disminuya su tasa de falsas alarmas (FAR). Incluso en el caso extremo, suponiendo que la tasa de detección es DR = 1,0; si se mantienen el resto de los parámetros intactos, cuando el IDS dispare una alarma la probabilidad de que esta alarma corresponda a un ataque real seguirá siendo nimia: ¡0,0999011%! Vemos que no llega ni siquiera al uno por mil. Por este motivo, los IDSs gozan de tan mala fama: si un IDS acierta sólo una de cada mil veces que te alerta, al final terminarás ignorando todas sus alertas. La única vía de solución pasa por mejorar la tasa de falsas alarmas, acercándola a cero tanto como sea posible.

El siguiente gráfico muestra cómo evoluciona la efectividad en la detección, o lo que es lo mismo, cómo a medida que disminuye la tasa de falsas alarmas, representada como P(A|¬M), va cambiando la probabilidad P(M|A) de que exista de verdad actividad maliciosa (M) cuando el detector dispara una alerta (A). Tras examinar el gráfico, salta a la vista que por mucho que mejore la tasa de detección nunca se superará la efectividad máxima posible… a no ser que baje la tasa de falsas alarmas.

Efectividad del detector imagen

De hecho, los resultados son hasta cierto punto desoladores: incluso con una tasa de detección perfecta del 100% (P(A|M) = 1,0), para alcanzar una efectividad superior al 50%, P(M|A) > 0,5, habría que bajar la tasa de falsas alarmas por debajo de 1,E-05, una proeza prácticamente inalcanzable.

En resumen, está quedando claro que la efectividad de un sistema de detección (de malware, de ataques de red, de URLs maliciosas, de spam, etc.), no depende tanto de su capacidad de detectar el comportamiento intrusivo sino de su capacidad para suprimir las falsas alarmas.

Por qué no puedes ignorar la tasa base cuando evalúas la efectividad de un sistema de detección de cualquier tipo de comportamiento malicioso
A la hora de evaluar el comportamiento de un detector existe una interrelación entre tres variables:
  • La tasa de detección: lo bien que el detector identifica un evento malicioso como malicioso. Idealmente, DR = 1,0. Este dato suele aparecer muy destacado por el fabricante, especialmente cuando es del 100%.
  • La tasa de falsas alarmas: lo bien que identifica un evento legítimo como tal, sin etiquetarlo como malicioso. Idealmente, FAR = 0,0. En la práctica, este valor suele distar mucho del ideal. Es común encontrar valores entre el 1% y el 25%.
  • La tasa base: qué porcentaje de eventos son maliciosos en el contexto estudiado. Cuanto más alto sea este valor, es decir, cuanto más "peligroso" sea el entorno, más eficiente será el detector, por el mero hecho de que hay más eventos maliciosos y, lógicamente, señalando cualquier evento como malicioso ya aumentaría el porcentaje de aciertos. El mismo detector en dos contextos distintos, uno con una elevada tasa base (muchos ataques de fondo) y otro con una baja tasa base (escasos eventos maliciosos) parecerá mágicamente mejorar su efectividad. En realidad, lo único que ocurre es que cuantos más ataques recibes, más veces acertarás etiquetando cualquier cosa como ataque. 
Los fabricantes suelen enfatizar el primer valor y omitir los dos segundos. Ahora bien, la tasa de falsas alarmas es tan importante como la de detección. Una organización puede malgastar miles de horas investigando falsas alarmas en malware, IDSs, logs, spam, etc. Correos importantes o archivos críticos podrían ser puestos en cuarentena o, incluso, ser borrados. En el pero caso, cuando la FAR es muy elevada, el sistema resulta tan fastidioso y consume tantos recursos para validar las alertas, que puede llegarse a desactivarlo o a ignorarlo por completo. ¡Has caído en la fatiga por alarmas!

En una época en la que la mayoría de los fabricantes de este tipo de herramientas alcanzan tasas de detección cercanas al 100%, pon la vista también en los falsos positivos. 

Y recuerda que la tasa base condicionará totalmente la efectividad de cualquier solución. Cuanto menos prevalente sea el problema, más veces gritará en falso "¡Que viene el lobo!".


Gonzalo Álvarez Marañón
Innovación y laboratorio en ElevenPaths

No hay comentarios:

Publicar un comentario