Krok 1. Projektowanie
W fazie projektowania zaczynają być wykonywane działania dotyczące modelowania zagrożeń. Zbierz jak najwięcej danych na temat tego, co tworzysz, i czego używasz do jego kompilowania.
Cele
- Opracowanie jasnego obrazu działania systemu
- Utworzenie listy wszystkich usług używanych przez system
- Wyliczenie wszystkich założeń dotyczących środowiska i domyślnych konfiguracji zabezpieczeń
- Tworzenie diagramu przepływu danych, który używa odpowiedniego poziomu głębokości kontekstu
Ważne
Jeśli nie ukończysz tej fazy, możesz pominąć ważne zagadnienia dotyczące projektowania zabezpieczeń dla systemu, które mogą narażać klientów na ryzyko.
Zadanie pytań na temat systemu
Zadaj jak największą liczbę pytań dotyczących systemu. Oto kilka pytań, które warto rozważyć:
Obszar | Pytania |
---|---|
Opis systemu | Co robi system? Jakie procesy biznesowe są obsługiwane przez usługę? Czy są one jasno zdefiniowane? |
Środowisko systemu | Czy system zostanie zbudowany w chmurze, czy w środowisku lokalnym? Na którym systemie operacyjnym jest zbudowany? Czy używa kontenerów? Czy system jest aplikacją, usługą, czy czymś zupełnie innym? |
Scenariusze | Jak będzie używany system? Jak nie będzie używany? |
Uprawnienia | Czy system ma wymagania dotyczące wykonywania skryptów, danych lub dostępu do sprzętu? Jeśli tak, to jakie? |
Dostawca usług w chmurze | Którego dostawcy usług w chmurze używa system? Jakie domyślne opcje konfiguracji zabezpieczeń oferuje dostawca? W jest wpływ tych opcji na wymagania dotyczące zabezpieczeń systemu? |
System operacyjny | Z którego systemu operacyjnego będzie korzystać system? Jakie domyślne opcje konfiguracji zabezpieczeń oferują system operacyjny? W jest wpływ tych opcji na wymagania dotyczące zabezpieczeń systemu? |
Usługi natywne i innych firm | Z jakich usług natywnych i innych firm będzie korzystał system? Jakie oferują one domyślne opcje konfiguracji zabezpieczeń? W jest wpływ tych opcji na wymagania dotyczące zabezpieczeń systemu? |
Klienci | Jakie są typy kont używane przez system, takie jak użytkownicy i administratorzy? Czy te konta są włączone lokalnie lub w chmurze? Jakiego dostępu potrzebują i dlaczego? |
Tożsamość i kontrola dostępu | Jak system pomaga zabezpieczyć te konta? Czy jest on zależny od identyfikatora Entra firmy Microsoft? Czy używa funkcji, takich jak listy kontroli dostępu (ACL), uwierzytelnianie wieloskładnikowe (MFA) i kontrola sesji? |
Tokeny i sesje | Czy system będzie przetwarzał żądania, takie jak interfejsów API SOAP lub REST? Jak obsługuje ona różne sesje? |
Obejście | Czy system będzie używać lub wymagać tylnych drzwi? Jeśli tak, jak to obejście działa? |
Rejestrowanie, monitorowanie i wykonywanie kopii zapasowych | Jakie mechanizmy są używane przez system do rejestrowania zdarzeń zabezpieczeń, monitorowania anomalii i tworzenia kopii zapasowych danych systemowych? Które typy zdarzeń przechwytuje? |
Sieciowe | Jakie będą używane systemy wykrywania i ochrony przed włamaniami? W jaki sposób komunikacja jest szyfrowana? |
Data | Jakiego typu dane będą tworzone lub obsługiwane przez system? Jaki będzie typ klasyfikacji danych? W jaki sposób system ufa źródłam danych? Jak analizuje ona dane? Jakie są oczekiwane zachowania danych wejściowych i wyjściowych? Jak jest obsługiwana walidacja? W jaki sposób dane są szyfrowane we wszystkich stanach? |
Zarządzanie wpisami tajnymi | Jak system obsługuje klucze, certyfikaty i poświadczenia? |
Ważne
Ta lista jest obszerna, ale nie wyczerpująca. Porozmawiaj ze współpracownikami i członkami zespołu ds. zabezpieczeń, aby uzyskać cały kontekst dla systemu.
Uwaga
Jeśli masz dedykowany zespół ds. zabezpieczeń, zaplanuj sesję tablicy z nimi, aby przejść przez początkowy projekt. Ten kontakt może zaoszczędzić dużo czasu.
Tworzenie diagramu przepływu danych
Na podstawie uzyskanych odpowiedzi utwórz diagram przepływu danych. Diagram przedstawia dane na każdym etapie cyklu życia danych i zawiera zmiany w strefach zaufania. Oto kilka przykładów:
- Użytkownicy końcowi logować się do aplikacji internetowej hostowanej na platformie Azure w celu uzyskania dostępu do danych
- Administracja istratory zmieniają domyślne konfiguracje zabezpieczeń dla elastycznych zasobów używanych przez aplikację internetową
- Automatyczne codzienne skrypty monitorują dzienniki aktywności aplikacji internetowej i powiadamiają administratorów o wszelkich anomaliach
Zespoły inżynierów firmy Microsoft przesyłają diagramy przepływu danych w ramach wymagań dotyczących zgodności z zabezpieczeniami. Te diagramy ułatwiają prowadzanie konwersacji dotyczących zabezpieczeń.
Narzędzia do tworzenia diagramów
Inżynierowie firmy Microsoft zalecają korzystanie z jednego z dwóch dostępnych aktualnie narzędzi:
- Threat Modeling Tool
- Visio
Elementy diagramu
Diagram przepływu danych przedstawia przepływ danych w danym systemie. Przepływ zwykle zaczyna się od żądań użytkowników lub magazynów danych, a kończy się na magazynach danych lub usługach analizy. Na diagramie przepływu danych różne elementy są oznaczane za pomocą odrębnych kształtów.
Element | Kształt | Definicja |
---|---|---|
Przetwarzaj | Zadanie, które odbiera, modyfikuje lub przekierowuje dane wejściowe do danych wyjściowych, na przykład usługa internetowa. | |
Magazyn danych | Trwały i tymczasowy magazyn danych, na przykład internetowa pamięć podręczna lub bazy danych zarządzane na platformie Azure. | |
Jednostka zewnętrzna | Zadanie, jednostka lub magazyn danych poza Twoją bezpośrednią kontrolą, na przykład użytkownicy i interfejsy API innych firm. | |
Przepływ danych | Przenoszenie danych między procesami, magazynami danych i jednostkami zewnętrznymi, na przykład parametry połączeń i ładunki. | |
Granica zaufania | Strefa zaufania zmienia się w miarę przepływu danych przez system, takich jak użytkownicy korzystający z Internetu w celu uzyskania dostępu do zabezpieczonej sieci firmowej. |
Elementy diagramu przepływu danych wymagają również kontekstu, aby inni użytkownicy mogli zrozumieć, jak są one używane i zabezpieczane w systemie.
Informacje do uwzględnienia w diagramie przepływu danych
Ilość informacji do uwzględnienia w diagramie przepływu danych zależy od kilku kluczowych czynników:
Współczynnik | Wyjaśnienie |
---|---|
Typ tworzonego systemu | Systemy, które nie obsługują poufnych danych lub są używane tylko wewnętrznie, mogą nie potrzebować tak dużego kontekstu, jak systemu dostępnego zewnętrznie |
Kontekst wymagany od zespołu ds. zabezpieczeń | Zespoły ds. zabezpieczeń mają precyzyjne oczekiwania dotyczące modeli zagrożeń. Porozmawiaj z członkami zespołu ds. zabezpieczeń, aby potwierdzić wymaganą warstwę głębokości |
Nieuwzględnienie odpowiedniego kontekstu prowadzi do powstawania niekompletnych przeglądów zabezpieczeń i potencjalnie zagrożonych systemów.
Warstwy diagramu
Aby ułatwić oszacowanie ilości informacji do uwzględnienia, wybierz jedną z tych czterech warstw głębokości kontekstu:
Warstwa głębokości | Nazwa | opis |
---|---|---|
0 | Zadania systemowe | Jest to punkt początkowy dla każdego systemu. Diagramy przepływu danych zawierają główne części systemu z wystarczającą ilością kontekstu, aby ułatwić zrozumienie sposobu ich działania i występujących między nimi interakcji. |
1 | Przetwarzaj | Skoncentruj się na diagramach przepływu danych dla każdej części systemu przy użyciu innych diagramów przepływu danych. Ta warstwa jest używana dla każdego systemu, zwłaszcza jeśli obsługuje poufne dane. Kontekst w tej warstwie ułatwia identyfikowanie zagrożeń i sposobów zmniejszenia lub wyeliminowania zagrożeń wydajniej. |
2 | Proces podrzędny | Jest ona głównie przeznaczona dla diagramów przepływu danych dla każdej podrzędnej części systemu. Jest ona stosowana w systemach uznawanych za krytyczne. Przykładami mogą być systemy dla zabezpieczonych środowisk, systemy obsługujące wysoce poufne dane lub systemy charakteryzujące się wysoką oceną ryzyka. |
3 | Niższy poziom | Jest ona głównie przeznaczona dla systemów wysoce krytycznych i działających na poziomie jądra. Diagramy przepływu danych opisują każdy podproces w najdrobniejszych szczegółach. |
Uwaga
Większość diagramów przepływu danych powinna zawierać warstwy głębokości 0 i 1. Porozmawiaj z członkami zespołu ds. zabezpieczeń, aby potwierdzić wymaganą warstwę głębokości.