Bezpieczny kod Java w oparciu o wytyczne CERT i Oracle
Czas trwania szkolenia:3 dni (24h)
Kod kursu:J/CERT
Poziom zaawansowania:
O szkoleniu Bezpieczny kod Java w oparciu o wytyczne CERT i Oracle
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Szkolenie adresowane jest do programistów tworzących aplikacje w środowisku Java, w szczególności rozwijających systemy o wysokich wymaganiach w kontekście bezpieczeństwa
Wymagania
- Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java
Zalety
- Przegląd dobrych praktyk Oracle Secure Coding Guidelines for Java SE oraz SEI CERT Oracle Coding Standard for Java na przykładzie krótkich zadań programistycznych prezentujących ich zastosowania w praktyce
- Wykorzystanie narzędzi wspomagających walidację aplikacji w zakresie zaleceń CERT i Oracle
- Poznanie możliwych skutków działania pozornie poprawnych implementacji
- Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
- Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
- Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Cele szkolenia
- Umiejętność unikania typowych błędów w zakresie związanym z prawidłowym wykorzystaniem mechanizmów obiektowości i dziedziczenia, walidacją danych wejściowych oraz wykorzystaniem odpowiednich klas
- Świadomość możliwych skutków lekceważenia dobrych praktyk programowania w języku Java
- Poznanie pułapek programowania współbieżnego oraz współpracy języka Java z bibliotekami natywnymi
Program
Zasady bezpiecznego programowania
- Pułapki języka Java
- Mechanizmy bezpieczeństwa wbudowane w Java
- Zalecenia Oracle i CERT
Zalecenia, reguły i rekomendacje Oracle i CERT
- Przetwarzanie danych wejściowych
- Zapobieganie atakom odmowy usługi (denial of service, DoS)
- Zapobieganie atakom wstrzyknięcia kodu (code injection)
- Obsługa danych o szczególnym znaczeniu
- Deklaracja i inicjalizacja zmiennych i obiektów
- Poprawne korzystanie z mechanizmów obiektowości i dziedziczenia w Java
- Serializacja i deserializacja
- Kontrola dostępu
- Wyrażenia, typy liczbowe
- Obsługa błędów i wyjątków
- Wątki i synchronizacja, pule wątków
- Obsługa strumieni wejścia/wyjścia
- Bezpieczeństwo środowiska uruchomieniowego
- Obsługa bibliotek natywnych, Java Native Interface (JNI)
- System Android
- Znane niedoskonałości języka Java
Narzędzia wspomagające
- Analiza statyczna i dynamiczna
- Przegląd wybranych narzędzi
Inne rekomendacje
- MITRE CWE