Las métricas en ciberseguridad importan

Por Cristian Antonio Bravo Lillo, Director del CSIRT
Generic cybersecurity

En búsqueda de un nuevo sitio web

Hace alrededor de un año que queríamos tener un nuevo sitio web. Antes estábamos dedicados al proyecto de ley marco y a la Política Nacional de ciberseguridad; ambas ya han sido publicadas, así que era hora.

El nuevo sitio está hecho sobre Wagtail, un CMS construido sobre Django que lleva 10 años de desarrollo. Es flexible, rápido, elegante, y muy fácil de usar para los usuarios no administradores. Fue hecho posible por todo el equipo del CSIRT, que durante los últimos meses se ha adaptado de forma muy ágil a una serie de nuevas tecnologías.

Un CMS es una aplicación que no sólo muestra cosas; también permite (o dificulta) formas de trabajo. Idealmente, debiera tener una interfaz clara e intuitiva, y tiene que hacer fáciles el 80% de las cosas (y el 20% restante tiene que ser al menos posible). En el caso del CSIRT de Gobierno, tiene que ser fácil de modificar y respaldar, y tiene que tener un panorama de vulnerabilidades relativamente seguro. Y con esto me refiero a algo muy concreto y observable, y que puede ser comprendido mejor comparándolo con otros CMS, como Wordpress o Drupal.

Wagtail tiene algunas ventajas sobre Wordpress para equipos de trabajo que generan contenido (como el CSIRT) a partir de un workflow; también tiene algunas ventajas sobre Drupal en que este último requiere de un nivel de customización no menor. Pero donde realmente se destaca es al buscar y comparar vulnerabilidades.

¿Cuántas vulnerabilidades tienen Drupal, Wordpress y Wagtail?

Al buscar en un sitio como cvedetails.com, la cantidad de vulnerabilidades en Wagtail (8) es mucho menor comparada con la de Wordpress (359) o Drupal (253). Comparar la historia completa de las aplicaciones es incorrecto porque Wordpress y Drupal llevan más tiempo y tienen una base de usuarios mucho más grande que Wagtail. Una mejor comparación es sobre períodos similares. Dado que Wagtail tiene 4 años de datos en cvedetails.com, comparemos los primeros 4 años de los tres productos.

En los primeros 4 años de datos en cvedetails.com, Wordpress tuvo 76 vulnerabilidades en 8 categorías:

wordpress-vulns

Drupal en cambio tuvo 25 vulnerabilidades en 6 categorías en el período comparable:

drupal-vulns

Wagtail ha tenido 5 vulnerabilidades en una categoría en el período comparable:

wagtail-vulns

Es decir, en períodos similares, Wagtail ha tenido menos vulnerabilidades de menos tipos que Wordpress y Drupal. Ahora bien: que no se hayan encontrado vulnerabilidades hasta ahora no significa que no existan. En este mismo minuto podría haber vulnerabilidades de día cero de Wagtail siendo transadas en la darkweb. Sin embargo, dado que estamos hablando de software libre siendo instalado y probado todos los días, esto es poco probable. Es la llamada Ley de Linus, acuñada por Eric Raymond en referencia a Linus Torvald. Es cierto que esta "ley" ha sido considerada una falacia en casos donde el software alcanza un grado de complejidad muy grande (como un sistema operativo), pero en este caso hablamos de un sistema relativamente simple, con una comunidad grande realizando repetidamente tareas de instalación y adaptación, en condiciones comparables a las estudiadas en un paper del 2020.

Lo anterior es importante, pero lo que creo verdaderamente esencial es lo siguiente: la probabilidad de que hackeen dentro de los próximos 30 días una instalación de Wagtail con alguna de las vulnerabilidades conocidas y publicadas es mucho menor que la probabilidad de que hagan lo mismo, en el mismo período, con una instalación de Drupal o de Wordpress. ¿Cómo sabemos eso?

Vulnerabilidades... con probabilidades

EPSS es un proyecto desarrollado por First.org basado en una propuesta de un grupo de investigadores preocupados por la falta de métricas útiles en ciberseguridad. Una métrica útil es aquella que nos permite gestionar de forma cuantitativa los riesgos asociados a una vulnerabilidad específica.

