Wprowadzenie do narzędzia modelowania zagrożeń

Narzędzie Microsoft Threat Modeling Tool 2018 zostało wydane jako ogólnie dostępne we wrześniu 2018 r. jako bezpłatne kliknięcie do pobrania. Zmiana mechanizmu dostarczania pozwala nam wypchnąć najnowsze ulepszenia i poprawki błędów do klientów za każdym razem, gdy otwierają narzędzie, co ułatwia konserwację i używanie. W tym artykule przedstawiono proces rozpoczynania pracy z podejściem do modelowania zagrożeń SDL firmy Microsoft i pokazano, jak za pomocą tego narzędzia opracowywać doskonałe modele zagrożeń jako szkielet procesu zabezpieczeń.

Ten artykuł opiera się na istniejącej wiedzy na temat podejścia do modelowania zagrożeń SDL. Aby zapoznać się z krótkim przeglądem, zapoznaj się z artykułem Threat Modeling Web Applications (Aplikacje internetowe modelowania zagrożeń) i zarchiwizowanym wersją artykułu Odkrywanie luk w zabezpieczeniach przy użyciu metody STRIDE w witrynie MSDN opublikowanej w 2006 roku.

Aby szybko podsumować, podejście polega na utworzeniu diagramu, zidentyfikowaniu zagrożeń, łagodzeniu ich i weryfikowaniu każdego ograniczenia ryzyka. Oto diagram, który wyróżnia ten proces:

SDL Process

Uruchamianie procesu modelowania zagrożeń

Po uruchomieniu narzędzia Do modelowania zagrożeń zauważysz kilka rzeczy, jak pokazano na ilustracji:

Blank Start Page

Sekcja modelu zagrożeń

Składnik Szczegóły
Przycisk Opinie, sugestie i problemy Prowadzi Forum MSDN dla wszystkich rzeczy SDL. Daje możliwość zapoznania się z tym, co robią inni użytkownicy, wraz z obejściami i zaleceniami. Jeśli nadal nie możesz znaleźć szukanych informacji, wyślij wiadomość e-mail tmtextsupport@microsoft.com do naszego zespołu pomocy technicznej, aby Ci pomóc
Tworzenie modelu Otwiera pustą kanwę, aby narysować diagram. Upewnij się, że wybrano szablon, którego chcesz użyć dla modelu
Szablon dla nowych modeli Przed utworzeniem modelu należy wybrać szablon do użycia. Naszym głównym szablonem jest szablon modelu zagrożeń platformy Azure, który zawiera wzorniki, zagrożenia i środki zaradcze specyficzne dla platformy Azure. W przypadku modeli ogólnych wybierz bazę wiedzy TM SDL z menu rozwijanego. Chcesz utworzyć własny szablon lub przesłać nowy szablon dla wszystkich użytkowników? Zapoznaj się z naszą stroną GitHub repozytorium szablonów , aby dowiedzieć się więcej
Otwieranie modelu

Otwiera wcześniej zapisane modele zagrożeń. Funkcja Ostatnio otwierane modele jest świetna, jeśli musisz otworzyć najnowsze pliki. Po umieszczeniu wskaźnika myszy na zaznaczeniu znajdziesz 2 sposoby otwierania modeli:

  • Otwórz z tego komputera — klasyczny sposób otwierania pliku przy użyciu magazynu lokalnego
  • Otwieranie w usłudze OneDrive — zespoły mogą używać folderów w usłudze OneDrive do zapisywania i udostępniania wszystkich modeli zagrożeń w jednej lokalizacji, aby zwiększyć produktywność i współpracę

Wprowadzenie — przewodnik Otwiera stronę główną narzędzia do modelowania zagrożeń firmy Microsoft

Sekcja szablonu

Składnik Szczegóły
Tworzenie nowego szablonu Otwiera pusty szablon do utworzenia. Jeśli nie masz obszernej wiedzy na temat tworzenia szablonów od podstaw, zalecamy utworzenie z istniejących szablonów
Otwórz szablon Otwiera istniejące szablony, aby wprowadzić zmiany w

Zespół narzędzi do modelowania zagrożeń stale pracuje nad ulepszeniem funkcjonalności i środowiska narzędzi. W ciągu roku może nastąpić kilka drobnych zmian, ale wszystkie istotne zmiany wymagają ponownego zapisania w przewodniku. Zapoznaj się z nim często, aby upewnić się, że otrzymujesz najnowsze ogłoszenia.

