Kategoria: Bezpieczeństwo systemów IT. Metody ataku i obrony
O szkoleniu
Programiści, testerzy, administratorzy, architekci, osoby odpowiadające za bezpieczeństwo i ci, którzy odbierają aplikacje od zewnętrznych wykonawców — to szkolenie jest dla wszystkich mających w pracy do czynienia z aplikacjami webowymi i chcących je zobaczyć z obu stron: z tej, z której patrzą atakujący, i z tej, z której się te aplikacje zabezpiecza. Przez dwa dni pracujemy na przygotowanych podatnych systemach; uczestnicy sami wyszukują błędy, potwierdzają je, a następnie omawiamy, co należało zrobić inaczej w kodzie albo w konfiguracji.
Po tych dwóch dniach:
- Zobaczysz swoją aplikację tak, jak widzi ją ktoś, kto szuka do niej “wejścia” — od czego zaczyna, czego szuka najpierw, które miejsca sprawdza, zanim w ogóle zajrzy do formularza logowania.
- Poznasz kilkanaście narzędzi używanych w testach bezpieczeństwa, takich jak Burp Suite czy OWASP ZAP — proxy przechwytujące, skanery, narzędzia do automatyzacji wstrzyknięć — i dowiesz się, kiedy które z nich ma sens, a kiedy tylko generuje szum.
- Samodzielnie przeprowadzisz ataki: wstrzyknięcie SQL, XSS, przejęcie sesji, wykorzystanie błędu kontroli dostępu — na przygotowanych aplikacjach, na których wolno to robić.
- Do każdej podatności zobaczysz konkretną poprawkę: zmianę w kodzie albo w konfiguracji (a nie np. ogólną radę „waliduj dane wejściowe”).
- Przejdziesz pełny test aplikacji od początku do końca — od rozpoznania, przez znalezienie i potwierdzenie kilku niezależnych błędów, po raport, z którego zespół rozwojowy wie, co poprawić. Przy okazji nauczysz się czytać raporty, które dostajesz od firm zewnętrznych.
Zakres obejmuje klasyczne klasy podatności aplikacji webowych — wstrzyknięcia, XSS, CSRF, błędy zarządzania sesją, path traversal, problemy z uploadem plików — oraz obszary, które w ostatnich latach stały się głównym źródłem incydentów: bezpieczeństwo API, kontrola dostępu i IDOR, SSRF, tokeny JWT. Do tego, omawiamy takie tematy, jak deserializacja danych wejściowych, konfiguracja nagłówków i polityki CSP. Osobno zwracamy uwagę na to, że aplikacje wystawione do internetu są dziś skanowane masowo i automatycznie — oraz na to, jak tych samych narzędzi użyć do przeglądu własnego serwisu, zanim zrobi to ktoś inny.
Każdy blok ma podobną strukturę: krótkie wprowadzenie, demonstracja ataku, samodzielne ćwiczenie uczestników, omówienie zabezpieczenia. Nie omawiamy ataku bez pokazania obrony. Szkolenie zamyka samodzielny test bezpieczeństwa aplikacji, w którym trzeba wykryć kilka niezależnych podatności, ocenić ich ryzyko i opisać je tak, żeby zespół rozwojowy wiedział, co poprawić. Pracujemy na narzędziach, których używa się w tej pracy naprawdę: Burp Suite jako podstawowe proxy i warsztat pracy, OWASP ZAP i Caido przy skanowaniu i automatyzacji, sqlmap przy wstrzyknięciach SQL, do tego narzędzia deweloperskie przeglądarki i narzędzia do enumeracji zasobów. Punktem odniesienia dla zakresu są OWASP Top 10, OWASP ASVS i OWASP Web Security Testing Guide.
Szkolenie różni się od kursów pentesterskich tym, że punktem odniesienia jest praca programisty i testera, a nie zawód pentestera. Celem nie jest wykonanie efektownego ataku, tylko umiejętność znalezienia błędu we własnej aplikacji, potwierdzenia go i naprawienia.
Czas trwania
2 dni, 9:00 - 17:00
Program
- Wprowadzenie do testowania bezpieczeństwa aplikacji webowych
- Architektury i technologie aplikacji webowych, a klasy podatności: aplikacje serwerowe, SPA, aplikacje mobilne korzystające z API
- Styk aplikacji z bazą danych, usługami zewnętrznymi i systemami wewnętrznymi
- Zagrożenia po stronie serwera, przeglądarki, integracji i konfiguracji środowiska
- OWASP Top 10, ASVS i Testing Guide — zastosowanie każdego z dokumentów
- Raport z testów penetracyjnych: struktura, klasyfikacja znalezisk, sposób czytania
- Klasy narzędzi w pracy testera: proxy przechwytujące, klienty HTTP, narzędzia deweloperskie przeglądarki. Burp Suite, OWASP ZAP i narzędzia pokrewne.
- Rozpoznanie aplikacji i praca z ruchem HTTP
- Mapowanie aplikacji i wyszukiwanie zasobów nieujętych w nawigacji
- Środowiska deweloperskie i testowe wystawione do internetu
- Rozpoznanie wersji komponentów, informacje wyciekające przez komunikaty błędów
- Masowe, automatyczne skanowanie aplikacji wystawionych do internetu — skala zjawiska i konsekwencje
- “Google hacking”, wyszukiwarki i publiczne bazy zasobów jako źródło informacji o infrastrukturze
- Przechwytywanie i modyfikowanie żądań w Burp Suite: parametry, nagłówki, pola ukryte
- Walidacja po stronie klienta i dlaczego nie jest zabezpieczeniem
- Techniki brute force i enumeracji zasobów (ffuf lub narzędzie analogiczne)
- Wstrzyknięcia po stronie serwera
- SQL injection klasyczne i ślepe: wykrywanie, potwierdzenie, pobranie danych
- Automatyzacja wstrzyknięć narzędziem sqlmap — możliwości, ograniczenia, weryfikacja wyników
- Techniki omijania filtrów danych wejściowych
- Ochrona: zapytania parametryzowane, warstwa ORM, uprawnienia konta bazodanowego
- Wstrzykiwanie komend systemowych i kodu do aplikacji
- Path traversal i dostęp do plików spoza katalogu aplikacji
- Bezpieczny upload plików i błędy walidacji opartej o rozszerzenie
- Przetwarzanie danych strukturalnych i wyczerpywanie zasobów
- XXE — nieautoryzowany dostęp do plików przez przetwarzanie XML
- Niebezpieczna deserializacja danych wejściowych
- ReDoS oraz spreparowane archiwa i dokumenty jako wektor odmowy usługi
- Ochrona przed atakami wolumetrycznymi i aplikacyjnymi na poziomie aplikacji i infrastruktury
- Ataki po stronie przeglądarki
- XSS odbity, trwały i oparty o DOM
- Omijanie filtrów oraz kodowania danych wyjściowych
- Kradzież sesji i danych użytkownika przez XSS
- CSRF: mechanizm ataku, warunki powodzenia i skuteczne zabezpieczenia
- Clickjacking i ochrona przed osadzaniem aplikacji w ramkach
- Same Origin Policy i CORS — konsekwencje poluzowania polityki
- Content Security Policy: zakres ochrony i ograniczenia
- Mechanizmy bezpieczeństwa współczesnych przeglądarek i ich ograniczenia
- Ochrona: kodowanie kontekstowe, tokeny, atrybuty ciasteczek, nagłówki bezpieczeństwa
- Sesje, uwierzytelnianie i kontrola dostępu
- Zarządzanie sesją: generowanie, rotacja, unieważnianie, czas życia
- Ciasteczka i ich atrybuty bezpieczeństwa
- Tokeny JWT — typowe błędy implementacji i weryfikacji
- Ścieżka logowania: enumeracja kont, brute force, ograniczanie liczby prób
- Reset hasła jako najsłabsze ogniwo procesu uwierzytelniania
- Uwierzytelnianie wieloskładnikowe i sposoby jego obchodzenia
- Ochrona przed automatyzacją, spamem i enumeracją kont oraz haseł
- Błędy kontroli dostępu: IDOR, eskalacja pozioma i pionowa uprawnień
- Bezpieczeństwo API
- Specyfikacja API (OpenAPI/Swagger) jako mapa powierzchni ataku
- Autoryzacja na poziomie zasobu i pojedynczej operacji
- Nadmiarowe przypisanie parametrów i nadmiarowe dane w odpowiedziach
- Ograniczanie liczby żądań i ochrona przed nadużyciem interfejsu
- SSRF: wykorzystanie aplikacji do sięgania po zasoby wewnętrzne
- Testowanie usług REST i SOAP, generowanie żądań na podstawie specyfikacji (Postman i/lub Burp Suite)
- Konfiguracja, komponenty i ochrona brzegowa
- Nagłówki bezpieczeństwa i konfiguracja serwera aplikacyjnego
- Konfiguracja TLS i błędy w zabezpieczeniu transmisji
- Przechowywanie haseł i danych wrażliwych w aplikacji
- Sekrety w repozytorium, plikach konfiguracyjnych i zmiennych środowiskowych
- Podatności w zależnościach i komponentach zewnętrznych oraz narzędzia do ich wykrywania. OWASP Dependency-Check, audyt zależności w menedżerach pakietów
- WAF, IDS i IPS: realny zakres ochrony, ograniczenia i techniki omijania
- Skanery podatności aplikacji webowych (OWASP ZAP i analogiczne). Co wykrywają, czego nie wykryją, jak weryfikować wyniki
- Przegląd własnej aplikacji i kodu narzędziami wspieranymi przez AI oraz weryfikacja fałszywych trafień
- Test całościowy i raportowanie
- Samodzielny test bezpieczeństwa aplikacji podsumowujący zakres szkolenia
- Wykrycie i potwierdzenie kilku niezależnych klas podatności
- Ocena ryzyka i priorytetyzacja znalezisk
- Opis podatności i rekomendacji w formie użytecznej dla zespołu rozwojowego
Training also available in English .
Przeznaczenie i wymagania
Szkolenie jest przeznaczone przede wszystkim dla:
- Programistów, webowych, backendowych i full-stack, którzy tworzą lub utrzymują aplikacje webowe i/lub API,
- Testerów i inżynierów QA rozszerzających plany testów o testy bezpieczeństwa,
- Pentesterów, audytorów,
- Administratorów i inżynierów DevOps odpowiedzialnych za aplikacje wystawione do internetu,
- Architektów i liderów technicznych, którzy muszą oceniać ryzyko i priorytetyzować poprawki,
- Osób rozpoczynających pracę w obszarze testów bezpieczeństwa aplikacji,
- zespołów utrzymujących systemy udostępniane publicznie, także w instytucjach publicznych.
Oczekiwania wobec uczestników:
- Znajomość protokołu HTTP,
- Umiejętność czytania kodu HTML i JavaScript, podstawy SQL,
- Umiejętność programowania w dowolnym języku.
Nie wymagamy doświadczenia w bezpieczeństwie ani w testach penetracyjnych — szkolenie jest wejściem w ten obszar.
Szkolenie będzie za proste dla osób zawodowo wykonujących testy penetracyjne aplikacji webowych. Może być trudne dla osób bez żadnego praktycznego kontaktu z aplikacjami webowymi i kojarzeniem protokołu HTTP.
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.