Skip to main content

Threat Modeling

Threat Modeling es una práctica fundamental para incorporar la seguridad desde las fases iniciales de diseño de un sistema. Su objetivo es analizar de manera estructurada los riesgos potenciales y las vulnerabilidades, permitiendo planificar defensas antes de que los problemas puedan manifestarse.

What is Threat Modeling?

Threat Modeling responde a preguntas clave de seguridad en el desarrollo de software:

  1. ¿Qué se está construyendo? Identificar los activos clave (datos, sistemas, procesos) y comprender cómo interactúan los componentes del sistema.
  2. ¿Qué podría salir mal? Identificar posibles amenazas que puedan explotar vulnerabilidades o debilidades en el diseño.
  3. ¿Qué se está haciendo para mitigarlo? Diseñar y aplicar controles de seguridad para prevenir, detectar o responder a las amenazas.
  4. ¿Se ha hecho lo suficiente? Validar que los controles implementados son adecuados y evaluar el riesgo residual.

Threat Modeling is an iterative process. A medida que el sistema evoluciona, es importante revisar y actualizar el modelo con los nuevos cambios.

Advantages of Threat Modeling

  1. Reducción de riesgos: Identificar vulnerabilidades en fases tempranas del desarrollo permite abordarlas antes de la puesta en producción, optimizando recursos y tiempo.
  2. Defensas proactivas: Facilita la planificación de medidas de mitigación antes de que ocurran incidentes.
  3. Mejora la colaboración: Fomenta la comunicación entre desarrolladores, equipos de seguridad y otras partes interesadas.
  4. Cumplimiento normativo: Apoya el cumplimiento de estándares y regulaciones como ISO 27001, GDPR o NIST.
  5. Optimización del desarrollo: Contribuye a un diseño más robusto desde el inicio, reduciendo la necesidad de retrabajos.

Methodologies in Threat Modeling

Las metodologías son guías estructuradas para llevar a cabo Threat Modeling. Cada una tiene un enfoque diferente y puede ser más adecuada según las necesidades del proyecto. A continuación, se describen algunas de las utilizadas en la herramienta Threat Dragon:

STRIDE

STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) es una metodología desarrollada por Microsoft que clasifica las amenazas en seis categorías principales, orientada a proteger la funcionalidad y los datos de los sistemas.

  1. **Spoofing: **

    • Threat: An attacker impersonates another legitimate identity on the system.
    • Example: Unauthorized access through stolen credentials.
    • Controles habituales: Autenticación robusta, gestión de identidades y políticas de acceso.
  2. **Tampering: **

    • Threat: Malicious alteration of data or processes in the system.
    • Ejemplo: Modificación de un archivo de configuración para deshabilitar controles de seguridad.
    • Controles habituales: Firmas digitales, validación de integridad y mecanismos de verificación.
  3. Repudiation:

    • Threat: Denial of actions performed in the system by a user.
    • Ejemplo: Un usuario que niega haber realizado una acción específica.
    • Controles habituales: Registro de auditorías y técnicas de no repudio.
  4. Information Disclosure:

    • Threat: Unauthorized exposure of sensitive information.
    • Ejemplo: Datos confidenciales transmitidos sin cifrado.
    • Controles habituales: Cifrado en tránsito y en reposo, y políticas de privacidad.
  5. Denial of Service:

    • Threat: Interruption of legitimate access to the system.
    • Ejemplo: Ataques que afectan la disponibilidad de un servicio.
    • Controles habituales: Escalabilidad, balanceo de carga y mitigación de ataques.
  6. Elevation of Privilege:

    • Threat: An attacker obtains more privileges than he should have.
    • Ejemplo: Un usuario con permisos limitados accediendo a funciones administrativas.
    • Controles habituales: Separación de roles y control de accesos.

LINDDUN

LINDDUN (Linkability, Identifiability, Non-repudiation, Detectability, Disclosure of information, Unawareness, Non-compliance) es una metodología orientada a identificar amenazas relacionadas con la privacidad en los sistemas.

  1. Linkability:

    • Threat: Linking data that should remain separate.
    • Ejemplo: Asociar registros de usuarios anónimos a una identidad específica.
    • Controles habituales: Separación de datos y técnicas de anonimización.
  2. Identifiability:

    • Threat: Identifying an individual from anonymous data.
    • Ejemplo: Inferir la identidad de un usuario a partir de metadatos.
    • Controles habituales: Pseudonimización y reducción de metadatos.
  3. Non-repudiation:

    • Threat: Denial of actions related to personal data.
    • Example: A user who denies having consented to the use of his data.
    • Controles habituales: Auditorías de consentimiento y registros claros.
  4. Detectability:

    • Threat: Possibility of identifying the presence of a subject in the system.
    • Example: Identify users by access patterns.
    • Controles habituales: Gestión de accesos y análisis de patrones anónimos.
  5. Disclosure of Information:

    • Threat: Leakage of sensitive data.
    • Ejemplo: Exposición de datos personales por una configuración incorrecta.
    • Controles habituales: Cifrado y políticas de acceso.
  6. Unawareness:

    • Amenaza: Los usuarios no comprenden cómo se usan sus datos.
    • Ejemplo: Falta de información sobre el procesamiento de datos personales.
    • Controles habituales: Transparencia y políticas claras.
  7. Non-compliance:

    • Threat: Non-compliance with regulations or standards.
    • Ejemplo: Almacenamiento de datos sin cumplir con normativas aplicables.
    • Controles habituales: Evaluaciones regulares y cumplimiento normativo.

CIA

La metodología CIA (Confidentiality, Integrity, Availability) se centra en los tres principios fundamentales de la seguridad de la información.

  1. Confidentiality:

    • Ensure that only authorized persons can access the information.
    • Controles habituales: Cifrado, autenticación y control de accesos.
  2. Integrity:

    • Ensure that data is not altered in an unauthorized manner.
    • Controles habituales: Hashing, validación de datos y registros inmutables.
  3. Availability:

    • Garantizar que los sistemas y datos estén accesibles para los usuarios autorizados.
    • Controles habituales: Alta disponibilidad, balanceo de carga y planes de recuperación.

DIE

DIE (Distributed, Immutable, Ephemeral) es una metodología adaptada a arquitecturas modernas y entornos en la nube.

  1. Distributed:

    • Systems designed to operate without a single point of failure.
    • Controles habituales: Réplicas y arquitecturas distribuidas.
  2. Immutable:

    • Systems do not change after deployment.
    • Controles habituales: Contenedores y despliegues inmutables.
  3. Ephemeral:

    • The systems have short useful lives and are destroyed after use.
    • Controles habituales: Autoscaling y rotación de recursos.

PLOT4ai

PLOT4ai (Privacy, Liveness, Ownership, Transparency for AI) está orientada a abordar desafíos de privacidad y ética en sistemas de inteligencia artificial.

  1. Privacy:

    • Protect the data used by the models.
    • Controles habituales: Anonimización y técnicas federadas.
  2. Liveness:

    • Mantener los sistemas y modelos actualizados.
    • Controles habituales: Actualización continua de modelos.
  3. Ownership:

    • Define rights over data and models.
    • Controles habituales: Contratos claros y auditorías.
  4. Transparency:

    • Asegurar que las decisiones de los sistemas sean comprensibles para los usuarios.
    • Controles habituales: Modelos interpretables y explicabilidad.