En la lección anterior separaste amenaza de vulnerabilidad y viste que su combinación produce riesgo. Ahora toca llenar esas dos casillas de contenido real. Esta lección es un mapa: qué amenazas existen y de dónde vienen, qué familias de software malicioso hay y cómo se diferencian, qué tipos de debilidades vas a encontrarte en un entorno como el de Nimbus Reservas, y —muy importante para el día a día— cómo se leen los identificadores que usa toda la industria para nombrar y priorizar problemas: CWE, CVE y CVSS. Sin este mapa, un boletín de seguridad es ruido; con él, sabrás en treinta segundos si algo debe corregirse esta tarde o el mes que viene.

Contenido

  1. Taxonomía de amenazas por origen
  2. Taxonomía de amenazas por objetivo (contra qué propiedad atentan)
  3. Familias de malware: tabla comparativa
  4. Amenazas internas: el insider malicioso y el negligente
  5. Tipos de vulnerabilidades, con ejemplos del entorno de Nimbus
  6. El ecosistema de identificadores: CWE, CVE y CVSS
  7. Ventana de exposición y vulnerabilidades de día cero
  8. La cadena completa: amenaza + vulnerabilidad → riesgo

  1. Taxonomía de amenazas por origen

Clasificar las amenazas por su origen no es un ejercicio académico: cada origen se contrarresta con un tipo de control distinto. No se defiende igual un error de Sara que una inundación en el CPD del proveedor.

flowchart TD
    A[Amenazas] --> H[Humanas]
    A --> T[Tecnicas / fallos]
    A --> N[Naturales y del entorno]
    H --> HD[Deliberadas\nataque, fraude, sabotaje, robo]
    H --> HA[Accidentales\nerror, descuido, mala configuracion]
    T --> TF[Fallo de hardware o software\ncorrupcion, agotamiento, bugs]
    T --> TD[Dependencias externas\ncaida de proveedor, del cloud]
    N --> NE[Incendio, inundacion, corte electrico\ncorte de fibra, calor extremo]

1.1 Humanas deliberadas

Alguien actúa con intención de causar daño o de obtener un beneficio. Es la categoría que más atención recibe, aunque no siempre sea la más frecuente.

En Nimbus: un grupo de ransomware que llega a través de una credencial de la consultora externa; un competidor que intenta obtener la lista de clientes; un atacante oportunista cuyo bot detecta el puerto de PostgreSQL abierto.

Rasgo clave: hay un adversario adaptativo. Si cierras una puerta, prueba otra. Por eso los controles frente a amenazas deliberadas nunca son «de una vez»: requieren detección y respuesta continuas.

1.2 Humanas accidentales

Nadie quería hacer daño; alguien se equivocó. Estadísticamente, esta categoría causa una parte enorme de los incidentes reales.

En Nimbus:

  • Lucía marca el bucket S3 de adjuntos como público «un momento, para probar» y se le olvida revertirlo.
  • Iván sube por error un fichero .env con la cadena de conexión de producción al repositorio.
  • Rubén responde a un correo con un CSV adjunto de 400 clientes finales y se equivoca de destinatario en el autocompletado.
  • Sara envía la nómina de un empleado a otro por un fallo de plantilla de correo.

Rasgo clave: no se corrige «formando más» solamente. Se corrige haciendo que el error sea difícil de cometer: valores por defecto seguros, confirmaciones para acciones destructivas, escaneo automático de secretos en el repositorio.

1.3 Fallos técnicos

El sistema falla por sí mismo, sin actor humano detrás.

En Nimbus: un disco del servidor de base de datos que se degrada y corrompe páginas; una fuga de memoria que reinicia el contenedor de la API bajo carga; un bug en una librería que trunca los campos de texto; la caducidad no advertida del certificado TLS.

Rasgo clave: se contrarrestan con redundancia, monitorización y pruebas, no con controles de acceso.

1.4 Naturales y del entorno

Incendio, inundación, corte de suministro eléctrico, corte de fibra, temperatura excesiva. Para una empresa cloud como Nimbus estas amenazas se desplazan hacia el proveedor, pero no desaparecen: siguen existiendo para la oficina de Valencia, y siguen existiendo para el proveedor (que puede perder una zona de disponibilidad entera).

En Nimbus: una obra en la calle corta la fibra de la oficina; una caída regional del proveedor cloud deja la API sin servicio durante horas.

Origen ¿Hay intención? ¿Se adapta? Controles característicos
Humana deliberada Control de acceso, detección, respuesta a incidentes
Humana accidental No No Diseño a prueba de errores, formación, revisión por pares
Fallo técnico No No Redundancia, monitorización, pruebas, mantenimiento
Natural / entorno No No Continuidad de negocio, copias en otra ubicación, SAI

Un matiz importante: el impacto no depende del origen. Si Nimbus pierde su base de datos, da igual si fue ransomware, un disco roto o un DROP TABLE accidental: los clientes están igual de parados. Por eso los planes de recuperación (04-06) se diseñan por consecuencia, no por causa.


  1. Taxonomía de amenazas por objetivo

