Siempre se ha dicho que el único sistema verdaderamente seguro es aquel que está desconectado de la red, preferiblemente apagado, y si es posible metido dentro de una caja fuerte… Y ni aun así.

La presencia de vulnerabilidades en redes, puestos de trabajo, servidores y servicios en Internet es una constante en nuestros días.
Periódicamente nos despertamos con notificaciones que avisan de la presencia de vulnerabilidades en aplicaciones software o equipos informáticos que pueden poner en riesgo la seguridad de toda una organización.
Por fortuna, también son muchas las personas que de forma colaborativa contribuyen tanto a la identificación como a la posterior resolución de esas vulnerabilidades.
Sin embargo, no es menos cierto que existen grupos de actores a los que la identificación de una vulnerabilidad les proporciona una ventaja competitiva de valor incalculable.
Vulnerabilidades, exploits y ataques día-cero

Las vulnerabilidades día-cero son aquellas que no dejan tiempo —cero días— para su resolución antes de que alguien trate de explotarlas.
Pocos saben de su existencia y por tanto son pocos los que tienen en su mano facilitar su corrección.
Así pues, en muchas ocasiones, existen “exploits” día-cero que se aprovechan de la vulnerabilidad junto a ataques día-cero que utilizan los métodos identificados para sacar provecho de la vulnerabilidad.
Porque en la sorpresa está su valor. Por eso son las más peligrosas.
Lo cierto es que la existencia de este tipo de vulnerabilidades resulta difícilmente determinable ya que lo habitual es que se mantengan en prudente secreto.
Un crecimiento sostenido en el tiempo
Esta circunstancia es asumida habitualmente por los fabricantes (y también por los actores que las detectan) como medida de protección frente a posibles usos no autorizados.
Aunque no siempre es así.
Muchas de esas vulnerabilidades se mantienen en secreto por razones más interesadas.
Se trata de conservarlas como “ciberarmas latentes” para realizar futuros ataques — desde la perspectiva de los ciberdelincuentes— aunque también para evitar sanciones, cuando corregirlas supone un elevado coste.

Por eso, cuando compañías como Mandiant, Flashpoint o Google (dentro de su Project Zero) publican de forma anual sus datos sobre el número de vulnerabilidades día-cero identificadas, nos encontramos ante la tesitura de asumir que muy posiblemente que se estarán quedando muy cortos en sus análisis.
¿Cuántas otras vulnerabilidades se habrán identificado y permanecerán ocultas durante mucho tiempo?
A modo de referencia, solo habría que echar un vistazo a las vulnerabilidades —CVE en terminología estandarizada en el sector— identificadas y catalogadas en organismos internacionales para darnos cuenta de que muchas de ellas, en su día, fueron vulnerabilidades día-cero.
Cualquier sistema puede verse afectado

Las vulnerabilidades día-cero afectan a sistemas operativos, navegadores web, aplicaciones ofimáticas, componentes de software libre, dispositivos IoT, incluso elementos hardware y firmware de los equipos. Todos pueden verse afectados por algún tipo de vulnerabilidad que en caso de ser explotadas desencadenarán ataques de alto impacto.
Habitualmente es más probable encontrar vulnerabilidades en productos software donde los errores en diseños y desarrollos conducen a situaciones inesperadas.
Problemas en el cifrado de comunicaciones, fallos en el análisis de parámetros o errores de overflow que permiten interrumpir la ejecución y entrar en modos de operación con ciertos privilegios son algunos de los casos más evidentes.
A ellos hay que unir vulnerabilidades asociadas a debilidades de contraseñas, accesos a cuentas de administradores, redireccionamiento de servicios, etc.
Contramedidas día-cero
La conclusión pesimista que podríamos sacar acerca de este tipo de vulnerabilidades es que poco podemos hacer para defendernos: si no somos conscientes de que un producto o servicio tiene una vulnerabilidad tendremos dificultades para anticiparnos a ella.

Sin embargo, cruzarnos de brazos y esperar no resulta ser mejor opción.
Si identificamos una vulnerabilidad día-cero y por desinterés no la solucionamos, en algún momento alguien también la identificará y probablemente ese alguien estará ligado a un grupo de ciberdelincuencia.
Por eso, existen medidas que podemos tomar y que redundarán en la mejora de nuestra capacidad de reacción. Algunas arrancan desde el día-cero del desarrollo, incorporando mecanismos de diseño seguro, implementación y validación de la seguridad de las aplicaciones. Actualmente ya existen herramientas que ayudan durante todo el proceso (DAST, SAST, SCA…).
Validación de seguridad
Además, hay otras acciones como la ejecución periódica de auditorías de seguridad —bien con herramientas automáticas de validación, bien con servicios de pentesting— que permiten la identificación temprana de este tipo de vulnerabilidades. Porque, una vez descubierta la vulnerabilidad, es importante que se mantenga en la confidencialidad hasta que quede resuelta. Se trata de una acción básica pero suficientemente eficiente, dentro de unos límites: la “seguridad por ocultación” no suele durar demasiado tiempo.

En paralelo, es indispensable articular mecanismos que dificulten la acción de los ciberdelincuentes, tanto para la identificación como para la explotación de la vulnerabilidad.
Esto incluye la segmentación de redes, la implantación de mecanismos de controles de acceso, el rápido despliegue de actualizaciones —insistimos en esta acción porque es la gran olvidada en muchas organizaciones— y, sobre todo, la colaboración entre fabricantes y profesionales de la ciberseguridad tanto en la identificación como en la rápida resolución de las vulnerabilidades encontradas.
En definitiva, rigor en el desarrollo, análisis periódicos, monitorización, actualización y coordinación en la respuesta de los actores involucrados conforman los ejes de actuación frente a este tipo de vulnerabilidades.
Unas acciones que podríamos resumir en la máxima de “estar preparados para esperar lo inesperado”.