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 bezpiecznego tworzenia oprogramowania (SSDLC): integrowanie bezpieczeństwa od wymagań po wdrożenie.
- Paradygmaty bezpiecznego kodowania: obrona w głąb, zasada najmniejszych uprawnień i bezpieczne ustawienia domyślne.
- Standardowe klasyfikacje podatności: zrozumienie CWE (Common Weakness Enumeration) i OWASP.
2. Bezpieczeństwo aplikacji internetowych
- Szczegółowa analiza OWASP Top Ten: dokładne omówienie wstrzykiwania, naruszonego uwierzytelniania i narażenia wrażliwych danych.
- Cross-Site Scripting (XSS): scenariusze XSS odbitego, trwałego i opartego na DOM w Java/JSP.
- Cross-Site Request Forgery (CSRF): mechanizmy ataku i implementacja tokenów anty-CSRF.
- Zarządzanie sesjami: bezpieczeństwo plików cookie, fiksacja sesji i zarządzanie limitami czasu.
- Bezpieczeństwo API: zabezpieczanie punktów końcowych REST i SOAP przed nadużyciami.
3. Bezpieczeństwo usług sieciowych
- Usługi sieciowe a tradycyjne aplikacje internetowe: różnice w powierzchniach ataku.
- Bezpieczeństwo warstwy transportowej: konfiguracja SSL/TLS dla klientów i serwerów Java.
- Bezpieczeństwo komunikatów: integralność i poufność na poziomie ładunku.
- Standardy uwierzytelniania: implementacja OAuth 2.0, OpenID Connect i JWT (JSON Web Tokens).
4. Bezpieczeństwo XML
- Podatności parsowania XML: zapobieganie atakom XML External Entity (XXE).
- Walidacja schematu XML: najlepsze praktyki ścisłego egzekwowania schematu.
- Podpisy cyfrowe XML: implementowanie podpisów w celu zapewnienia niezaprzeczalności.
- Szyfrowanie XML: standardowe podejścia do szyfrowania zawartości XML.
5. Podstawy bezpieczeństwa Javy
- Architektura bezpieczeństwa Javy: pakiet
java.securityi architektura dostawców. - Dostawcy bezpieczeństwa: instalowanie i konfigurowanie dostawców, takich jak Bouncy Castle.
- Kontrola dostępu: pliki polityki, uprawnienia i menedżer bezpieczeństwa (podejście starsze i nowoczesne).
- Zarządzanie KeyStore: tworzenie i zarządzanie magazynami kluczy i magazynami zaufania dla certyfikatów.
6. Kryptografia praktyczna
- Algorytmy kryptograficzne: przegląd algorytmów symetrycznych (AES), asymetrycznych (RSA, ECC) i skrótów (SHA-256/512).
- Generowanie liczb losowych: zagrożenia związane z
java.util.Randomw porównaniu zjava.security.SecureRandom. - Zarządzanie kluczami: strategie generowania, przechowywania i rotacji kluczy.
- Architektura kryptografii Java (JCA): korzystanie z klas
Cipher,MessageDigestiMac. - Java Cryptography Extension (JCE): zrozumienie plików polityki i jurysdykcji nieograniczonej siły.
7. Usługi bezpieczeństwa Javy
- SSL/TLS w Javie: korzystanie z
SSLSocketFactoryiHttpsURLConnection. - Menedżerowie zaufania: dostosowywanie weryfikacji zaufania w środowiskach prywatnej infrastruktury PKI.
- Uwierzytelniacze: uwierzytelnianie programistyczne przy użyciu
Authenticator.getDefault(). - Parsowanie certyfikatów: programistyczne 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 programistyczne: korzystanie z
HttpServletRequest.isUserInRole()igetRemoteUser(). - JAAS (Java Authentication and Authorization Service): konfigurowanie
login.confi implementowanie modułówLoginModule. - Bezpieczeństwo serwletów: ograniczenia bezpieczeństwa zarządzane przez kontener i metody uwierzytelniania (FORM, BASIC, DIGEST).
9. Typowe błędy kodowania i podatności
- Niebezpieczna deserializacja: ryzyko związane z
ObjectInputStreami omijanie kontroli bezpieczeństwa. - Wstrzykiwanie poleceń: łagodzenie podatności na wykonanie poleceń na poziomie systemu operacyjnego.
- Przejście przez ścieżkę: sanityzacja danych wejściowych systemu plików w celu zapobiegania przechodzeniu katalogów.
- Nadużycie refleksji: ryzyko związane z
java.lang.reflecti omijanie kontroli dostępu. - Zaszyte poświadczenia: identyfikowanie i usuwanie sekretów z kodu źródłowego.
- Błędy implementacji kryptografii: używanie trybu ECB, słabych kluczy lub statycznych wektorów IV.
10. Źródła wiedzy
- Narzędzia analizy statycznej: korzystanie z SonarQube, Checkmarx i Fortify do automatycznego skanowania.
- Narzędzia analizy dynamicznej: przegląd Burp Suite i OWASP ZAP.
- Bazy danych CVE: jak śledzić i reagować na nowe podatności frameworka Java.
- Zalecane materiały: lista książek, dokumentacji i list kontrolnych 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ę