Bezpieczeństwo aplikacji J2EE

Opis szkolenia

Szkolenie jest przeznaczone dla programistów pracujących w technologii J2EE zainteresowanych poszerzeniem swojej wiedzy dotyczącej bezpieczeństwa aplikacji webowych oraz dla osób chcących wykorzystać tą wiedzę podczas swojej pracy.

W trakcie szkolenia pojawi się dużo ćwiczeń i przykładów defektów bezpieczeństwa, opracowanych na podstawie doświadczenia trenera zdobytego podczas testowania bezpieczeństwa aplikacji. Zostaną omówione techniki i mechanizmy umożliwiające tworzenie bezpiecznych aplikacji.

Konspekt

  1. Wprowadzenie
  • Wprowadzenie do tematyki bezpieczeństwa sieci, systemów i aplikacji
  • Dobre praktyki, zasady i standardy

 

  1. Modelowanie zagrożeń
  • Podstawowe pojęcia
  • Istniejące podejścia
  • Warsztaty, na przykładzie aplikacji, nad którą pracuje dany zespół

 

  1. Przegląd standardów i przydatnych dokumentów
  • OWASP ASVS 2013
  • OWASP TOP 10 2013
  • OWASP Proactive Controls
  • OWASP CheatSheets
  • Security Knowledge Framework

 

  1. Komunikacja SSL/TLS
  • Wprowadzenie do PKI
  • Budowa i rodzaje certyfikatów
  • Przykłady komunikacji (analiza zapisu ruchu sieciowego SSL/TLS)
  • Bezpieczeństwo i testowanie SSL/TLS

 

  1. Bezpieczne programowanie w kontekście J2EE
  • Dostępne mechanizmy bezpieczeństwa – na poziomie kodu i konfiguracji
  • Uwierzytelnienie, sesyjność, autoryzacja
  • Kontrola dostępu do funkcji i danych – dobre praktyki, role, uprawnienia, minimalizacja powierzchni ataku
  • Walidacja danych wejściowych
  • Kodowanie na wyjściu w zależności od kontekstu (html, xml, javascript…) – automatyczne kodowanie framework-a, oraz przypadki gdy może zawieść
  • Prawidłowa konstrukcja zapytań do baz danych
  • Błędy wynikające z interpretacji Expression Language oraz deserializacji (m.in. Remote Code Execution)
  • Błędy parsowania XML (XML External Entity)
  • Prawidłowe użycie mechanizmów kryptograficznych
  • Inne częste błędy występujące w aplikacjach J2EE (m.in. błędy logiczne, nieautoryzowana zmiana wewnętrznego stanu aplikacji)
  • Bezpieczeństwo w kontekście wykorzystywanych bibliotek i frameworków (np. Struts, Spring, Wicket, JSF, …)
  • Analiza przykładowych błędów bezpieczeństwa, z którymi spotkał się dany zespół

 

Część warsztatowa (ćwiczenia, w trakcie omawiania rodzajów błędów)

 

  1. Narzędzia wspomagające i automatyzujące niektóre aspekty testów bezpieczeństwa
  • OWASP ZAP
  • OWASP Dependency Check

 

  1. Techniki utrudniania i wykrywania ataków
  • OWASP AppSensor