Bądźmy w kontakcie

Plan Szkolenia

1. Bezpieczeństwo IT i bezpieczne kodowanie

  • Podstawowe zasady bezpieczeństwa: Poufność, integralność i dostępność (CIA) w kontekście aplikacji Java.
  • Cykl życia rozwoju bezpiecznego oprogramowania (SSDLC): Integracja bezpieczeństwa od wymagań do wdrożenia.
  • Paradygmaty bezpiecznego kodowania: Obrona w głąb, najmniejsze uprawnienia i bezpieczne domyślne ustawienia.
  • Standardowe klasyfikacje luk w zabezpieczeniach: Zrozumienie CWE (Common Weakness Enumeration) i OWASP.

2. Bezpieczeństwo aplikacji internetowych

  • Szczegółowa analiza OWASP Top Ten: Szczegółowe omówienie iniekcji, złamanego uwierzytelniania i narażenia danych wrażliwych.
  • Cross-Site Scripting (XSS): Scenariusze XSS odbitego, przechowywanego i DOM-based w Java/JSP.
  • Cross-Site Request Forgery (CSRF): Mechanizmy ataków i implementacja tokenów Anti-CSRF.
  • Zarządzanie sesjami: Bezpieczeństwo ciasteczek, fiksacja sesji i zarządzanie czasem wygaśnięcia.
  • Bezpieczeństwo API: Zabezpieczanie punktów końcowych REST i SOAP przed nadużyciami.

3. Bezpieczeństwo usług internetowych

  • Usługi internetowe a tradycyjne aplikacje internetowe: Różnice w powierzchniach ataków.
  • Bezpieczeństwo warstwy transportowej: Konfiguracja SSL/TLS dla klientów i serwerów Java.
  • Bezpieczeństwo wiadomości: Integralność i poufność na poziomie ładunku.
  • Standardy uwierzytelniania: Implementacja OAuth 2.0, OpenID Connect i JWT (JSON Web Tokens).

4. Bezpieczeństwo XML

  • Luki w parsowaniu XML: Zapobieganie atakom XML External Entity (XXE).
  • Walidacja schematu XML: Najlepsze praktyki dotyczące ścisłego egzekwowania schematów.
  • Cyfrowe podpisy XML: Implementacja podpisów w celu zapewnienia niezaprzeczalności.
  • Szyfrowanie XML: Standardowe podejścia do szyfrowania treści XML.

5. Podstawy bezpieczeństwa Java

  • Architektura bezpieczeństwa Java: Pakiet java.security i architektura dostawców.
  • Dostawcy bezpieczeństwa: Instalowanie i konfigurowanie dostawców takich jak Bouncy Castle.
  • Kontrola dostępu: Pliki polityk, uprawnienia i Security Manager (Legacy vs. Modern).
  • Zarządzanie KeyStore: Tworzenie i zarządzanie keystores i truststores dla certyfikatów.

6. Praktyczna kryptografia

  • Algorytmy kryptograficzne: Przegląd algorytmów symetrycznych (AES), asymetrycznych (RSA, ECC) i haszujących (SHA-256/512).
  • Generowanie liczb losowych: Zagrożenia związane z java.util.Random a java.security.SecureRandom.
  • Zarządzanie kluczami: Strategie generowania, przechowywania i rotacji kluczy.
  • Architektura kryptografii Java (JCA): Korzystanie z klas CipherMessageDigest i Mac.
  • Rozszerzenie kryptografii Java (JCE): Zrozumienie plików polityk i jurysdykcji o nieograniczonej sile.

7. Usługi bezpieczeństwa Java

  • SSL/TLS w Javie: Korzystanie z SSLSocketFactory i HttpsURLConnection.
  • Menadżerowie zaufania: Dostosowywanie weryfikacji zaufania dla prywatnych środowisk PKI.
  • Uwierzytelnianie: Programowe uwierzytelnianie przy użyciu Authenticator.getDefault().
  • Parsowanie certyfikatów: Programowe odczytywanie i analizowanie certyfikatów X.509.

8. Bezpieczeństwo Java EE

  • Bezpieczeństwo deklaratywne: Kontrola dostępu oparta na rolach (RBAC) przy użyciu web.xml i adnotacji.
  • Bezpieczeństwo programowe: Korzystanie z HttpServletRequest.isUserInRole() i getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Konfiguracja login.conf i implementacja LoginModule.
  • Bezpieczeństwo serwletów: Ograniczenia bezpieczeństwa zarządzane przez kontener i metody uwierzytelniania (FORM, BASIC, DIGEST).

9. Typowe błędy kodowania i luki w zabezpieczeniach

  • Niezabezpieczona deserializacja: Ryzyka związane z ObjectInputStream i omijaniem kontroli bezpieczeństwa.
  • Iniekcja poleceń: Łagodzenie luk umożliwiających wykonanie na poziomie systemu operacyjnego.
  • Przechodzenie ścieżek: Sanityzacja danych wejściowych systemu plików w celu zapobiegania przechodzeniu katalogów.
  • Nadużycie refleksji: Ryzyka związane z java.lang.reflect i omijaniem kontroli dostępu.
  • Zakodowane na stałe poświadczenia: Identyfikacja i usuwanie sekretów z kodu źródłowego.
  • Błędy implementacji kryptografii: Używanie trybu ECB, słabych kluczy lub statycznych IV.

10. Źródła wiedzy

  • Narzędzia do analizy statycznej: Korzystanie z SonarQube, Checkmarx i Fortify do automatycznego skanowania.
  • Narzędzia do analizy dynamicznej: Przegląd Burp Suite i OWASP ZAP.
  • Bazy danych CVE: Jak śledzić i reagować na nowe luki w frameworku Java.
  • Polecane lektury: Lista książek, dokumentacji i checklist bezpiecznego kodowania.

Wymagania

Brak.

 21 godzin

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (5)

Propozycje terminów

Powiązane Kategorie