Tworzenie modelu

W tej sekcji wykonamy następujące czynności:

  • Cristina (deweloper)
  • Ricardo (menedżer programu) i
  • Ashish (tester)

Przechodzą one przez proces opracowywania pierwszego modelu zagrożeń.

Ricardo: Cześć Cristina, pracowałem na diagramie modelu zagrożeń i chciałem upewnić się, że mamy odpowiednie szczegóły. Czy możesz mi pomóc spojrzeć na to? Cristina: Absolutnie. Spójrzmy na przykład. Ricardo otwiera narzędzie i dzieli się swoim ekranem z Cristina.

Basic Threat Model

Cristina: Ok, wygląda prosto, ale czy możesz przejść przez to? Ricardo: Na pewno! Oto podział:

  • Nasz użytkownik jest rysowany jako jednostka zewnętrzna — kwadrat
  • Wysyłają polecenia do serwera sieci Web — okrąg
  • Serwer sieci Web konsultuje się z bazą danych (dwie równoległe linie)

Co Ricardo właśnie pokazał Cristina jest DFD, skrót od Przepływ danych Diagram. Narzędzie modelowania zagrożeń umożliwia użytkownikom określanie granic zaufania, wskazywanych przez czerwone linie kropkowane, w celu pokazania, gdzie znajdują się różne jednostki. Na przykład administratorzy IT wymagają systemu usługi Active Directory do celów uwierzytelniania, więc usługa Active Directory znajduje się poza ich kontrolą.

Cristina: Wygląda na mnie. Co z zagrożeniami? Ricardo: Pozwólcie wam pokazać.

Analizowanie zagrożeń

Po kliknięciu widoku analizy z menu ikon (pliku z lupą) zostanie on przeniesiony do listy wygenerowanych zagrożeń znalezionych przez narzędzie modelowania zagrożeń na podstawie szablonu domyślnego, który używa podejścia SDL o nazwie STRIDE (fałszowanie, manipulowanie, odrzucanie, ujawnianie informacji, odmowa usługi i podniesienie uprawnień). Chodzi o to, że oprogramowanie jest objęte przewidywalnym zestawem zagrożeń, które można znaleźć przy użyciu tych 6 kategorii.

Takie podejście jest podobne do zabezpieczania domu przez zapewnienie, że każde drzwi i okno ma mechanizm blokady przed dodaniem systemu alarmowego lub goni po złodzieju.

Basic Threats

Ricardo rozpoczyna się od wybrania pierwszego elementu na liście. Oto, co się stanie:

Po pierwsze, interakcja między dwoma wzornikami jest rozszerzona

Screenshot shows two stencils and the curved arrow connecting them in a heavier weight of line.

Po drugie dodatkowe informacje o zagrożeniu są wyświetlane w okno Właściwości threat

Screenshot shows the Threat Properties window, which contains Title, Category, Description, Interaction, and Priority.

Wygenerowane zagrożenie pomaga mu zrozumieć potencjalne wady projektu. Kategoryzacja STRIDE daje mu pomysł na potencjalne wektory ataku, podczas gdy dodatkowy opis mówi mu dokładnie, co jest złe, wraz z potencjalnymi sposobami jego ograniczenia. Może używać pól edytowalnych do zapisywania notatek w szczegółach uzasadnienia lub zmieniania klasyfikacji priorytetów w zależności od paska usterek swojej organizacji.

Szablony platformy Azure zawierają dodatkowe szczegóły ułatwiające użytkownikom zrozumienie nie tylko tego, co jest złe, ale także sposób jego naprawy przez dodanie opisów, przykładów i hiperlinków do dokumentacji specyficznej dla platformy Azure.

Opis sprawił, że zdał sobie sprawę z znaczenia dodania mechanizmu uwierzytelniania, aby uniemożliwić użytkownikom fałszowanie, ujawniając pierwsze zagrożenie, nad które należy pracować. Kilka minut na dyskusję z Cristina zrozumieli znaczenie implementowania kontroli dostępu i ról. Ricardo wypełnił kilka szybkich notatek, aby upewnić się, że zostały one zaimplementowane.

W miarę jak Ricardo wchodził w zagrożenia w ramach ujawniania informacji, zdał sobie sprawę, że plan kontroli dostępu wymagał niektórych kont tylko do odczytu na potrzeby generowania inspekcji i raportów. Zastanawiał się, czy powinno to być nowe zagrożenie, ale środki zaradcze były takie same, więc zauważył zagrożenie odpowiednio. Pomyślał również o ujawnieniu informacji nieco więcej i zdał sobie sprawę, że taśmy kopii zapasowej będą potrzebować szyfrowania, zadania dla zespołu operacyjnego.

Zagrożenia, które nie mają zastosowania do projektu z powodu istniejących środków zaradczych lub gwarancji zabezpieczeń, można zmienić na "Nie dotyczy" z listy rozwijanej Stan. Istnieją trzy inne opcje: Nie uruchomiono — wybór domyślny, Badanie potrzeb — używane do śledzenia elementów i Łagodzenie — po pełnym zakończeniu pracy.

Raporty i udostępnianie

Gdy Ricardo przejdzie przez listę z Cristina i dodaje ważne uwagi, środki zaradcze/uzasadnienia, priorytet i zmiany stanu, wybiera pozycje Raporty -> Utwórz pełny raport -> Zapisz raport, który wyświetla dla niego miły raport, aby przejść do współpracowników, aby upewnić się, że zostanie wdrożona odpowiednia praca w zakresie zabezpieczeń.

Screenshot shows a representative Threat Modeling Report.

Jeśli zamiast tego Ricardo chce udostępnić plik, można go łatwo zrobić, zapisując je na koncie usługi OneDrive swojej organizacji. Gdy to zrobi, może skopiować link do dokumentu i udostępnić go współpracownikom.

Spotkania dotyczące modelowania zagrożeń

Kiedy Ricardo wysłał swój model zagrożenia do swojego kolegi przy użyciu usługi OneDrive, Ashish, testera, był underwhelmed. Wydawało się, że Ricardo i Cristina brakowało dość ważnych przypadków rogu, które mogą być łatwo naruszone. Jego sceptycyzm jest uzupełnieniem modeli zagrożeń.

W tym scenariuszu, gdy Ashish przejął model zagrożenia, wezwał do dwóch spotkań modelowania zagrożeń: jedno spotkanie do synchronizacji w procesie i przejście przez diagramy, a następnie drugie spotkanie na potrzeby przeglądu zagrożeń i wylogowania.

W pierwszym spotkaniu Ashish spędził 10 minut spacerując przez proces modelowania zagrożeń SDL. Następnie podciągnął diagram modelu zagrożeń i zaczął go szczegółowo wyjaśniać. W ciągu pięciu minut zidentyfikowano ważny brakujący składnik.

Kilka minut później Ashish i Ricardo dotarli do rozszerzonej dyskusji na temat tego, jak został zbudowany serwer internetowy. Nie było to idealny sposób na kontynuowanie spotkania, ale wszyscy w końcu zgodzili się, że odkrycie rozbieżności na początku pozwoli zaoszczędzić im czas w przyszłości.

W drugim spotkaniu zespół przejdą przez zagrożenia, omówił kilka sposobów ich rozwiązania i podpisał się w modelu zagrożeń. Sprawdzili dokument w kontroli źródła i kontynuowali programowanie.

Myślenie o zasobach

Niektórzy czytelnicy, którzy mają modelowanie zagrożeń, mogą zauważyć, że w ogóle nie mówiliśmy o zasobach. Odkryliśmy, że wielu inżynierów oprogramowania lepiej rozumie swoje oprogramowanie, niż rozumie koncepcję zasobów i jakie zasoby może zainteresować osoba atakująca.

Jeśli zamierzasz modelować dom, możesz zacząć od myślenia o swojej rodzinie, niezastąpionych zdjęć lub cennych dzieł sztuki. Być może zaczniesz od myślenia o tym, kto może włamać się i obecny system zabezpieczeń. Możesz też zacząć od rozważenia funkcji fizycznych, takich jak basen lub przednia porcha. Są one analogiczne do myślenia o zasobach, osobach atakujących lub projektowaniu oprogramowania. Każda z tych trzech metod działa.

Przedstawione tutaj podejście do modelowania zagrożeń jest znacznie prostsze niż to, co firma Microsoft zrobiła w przeszłości. Odkryliśmy, że podejście do projektowania oprogramowania działa dobrze dla wielu zespołów. Mamy nadzieję, że to twoje.

Następne kroki

Wyślij pytania, komentarze i wątpliwości do witryny tmtextsupport@microsoft.com. Pobierz narzędzie do modelowania zagrożeń, aby rozpocząć pracę.