Zasady bezpiecznego tworzenia i utrzymywania aplikacji internetowych na platformie Java Enterprise

LICZBA DNI: 2 (16h)

KOD KURSU: J/SEC

# specialistic-training

# specialties-of-sages

Autor szkolenia:
Jakub Koperwas

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne WYŁĄCZNIE na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

Interesuje Cię ta tematyka i szukasz szkolenia tylko dla siebie?

O szkoleniu

DLA KOGO?

Szkolenie adresowane jest do programistów aplikacji internetowych, pragnących poznać zagrożenia jakie niosą różnego rodzaju błędy czy uchybienia w aplikacjach internetowych i ich otoczeniu/środowisku. Prezentowana wiedza może być przydatna dla osób odpowiedzialnych za bezpieczeństwo tworzonych lub wdrażanych aplikacji.

WYMAGANIA

Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java (do poznania na kursie J/JP), podstawy relacyjnych baz danych i SQL.

Zalecana jest również umiejętność tworzenia aplikacji webowych w technologiach JEE (do poznania na kursach SEAM/WEB, JEE/JSP).

ZALETY

Program obejmuje całościowo i wyczerpująco zagadnienia tworzenia bezpiecznych aplikacji internetowych.

Szkolenie prezentuje kluczową wiedzę do tworzenia i utrzymywania aplikacji o podwyższonych wymaganiach na bezpieczeństwo. Wiedza ta jest zwykle praktycznie niedostępna w postaci szkoleń. Uczestnicy po skończeniu szkolenia, będą mogli unikać najczęściej popełnianych błędów mogących prowadzić do udanych ataków na implementowane i wdrażane przez nich aplikacje.

Program jest ciągle uaktualniany, tak, by uwzględniać nowo powstające trendy.

Cele szkolenia

Zapoznanie się z najczęściej wykorzystywanymi klasami ataków na aplikacje Webowe, między innymi atakami wstrzyknięcia, XSS (Cross Site Scripting), CSRF (Cross Site Request Forgery).

Szczegółowe omówienie każdej z klas ataków, poczynając od omówienia błędu, poprzez sposób wykorzystania go w celu zaatakowania aplikacji, kończąc na sposobach zabezpieczenia się przed nimi.

Zaprezentowanie mechanizmów umożliwiających uniknięcie poszczególnych zagrożeń dla najpopularniejszych technologii.

Poznanie narzędzi umożliwiających testowanie bezpieczeństwa aplikacji Webowych.

Poruszone aspektów konfiguracji serwera aplikacji w kontekście jej bezpiecznego udostępniania.

Program

  • Omówienie źródeł zagrożeń dla aplikacji Webowych (błędna konfiguracja, błędy w serwerach, błędy w aplikacji...)
  • Omówienie różnych podejścia do bezpieczeństwa/paradygmaty (Defense in depth, security by obscurity, low hanging fruits)
  • Sposoby realizacji sesji w aplikacjach Webowych
  • Obsługa sesji w najpopularniejszych technologiach
  • Atak porwania sesji (ang. session hijacking) i sposoby zabezpieczenia się
  • Dobre praktyki związane z obsługą sesji w aplikacjach Webowych
  • Zapoznanie z programem WebScarab – narzędziem umożliwiającym testowanie bezpieczeństwa aplikacji
  • Wprowadzenie do ataków wstrzyknięcia, powody ich występowania i metody zabezpieczenia (escapowanie oraz walidacja danych)
  • Realizacji walidacji w najpopularniejszych technologiach
  • Omówienie biblioteki AntiSamy, zapewniającej filtrowanie wpisywanych tagów HTML
  • Atak wstrzyknięcia na stronach bez pól tekstowych
  • SQL-Injection – nie tylko „ or 1=1 ”
  • Nie tylko SQL-Injection (XML-Injection, X-PATH, Command Injection … )
  • Omówienie idei działania ataku typu CSRF, przykład
  • Metody zabezpieczenia się przed atakiem CSRF
  • Zapewnienie bezpiecznego sposobu uwierzytelniania
  • Polityka dotycząca haseł (czas życia, sposób przechowywania, itp. … )
  • Realizacja uwierzytelniania w aplikacjach opartych na Java Enterprise Edition (JAAS) oraz znanych szkieletach (Seam, Spring)
  • Omówienie niebezpieczeństw związanych z nieodpowiednią obsługą błędów
    • Co/czego nie umieszczać w komunikatach błędów
    • Co może zostać ujawnione w wyniku nieprawidłowej obsługi błędów
    • Realizacja zasady „ fail securely ”
  • Problemy związane z wielowątkowością – wyścigi oraz nadpisanie danych
  • Cyklu życia dynamicznych stron i servletów na przykładach najpopularniejszych technologii
  • Omówienie przykładowego ataku wykorzystującego błędne zaimplementowanie wielowątkowości
  • Bezpieczna architektura dla aplikacji Webowych (wykorzystanie DMZ, filtrowanie adresów … )
  • Realizacja podmiany standardowej strony błędu
  • Zapewnienie poufności przesyłanych danych
  • Nie ufać w dobrą wolę użytkowników lub ich niewiedzę
    • Co można znaleźć w źródłach wygenerowanych stron (debug programistów)
    • Nie ufać w wyniki działania kodu wysyłanego do użytkownika
    • Nie ufać w przesyłane dane od użytkownika
  • Logowanie błędów
  • Zabezpieczenia w postaci niewidocznych linków
  • Omówienie elementów służących powstawaniu bezpiecznych aplikacji
    • Bezpieczeństwo aplikacji, jako część wymagań projektu a nie dodatek
    • Edukacja deweloperów - WebGoat
    • Code Review
    • Testowanie napisanej aplikacji (Black Box testing, Fuzzing … )
    • Bezpieczne tworzenie aplikacji w kontekście współczesnych technologii (JEE, Seam, Spring,GWT, … )
  • Gdzie znaleźć dodatkowe informacje o częstych, znanych błędach (CERT Secure-Coding, OWASP Top-Ten)

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.