La segunda forma de clasificar es por la propiedad de la tríada CIA que atacan. Es útil porque conecta directamente con los controles de la lección anterior.

Objetivo Qué busca el atacante Ejemplos genéricos Traducción en Nimbus
Contra la confidencialidad Leer lo que no le corresponde Exfiltración de datos, interceptación de tráfico, acceso no autorizado, espionaje Descargar la tabla clientes_finales a través de un endpoint sin filtro de tenant
Contra la integridad Alterar datos o comportamiento Manipulación de registros, inyección de código, alteración de firmware, fraude Modificar el importe de una factura antes de que llegue a la pasarela
Contra la disponibilidad Impedir el uso legítimo Denegación de servicio, ransomware, borrado, sabotaje físico Saturar el endpoint de informes hasta reiniciar todos los contenedores

Muchas amenazas atacan varias propiedades a la vez. El ransomware moderno es el ejemplo perfecto: cifra los datos (disponibilidad), los copia antes de cifrarlos para extorsionar con su publicación (confidencialidad) y a veces los altera (integridad). Este modelo de «doble extorsión» es hoy la norma.

Una tercera clasificación que verás en la práctica, complementaria a las dos anteriores, es la de STRIDE —por propiedad violada— que usarás para modelar amenazas en la lección 01-04.


  1. Familias de malware: tabla comparativa

Malware (de malicious software) es el término paraguas para cualquier software cuya función es dañar, espiar o tomar control sin consentimiento. Las categorías no son excluyentes: una pieza real de malware suele ser un troyano que instala un rootkit y despliega un ransomware. Lo que distingue a cada familia es su mecanismo de propagación o su objetivo, no su forma.

Familia Qué la define Vector típico de entrada Impacto principal Propiedad CIA afectada
Virus Se inserta dentro de un fichero anfitrión; necesita que alguien lo ejecute Fichero infectado, macro de documento, USB Corrupción de ficheros, propagación local Integridad
Gusano (worm) Se propaga solo, sin intervención humana, explotando servicios en red Servicio expuesto sin parchear Propagación masiva, saturación de red Disponibilidad, integridad
Troyano Se disfraza de software legítimo y deseado Descarga de un instalador falso, adjunto, «actualización» Puerta de entrada para otras cargas Todas
Ransomware Cifra datos y exige rescate; hoy además los exfiltra Phishing, RDP/VPN con credencial robada, proveedor comprometido Parada total del negocio + extorsión Disponibilidad + confidencialidad
Spyware Recoge información del usuario y la envía fuera Software gratuito con carga añadida, extensión de navegador Fuga silenciosa y prolongada Confidencialidad
Keylogger Registra pulsaciones de teclado (variedad de spyware) Troyano previo, dispositivo físico USB Robo de credenciales y datos escritos Confidencialidad
Rootkit Se oculta a sí mismo y a otras cargas manipulando el sistema Post-explotación, tras conseguir privilegios Persistencia y evasión de detección Integridad, trazabilidad
Botnet (bot/agente) Convierte el equipo en un nodo controlado remotamente Cualquier infección previa Uso del equipo para ataques a terceros, spam, DDoS Disponibilidad (de terceros), reputación
Cryptominer Usa la CPU/GPU de la víctima para minar criptomonedas Contenedor o credencial cloud comprometida, dependencia maliciosa Factura cloud disparada, degradación del servicio Disponibilidad, coste

3.1 Los dos que más deberían preocupar a Nimbus

Ransomware. No porque Nimbus sea un objetivo elegido, sino porque el ransomware llega casi siempre por caminos genéricos: una credencial reutilizada de la consultora que da soporte remoto, un portátil de alguien en teletrabajo, un adjunto abierto por Sara. Los factores que determinan si una PYME sobrevive a un ransomware son tres y ninguno es un antivirus: copias fuera del alcance del atacante (inmutables u offline), segmentación (que un equipo comprometido no alcance los servidores) y un plan de respuesta ensayado (módulo 4).

Cryptominer en la nube. Es la amenaza más subestimada de una empresa como Nimbus. Si una clave de acceso al proveedor cloud aparece por error en un repositorio público de GitHub, hay bots que la detectan en cuestión de minutos y arrancan decenas de máquinas de cómputo. El primer síntoma no es una alerta de seguridad: es una factura de 14.000 € a final de mes. Y hay un daño extra: si Nimbus no se entera, no sabe qué más hizo esa clave.

3.2 Nota importante sobre el enfoque

Este curso es defensivo. En ningún momento vamos a escribir, compilar ni distribuir malware, ni analizar muestras reales fuera de un entorno controlado. Lo que necesitas saber como profesional es cómo entra, qué hace y cómo se detecta y se contiene. La detección se trata en 05-02 y la contención en 04-05.


  1. Amenazas internas: el insider malicioso y el negligente

