Bądźmy w kontakcie

Plan Szkolenia

I. Wprowadzenie do bezpiecznego programowania i bezpieczeństwa aplikacji webowych

1. Współczesny krajobraz zagrożeń dla aplikacji internetowych

  • Typowe wektory ataku na aplikacje internetowe
  • Ryzyka bezpieczeństwa we współczesnych aplikacjach ASP.NET
  • Rola bezpiecznego kodowania w procesie tworzenia oprogramowania
  • Wprowadzenie do Fundacji OWASP i jej zasobów

2. Zasady bezpiecznego rozwoju oprogramowania

  • Bezpieczeństwo poprzez projektowanie (Security by design)
  • Obrona w głębi (Defense in depth)
  • Zasada najmniejszych uprawnień (Least privilege)
  • Bezpieczne zakończenie działania w przypadku błędu (Fail securely)
  • Domyślne ustawienia bezpieczeństwa (Secure defaults)
  • Podstawy modelowania zagrożeń

II. Bezpieczny cykl życia rozwoju oprogramowania (SDL)

1. Bezpieczny cykl życia tworzenia oprogramowania

  • Zapewnienie bezpieczeństwa na każdym etapie cyklu życia aplikacji
  • Wymagania dotyczące bezpieczeństwa
  • Bezpieczna architektura i projektowanie
  • Praktyki bezpiecznego kodowania
  • Testy walidacji bezpieczeństwa
  • Bezpieczne wdrażanie i konserwacja

2. Ocena ryzyka i modelowanie zagrożeń

  • Identyfikacja zasobów i zagrożeń
  • Analiza powierzchni ataku
  • Zarys metody STRIDE
  • Priorytetyzowanie ryzyk bezpieczeństwa

III. OWASP Top 10 dla aplikacji ASP.NET

1. Zrozumienie listy OWASP Top 10

  • Zaburzony kontrola dostępu (Broken Access Control)
  • Awarie kryptograficzne
  • Iniekcja kodu
  • Niebezpieczny projekt (Insecure Design)
  • Błędy konfiguracji bezpieczeństwa
  • Zagrożone i przestarzałe komponenty
  • Awarie identyfikacji i uwierzytelnienia
  • Awarie integralności oprogramowania i danych
  • Awarie dzienników bezpieczeństwa i monitorowania
  • Zfałszowanie żądań po stronie serwera (SSRF)

2. Zastosowanie zaleceń OWASP

  • Techniki bezpiecznego kodowania
  • Kontrolki prewencyjne
  • Praktyki bezpiecznej konfiguracji
  • Przykłady i demonstracje z życia wzięte

IV. Bezpieczeństwo uwierzytelniania i autoryzacji

1. Podstawy uwierzytelniania

  • Mechanizmy uwierzytelnienia w ASP.NET
  • Zabezpieczenie haseł
  • Uwierzytelnianie wieloskładnikowe (MFA)
  • Zarządzanie sesją
  • Zarządzanie tożsamością

2. Autoryzacja i kontrola dostępu

  • Autoryzacja oparta na rolach
  • Autoryzacja oparta na żetonach (Claims-based)
  • Autoryzacja oparta na politykach
  • Zapobieganie eskalacji uprawnień
  • Ochrona wrażliwych zasobów

V. Zapobieganie atakom iniekcji kodu

1. Zagrożenia typu Iniekcja

  • Iniekcja SQL (SQL Injection)
  • Iniekcja komend systemowych (Command Injection)
  • Iniekcja LDAP
  • Iniekcja XML
  • Wprowadzenie do iniekcji NoSQL

2. Technikii bezpiecznego kodowania

  • Zapytania parametryzowane
  • Walidacja danych wejściowych
  • Kodowanie wyjściowe (Output encoding)
  • Aspekty bezpieczeństwa ORM
  • Praktyki bezpiecznego dostępu do bazy danych

VI. Zapobieganie atakom typu Cross-Site Scripting (XSS)

1. Zrozumienie mechanizmu XSS

  • Przechowywany XSS (Stored XSS)
  • Odbity XSS (Reflected XSS)
  • XSS bazujący na DOM (DOM-based XSS)
  • Scenariusze ataku

2. Zapobieganie XSS

  • Kodowanie wyjściowe
  • Walidacja danych wejściowych
  • Polytyka bezpieczeństwa zawartości (CSP)
  • Bezpieczne przetwarzanie kodu HTML i JavaScript
  • Funkcje bezpieczeństwa ASP.NET służące do zapobiegania XSS

