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.
¿Qué es Threat Modeling?
Threat Modeling responde a preguntas clave de seguridad en el desarrollo de software:
- ¿Qué se está construyendo? Identificar los activos clave (datos, sistemas, procesos) y comprender cómo interactúan los componentes del sistema.
- ¿Qué podría salir mal? Identificar posibles amenazas que puedan explotar vulnerabilidades o debilidades en el diseño.
- ¿Qué se está haciendo para mitigarlo? Diseñar y aplicar controles de seguridad para prevenir, detectar o responder a las amenazas.
- ¿Se ha hecho lo suficiente? Validar que los controles implementados son adecuados y evaluar el riesgo residual.
Threat Modeling es un proceso iterativo. A medida que el sistema evoluciona, es importante revisar y actualizar el modelo con los nuevos cambios.
Ventajas de Threat Modeling
- Reducción de riesgos: Identificar vulnerabilidades en fases tempranas del desarrollo permite abordarlas antes de la puesta en producción, optimizando recursos y tiempo.
- Defensas proactivas: Facilita la planificación de medidas de mitigación antes de que ocurran incidentes.
- Mejora la colaboración: Fomenta la comunicación entre desarrolladores, equipos de seguridad y otras partes interesadas.
- Cumplimiento normativo: Apoya el cumplimiento de estándares y regulaciones como ISO 27001, GDPR o NIST.
- Optimización del desarrollo: Contribuye a un diseño más robusto desde el inicio, reduciendo la necesidad de retrabajos.
Metodologías en 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.
-
Spoofing (Suplantación):
- Amenaza: Un atacante se hace pasar por otra identidad legítima en el sistema.
- Ejemplo: Acceso no autorizado mediante credenciales robadas.
- Controles habituales: Autenticación robusta, gestión de identidades y políticas de acceso.
-
Tampering (Manipulación):
- Amenaza: Alteración maliciosa de datos o procesos en el sistema.
- 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.
-
Repudiation (Repudio):
- Amenaza: Negación de acciones realizadas en el sistema por parte de un usuario.
- Ejemplo: Un usuario que niega haber realizado una acción específica.
- Controles habituales: Registro de auditorías y técnicas de no repudio.
-
Information Disclosure (Divulgación de Información):
- Amenaza: Exposición no autorizada de información sensible.
- Ejemplo: Datos confidenciales transmitidos sin cifrado.
- Controles habituales: Cifrado en tránsito y en reposo, y políticas de privacidad.
-
Denial of Service (Denegación de Servicio):
- Amenaza: Interrupción del acceso legítimo al sistema.
- Ejemplo: Ataques que afectan la disponibilidad de un servicio.
- Controles habituales: Escalabilidad, balanceo de carga y mitigación de ataques.
-
Elevation of Privilege (Escalamiento de Privilegios):
- Amenaza: Un atacante obtiene más privilegios de los que debería tener.
- 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.
-
Linkability (Vinculación):
- Amenaza: Relacionar datos que deberían permanecer separados.
- Ejemplo: Asociar registros de usuarios anónimos a una identidad específica.
- Controles habituales: Separación de datos y técnicas de anonimización.
-
Identifiability (Identificación):
- Amenaza: Identificar a un individuo a partir de datos anónimos.
- Ejemplo: Inferir la identidad de un usuario a partir de metadatos.
- Controles habituales: Pseudonimización y reducción de metadatos.
-
Non-repudiation (No repudio):
- Amenaza: Negación de acciones relacionadas con datos personales.
- Ejemplo: Un usuario que niega haber consentido el uso de sus datos.
- Controles habituales: Auditorías de consentimiento y registros claros.
-
Detectability (Detectabilidad):
- Amenaza: Posibilidad de identificar la presencia de un sujeto en el sistema.
- Ejemplo: Identificar usuarios por patrones de acceso.
- Controles habituales: Gestión de accesos y análisis de patrones anónimos.
-
Disclosure of Information (Divulgación de Información):
- Amenaza: Filtración de datos sensibles.
- Ejemplo: Exposición de datos personales por una configuración incorrecta.
- Controles habituales: Cifrado y políticas de acceso.
-
Unawareness (Desconocimiento):
- 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.
-
Non-compliance (No conformidad):
- Amenaza: Incumplimiento de regulaciones o estándares.
- 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.
-
Confidentiality (Confidencialidad):
- Garantizar que solo las personas autorizadas pueden acceder a la información.
- Controles habituales: Cifrado, autenticación y control de accesos.
-
Integrity (Integridad):
- Asegurar que los datos no sean alterados de forma no autorizada.
- Controles habituales: Hashing, validación de datos y registros inmutables.
-
Availability (Disponibilidad):
- 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.
-
Distributed (Distribuido):
- Sistemas diseñados para operar sin un único punto de falla.
- Controles habituales: Réplicas y arquitecturas distribuidas.
-
Immutable (Inmutable):
- Los sistemas no cambian después de su despliegue.
- Controles habituales: Contenedores y despliegues inmutables.
-
Ephemeral (Efímero):
- Los sistemas tienen vidas útiles cortas y se destruyen después de su uso.
- 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.
-
Privacy (Privacidad):
- Proteger los datos utilizados por los modelos.
- Controles habituales: Anonimización y técnicas federadas.
-
Liveness (Vigencia):
- Mantener los sistemas y modelos actualizados.
- Controles habituales: Actualización continua de modelos.
-
Ownership (Propiedad):
- Definir derechos sobre los datos y los modelos.
- Controles habituales: Contratos claros y auditorías.
-
Transparency (Transparencia):
- Asegurar que las decisiones de los sistemas sean comprensibles para los usuarios.
- Controles habituales: Modelos interpretables y explicabilidad.