위협 모델링 도구 시작Getting started with the Threat Modeling Tool

Microsoft Threat Modeling Tool 2018은 2018년 9월에 무료 다운로드하여 클릭 형태로 GA 버전으로 릴리스되었습니다.The Microsoft Threat Modeling Tool 2018 was released as GA in September 2018 as a free click-to-download. 전달 메커니즘의 변경을 통해 고객이 도구를 열 때마다 고객에게 최신 기능 향상 및 버그 수정을 푸시하여 유지 관리 및 사용이 쉽도록 할 수 있습니다.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. 이 문서는 Microsoft SDL 위협 모델링 접근 방식을 시작하는 과정을 안내하고 도구를 사용하여 보안 프로세스의 핵심으로 위협 모델을 개발하는 방법을 보여 줍니다.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.

이 문서는 SDL 위협 모델링 접근 방식의 기존 지식을 기반으로 합니다.This article builds on existing knowledge of the SDL threat modeling approach. 빠른 검토는 위협 모델링 웹 애플리케이션 및 2006년에 게시된 보관된 STRIDE 접근 방식을 사용하여 보안 결함 파악 버전의 MSDN 문서를 참조하세요.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.

신속하게 요약하기 위해 접근 방식은 다이어그램 만들기, 위협 식별, 완화 및 각 완화의 유효성 검사를 포함합니다.To quickly summarize, the approach involves creating a diagram, identifying threats, mitigating them and validating each mitigation. 이 프로세스를 강조 표시하는 다이어그램은 다음과 같습니다.Here’s a diagram that highlights this process:

SDL 프로세스

위협 모델링 프로세스 시작Starting the threat modeling process

위협 모델링 도구를 시작할 때 그림에 표시된 대로 몇 가지를 알 수 있습니다.When you launch the Threat Modeling Tool, you'll notice a few things, as seen in the picture:

빈 시작 페이지

위협 모델 섹션Threat model section

구성 요소Component 세부 정보Details
피드백, 제안 및 문제 단추Feedback, Suggestions and Issues Button SDL의 모든 것에 대한 MSDN 포럼 으로 이동합니다.Takes you the MSDN Forum for all things SDL. 해결 방법 및 권장 사항과 함께 다른 사용자가 수행하는 작업을 읽을 기회를 줍니다.It gives you an opportunity to read through what other users are doing, along with workarounds and recommendations. 원하는 항목을 여전히 찾을 수 없는 경우 지원 팀이 도울 수 있도록 tmtextsupport@microsoft.com으로 전자 메일을 보내 주세요.If you still can’t find what you’re looking for, email tmtextsupport@microsoft.com for our support team to help you
모델 만들기Create a Model 다이어그램을 그리려면 빈 캔버스를 엽니다.Opens a blank canvas for you to draw your diagram. 모델에 사용하려는 템플릿을 선택합니다.Make sure to select which template you’d like to use for your model
새 모델에 대한 템플릿Template for New Models 모델을 만들기 전에 사용할 템플릿을 선택해야 합니다.You must select which template to use before creating a model. 기본 템플릿은 Azure 위협 모델 템플릿이며 Azure 관련 스텐실, 위협 및 완화를 포함합니다.Our main template is the Azure Threat Model Template, which contains Azure-specific stencils, threats and mitigations. 일반 모델의 경우 드롭다운 메뉴에서 SDL TM 기술 자료를 선택합니다.For generic models, select the SDL TM Knowledge Base from the drop-down menu. 사용자 고유의 템플릿을 만들거나 모든 사용자를 위해 새 템플릿을 제출하시겠습니까?Want to create your own template or submit a new one for all users? 자세한 내용은 템플릿 리포지토리 GitHub 페이지를 확인하세요.Check out our Template Repository GitHub Page to learn more
모델 열기Open a Model

이전에 저장된 위협 모델을 엽니다.Opens previously saved threat models. 최근에 열린 모델 기능은 가장 최근 파일을 열어야 하는 경우 유용합니다.The Recently Opened Models feature is great if you need to open your most recent files. 선택 영역 위로 마우스를 가져가면 두 가지 방법으로 모델을 열 수 있습니다.When you hover over the selection, you’ll find 2 ways to open models:

  • 이 컴퓨터에서 열기 - 로컬 스토리지를 사용하여 파일을 여는 고전적인 방법Open From this Computer – classic way of opening a file using local storage
  • OneDrive에서 열기 - 팀은 OneDrive에서 폴더를 사용하여 생산성 및 협업을 높이도록 단일 위치에 모든 위협 모델을 저장하고 공유할 수 있습니다.Open 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

시작 가이드Getting Started Guide Microsoft 위협 모델링 도구 기본 페이지 열기Opens the Microsoft Threat Modeling Tool main page

템플릿 섹션Template section

구성 요소Component 세부 정보Details
새 템플릿 만들기Create New Template 작성하기 위한 빈 템플릿을 엽니다.Opens a blank template for you to build on. 처음부터 템플릿을 작성하는 광범위한 지식이 없는 한 기존 템플릿에서 작성하는 것이 좋습니다.Unless you have extensive knowledge in building templates from scratch, we recommend you to build from existing ones
템플릿 열기Open Template 변경할 수 있도록 기존 템플릿이 열립니다.Opens existing templates for you to make changes to

위협 모델링 도구 팀은 도구 기능 및 환경을 향상시키기 위해 지속적으로 노력합니다.The Threat Modeling Tool team is constantly working to improve tool functionality and experience. 연간 약간의 변경 사항만 발생할 수도 있지만 모든 주요 변경 사항은 이 가이드에서 재작성되어야 합니다.A few minor changes might take place over the course of the year, but all major changes require rewrites in the guide. 이를 자주 참조하여 최신 알림을 확인하세요.Refer to it often to ensure you get the latest announcements.

모델 작성Building a model

이 섹션에서는 다음을 따릅니다.In this section, we follow:

  • Cristina(개발자)Cristina (a developer)
  • Ricardo(프로그램 관리자) 및Ricardo (a program manager) and
  • Ashish(테스터)Ashish (a tester)

첫 번째 위협 모델 개발 과정을 살펴볼 예정입니다.They are going through the process of developing their first threat model.

Ricardo: 안녕하세요, Cristina, 저는 위협 모델 다이어그램을 작업했고 세부 정보가 올바른지 확인하고 싶습니다.Ricardo: Hi Cristina, I worked on the threat model diagram and wanted to make sure we got the details right. 살펴보는 데 도움을 주실 수 있으세요?Can you help me look it over? Cristina: 물론입니다.Cristina: Absolutely. 살펴보겠습니다.Let’s take a look. Ricardo는 도구를 열고 Cristina와 화면을 공유합니다.Ricardo opens the tool and shares his screen with Cristina.

기본 위협 모델

Cristina: 네, 간단해 보이지만 단계별로 확인해 볼 수 있을까요?Cristina: Ok, looks straightforward, but can you walk me through it? Ricardo: 물론입니다!Ricardo: Sure! 분석은 다음과 같습니다.Here is the breakdown:

  • 이 사용자는 엔터티 외부로 그려집니다. - 사각형Our human user is drawn as an outside entity—a square
  • 웹 서버에 명령을 전송합니다. - 원They’re sending commands to our Web server—the circle
  • 웹 서버는 데이터베이스를 컨설팅합니다(두 개의 병렬 선).The Web server is consulting a database (two parallel lines)

Ricardo가 Cristina에게 보여준 것은 DFD, 데이터 흐름 다이어그램 의 짧은 버전입니다.What Ricardo just showed Cristina is a DFD, short for Data Flow Diagram. 위협 모델링 도구를 통해 사용자는 빨간색 점선으로 표시되는 트러스트 경계를 지정하여 제어에 있는 다양한 엔터티를 보여 줄 수 있습니다.The Threat Modeling Tool allows users to specify trust boundaries, indicated by the red dotted lines, to show where different entities are in control. 예를 들어 IT 관리자는 인증 목적으로 Active Directory 시스템이 필요하므로 Active Directory는 제어 밖에 있습니다.For example, IT administrators require an Active Directory system for authentication purposes, so the Active Directory is outside of their control.

Cristina: 올바르게 보입니다.Cristina: Looks right to me. 위협은 어떻나요?What about the threats? Ricardo: 보여 드리겠습니다.Ricardo: Let me show you.

위협 분석Analyzing threats

아이콘 메뉴 선택 영역에서 분석 보기를 클릭하면(돋보기가 있는 파일) STRIDE(스푸핑, 변조, 정보 공개, 부인, 서비스 거부 및 권한 상승) 라는 SDL 접근 방식을 사용하는 기본 템플릿을 기반으로 위협 모델링 도구에서 발견한 생성된 위협 목록으로 이동합니다.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). 개념은 소프트웨어는 예측 가능한 위협 집합에서 나온다는 것이며 6가지 범주를 사용하여 찾을 수 있습니다.The idea is that software comes under a predictable set of threats, which can be found using these 6 categories.

이 접근 방식은 경고 시스템을 추가하거나 도둑이 든 후 추적하기 전에 준비된 잠금 메커니즘이 있는 각 문과 창문을 확인하여 집을 보안하는 것과 같습니다.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.

기본 위협

Ricardo는 목록에서 첫 번째 항목을 선택하여 시작합니다.Ricardo begins by selecting the first item on the list. 다음과 같은 상황이 발생합니다.Here’s what happens:

첫째, 두 개의 스텐실 간의 상호 작용이 향상되었습니다.First, the interaction between the two stencils is enhanced

스크린 샷에서는 두 개의 스텐실이 표시 되 고 더 무거운 선 두께를 연결 하는 구부러진 화살표가 표시 됩니다.

둘째, 위협에 대한 추가 정보가 위협 속성 창에 나타납니다.Second, additional information about the threat appears in the Threat Properties window

제목, 범주, 설명, 상호 작용 및 우선 순위를 포함 하는 위협 속성 창를 보여 주는 스크린샷

생성된 위협을 통해 잠재적 디자인 결함을 이해할 수 있습니다.The generated threat helps him understand potential design flaws. STRIDE 분류를 통해 잠재적인 공격 벡터에 대한 개념을 제공하는 반면 추가 설명은 문제를 완화하는 잠재적인 방법과 함께 문제를 정확하게 알립니다.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. 편집 가능한 필드를 사용하여 이유에 메모를 자세히 쓰거나 조직의 버그 바에 따라 우선 순위 등급을 변경할 수 있습니다.He can use editable fields to write notes in the justification details or change priority ratings depending on his organization’s bug bar.

Azure 템플릿에는 사용자가 문제 뿐만 아니라 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.

설명을 통해 작업할 첫 번째 위협을 공개하여 사용자의 스푸핑을 예방하는 인증 메커니즘 추가의 중요성을 깨달았습니다.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. Cristina와의 몇 분 정도의 논의로 그들은 액세스 제어 및 작업 구현의 중요성을 이해했습니다.A few minutes into the discussion with Cristina, they understood the importance of implementing access control and roles. Ricardo는 이러한 것들이 구현되도록 몇 가지 빠른 참고 사항을 채웠습니다.Ricardo filled in some quick notes to make sure these were implemented.

Ricardo는 정보 공개에 따른 위협을 살펴봤으므로 액세스 제어 계획에 감사 및 보고서 생성을 위한 일부 읽기 전용 계정이 필요한 것을 깨달았습니다.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. 그는 이것이 새 위협이 되어야 할지 의문스러웠지만 해결 방법은 동일했으므로 그에 따라 위협을 표시했습니다.He wondered whether this should be a new threat, but the mitigations were the same, so he noted the threat accordingly. 또한 그는 정보 공개에 대해 조금 더 생각했고 백업 테이프에 암호화, 운영 팀에 대한 작업이 필요할 것이라는 것을 깨달았습니다.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.

기존 해결 방법 또는 보안 보장은 상태 드롭다운에서 “적용되지 않음”으로 변경될 수 있으므로 위협은 디자인에 적용할 수 없습니다.Threats not applicable to the design due to existing mitigations or security guarantees can be changed to “Not Applicable” from the Status drop-down. 세 가지 다른 선택 사항이 있습니다. 시작되지 않음 - 기본 선택 사항, 조사 필요 - 항목을 추적하는 데 사용됨, 완화됨 - 완전히 작업된 후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.

보고서 및 공유Reports & sharing

Ricardo가 Cristina와 목록을 살펴보고 중요한 참고 사항, 해결 방법/이유, 우선 순위 및 상태 변경 사항을 추가하면 보고서 -> 전체 보고서 만들기 -> 보고서 저장을 선택합니다. 적절한 보안 작업이 구현되었는지 확인하도록 동료와 살펴볼 수 있는 보고서를 출력합니다.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.

대표적인 위협 모델링 보고서를 보여 주는 스크린샷

Ricardo가 파일을 공유하려는 경우 조직의 OneDrive 계정에 저장하여 쉽게 공유할 수 있습니다.If Ricardo wants to share the file instead, he can easily do so by saving in his organization’s OneDrive account. OneDrive 계정에 저장하면 문서 링크를 복사하고 그의 동료와 공유할 수 있습니다.Once he does that, he can copy the document link and share it with his colleagues.

