Introducción a Threat Modeling ToolGetting started with the Threat Modeling Tool

Microsoft Threat Modeling Tool 2018 2018 se lanzó para que tuviese disponibilidad general en septiembre de 2018, como una opción gratuita de hacer clic para descargar .The Microsoft Threat Modeling Tool 2018 was released as GA in September 2018 as a free click-to-download. El cambio en el mecanismo de entrega nos permite insertar las mejoras y correcciones de errores más recientes para los clientes cada vez que abran la herramienta, facilitando el mantenimiento y el uso.The change in delivery mechanism allows us to push the latest improvements and bug fixes to customers each time they open the tool, making it easier to maintain and use. Este artículo le guía por el proceso de empezar a usar la solución de modelado de amenazas SDL de Microsoft y le muestra cómo utilizar la herramienta para desarrollar modelos de amenazas excepcionales como columna vertebral del proceso de seguridad.This article takes you through the process of getting started with the Microsoft SDL threat modeling approach and shows you how to use the tool to develop great threat models as a backbone of your security process.

Este artículo se basa en los conocimientos actuales de la solución de modelado de amenazas SDL.This article builds on existing knowledge of the SDL threat modeling approach. Para una revisión rápida, consulte Aplicaciones web de modelado de amenazas y una versión archivada del artículo de MSDN sobre el descubrimiento de defectos de seguridad con el enfoque STRIDE publicado en 2006.For a quick review, refer to Threat Modeling Web Applications and an archived version of Uncover Security Flaws Using the STRIDE Approach MSDN article published in 2006.

En resumen, la solución implica la creación de un diagrama, la identificación de las amenazas, su mitigación y la validación de cada una.To quickly summarize, the approach involves creating a diagram, identifying threats, mitigating them and validating each mitigation. Este es un diagrama que esquematiza este proceso:Here’s a diagram that highlights this process:

Proceso SDL

Inicio del proceso de modelado de amenazasStarting the threat modeling process

Cuando inicie Threat Modeling Tool, observará algunas cosas, como se muestra en la imagen:When you launch the Threat Modeling Tool, you'll notice a few things, as seen in the picture:

Página de inicio en blanco

Sección del modelo de amenazaThreat model section

ComponenteComponent DetallesDetails
Botón de comentarios, sugerencias y problemasFeedback, Suggestions and Issues Button Le lleva al Foro de MSDN para todo lo relacionado con SDL.Takes you the MSDN Forum for all things SDL. Proporciona una oportunidad para leer lo que otros usuarios hacen, junto con soluciones alternativas y recomendaciones.It gives you an opportunity to read through what other users are doing, along with workarounds and recommendations. Si sigue sin encontrar lo que está buscando, envíe un mensaje de correo electrónico a tmtextsupport@microsoft.com para que nuestro equipo de soporte técnico le ayudeIf you still can’t find what you’re looking for, email tmtextsupport@microsoft.com for our support team to help you
Creación de un modeloCreate a Model Abre un lienzo en blanco para que dibuje el diagrama.Opens a blank canvas for you to draw your diagram. Asegúrese de seleccionar qué plantilla le gustaría usar para el modeloMake sure to select which template you’d like to use for your model
Plantilla para los modelos nuevosTemplate for New Models Debe seleccionar qué plantilla utilizar antes de crear un modelo.You must select which template to use before creating a model. La plantilla principal es la del modelo de amenaza de Azure, que contiene galerías de símbolos específicas de Azure, amenazas y las formas de mitigarlas.Our main template is the Azure Threat Model Template, which contains Azure-specific stencils, threats and mitigations. Si desea obtener modelos genéricos, seleccione la base de conocimiento de modelos de amenazas SDL en el menú desplegable.For generic models, select the SDL TM Knowledge Base from the drop-down menu. ¿Desea crear su propia plantilla o enviar una nueva para todos los usuarios?Want to create your own template or submit a new one for all users? Visite nuestra página de GitHub de repositorio de plantillas para obtener más informaciónCheck out our Template Repository GitHub Page to learn more
Abrir un modeloOpen a Model

Se abren los modelos de amenazas guardados previamente.Opens previously saved threat models. La característica Recently Opened Models (modelos abiertos recientemente) es útil si tiene que abrir los archivos más recientes.The Recently Opened Models feature is great if you need to open your most recent files. Cuando mantenga el mouse sobre la selección, encontrará dos formas de abrir los modelos:When you hover over the selection, you’ll find 2 ways to open models:

  • Abrir desde este equipo: modo clásico de abrir un archivo usando el almacenamiento localOpen From this Computer – classic way of opening a file using local storage
  • Abrir desde OneDrive: los equipos pueden usar las carpetas de OneDrive para guardar y compartir todos sus modelos de amenaza en una única ubicación para ayudar a aumentar la productividad y la colaboraciónOpen from OneDrive – teams can use folders in OneDrive to save and share all their threat models in a single location to help increase productivity and collaboration