VII. Zapobieganie atakom Cross-Site Request Forgery (CSRF)

1. Zrozumienie mechanizmu CSRF

  • Działanie ataków CSRF
  • Typowe scenariusze ataku
  • Skutki biznesowe

2. Ochrona przed CSRF

  • Fikcyjne tokeny (Anti-forgery tokens)
  • Cookies SameSite
  • Bezpieczne zarządzanie sesją
  • Mechanizmy anti-forgery w ASP.NET

VIII. Bezpieczna konfiguracja aplikacji ASP.NET

1. Funkcje bezpieczeństwa ASP.NET

  • Bezpieczeństwo konfiguracji
  • Bezpieczne nagłówki HTTP
  • Konfiguracja HTTPS i TLS
  • Zarządzanie danymi wrażliwymi (Secrets management)
  • Bezpieczna obsługa błędów

2. Ochrona danych wrażliwych

  • API ochrony danych
  • Bezpieczne przechowywanie poświadczeń
  • Podstawy szyfrowania
  • Zarządzanie kluczami

IX. Walidacja danych wejściowych i bezpieczne przetwarzanie danych

1. Walidowanie danych od użytkownika

  • Biała lista vs czarna lista
  • Walidacja po stronie serwera
  • Aspekty walidacji po stronie klienta
  • Bezpieczeństwo przesyłania plików

2. Bezpieczne przetwarzanie danych

  • Bezpieczeństwo serializacji
  • Ryzyka deserializacji
  • Integralność danych
  • Praktyki bezpiecznego logowania

X. Testy penetracyjne i weryfikacja bezpieczeństwa

1. Metodologia testów penetracyjnych

  • Planowanie oceny bezpieczeństwa
  • Identyfikacja luk (vulnerabilities)
  • Koncepcje eksploatacji luk
  • Sporządzanie raportów z wyników

2. Techniki testowania bezpieczeństwa

  • Statyczne analizowanie bezpieczeństwa aplikacji (SAST)
  • Dynamiczne analizowanie bezpieczeństwa aplikacji (DAST)
  • Interaktywne analizowanie bezpieczeństwa aplikacji (IAST)
  • Analiza zależności i komponentów
  • Ręczny audyt kodu

XI. Zabezpieczanie aplikacji ASP.NET

1. Stosowanie praktyk bezpiecznego kodowania

  • Bezpieczna implementacja uwierzytelniania
  • Bezpieczna implementacja autoryzacji
  • Zabezpieczenie sesji
  • Obsługa wyjątków
  • Dzienniki i monitorowanie
  • Aspekty bezpiecznego wdrażania

2. Najlepsze praktyki bezpieczeństwa

  • Standardy bezpiecznego kodowania
  • Zarządzanie zależnościami
  • Zarządzanie łatkami (Patch management)
  • Ciągłe doskonalenie bezpieczeństwa

XII. Warsztat praktyczny: Bezpieczeństwo

1. Identyfikacja i wykorzystanie typowych luk

  • Analiza niebezpiecznego kodu ASP.NET
  • Identyfikacja luk z listy OWASP Top 10
  • Zrozumienie technik ataku
  • Ocena bezpieczeństwa aplikacji

2. Usuwanie problemów bezpieczeństwa

  • Zastosowanie poprawek bezpiecznego kodowania
  • Walidacja środków łagodzących
  • Testowanie naprawionych aplikacji
  • Ćwiczenie przeglądania kodu pod kątem bezpieczeństwa

XIII. Podsumowanie i przegląd kursu

1. Przegląd kluczowych pojęć

  • Zasady bezpiecznego projektowania
  • Strategie łagodzenia zagrożeń z OWASP Top 10
  • Funkcje bezpieczeństwa ASP.NET
  • Bezpieczny cykl życia tworzenia oprogramowania

2. Dyskusja końcowa

  • Najlepsze praktyki bezpiecznego kodowania
  • Konstruowanie zespołów deweloperskich kładących nacisk na bezpieczeństwo
  • Dodatkowe zasoby i narzędzia OWASP
  • Pytania i odpowiedzi oraz dalsze kroki

Wymagania

Doświadczenie w pracy z technologią ASP.NET
Doświadczenie w tworzeniu aplikacji internetowych

 21 godzin

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (5)

Propozycje terminów

Powiązane Kategorie