Saltar al contenido principal

Vulnerabilidades de seguridad - Cómo se explotan los fallos

Lectura de 2 min aprox.

Una vulnerabilidad es un defecto o punto débil de seguridad presente en el software o en un sistema. Los atacantes explotan estas vulnerabilidades para realizar accesos no autorizados, robo de datos, denegación de servicio y más. Las vulnerabilidades surgen por diversas causas, como fallos de diseño, errores de implementación y configuraciones incorrectas. Se gestionan en bases de datos públicas como CVE (Common Vulnerabilities and Exposures), y el ritmo de descubrimiento de vulnerabilidades se está acelerando: solo en 2024 se registraron más de 30 000 nuevos CVE.

Qué decidir y qué verificar tras el descubrimiento

Un informe de que se ha encontrado algo no determina por sí mismo qué atender ni en qué orden. La cifra que se presenta como gravedad es una referencia obtenida al unificar las condiciones para que puedan alinearse y compararse elementos de naturaleza distinta, y no expresa directamente la magnitud de lo que ocurriría en la práctica. Aunque la cifra sea la misma, la facilidad con la que se puede alcanzar la parte afectada cambia según si esta se encuentra en un lugar accesible desde el exterior, en uno al que solo se llega desde dentro, o dentro de una función que no se está utilizando en absoluto. Si se toma la cifra como único criterio, lo que tiene una cifra baja pero resulta fácil de alcanzar queda relegado. Que algo esté corregido tampoco lo decide el registro del trabajo. Aunque el registro indique que la sustitución terminó, un proceso que sigue en marcha puede conservar todavía el contenido antiguo que cargó sin haber sido reemplazado, y un entorno copiado de la misma configuración puede haber recibido el cambio solo en una parte de sus instancias; entonces el registro se lee como terminado mientras el estado real persiste. Si el criterio de finalización se coloca en la cantidad de elementos tratados, lo que queda cae fuera de ese recuento y, por lo tanto, deja de verse. Y que algo esté afectado no lo decide la coincidencia del nombre. Incluso los objetos designados con el mismo nombre pueden aplicarse o no según la combinación de qué versión sea y bajo qué ajustes funcione, de modo que contar los objetivos solo por el nombre lleva tanto a incluir lo que no corresponde como a omitir lo que sí.

Antecedentes históricos

La historia de la gestión de vulnerabilidades se remonta al gusano Morris (Morris Worm) de 1988. Aquel incidente dio lugar a la creación del CERT/CC (Computer Emergency Response Team), marcando el inicio de la gestión organizada de vulnerabilidades. En 1999, MITRE creó el sistema CVE, estableciendo un mecanismo para asignar un número de identificación único a cada vulnerabilidad. El Log4Shell de 2021 (CVE-2021-44228) alcanzó la puntuación CVSS máxima de 10.0, afectó a una amplia gama de bibliotecas de Java y obligó a organizaciones de todo el mundo a una respuesta de emergencia. Este incidente volvió a poner de manifiesto la importancia de la gestión de dependencias en el software de código abierto.

Clasificación de las vulnerabilidades

CVSS (Common Vulnerability Scoring System) es un estándar internacional que califica la gravedad de las vulnerabilidades con una puntuación de 0.0 a 10.0. Las vulnerabilidades son de muchos tipos, como el desbordamiento de búfer, la inyección SQL, el XSS y la escalada de privilegios. Una vulnerabilidad de día cero es especialmente peligrosa, ya que se explota antes de que se ponga a disposición un parche de corrección.

Medidas como usuario

Un error común es pensar que «mientras tenga instalado un software de seguridad, las vulnerabilidades no son un problema». El software de seguridad detecta el malware conocido, pero no corrige las vulnerabilidades en sí. La medida básica es aplicar con prontitud las actualizaciones del sistema operativo y de las aplicaciones para corregir las vulnerabilidades conocidas. Para prepararse ante el riesgo de que una vulnerabilidad se explote y filtre tus contraseñas, es importante establecer una contraseña aleatoria única para cada servicio.

Términos relacionados

¿Te resultó útil este artículo?