Guía de introducciónGetting Started Guide Abre la página principal de Microsoft Threat Modeling ToolOpens the Microsoft Threat Modeling Tool main page

Sección de plantillaTemplate section

ComponenteComponent DetallesDetails
Crear nueva plantillaCreate New Template Se abre una plantilla en blanco para que la cree.Opens a blank template for you to build on. A menos que tenga muchos conocimientos sobre la creación de plantillas desde el principio, le recomendamos que empiece a partir de las existentesUnless you have extensive knowledge in building templates from scratch, we recommend you to build from existing ones
Abrir plantillaOpen Template Abre una plantilla para que pueda realizar cambios en ellaOpens existing templates for you to make changes to

El equipo de Threat Modeling Tool trabaja constantemente para mejorar la funcionalidad y la experiencia de la herramienta.The Threat Modeling Tool team is constantly working to improve tool functionality and experience. Pueden producirse algunos cambios poco importantes a lo largo del año, pero todos los principales requieren escribir de nuevo en la guía.A few minor changes might take place over the course of the year, but all major changes require rewrites in the guide. Remítase a ella con frecuencia para garantizar que conoce los anuncios más recientes.Refer to it often to ensure you get the latest announcements.

Generación de un modeloBuilding a model

En esta sección, seguimos a:In this section, we follow:

  • Cristina (programadora)Cristina (a developer)
  • Ricardo (administrador de programas) yRicardo (a program manager) and
  • Ashish (evaluador)Ashish (a tester)

Van a realizar el proceso de desarrollo de su primer modelo de amenaza.They are going through the process of developing their first threat model.

Ricardo: Hola Cristina, trabajé en el diagrama del modelo de amenaza y quería asegurarme de que los detalles son correctos.Ricardo: Hi Cristina, I worked on the threat model diagram and wanted to make sure we got the details right. ¿Podrías ayudarme a comprobarlo?Can you help me look it over? Cristina: Totalmente.Cristina: Absolutely. Vamos a echar un vistazo.Let’s take a look. Ricardo abre la herramienta y comparte la pantalla con Cristina.Ricardo opens the tool and shares his screen with Cristina.

Modelo de amenaza básica

Cristina: Bien, parece sencillo, pero ¿puedes guiarme para comprobarlo?Cristina: Ok, looks straightforward, but can you walk me through it? Ricardo: Por supuesto.Ricardo: Sure! Este es el análisis:Here is the breakdown:

  • El usuario se dibuja como una entidad externa: un cuadradoOur human user is drawn as an outside entity—a square
  • Van a enviar comandos a nuestro servidor web: el círculoThey’re sending commands to our Web server—the circle
  • El servidor web va a consultar una base de datos: dos líneas paralelasThe Web server is consulting a database (two parallel lines)

Lo que Ricardo ha mostrado a Cristina es un DFD, abreviatura de diagrama de flujo de datos .What Ricardo just showed Cristina is a DFD, short for Data Flow Diagram. Threat Modeling Tool permite a los usuarios especificar los límites de confianza, indicados por las líneas de puntos rojos, que muestran dónde están las distintas entidades en el control.The Threat Modeling Tool allows users to specify trust boundaries, indicated by the red dotted lines, to show where different entities are in control. Por ejemplo, los administradores de TI requieren un sistema de Active Directory para la autenticación, por lo que Active Directory está fuera de su control.For example, IT administrators require an Active Directory system for authentication purposes, so the Active Directory is outside of their control.

Cristina: Me parece correcto.Cristina: Looks right to me. ¿Qué ocurre con las amenazas?What about the threats? Ricardo: Permíteme que te lo muestre.Ricardo: Let me show you.

Análisis de las amenazasAnalyzing threats

Una vez que el usuario hace clic en la vista de análisis desde la selección del menú de icono (el archivo con la lupa), se le muestra una lista de amenazas generadas que Threat Modeling Tool encontró en función de la plantilla predeterminada, que usa el método SDL denominado STRIDE (suplantación de identidad, manipulación, revelación de información, rechazo, denegación de servicio y elevación de privilegios) .Once he clicks on the analysis view from the icon menu selection (file with magnifying glass), he is taken to a list of generated threats the Threat Modeling Tool found based on the default template, which uses the SDL approach called STRIDE (Spoofing, Tampering, Info Disclosure, Repudiation, Denial of Service and Elevation of Privilege). La idea es que el software viene con un conjunto predecible de amenazas, que se puede encontrar usando estas seis categorías.The idea is that software comes under a predictable set of threats, which can be found using these 6 categories.

