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.securityi 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.Randomajava.security.SecureRandom. - Zarządzanie kluczami: Strategie generowania, przechowywania i rotacji kluczy.
- Architektura kryptografii Java (JCA): Korzystanie z klas
Cipher,MessageDigestiMac. - 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
SSLSocketFactoryiHttpsURLConnection. - 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.xmli adnotacji. - Bezpieczeństwo programowe: Korzystanie z
HttpServletRequest.isUserInRole()igetRemoteUser(). - JAAS (Java Authentication and Authorization Service): Konfiguracja
login.confi implementacjaLoginModule. - 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
ObjectInputStreami 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.reflecti 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.
Opinie uczestników (5)
poziom wiedzy trenera był bardzo wysoki - znał się na tym, o czym mówił, i znał odpowiedzi na nasze pytania
Adam - Fireup.PRO
Szkolenie - Advanced Java Security
Przetłumaczone przez sztuczną inteligencję
Praktyczne ćwiczenia
Olek - Fireup.PRO
Szkolenie - Advanced Java Security
Przetłumaczone przez sztuczną inteligencję
ćwiczenia programistyczne
Mirek - Fireup.PRO
Szkolenie - Advanced Java Security
Przetłumaczone przez sztuczną inteligencję
Pushowanie zmian na bieżąco, jak w 3 dzień zaczęłam się już gubić bardziej niż wcześniej i było ciężej wyłapać błąd na szybko to na szybko byłam w stanie zcheckoutować się na najnowszą zmiane i być na bieżąco z materiałem
Paulina
Szkolenie - Advanced Java Security
Otwiera to wiele aspektów i daje dużo wglądu w kwestie bezpieczeństwa
Nolbabalo Tshotsho - Vodacom SA
Szkolenie - Advanced Java Security
Przetłumaczone przez sztuczną inteligencję