Threat modelling – co to jest?

Threat modelling – co to jest?

Threat modelling, modelowanie zagrożeń, analiza bezpieczeństwa – jest na to wiele nazw. Większość z nas kojarzy, że jest to aktywność związana z bezpieczeństwem, ale o co dokładnie tutaj chodzi? 

Jaki cel ma threat modelling?

W tworzeniu aplikacji musimy zwracać uwagę na różne wymagania. Zarówno funkcjonalne jak i niefunkcjonalne. Jedną z istotnych niefunkcjonalnych właściwości systemu, na którą trzeba zwracać uwagę, jest jego bezpieczeństwo. Jednak w tym przypadku, w porównaniu do innych atrybutów systemu (takich jak dostępność, wydajność, …), nie zawsze łatwo jest stwierdzić, jakie mierzalne metryki należy stosować podczas tworzenia danej funkcjonalności.

Dla wydajności w prosty sposób możemy określić sobie oczekiwane metryki. Możemy zdefiniować, jakie obciążenie powinna wytrzymać nasza aplikacja. Następnie uruchomić na niej load testy dla zdefiniowanych parametrów: ile osób korzysta z aplikacji, w jakim czasie, jaki jest dopuszczalny czas odpowiedzi. W ten sposób jesteśmy w stanie efektywnie zmierzyć wydajność naszej aplikacji.

Jednak jak zmierzyć bezpieczeństwo?

Jest to o wiele trudniejsze. Nawet testy penetracyjne mogą nie wykryć wszystkich podatności w naszym systemie. Tutaj przychodzi nam z pomocą threat modelling. 

Kiedy przeprowadzać threat modelling?

Właśnie dlatego, że tak trudno jest znajdować podatności na etapie testów, tak ważne jest, żeby myśleć o bezpieczeństwie już od samego początku pracy nad projektem IT. Stąd też bierze się potrzeba modelowania zagrożeń już podczas projektowania określonych funkcjonalności w systemie.Dobrą zasadą jest przeprowadzanie analizy zagrożeń stosunkowo  często. Im częściej to robimy, tym zespół będzie robił to sprawniej. Czyli im częściej, tym sesje będą krótsze, a ludzie w zespole będą w tym sprawniejsi i będą w stanie dochodzić do bardziej wartościowych rezultatów.

Jak przeprowadzać threat modelling?

Modelowanie zagrożeń może początkowo wydawać się proste. Po prostu siadamy i myślimy, co by tu można było popsuć. Jednak, gdy będziemy chcieli wyjść poza standardowe, najpopularniejsze zagrożenia (takie jak SQL Injection), to sprawa się mocno komplikuje. Dlatego też warto znać proces, za pomocą którego można taką analizę przeprowadzić w skuteczny sposób.

Dokładny sposób analizy zagrożeń przedstawię w następnych artykułach. Na początku warto jednak znać ogólny model pracy nad modelowaniem zagrożeń:

  1. Co budujemy?
  2. Jakie ważne dane lub akcje umożliwiamy?
  3. Co się może z nimi stać?
  4. Co możemy zrobić, żeby zapobiec tym zagrożeniom?
  5. Czy znalezione rozwiązanie rzeczywiście rozwiąże problem?

Threat modelling w życiu codziennym

Modelowanie zagrożeń jest obecne w naszym codziennym życiu. Niemal każdy z nas raz na jakiś czas modeluje ryzyko w swoim życiu prywatnym.Pomyśl sobie o sytuacji, gdy zostawiasz swój rower przypięty w nieznanym Ci miejscu. Wtedy właśnie modelujesz ryzyko, jakie istnieje w tej sytuacji.Zastanawiasz się wtedy, co grozi rowerowi:

  • czy może zostać potrącony przez samochód? 
  • czy ktoś go może ukraść? 
  • czy może zostać zniszczony? 

Następnie próbujesz mitygować te zagrożenia:

  • nie stawiasz roweru na drodze, 
  • przypinasz rower do czegoś stabilnego, 
  • wykupujesz ubezpieczenie roweru. 

Innym przykładem może być jazda samochodem. W każdym momencie gdy prowadzimy auto przeprowadzamy analizę zagrożeń. Gdy wjeżdzamy w nieznany teren nocą to często (najczęściej nieświadomie) zastanawiamy się jakie niebezpieczeństwa nam grożą:

  • śliska nawierzchnia
  • wybiegnięcie zwierzęcia na ulicę
  • nieoświetlony człowiek na poboczu

Równocześnie staramy się wprowadzić jak najwięcej środków redukujących te zagrożenia:

  • zmniejszyć prędkość
  • włączyć długie światła

Analiza zagrożeń jest dość powszechna. W życiu prywatnym modelowanie ryzyka zdarza nam się przeprowadzać wielokrotnie mimochodem. W przypadku projektowania systemów IT dochodzi do tego bardzo wiele zagrożeń i duży poziom skomplikowania zarówno infrastruktury jak i samych aplikacji. Jednak w miarę zdobywania doświadczenia jest coraz łatwiej.

Czy Ty modelujesz ryzyko w swojej pracy? Jeżeli tak, to w jaki sposób?

Powiązane: