Bezpieczeństwo a zarządzanie projektami Wojciech Dworakowski, SecuRing OWASP Poland, 2013-05-08
Bezpieczeństwo Funkcjonalność Dostępność
Z mojego doświadczenia Ponad 200 zbadanych systemów w branży finansowej i nie tylko Średnio ok. 10 podatności na badany system W ponad 70% przypadków znajdujemy podatności o znaczeniu kluczowym
Koszty Szczegółowe testy bezpieczeństwa Usuwanie podatności Analiza zmian Negocjacje Korespondencja, spotkania Weryfikacja skuteczności poprawek Czasowe istnienie podatności na produkcji (akceptacja ryzyka)
Przyczyny Wymagania w zakresie bezpieczeństwa nie są definiowane w ogóle lub nie uwzględniają cech niefunkcjonalnych Osoby definiujące wymagania nie mają wiedzy pozwalającej na projektowanie scenariuszy ataków dobranie zabezpieczeń (wymagań)
Wymagania - przykłady funkcjonalne Po przekroczeniu maksymalnej liczby prób uwierzytelnienia konto zostaje zablokowane na okres czasu pozwalający na powstrzymanie ataków typu brute force. Wszystkie mechanizmy uwierzytelniania są egzekwowane po stronie serwera. Istnieje scentralizowany mechanizm zabezpieczający dostęp do każdego typu chronionych zasobów Dla wszystkich wejść są zdefiniowane i zastosowane wzorce pozytywnej walidacji Wszystkie niezaufane dane trafiające do interpreterów SQL używają parametryzowanych interfejsów niefunkcjonalne Źródło: OWASP ASVS (Application Security Verification Standard)
Jak to zmienić? Definiowanie Analiza ryzyka (7.4) Zdefiniowanie wymagań (7.2) Projektowanie Wymagania są weryfikowane w projekcie Wdrażanie Testy przed wdrożeniem (7.5-6) Weryfikacja spełnienia wymagań (7.7) Wykonanie Testy jednostkowe (według przyjętych wymagań)
Analiza ryzyka (model uproszczony) Identyfikacja ryzyka Zagrożenia (Kto?) Potencjalne skutki (Po co?) Ranking ryzyk (ekspozycja, motywacja, skutki, …) Definiowanie Projektowanie Wykonanie Wdrażanie
Zdefiniowanie wymagań Kto? Scenariusze ataku Jak? Co? Zagrożenia Skutki Scenariusze ataku Jak zagrożenia mogą osiągnąć cele? Uwaga: Wymaga doświadczenia i wiedzy eksperckiej Definiowanie Projektowanie Wykonanie Wdrażanie
Zdefiniowanie wymagań (c.d.) Dobranie zabezpieczeń Jak bronić się przed atakami? WYMAGANIA funkcjonalne i niefunkcjonalne Częściowo można wykorzystać istniejące standardy Np. OWASP ASVS Definiowanie Projektowanie Wykonanie Wdrażanie
Projektowanie i wytwarzanie Weryfikacja wymagań w projekcie Wytwarzanie Weryfikacja poprawności kodu Testy jednostkowe zabezpieczeń Definiowanie Projektowanie Wykonanie Wdrażanie
Testy przed wdrożeniem Zakres testów Weryfikacja wymagań Scenariusze testowe Scenariusze ataków (z etapu definiowania) Definiowanie Projektowanie Wykonanie Wdrażanie
Zalety Zmiany łatwe do wdrożenia Wystarczy dodać definiowanie wymagań w zakresie bezpieczeństwa Jasno zdefiniowane wymagania dla wykonawcy Jasno zdefiniowany zakres testów bezpieczeństwa
Zalety c.d. Optymalizacja kosztów Zabezpieczenia adekwatne do ryzyka Możliwość wczesnej eliminacji podatności Znacznie łatwiejsza analiza wpływu zmian na bezpieczeństwo
Równowaga Bezpieczeństwo Funkcjonalność Dostępność
Pytania? Wojciech Dworakowski wojciech.dworakowski@securing.pl tel. 506 184 550