위협 모델링 회의Threat modeling meetings

Ricardo가 OneDrive를 사용하여 그의 동료에게 그의 위협 모델을 보냈을 때 Ashish, 테스터가 만족하지 못했습니다.When Ricardo sent his threat model to his colleague using OneDrive, Ashish, the tester, was underwhelmed. Ricardo와 Cristina가 쉽게 손상될 수 있는 몇 가지 중요한 특수한 사례를 놓친 것처럼 보였습니다.Seemed like Ricardo and Cristina missed quite a few important corner cases, which could be easily compromised. 그의 의심은 위협 모델에 대한 보완입니다.His skepticism is a complement to threat models.

이 시나리오에서 Ashish가 위협 모델을 살펴본 후 두 가지 위협 모델링 회의를 요청했습니다. 첫 번째 회의는 프로세스에 대한 동기화와 다이어그램 검토를 위한 것이며 두 번째 회의는 위협 검토 및 승인을 위한 것입니다.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.

첫 번째 회의에서 Ashish는 모두가 SDL 위협 모델링 프로세스를 살펴보도록 10분을 소요했습니다.In the first meeting, Ashish spent 10 minutes walking everyone through the SDL threat modeling process. 그런 다음 위협 모델 다이어그램을 끌어오고 자세히 설명하기 시작했습니다.He then pulled up the threat model diagram and started explaining it in detail. 5분 이내에 누락된 중요한 구성 요소가 확인되었습니다.Within five minutes, an important missing component had been identified.

몇 분 후 Ashish와 Ricardo는 웹 서버가 작성된 방식에 대한 확장된 논의를 가졌습니다.A few minutes later, Ashish and Ricardo got into an extended discussion of how the Web server was built. 이는 회의를 계속 진행하기 위한 이상적인 방법이 아니었지만 마침내 모두가 초기의 불일치 발견이 나중에 시간을 절약한다는 것에 동의했습니다.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.

두 번째 회의에서 팀은 위협을 살펴보고, 위협을 해결하는 몇 가지 방법을 논의하고 위협 모델을 승인했습니다.In the second meeting, the team walked through the threats, discussed some ways to address them, and signed off on the threat model. 원본 제어에 대한 문서를 확인하고 개발을 계속했습니다.They checked the document into source control and continued with development.

자산에 대한 고려Thinking about assets

위협을 모델링한 일부 독자는 자산에 대해 전혀 다루지 않은 것을 인지했을 것입니다.Some readers who have threat modeled may notice that we haven't talked about assets at all. 우리는 많은 소프트웨어 엔지니어가 자산의 개념 및 공격자가 관심이 있을 수 있는 자산에 대해 이해하는 것보다 그들의 소프트웨어를 더 잘 이해한다는 것을 발견했습니다.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.

집에 대한 위협 모델을 작성하는 경우 가족, 대체할 수 없는 사진 또는 중요한 아트 워크에 대해 생각하여 시작할 수 있습니다.If you're going to threat model a house, you might start by thinking about your family, irreplaceable photos or valuable artwork. 아마도 침입할 수 있는 사람과 현재 보안 시스템에 대해 생각하여 시작할 수 있습니다.Perhaps you might start by thinking about who might break in and the current security system. 또는 수영장 또는 앞 현관과 같은 물리적 기능을 고려하여 시작할 수 있습니다.Or you might start by considering the physical features, like the pool or the front porch. 이들은 자산, 공격자 또는 소프트웨어 디자인에 대해 생각하는 것과 비슷합니다.These are analogous to thinking about assets, attackers, or software design. 이러한 세 가지 방법 중 하나라도 작동합니다.Any of these three approaches work.

여기에 설명된 위협 모델링에 대한 접근 방식은 이전에 Microsoft가 수행한 것보다 훨씬 간단합니다.The approach to threat modeling we've presented here is substantially simpler than what Microsoft has done in the past. 소프트웨어 디자인 방법이 대부분의 팀에 제대로 작동하는 것을 확인했습니다.We found that the software design approach works well for many teams. 사용자를 포함하길 바랍니다.We hope that include yours.

다음 단계Next Steps

질문, 의견 및 문제를 tmtextsupport@microsoft.com에 보냅니다.Send your questions, comments and concerns to tmtextsupport@microsoft.com. 시작하려면 위협 모델링 도구를 다운로드 하세요.Download the Threat Modeling Tool to get started.