Este enfoque es como proteger su casa asegurándose de que cada puerta y cada ventana disponen de un mecanismo de bloqueo antes de agregar un sistema de alarma o de perseguir al ladrón.This approach is like securing your house by ensuring each door and window has a locking mechanism in place before adding an alarm system or chasing after the thief.

Amenazas básicas

Ricardo comienza seleccionando el primer elemento de la lista.Ricardo begins by selecting the first item on the list. Esto es lo que sucede:Here’s what happens:

En primer lugar, se ha mejorado la interacción entre las dos galerías de símbolosFirst, the interaction between the two stencils is enhanced

Interacción

En segundo lugar, aparece información adicional sobre la amenaza en la ventana Threat Properties (Propiedades de amenaza)Second, additional information about the threat appears in the Threat Properties window

Información de interacción

La amenaza generada le ayuda a comprender los posibles errores de diseño.The generated threat helps him understand potential design flaws. La categorización STRIDE le da una idea de los posibles vectores de ataque, mientras que la descripción adicional le indica exactamente cuál es el problema, junto con las formas posibles de mitigarlo.The STRIDE categorization gives him an idea on potential attack vectors, while the additional description tells him exactly what’s wrong, along with potential ways to mitigate it. Puede utilizar los campos modificables para escribir notas en los detalles de justificación o cambiar las clasificaciones de prioridad según la barra de error de su organización.He can use editable fields to write notes in the justification details or change priority ratings depending on his organization’s bug bar.

Las plantillas de Azure tienen detalles adicionales para ayudar a los usuarios a entender no solo cuál es el problema, sino también cómo corregirlo agregando descripciones, ejemplos e hipervínculos a la documentación específica de Azure.Azure templates have additional details to help users understand not only what’s wrong, but also how to fix it by adding descriptions, examples and hyperlinks to Azure-specific documentation.

La descripción le hizo darse cuenta de la importancia de agregar un mecanismo de autenticación para impedir que los usuarios sean suplantados, revelando la primera amenaza en la que se trabajará.The description made him realize the importance of adding an authentication mechanism to prevent users from being spoofed, revealing the first threat to be worked on. Solo algunos minutos de conversación con Cristina bastaron para entender la importancia de implementar el control de acceso y los roles.A few minutes into the discussion with Cristina, they understood the importance of implementing access control and roles. Ricardo escribió algunas notas rápidas para asegurarse de que se implementaban.Ricardo filled in some quick notes to make sure these were implemented.

A medida que Ricardo se ocupaba de las amenazas relativas a la divulgación de información, se dio cuenta de que el plan de control de acceso requería algunas cuentas de solo lectura para la auditoría y la generación de informes.As Ricardo went into the threats under Information Disclosure, he realized the access control plan required some read-only accounts for audit and report generation. Se preguntó si debería tratarse como una nueva amenaza, aunque las mitigaciones fueran las mismas, por lo que anotó la amenaza como correspondía.He wondered whether this should be a new threat, but the mitigations were the same, so he noted the threat accordingly. También pensó más sobre la divulgación de información y se percató de que las cintas de copia de seguridad iban a necesitar cifrado, una tarea para el equipo de operaciones.He also thought about information disclosure a bit more and realized that the backup tapes were going to need encryption, a job for the operations team.

Las amenazas no aplicables al diseño debido a las mitigaciones existentes o a garantías de seguridad pueden cambiarse a "No aplicables" en la lista desplegable del estado.Threats not applicable to the design due to existing mitigations or security guarantees can be changed to “Not Applicable” from the Status drop-down. Hay otras tres opciones: No iniciado, la selección predeterminada; Necesita investigación, que se usa para hacer un seguimiento de los elementos; y Mitigado, que indica que está en pleno funcionamiento.There are three other choices: Not Started – default selection, Needs Investigation – used to follow up on items and Mitigated – once it’s fully worked on.

Informes y uso compartidoReports & sharing

Una vez que Ricardo examina la lista con Cristina y agrega algunas notas importantes, mitigaciones o justificaciones, los cambios de estado y prioridad, selecciona Informes -> Crear informe completo -> Guardar informe, con lo que se imprime un informe muy útil para repasarlo con sus compañeros y asegurarse de implementar el trabajo de seguridad apropiado.Once Ricardo goes through the list with Cristina and adds important notes, mitigations/justifications, priority and status changes, he selects Reports -> Create Full Report -> Save Report, which prints out a nice report for him to go through with colleagues to ensure the proper security work is implemented.

