Diagramy przepływu danych i granice zaufania
Mapowanie przepływu danych i miejsc przekraczania granic zaufania
Diagramy przepływu danych i granice zaufania to bezpłatna lekcja Cyber Security Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cyber Security Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Dlaczego najpierw należy narysować diagram
Nie można znaleźć zagrożeń w systemie, którego się nie rozumie. Diagram przepływu danych (DFD) stanowi podstawę modelowania zagrożeń: wizualnie odwzorowuje sposób przepływu danych przez system.
Diagram sprawia, że niejawne założenia stają się jawne. Gdy widać, dokąd trafiają dane i kto ma z nimi styczność, znacznie łatwiej dostrzec zagrożenia.
Cztery elementy DFD
DFD wykorzystuje tylko cztery podstawowe elementy budulcowe. Należy zachować prostotę:
- Encja zewnętrzna — osoba lub system znajdujące się poza Państwa kontrolą (użytkownik, API firmy trzeciej)
- Proces — coś, co przekształca dane (usługa, funkcja)
- Magazyn danych — miejsce przechowywania danych (baza danych, plik, pamięć podręczna)
- Przepływ danych — przemieszczanie się danych między elementami (strzałka)
Niemal każdy system można przedstawić za pomocą tych czterech kształtów.
Standardowa notacja DFD
Diagramy DFD wykorzystują konwencjonalne kształty, dzięki czemu każdy może je odczytać:
External entity -> rectangle / square
Process -> circle (or rounded rectangle)
Data store -> two parallel lines (open rectangle)
Data flow -> labeled arrow
Trust boundary -> dashed line crossing flowsProsty diagram DFD aplikacji internetowej
Rozważmy podstawową aplikację internetową. Jej DFD w formie tekstowej może wyglądać następująco:
User (external) --HTTPS request--> Web App (process)
Web App --SQL query--> Database (data store)
Web App --API call--> Payment Provider (external)
Database --results--> Web App
Web App --HTTPS response--> UserCzym jest granica zaufania
Granica zaufania to dowolna linia na diagramie, wzdłuż której zmienia się poziom zaufania. Po jednej stronie dane lub wywołujący są zaufani, a po drugiej — nie.
Granice zaufania są najważniejszym z punktu widzenia bezpieczeństwa elementem DFD, ponieważ wskazują miejsca, w których:
- Dane należy walidować
- Wywołujących należy uwierzytelniać i autoryzować
- Zmieniają się poziomy uprawnień
Większość podatności występuje dokładnie tam, gdzie dane przekraczają granicę zaufania.
Typowe granice zaufania
Gdy zacznie się ich szukać, okaże się, że granice zaufania są wszędzie. Typowe przykłady:
- Internet a aplikacja (docierają niezaufane dane wejściowe użytkownika)
- Aplikacja a baza danych
- Między procesem o niskich i wysokich uprawnieniach
- Między Państwa systemem a API firmy trzeciej
- Między kontenerem a hostem
- Przez segmenty sieci (od DMZ do sieci wewnętrznej)
Każda granica wymaga dokładnego, jawnego przeanalizowania.
Rysowanie granic na DFD
Granice zaufania należy dodawać jako przerywane linie przecinające przepływy danych, których dotyczą. W naszej aplikacji internetowej:
User (external)
| HTTPS
- - - - - - - - - - - - <- Trust boundary: internet / app
v
Web App (process)
| SQL
- - - - - - - - - - - - <- Trust boundary: app / database
v
Database (data store)Granice wskazują, gdzie stosować STRIDE
Granice zaufania łączą tę lekcję z platformą STRIDE. Przepływy danych, które przekraczają granicę, to miejsca, na których należy skupić analizę STRIDE.
Na granicy między internetem a aplikacją należy zadać pytania:
- Podszywanie się — czy wywołujący jest uwierzytelniony?
- Modyfikowanie — czy dane wejściowe podlegają walidacji?
- Ujawnienie informacji — czy kanał jest szyfrowany?
- Odmowa usługi — czy stosowane jest ograniczanie liczby żądań?
Granice przekładają abstrakcyjną platformę na konkretne pytania.
Wybór właściwego poziomu szczegółowości
DFD może być zbyt ogólny lub zbyt szczegółowy. Oba podejścia zawodzą.
- Zbyt wysoki poziom — jedno pole oznaczone jako „system” ukrywa wszystkie istotne granice
- Zbyt szczegółowy poziom — uwzględnienie każdej funkcji i zmiennej zasypuje Państwa niepotrzebnymi szczegółami
Należy wybrać poziom, na którym widoczny jest każdy główny komponent i granica zaufania. Warto stosować warstwowe DFD: diagram kontekstowy przedstawiający cały system, a następnie osobne, bardziej szczegółowe diagramy złożonych procesów.
Weryfikacja diagramu z zespołem
DFD narysowany przez jedną osobę zwykle zawiera błędne założenia. Należy omówić go z osobami, które zbudowały system.
Warto zadać dociekliwe pytania:
- Czy to naprawdę jedyny sposób, w jaki dane trafiają do bazy danych?
- Czy istnieją ścieżki administracyjne lub wsadowe, których tutaj nie pokazano?
- Czy coś omija ten etap uwierzytelniania?
- Czy gdzieś indziej istnieją kopie tych danych zapisane w pamięci podręcznej?
Ukryte przepływy danych często powodują przeoczenie podatności.
Aktualizowanie diagramu
Systemy się zmieniają, a nieaktualny DFD zaczyna wprowadzać w błąd. Nieaktualny diagram jest gorszy niż jego brak, ponieważ daje fałszywe poczucie bezpieczeństwa.
DFD należy zaktualizować, gdy:
- dodano nową integrację lub zależność zewnętrzną
- pojawił się nowy magazyn danych
- zmienił się model zaufania (usługa została przeniesiona do nowej strefy sieciowej)
DFD należy traktować jako dokumentację rozwijaną wraz z systemem, a nie jednorazowy artefakt.
Szybki test
Proszę sprawdzić swoją znajomość DFD i granic zaufania.
Podsumowanie
W tej lekcji nauczyli się Państwo mapować systemy na potrzeby modelowania zagrożeń:
- DFD wykorzystuje cztery elementy: encje zewnętrzne, procesy, magazyny danych i przepływy danych
- Granice zaufania wskazują miejsca zmiany poziomu zaufania oraz obszary, w których występuje większość podatności
- Przepływy danych przekraczające granicę to obszary, na których należy skupić analizę STRIDE
- Należy dobrać odpowiedni poziom szczegółowości i używać diagramów warstwowych
- Należy zweryfikować DFD z zespołem i dbać o jego aktualność
W następnej części poznają Państwo sposób oceniania zagrożeń za pomocą drzew ataku oraz ustalania priorytetów zabezpieczeń.
Często zadawane pytania
Czy lekcja „Diagramy przepływu danych i granice zaufania” jest bezpłatna?
Tak — pełny tekst „Diagramy przepływu danych i granice zaufania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cyber Security Academy, przejdź na CoddyKit PRO. Kurs Cyber Security Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Diagramy przepływu danych i granice zaufania”?
Mapowanie przepływu danych i miejsc przekraczania granic zaufania Ćwiczysz Cyber Security Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cyber Security Academy?
Nie wymagamy żadnego doświadczenia. Cyber Security Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Diagramy przepływu danych i granice zaufania”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cyber Security Academy?
Tak. Każda lekcja Cyber Security Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dlaczego modelowanie zagrożeń ma znaczenie
- Model STRIDE
- Diagramy przepływu danych i granice zaufania
- Drzewa ataków i ustalanie priorytetów ryzyka