Una amenaza interna (insider threat) es la que procede de alguien que ya tiene acceso legítimo: empleados, ex empleados, becarios, contratistas y —muy relevante en Nimbus— la consultora externa con acceso remoto a sistemas.

Son especialmente difíciles porque el atacante no necesita entrar: ya está dentro, sus credenciales son válidas y sus acciones se parecen a su trabajo diario.

Insider malicioso Insider negligente
Intención Sí: beneficio, venganza, ideología, coacción No: prisa, desconocimiento, atajo
Frecuencia Baja Alta
Detección Difícil: intenta ocultarse Más fácil: no oculta el rastro
Ejemplo en Nimbus Un comercial descontento exporta la cartera de clientes antes de irse a la competencia Rubén reenvía a su correo personal un listado de clientes para trabajar el fin de semana
Controles eficaces Mínimo privilegio, separación de funciones, alertas por volumen anómalo, revocación inmediata en la baja Formación, DLP, valores por defecto seguros, restricciones técnicas de exportación

Existe además una tercera figura: el insider comprometido. No es malicioso ni negligente de forma relevante: simplemente le han robado las credenciales. Desde el punto de vista del sistema, la actividad del atacante es indistinguible de la de un empleado legítimo — por eso importa tanto la trazabilidad de la lección anterior y la detección de anomalías de comportamiento.

El caso Nimbus a vigilar: la consultora de sistemas tiene acceso remoto con privilegios elevados. Es un insider a efectos prácticos, pero está fuera del control de RRHH: Nimbus no sabe quién trabaja allí, cuándo alguien se va de esa consultora ni si comparten credenciales. El riesgo de terceros se desarrolla en la lección 04-04; anótalo desde ya como una de las tres o cuatro exposiciones mayores de la empresa.


  1. Tipos de vulnerabilidades, con ejemplos del entorno de Nimbus

Recuerda la definición: una vulnerabilidad es una debilidad que una amenaza puede aprovechar. A diferencia de la amenaza, está en tu lado y por tanto la puedes cerrar. Se clasifican así:

Tipo Origen de la debilidad Ejemplos genéricos Ejemplo real en Nimbus
De software Bug en el código propio o en una dependencia Inyección SQL, desbordamiento de búfer, deserialización insegura Una dependencia de FastAPI sin actualizar con un fallo conocido de análisis de peticiones
De configuración El software es correcto; está mal ajustado Servicios por defecto activos, permisos amplios, credenciales por defecto El bucket S3 de adjuntos con lectura pública
Criptográfica Se usa cifrado, pero mal Algoritmo obsoleto, clave corta, IV reutilizado, certificado autofirmado aceptado Contraseñas guardadas con MD5 sin sal en una tabla antigua
De diseño / arquitectura El fallo está en la concepción, no en el código Falta de segmentación, confianza implícita entre servicios, ausencia de límites de uso El servidor de PostgreSQL accesible desde toda la VPC, no solo desde la API
Humana / de proceso La debilidad está en las personas o en cómo se trabaja Falta de formación, ausencia de procedimiento de baja, aprobaciones informales No hay proceso de revocación de accesos cuando alguien deja la empresa
Física Acceso al soporte o al equipo Sala de servidores sin control, portátil sin cifrar, documentos en papel Portátiles sin cifrado de disco en manos de la mitad de la plantilla en remoto

5.1 Tres vulnerabilidades de Nimbus, explicadas

a) El bucket S3 de adjuntos accesible públicamente (configuración)

# Comprobacion realizada por Lucia SOBRE SU PROPIO bucket
aws s3api get-public-access-block --bucket nimbus-adjuntos-prod
An error occurred (NoSuchPublicAccessBlockConfiguration) when calling
the GetPublicAccessBlock operation: The public access block configuration
was not found

Cómo se lee esa salida: el error no dice «no tienes permiso», dice que no existe una configuración de bloqueo de acceso público. Es decir, nada impide que una política o una ACL abran el bucket al mundo. En un bucket que guarda partes médicos escaneados de pacientes de clínicas, esto es una vulnerabilidad crítica. La corrección inmediata:

aws s3api put-public-access-block \
  --bucket nimbus-adjuntos-prod \
  --public-access-block-configuration \
    "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"

Los cuatro parámetros cubren dos vías distintas de exposición: las ACL heredadas (los dos primeros) y las políticas de bucket (los dos últimos). Activar solo dos de los cuatro deja la puerta entreabierta.

b) Una dependencia sin actualizar (software)

# Auditoria de dependencias del proyecto de Ivan
pip list --outdated --format=columns
Package      Version  Latest  Type
------------ -------- ------- -----
cryptography 41.0.3   43.0.1  wheel
requests     2.28.1   2.32.3  wheel
pyjwt        2.4.0    2.9.0   wheel