Información de interacción

Si Ricardo desea compartir el archivo en su lugar, puede hacerlo fácilmente guardándolo en la cuenta de OneDrive de su organización.If Ricardo wants to share the file instead, he can easily do so by saving in his organization’s OneDrive account. Cuando lo haga, podrá copiar el vínculo de documento y compartirlo con sus compañeros.Once he does that, he can copy the document link and share it with his colleagues.

Herramienta de modelado de amenazasThreat modeling meetings

Cuando Ricardo envió su modelo de amenazas a su compañero con OneDrive, Ashish, el evaluador, no se dejó impresionar.When Ricardo sent his threat model to his colleague using OneDrive, Ashish, the tester, was underwhelmed. Parecía que Ricardo y Cristina habían olvidado algunos casos importantes más complejos, que podían verse comprometidos fácilmente.Seemed like Ricardo and Cristina missed quite a few important corner cases, which could be easily compromised. Su escepticismo es un complemento de los modelos de amenaza.His skepticism is a complement to threat models.

En este escenario, una vez que Ashish se encargó del modelo de amenaza, convocó dos reuniones: una para sincronizar el proceso y examinar los diagramas y, a continuación, otra para revisar las amenazas y concluir el proceso.In this scenario, after Ashish took over the threat model, he called for two threat modeling meetings: one meeting to synchronize on the process and walk through the diagrams and then a second meeting for threat review and sign-off.

En la primera reunión, Ashish empleó diez minutos en mostrar a los demás el proceso de modelado de amenazas SDL.In the first meeting, Ashish spent 10 minutes walking everyone through the SDL threat modeling process. A continuación, se detuvo en el diagrama del modelo de amenazas y comenzó a explicarlo en detalle.He then pulled up the threat model diagram and started explaining it in detail. Tras cinco minutos, se había identificado un importante componente que faltaba.Within five minutes, an important missing component had been identified.

Unos minutos después, Ashish y Ricardo comenzaron una larga discusión sobre cómo se había creado el servidor web.A few minutes later, Ashish and Ricardo got into an extended discussion of how the Web server was built. No era la forma ideal de proceder en una reunión, pero todos los usuarios acordaron finalmente que detectar la discrepancia al principio iba a ahorrarles tiempo en el futuro.It was not the ideal way for a meeting to proceed, but everyone eventually agreed that discovering the discrepancy early was going to save them time in the future.

En la segunda reunión, el equipo examinó las amenazas, debatieron algunas maneras de abordarlas y concluyó el modelo de amenazas.In the second meeting, the team walked through the threats, discussed some ways to address them, and signed off on the threat model. Registraron el documento en el control de origen y continuaron con el desarrollo.They checked the document into source control and continued with development.

Evaluación de los recursosThinking about assets

Algunos lectores que hayan modelado una amenaza pueden darse cuenta de que no hablaron sobre todos los recursos.Some readers who have threat modeled may notice that we haven't talked about assets at all. Hemos descubierto que muchos ingenieros de software conocen mejor su software de lo que entiendan el concepto de proceso y de en qué procesos podría estar interesado un atacante.We've discovered that many software engineers understand their software better than they understand the concept of assets and what assets an attacker may be interested in.

Si va a modelar las amenazas de una casa, puede comenzar por pensar en la familia, en las fotos que son irreemplazables o en las obras de arte valiosas.If you're going to threat model a house, you might start by thinking about your family, irreplaceable photos or valuable artwork. Quizás pueda comenzar por pensar quién podría entrar en la casa y en el sistema de seguridad actual.Perhaps you might start by thinking about who might break in and the current security system. O bien podría empezar teniendo en cuenta las características físicas, como la piscina o el porche delantero.Or you might start by considering the physical features, like the pool or the front porch. Esto es igual que pensar en los recursos, los atacantes o el diseño del software.These are analogous to thinking about assets, attackers, or software design. Cualquiera de estos tres enfoques funcionan.Any of these three approaches work.

El enfoque del modelado de amenazas que hemos presentado en esta guía es mucho más sencillo de lo que Microsoft hacía antes.The approach to threat modeling we've presented here is substantially simpler than what Microsoft has done in the past. Encontramos que el enfoque de diseño de software funciona bien para muchos equipos.We found that the software design approach works well for many teams. Esperamos que sea el caso del suyo.We hope that include yours.

Pasos siguientesNext Steps

Envíe sus preguntas, comentarios y preocupaciones a tmtextsupport@microsoft.com.Send your questions, comments and concerns to tmtextsupport@microsoft.com. Descargue Threat Modeling Tool para empezar.Download the Threat Modeling Tool to get started.