El puntaje CVSS corresponde a un puntaje arbitrario en una escala arbitraria; en cambio, el puntaje EPSS es la probabilidad estimada de que una vulnerabilidad específica sea explotada dentro de los próximos 30 días. Por ejemplo, al momento de escribir estas líneas, la probabilidad de que un servidor específico con OpenSSH 9.6 o anterior sea hackeado con la vulnerabilidad CVE-2023-48795 es de un 94,07%. En cambio, la probabilidad de que exploten la vulnerabilidad CVE-2024-3400 en un Palo Alto vulnerable es de un 13,97%: no es baja, pero si hubiera que priorizar entre ambos parches, claramente el primero es urgente y el segundo no.

Hay muchos casos en los cuales usar CVSS en vez de EPSS nos puede llevar a malas decisiones sobre qué parchar. Tomemos como ejemplo la vulnerabilidad CVE-2021-4434: se trata de Social Warfare, un plugin para Wordpress que hasta la versión 3.5.2 permite ejecución de código remoto (RCE). El CVSS de esta vulnerabilidad es de 10.0, el máximo puntaje posible. Es evidente que se trata de una vulnerabilidad grave. Pero el EPSS de esta vulnerabilidad es un 1,9%: no hay exploits conocidos ni actividad asociada a esta vulnerabilidad. Si tuviéramos este plugin instalado en un Wordpress propio, es importante reemplazarlo por una versión no vulnerable, pero sin duda deberíamos priorizar vulnerabilidades con mayor EPSS a ese.

Ya, y ¿qué pasó con el sitio web?

Para terminar, volvamos a nuestro sitio web.

Para comparar adecuadamente Wagtail con Wordpress y Drupal tenemos que escoger versiones específicas. Usualmente el problema con los sitios web es que los dejamos en versiones relativamente antiguas. Para hacer el siguiente análisis escogí Drupal 9.0, Wordpress 5.4 y Wagtail 4.0.1. Si revisamos la lista de vulnerabilidades de cada versión (en cvedetails.com), y calculamos la probabilidad de que uno de esos CMS sea explotado con cualquiera de las vulnerabilidades conocidas (es decir, una o más de ellas), llegamos a lo siguiente:

Las probabilidades anteriores son aproximadas, porque el cálculo de la probabilidad de que al menos un evento de muchos suceda tiene un pésimo desempeño (es de O(n!)), pero los resultados son bastante claros: Wagtail, incluso en una versión antigua, tiene una probabilidad muy baja (comparado con Drupal y Wordpress) de ser explotado con alguna de las vulnerabilidades conocidas dentro de los próximos 30 días. Lo anterior me genera mucha tranquilidad, como responsable último del CSIRT (pero por supuesto, nunca una tranquilidad completa).

En el CSIRT, dentro de los próximos meses (años probablemente) estaremos intentando desarrollar técnicas y herramientas para ayudar a todos los servicios públicos a mejorar su gestión de riesgos. Las métricas en ciberseguridad importan. No basta con hacer gestión de riesgos si ésta no sirve para responder preguntas importantes, como cuánto disminuye mi riesgo institucional si invierto $1.000 o $100.000, o cuánto necesito gastar si quiero disminuir mi riesgo a la mitad.

Pero eso es motivo de otro post, en el futuro.


Fuente de la imagen de portada: Vinod Sharma's Blog

Fuente de las imágenes interiores: CVEDetails.com

Escrito por
Cristian Antonio Bravo Lillo
Director del CSIRT
Cristian es Ingeniero Civil en Computación de la Universidad de Chile, y Doctor en Ingeniería y Política Pública en Carnegie Mellon University, con una especialización en Seguridad Usable en el CMU Usable Privacy and Security Lab (CUPS). Ha sido profesor en el Master en Ciberseguridad de la Universidad de California, Berkeley; y ha dictado cursos de pregrado en la Universidad de Chile, la Universidad de Santiago, y la Universidad Tecnológica Metropolitana. Actualmente es director del CSIRT de Gobierno, y profesor en el Diploma en Ciberseguridad de la Facultad de Derecho de la Universidad de Chile. Pasa su tiempo libre escribiendo, cantando, dando charlas y peleando con sus gatos.