Cada línea es una vulnerabilidad potencial: estar desactualizado no implica ser vulnerable, pero sí que no te has enterado si lo eres. pyjwt es el más preocupante aquí, porque es la librería que valida los tokens de sesión de la API: un fallo de validación en la librería de tokens equivale a un fallo de autenticación en toda la aplicación. Las herramientas que cruzan estas versiones con bases de vulnerabilidades conocidas se ven en 05-01.

c) El puerto de la base de datos expuesto (diseño/configuración)

# Ejecutado por Lucia en el servidor de base de datos de Nimbus
ss -tlnp | grep 5432
LISTEN 0  244  0.0.0.0:5432  0.0.0.0:*  users:(("postgres",pid=812,fd=7))

Cómo se lee: 0.0.0.0:5432 significa que PostgreSQL escucha en todas las interfaces de red, no solo en la privada. Si el grupo de seguridad del proveedor cloud permitiera entrada en ese puerto desde 0.0.0.0/0, la base de datos de Nimbus estaría escuchando a Internet. Lo correcto sería ver 10.0.2.15:5432 (solo la red interna) o 127.0.0.1:5432 (solo local). El diagnóstico completo requiere mirar dos capas: la del sistema (ss) y la del cortafuegos del proveedor.

5.2 La lección transversal

Fíjate en un patrón: de las tres vulnerabilidades, dos son de configuración, no de código. En organizaciones como Nimbus, la mayoría de brechas reales no vienen de un fallo exótico en una librería, sino de algo mal configurado, olvidado o abierto «temporalmente». Es una buena noticia: son las más baratas de cerrar.


  1. El ecosistema de identificadores: CWE, CVE y CVSS

Cuando llega un aviso de seguridad, viene lleno de siglas. Cada una responde a una pregunta distinta.

flowchart LR
    CWE["CWE-89\nQUE CLASE de fallo es\n(inyeccion SQL)"] --> CVE["CVE-2026-01234\nQUE INSTANCIA concreta\n(en el producto X version Y)"]
    CVE --> CVSS["CVSS 9.8\nCUAN GRAVE es\n(puntuacion y vector)"]
    CVSS --> DEC["Decision:\ncuando lo corrijo"]
Sigla Significa Responde a Naturaleza Ejemplo
CWE Common Weakness Enumeration ¿De qué clase de debilidad se trata? Catálogo de tipos, estable CWE-89: Inyección SQL
CVE Common Vulnerabilities and Exposures ¿Qué vulnerabilidad concreta en qué producto y versión? Identificador único de un caso CVE-2026-01234
CVSS Common Vulnerability Scoring System ¿Cuál es su severidad? Puntuación de 0.0 a 10.0 + vector 9.8 (Crítica)

Relación en una frase: una CVE es una instancia concreta de una clase de debilidad (CWE) presente en un producto, y su gravedad se expresa con CVSS.

6.1 Anatomía de una ficha CVE

Así es como se lee una ficha (ejemplo ficticio, construido para esta lección sobre un componente hipotético que Nimbus usaría):

=====================================================================
CVE-2026-01234
=====================================================================
Descripcion:
  La libreria de ejemplo "reservalib" en versiones anteriores a la
  3.4.2 no valida correctamente el parametro de ordenacion recibido
  en peticiones HTTP, permitiendo a un atacante remoto no autenticado
  inyectar clausulas SQL arbitrarias en la consulta generada.

Debilidad:      CWE-89 (Improper Neutralization of Special Elements
                used in an SQL Command)
Productos:      reservalib >= 3.0.0, < 3.4.2
Publicado:      2026-05-11
Modificado:     2026-05-19

CVSS v3.1:      9.8 CRITICO
Vector:         CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Estado del parche:  Disponible en 3.4.2
Explotacion activa: Si (exploit publico desde 2026-05-14)
Mitigacion temporal: Restringir el parametro "order_by" a una lista
                blanca de columnas permitidas en el proxy inverso.
=====================================================================

Cómo lo interpreta Iván en cinco pasos:

  1. ¿Me afecta? Mira el rango de versiones. Si Nimbus usa reservalib 3.2.0, está en el rango: sí afecta. Este paso es imposible sin inventario de dependencias (SBOM), que veremos en 04-04.
  2. ¿Qué clase de fallo es? CWE-89, inyección SQL. Eso le dice qué buscar en el código y qué mitigación temporal tiene sentido.
  3. ¿Cuán grave? 9.8, crítico. Y el detalle importa más que el número: lo descompone en el siguiente apartado.
  4. ¿Se está explotando? «Exploit público desde el 14». Esto cambia la urgencia radicalmente: no es lo mismo un 9.8 teórico que un 9.8 con herramienta automatizada circulando.
  5. ¿Qué hago mientras actualizo? La mitigación temporal permite ganar horas si el despliegue no puede ser inmediato.

6.2 Cómo se lee un vector CVSS

El vector es la parte que casi nadie mira y la que más información aporta. Tomemos el del ejemplo:

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Se lee de izquierda a derecha; cada par es Métrica:Valor.

