Znáte Microsoft Threat Modeling Tool ?

Tento článek popisuje Microsoft Threat Modeling Tool, free nástroj, který pomáhá modelovat potencionální bezpečnostní zranitelnosti. Je vhodný pro návrhy infrastrukturních řešení a aplikací v prostředí Microsoft Azure, ale také pro aplikace mimo prostředí cloudu. Zároveň je v článku popsán základní cyklus modelování možných zranitelností.

Microsoft Threat Modeling Tool

Aktuální verzi můžete stahovat z https://aka.ms/threatmodelingtool


Základní funkčnost

Microsoft Threat Modeling Tool je grafickým nástrojem. Vývojáři i architekti si mohou na základě připravených objektů sestavit celé své prostředí. Ve výsledném návrhu umí nástroj ukázat potenciální zranitelnosti a navrhnout opatření vedoucí k vyššímu zabezpečení, které buď omezí dopad případného útoku, případně mu dokáže zcela zamezit.

Obrázek 1- úvodní obrazovka

Struktura nástroje

Nástroj je rozdělen do dvou sekcí: Thread Model a Template (viz Obrázek 1

Sekce Thread Model umožňuje práci se samotnými modely. Z dlaždice „Create a model“ se vybírá z předpřipravených šablon. Ty obsahují předdefinované objekty, včetně popisu jejich vlastností. Dlaždice „Open a model“ otevírá hotové nebo rozpracované modely prostředí a jejich částí. Dlaždice „Getting Started Guide“ směřuje na stránky Microsoftu.

Sekce Template umožňuje vytvářet vlastní šablony a objekty, případně tvořit nové šablony na základě jiných. K efektivní práci s aplikací je dobré dodržet doporučený pracovní cyklus.

Modelování zranitelností v pěti základních krocích

Tato část popisuje základní kroky. I když se tyto kroky používají zejména během vývoje aplikací, je možné je s výhodou použít i při návrhu zabezpečení v prostředí Microsoft Azure.

Obrázek 2 – Modelovací cyklus

Krok Defining security requirements

Zde si tým vývojářů a architektů stanoví požadavky na cílovou aplikaci či prostředí. Také se zde stanoví klasifikace zranitelností. Na stránce Azure Security Fundamentals documentation jsou k dispozici informace s doporučeními společnosti Microsoft.

Krok Creating an application diagram

Vytvoří se vizuální model aplikace. Na základě tohoto modelu lze zahájit diskusi nad případnými zranitelnostmi.

Krok Identifying threats

V tomto kroku dojde k vytvoření diagramu zranitelnosti. Může se jednat o zcela jednoduchou věc, jako zjištění nezabezpečené komunikace HTTP, ale také například identifikaci možnosti útokem DDoS.

Krok Mitigating threats

Zde tým řeší, jak zmírnit nebo odstranit nalezenou hrozbu, kterou zranitelnost přináší. Některé zranitelnosti se řeší například větší robustností prostředí tak, aby se například během identifikace DDoS útoku zabránilo nedostupnosti aplikace. Některé zranitelnosti mohou mít více řešení. Od úpravy kódu aplikace až například po nasazení aplikačního firewallu.

Krok Validating that threats have been mitigated

Tento krok nám poslouží k odsouhlasení navrhovaného řešení. Poté následuje opět první krok, nebo ukončení s finální podobou řešení. Ukázka části finálního řešení je na obrázku 3.

Obrázek 3 – diagram v aplikaci

Použití Microsoft Threat Modeling Tool je jednoduché. Jeho výstupy často oživují a rozšiřují interní diskuse implementačních týmů a výrazně pomáhají zkrátit čas návrhu a v některých případech doplnit chybějící mezery. Lze jím nahradit i diagramy ručně vytvářené v aplikací Visio, která je možná pro tento druh interaktivní práce příliš komplikovaná.

Autorem článku je Pavel Pešek,
ze společnosti Mainstream Technologies, s. r. o.