Métrica Significa Valores posibles En nuestro ejemplo
AVAttack Vector Desde dónde se puede atacar Network, Adjacent, Local, Physical N: desde Internet, lo peor
ACAttack Complexity Cuántas condiciones especiales hacen falta Low, High L: no hace falta nada especial
PRPrivileges Required Qué privilegios necesita el atacante None, Low, High N: ni siquiera cuenta
UIUser Interaction ¿Tiene que colaborar una víctima? None, Required N: nadie tiene que hacer clic
SScope ¿El impacto salta a otro componente? Unchanged, Changed U: se queda en el componente
CConfidentiality Impacto en confidencialidad None, Low, High H: alto
IIntegrity Impacto en integridad None, Low, High H: alto
AAvailability Impacto en disponibilidad None, Low, High H: alto

Las cuatro primeras métricas describen lo fácil que es explotarlo; las tres últimas, lo que consigue el atacante. Nuestro vector dice, en lenguaje llano: cualquiera desde Internet, sin cuenta, sin engañar a nadie y sin condiciones especiales, obtiene acceso total de lectura, escritura y capacidad de tumbar el servicio. De ahí el 9.8.

Compáralo con otro vector muy distinto que también podría aparecer en un boletín:

CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:L/I:N/A:N   -->  2.0 BAJO

Traducción: hace falta estar en la máquina físicamente o con sesión local, ser administrador, que además otro usuario haga algo concreto, y aun así solo se obtiene una filtración parcial de información. Mismo tipo de documento, urgencia radicalmente distinta.

Rangos de puntuación (CVSS v3.x):

Puntuación Severidad Interpretación práctica para Nimbus
0.0 Ninguna Informativo
0.1 – 3.9 Baja Planificar; entra en el ciclo normal de mantenimiento
4.0 – 6.9 Media Corregir en el sprint; semanas
7.0 – 8.9 Alta Corregir en días; valorar mitigación temporal
9.0 – 10.0 Crítica Corregir de inmediato; activar procedimiento urgente

6.3 La advertencia más importante sobre CVSS

La puntuación base de CVSS no es tu riesgo. Es una medida de severidad técnica en abstracto, sin conocer tu entorno. Dos matices que cambian todo:

  • Una vulnerabilidad crítica (9.8) en un componente que Nimbus tiene apagado o inaccesible desde fuera puede ser un riesgo bajo para Nimbus.
  • Una vulnerabilidad media (6.5) en el componente que autentica a todos los usuarios, con exploit público y expuesta a Internet, puede ser el riesgo más urgente de la semana.

Por eso las organizaciones maduras priorizan combinando CVSS + explotación activa conocida + exposición real del activo + criticidad del activo. Existen métricas complementarias para esto (temporales, ambientales, y sistemas como EPSS que estiman probabilidad de explotación); el cálculo formal del riesgo se aborda en 04-01.


  1. Ventana de exposición y vulnerabilidades de día cero

La ventana de exposición es el tiempo durante el cual una vulnerabilidad existe en tus sistemas y puede ser aprovechada. Es la métrica que de verdad importa, porque es la que puedes reducir.

flowchart LR
    T1["1. SE INTRODUCE\nEl fallo entra en el codigo\no en la configuracion"] --> T2
    T2["2. SE DESCUBRE\nAlguien lo encuentra:\ninvestigador... o atacante"] --> T3
    T3["3. SE PUBLICA\nSe asigna CVE\ny se hace publico"] --> T4
    T4["4. HAY PARCHE\nEl fabricante publica\nla correccion"] --> T5
    T5["5. TU LO APLICAS\nEl parche llega\na TUS sistemas"]
    T2 -.->|"ventana de 0-day\n(no hay parche)"| T4
    T4 -.->|"ventana de n-day\n(hay parche, no aplicado)"| T5

Sobre esa línea temporal se definen dos conceptos:

  • Vulnerabilidad de día cero (0-day): aquella que es conocida y aprovechada por atacantes antes de que exista parche (a menudo antes de que el fabricante siquiera lo sepa). Se llama «día cero» porque el defensor tiene cero días para prepararse. Contra un 0-day no sirve parchear —no hay parche—; sirven la defensa en profundidad, la segmentación y la detección de comportamiento anómalo.
  • Vulnerabilidad de n-day: la que ya tiene parche publicado pero sigue sin aplicarse. Es, con diferencia, la más explotada en la práctica: los atacantes automatizan la búsqueda de sistemas sin parchear porque saben exactamente qué buscar y cómo.

El dato que cambia prioridades: un 0-day es caro, escaso y se reserva para objetivos valiosos. Una PYME como Nimbus casi nunca es víctima de un 0-day; es víctima de un n-day de hace ocho meses en un servicio expuesto. Por eso el control con mejor relación coste-beneficio en Nimbus no es una herramienta sofisticada de detección: es un proceso disciplinado de actualización.

Cómo se reduce la ventana en Nimbus:

Acción Efecto sobre la ventana Coste
Inventario de dependencias actualizado Permite saber si te afecta, en minutos en vez de días Bajo
Escaneo automático en CI/CD Detecta la vulnerabilidad al construir, no meses después Bajo
Actualizaciones automáticas de parches menores Elimina la latencia humana Medio (riesgo de regresión)
Suscripción a los avisos de sus proveedores Enterarse el día 0 y no el día 30 Muy bajo
Capacidad de desplegar en menos de una hora Convierte «tenemos que esperar a la ventana de release» en «lo hacemos ya» Requiere CI/CD maduro

  1. La cadena completa: amenaza + vulnerabilidad → riesgo

Todo lo anterior se une en una sola cadena causal. Este diagrama es el resumen de la lección:

flowchart LR
    ACT["ACTOR DE AMENAZA\nGrupo de ransomware\noportunista"] --> AME["AMENAZA\nCifrado y exfiltracion\nde datos"]
    AME --> EXP["EXPLOTA mediante EXPLOIT\nScript automatizado de\ncredenciales por defecto"]
    VUL["VULNERABILIDAD\nPuerto 5432 expuesto\ncon password debil"] --> EXP
    EXP --> ACTIVO["ACTIVO\nBase de datos\nde reservas"]
    ACTIVO --> IMP["IMPACTO\nParada 2 dias, notificacion\na la AEPD, perdida de clientes"]
    IMP --> RIE{{"RIESGO\nprobabilidad x impacto\n= ALTO"}}
    CTRL["CONTROLES\nCerrar puerto, VPN,\ncredenciales unicas, alertas"] -.reduce.-> VUL
    CTRL -.reduce.-> IMP

Tres lecturas que deberías extraer de este diagrama:

  1. La amenaza no se elimina; la vulnerabilidad sí. No hay ningún control que hagas en Nimbus que haga desaparecer a los grupos de ransomware. Todos tus controles actúan sobre la caja de la izquierda-abajo (vulnerabilidad) o sobre la de la derecha (impacto).
  2. Sin vulnerabilidad no hay riesgo, por mucha amenaza que haya. Y sin amenaza tampoco: una vulnerabilidad en un sistema completamente aislado y sin valor tiene riesgo cercano a cero. Ambas casillas deben estar llenas.
  3. Hay dos formas de reducir el riesgo. Reducir la probabilidad (cerrar la vulnerabilidad) o reducir el impacto (copias de seguridad, segmentación, seguro, plan de respuesta). Cuando no puedes hacer lo primero —caso del 0-day—, todavía te queda lo segundo. De hecho, las organizaciones que sobreviven a incidentes graves suelen haber invertido en la segunda columna.

Nada de esto se convierte todavía en un número. Cuantificar probabilidad e impacto en una matriz, decidir qué se acepta y qué se mitiga y con qué presupuesto, es el trabajo de la lección 04-01.


Errores Comunes y Consejos

Errores comunes:

  • Tratar CVSS como si fuera riesgo. Es el error más extendido. Un 9.8 en un componente que no usas no debe desplazar a un 6.5 en tu sistema de autenticación expuesto a Internet.
  • Ignorar el vector y mirar solo el número. El vector te dice si necesitas privilegios, interacción de usuario o acceso local — información que a menudo descarta la vulnerabilidad para tu caso.
  • Obsesionarse con los 0-day. Consumen atención desproporcionada. La inmensa mayoría de compromisos reales en PYMES usan vulnerabilidades con parche disponible desde hace meses.
  • Pensar que el malware entra «por virus del correo». Hoy entra mayoritariamente por credenciales válidas robadas y por accesos de terceros. Es una diferencia que cambia dónde inviertes.
  • Confundir CVE con CWE. Si en un informe escribes «tenemos la CWE-2026-01234», estás mezclando: las CWE no llevan año.
  • Olvidar las vulnerabilidades humanas y de proceso. No aparecen en ningún escáner y son las que permiten los incidentes más caros: no revocar accesos en una baja, no tener procedimiento de aprobación de pagos.
  • Suponer que «la nube lo parchea todo». El proveedor parchea su infraestructura; las imágenes de contenedor, las dependencias de Iván y la configuración de Lucía son de Nimbus.

Consejos:

  • Al leer un aviso, hazte siempre las cinco preguntas del apartado 6.1 y en ese orden. La primera («¿me afecta?») descarta la mayoría.
  • Escribe tus hallazgos con la cadena del apartado 8: actor → amenaza → vulnerabilidad → activo → impacto → control. Un hallazgo al que le falta una casilla suele estar mal planteado.
  • Prioriza por exposición antes que por severidad: lo que da a Internet, primero.
  • Automatiza el inventario de dependencias antes que el escaneo: no se puede priorizar lo que no sabes que tienes.

Ejercicios

Ejercicio 1 — Clasificar amenazas por origen y objetivo

Para cada situación de Nimbus, indica (a) el origen de la amenaza (humana deliberada, humana accidental, fallo técnico, natural/entorno) y (b) el objetivo en términos de la tríada CIA:

  1. Iván sube al repositorio público de GitHub, por error, un fichero con la clave de acceso al proveedor cloud; 11 minutos después hay 30 máquinas de cómputo arrancadas minando criptomonedas.
  2. Una obra en la calle de la oficina de Valencia corta la fibra durante 8 horas.
  3. Un antiguo desarrollador, cuya cuenta nunca se desactivó, accede al repositorio y modifica un script de facturación para que redondee los importes a su favor.
  4. Un disco del servidor de base de datos empieza a devolver errores de lectura y algunas filas de la tabla reservas quedan ilegibles.

Ejercicio 2 — Leer un vector CVSS y decidir la prioridad

Llegan a Lucía tres avisos el mismo lunes. Ordénalos por urgencia real para Nimbus y justifica tu orden, indicando qué significa cada vector.

# Componente Vector CVSS Puntuación Situación en Nimbus
A Servidor de correo interno CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 9.8 Servicio desmantelado hace un año; el paquete sigue instalado pero el servicio está parado y el puerto cerrado
B Librería de validación de JWT CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N 8.2 En uso en la API pública; exploit público disponible
C Cliente de base de datos (CLI) CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:L/I:N/A:N 2.0 Instalado en el portátil de Lucía

Ejercicio 3 — Identificar el tipo de vulnerabilidad y proponer control

Para cada hallazgo de una revisión interna de Nimbus, indica el tipo de vulnerabilidad (software / configuración / criptográfica / diseño / humana / física) y propón un control que la reduzca. Después, redacta el hallazgo 4 con la cadena completa del apartado 8.

  1. La tabla usuarios_legacy guarda contraseñas con MD5 sin sal.
  2. El grupo de seguridad de la base de datos permite entrada en el puerto 5432 desde 0.0.0.0/0.
  3. Cuando alguien deja Nimbus, Sara avisa por chat «cuando puedas, quítale los accesos» y no hay lista de sistemas a revisar.
  4. Los portátiles de los 19 empleados en remoto no tienen cifrado de disco activado.

Soluciones

Solución 1

  1. Origen: humana accidental (el error de Iván) — aunque la explotación posterior sea humana deliberada. Es importante ver la cadena: una amenaza deliberada aprovecha una vulnerabilidad creada accidentalmente. Objetivo: principalmente disponibilidad (recursos consumidos, degradación del servicio y coste), pero debe asumirse también compromiso de confidencialidad: esa clave pudo hacer mucho más que minar, y hasta revisar el registro de actividad del proveedor no se sabe.
  2. Origen: natural/entorno. Objetivo: disponibilidad — de la oficina. Como la mitad de la plantilla ya trabaja en remoto y los sistemas están en la nube, el impacto sobre el servicio a clientes es bajo: un buen ejemplo de que la arquitectura ya actúa como control.
  3. Origen: humana deliberada, insider (concretamente ex empleado con acceso no revocado; la vulnerabilidad de fondo es humana/de proceso). Objetivo: integridad en primer lugar (alteración de la lógica de facturación) y, de forma derivada, fraude económico. Si además leyó datos, hay confidencialidad.
  4. Origen: fallo técnico. Objetivo: integridad (datos corruptos) y, si el servidor deja de responder, disponibilidad. Nadie ataca a nadie y el daño es real: recuerda que el impacto no depende del origen.

Solución 2

Orden de urgencia: B → C → A.

  • B, primero. Vector: AV:N (desde Internet), AC:L (sin condiciones especiales), PR:N (sin cuenta previa), UI:N (sin engañar a nadie), C:H (fuga alta), I:L, A:N. Aunque su puntuación (8.2) es menor que la de A, es la única que combina exposición real + componente crítico + exploit público. Es la librería que valida las sesiones de la API pública de Nimbus: un fallo aquí es un fallo de autenticación de todo el producto. Se corrige hoy, con mitigación temporal si el despliegue tarda.
  • C, segundo. Vector: AV:L (hace falta acceso local), AC:H (condiciones difíciles), PR:H (ser administrador), UI:R (necesita que alguien colabore), C:L (fuga menor). Un atacante que ya sea administrador del portátil de Lucía tiene problemas mucho mayores que este. Entra en el ciclo normal de actualización. Va antes que A solo porque el componente sí está en uso.
  • A, último, pese al 9.8. El componente está desmantelado: el servicio no corre y el puerto está cerrado. Sin exposición no hay explotación posible. Ahora bien, no es «no hacer nada»: la acción correcta es desinstalar el paquete, porque un servicio olvidado que alguien reactive por descuido convierte un riesgo nulo en un riesgo crítico. Este ejercicio es exactamente el caso que ilustra por qué CVSS no es riesgo.

Solución 3

  1. Criptográfica. MD5 es una función rota para este uso y, sin sal, permite el uso de tablas precalculadas. Control: migrar a un algoritmo de derivación de contraseñas con factor de coste (bcrypt, scrypt o Argon2) rehaciendo el hash en el siguiente inicio de sesión de cada usuario, y eliminar la tabla legacy cuando esté vacía. El detalle técnico se ve en 03-04.
  2. De configuración (con un componente de diseño: no debería existir la posibilidad de abrirlo a Internet). Control: restringir el origen al rango privado de la VPC o al grupo de seguridad de la API; acceso administrativo solo por VPN o bastión; alerta automática si la regla vuelve a abrirse.
  3. Humana / de proceso. Control: procedimiento formal de baja (offboarding) con lista cerrada de sistemas —proveedor cloud, GitHub, correo, VPN, gestor de contraseñas, herramienta de soporte—, plazo máximo de revocación (mismo día), responsable asignado y registro de la ejecución. Idealmente, cuentas centralizadas para que una única desactivación corte todos los accesos.
  4. Física (con componente de configuración). Control: cifrado de disco completo obligatorio y verificado de forma centralizada, con custodia de las claves de recuperación.

Hallazgo 4 redactado con la cadena completa:

Actor de amenaza: delincuencia común oportunista (robo o pérdida de equipos). Amenaza: acceso al contenido del disco de un portátil sustraído. Vulnerabilidad: ausencia de cifrado de disco completo en los 19 portátiles del personal en remoto. Activo: información local de esos equipos — exportaciones de clientes finales, credenciales guardadas en el navegador, claves SSH de acceso a la infraestructura. Exploit: no requiere ninguno sofisticado: basta con arrancar desde un medio externo o extraer el disco. Impacto: fuga de datos personales (posiblemente de salud, en el caso de exportaciones de clínicas), acceso potencial a la infraestructura mediante las claves almacenadas, y probable obligación de notificación a la autoridad de control. Riesgo: alto, por la elevada probabilidad de pérdida o robo en movilidad y el impacto severo. Controles: cifrado de disco completo obligatorio, borrado remoto, expiración de sesiones, prohibición de almacenar exportaciones locales y uso de claves de infraestructura con frase de paso y vigencia corta.

Nota sobre implicaciones legales: la obligación de notificar una brecha de datos personales, sus plazos y sus destinatarios dependen de la naturaleza de los datos y del caso concreto. Las referencias de este curso son orientativas y con fines formativos: valida siempre estas decisiones con el responsable de cumplimiento o con un profesional del ámbito jurídico.


Conclusión

Ahora tienes el mapa. Sabes clasificar amenazas por origen —humanas deliberadas, humanas accidentales, fallos técnicos y del entorno— y por objetivo según qué propiedad de la tríada CIA atacan, y has comprobado que el impacto no depende del origen: un DROP TABLE accidental y un ransomware dejan a los clientes de Nimbus igual de parados. Has recorrido las familias de malware distinguiéndolas por su mecanismo de propagación, y has identificado las dos que más deberían preocupar a una PYME como Nimbus: el ransomware que entra por credenciales válidas y el cryptominer que llega por una clave cloud filtrada. Has visto que las amenazas internas se dividen en maliciosas, negligentes y comprometidas, y que la consultora externa con acceso remoto es, en la práctica, un insider fuera del alcance de RRHH.

En el lado de las debilidades has repasado los seis tipos de vulnerabilidad con casos concretos de Nimbus —el bucket sin bloqueo de acceso público, la librería de tokens sin actualizar, PostgreSQL escuchando en 0.0.0.0— y has extraído la lección que más rentabilidad da: la mayoría de las brechas reales nacen de configuración, no de código exótico. Y has aprendido a leer el lenguaje común de la industria: CWE para la clase, CVE para la instancia, CVSS para la severidad, descomponiendo el vector métrica a métrica y entendiendo por qué una puntuación de 9.8 no siempre gana a una de 8.2. Cierras con la distinción entre 0-day y n-day, y con la idea de que la ventana de exposición es la variable sobre la que de verdad puedes actuar.

Sabes qué te puede pasar y por dónde. Falta saber cómo se construye un sistema para que eso no pase. En la siguiente lección, Principios de la Seguridad Informática (01-03), veremos las reglas de diseño que guiarán todas las decisiones del resto del curso: mínimo privilegio, defensa en profundidad, fallo seguro, separación de funciones, confianza cero y la mentalidad de «asume la brecha» — cada una aplicada a una decisión real de la arquitectura de Nimbus.

Curso de Fundamentos de Seguridad Informática

Módulo 1: Introducción a la Seguridad Informática

Módulo 2: Ciberseguridad

Módulo 3: Criptografía

Módulo 4: Gestión de Riesgos y Medidas de Protección

Módulo 5: Herramientas y Técnicas de Seguridad

Módulo 6: Buenas Prácticas y Normativas

Módulo 7: Proyecto Final

© Copyright 2026. Todos los derechos reservados