Jeśli chciałbyś sprawnie wejść w tematykę bezpieczeństwa aplikacji webowych, lub poszerzyć czy uporządkować swoją wiedzę, mamy dla Ciebie jedno z naszych flagowych szkoleń “Praktyczne wprowadzenie do OWASP Top Ten”.
Voucher 2024
Zachęcamy do zakupu Vouchera 2024 na to szkolenie. Voucher daje gwarancję ceny z roku 2023 i można wykorzystać go do końca 2024 roku (terminy szkoleń na 2024 będzie można znaleźć w sklepie, voucher upoważnia do udziału w szkoleniu w dowolnym terminie proponowanym przez organizatora).
Co powinieneś wiedzieć
- Szkolenie jest wprowadzeniem w tematykę bezpieczeństwa aplikacji webowych.
- Przydatna jest podstawowa wiedza związana z budową aplikacji webowych (HTML/ JS) oraz komunikacją HTTP.
Do kogo skierowane jest szkolenie
- programistów / testerów
- testerów bezpieczeństwa
- pentesterów
- architektów / projektantów
- administratorów
- osoby odpowiadające za proceduralne aspekty bezpieczeństwa / menagerowie
Czego nauczysz się podczas szkolenia
- dowiesz się czym jest popularny standard bezpieczeństwa aplikacji webowych OWASP Top Ten i jak możesz go używać w swojej firmie,
- dowiesz się, w jaki sposób pisać bezpieczniejszy kod; być może nawet natychmiast po szkoleniu zidentyfikujesz błędy w swoim kodzie! (raz na jakiś czas dostajemy od naszych uczestników informacje typu: “popatrzyłem wieczorem na moją aplikację i znalazłem takie dziury, o których była dzisiaj mowa!”),
- będziesz już wiedział gdzie czają się największe niebezpieczeństwa dla aplikacji webowych,
- poznasz nowe, praktyczne sztuczki pozwalające znajdować mniej znane problemy bezpieczeństwa w aplikacji,
- poznasz konkretne rozwiązania architektoniczne minimalizujące ryzyko błędów bezpieczeństwa w aplikacji webowej,
- dowiesz się, co to może znaczyć, że aplikacja ma być “zgodna z OWASP 10” – i czy w ogóle jest to możliwe – i jakie kroki należy poczynić, by było to prawdą,
- będziesz też umieć sprawniej rozmawiać z programistami czy osobami odpowiedzialnymi za techniczne bezpieczeństwo IT w firmie o bezpieczeństwie aplikacji www,
Agenda
Na szkoleniu omawiamy każdy z punktów najnowszej wersji OWASP TOP 10 pod następującym kątem:
- jakich problemów bezpieczeństwa dotyczy dany punkt,
- jak dane błędy mogą zostać wykorzystane,
- co można zrobić, by zminimalizować ryzyko wykorzystania tych błędów.
Omówione są zatem następujące punkty:
- A01 Broken Access Control
- A02 Cryptographic Failures
- A03 Injection
- A04 Insecure Design
- A05 Security Misconfiguration
- A06 Vulnerable and Outdated Components
- A07 Identification and Authentication Failures
- A08 Software and Data Integrity Failures
- A09 Security Logging and Monitoring Failures
- A10 Server Side Request Forgery (SSRF)
(czytaj dalej, jeśli chcesz wiedzieć, co dokładnie omówimy w każdym z tych punktów)
A01:2021 – Broken Access Control
W najnowszej wersji OWASP TOP 10, błędy kontroli dostępu zajmują zaszczytne pierwsze miejsce. W największym skrócie podatności tego typu polegają na nieodpowiedniej weryfikacji uprawnień do zasobów, w efekcie czego napastnik uzyskuje dostęp do danych, do których nie powinien mieć dostępu. Brzmi skomplikowanie? To nic! By lepiej zrozumieć zagadnienie, zobaczymy tutaj szereg praktycznych przykładów błędów tego typu, np.:
- Jak uzyskać dostęp do faktur innych użytkowników,
- Jak zmienić hasło innemu użytkownikowi,
- Jak uzyskać pełny dostęp do bazy danych,
- Jak wykraść dane użytkownika przez błędną konfigurację CORS,
- Jak dostać się do poufnych danych przez publiczne listingi katalogów.
W odpowiedzi na te problemy poznamy najistotniejsze sposoby zabezpieczania dostępu do zasobów, np. RBAC (role-based access control), zasadę najmniejszych uprawnień, rate limiting czy odpowiednie polityki CORS.
A02:2021 – Cryptographic Failures
Błędy w kryptografii mogą być subtelne, ale jeśli już występują, to zazwyczaj mają porażającą moc. Pozwalają zwykle na deszyfrację danych innych użytkowników lub uzyskanie dostęp do ich konta.
O kryptografii, jako nauce, moglibyśmy zrobić osobne, nawet 5-dniowe szkolenie. Tutaj jednak w sposób skondensowany przedstawimy problemy, z którymi w aplikacjach webowych musimy się najczęściej mierzyć w zakresie kryptografii i przedstawimy odpowiedzi na następujące pytania:
- W jaki sposób skonfigurować połączenie TLS do naszych usług, oraz jak przetestować, czy konfiguracja spełnia najnowsze standardy?
- Jak podejść do szyfrowania danych “w spoczynku” (tj. np. przy zapisie do bazy danych)?
- Czy sam fakt użycia szyfrowania danych bezpiecznym algorytmem szyfrującym czyni je automatycznie pod każdym względem bezpiecznymi?
- Czy można odgadnąć losowe tokeny, np. tokeny do resetu hasła?
- Jak radzić sobie z przechowywaniem kluczy API oraz innych secretów w aplikacji?
- W jaki sposób przechowywać hasła w bazie danych?
A03:2021 – Injection
Podatności typu “Injection” są jednymi z najsłynniejszych problemów bezpieczeństwa aplikacji, głównie kojarzonymi z SQL Injection. Ale czy tylko? Okazuje się, że nie! Pokażemy ogólne podejście do podatności “Injection”, oraz dlaczego można się z nimi spotkać nie tylko w kontekście SQL.
Zobaczymy kilka przykładów tego typu podatności (zaczynając od najsłynniejszych, jak SQL Injection czy XSS, a kończąc na nieco rzadszych Server-Side Template Injection) oraz omówimy ogólny sposób myślenia o tego typu podatnościach, który pozwoli nam na zabezpieczenie się przed nimi, nawet jeśli dany typ “Injection” nie ma nawet swojej nazwy!
A04:2021 – Insecure Design
Ten punkt jest niewątpliwie najbardziej ogólnym w najnowszej wersji OWASP TOP 10. Nie dotyka konkretnej podatności, a ogólnie błędów w projektowaniu aplikacji. Będzie zatem dobrą okazją, by porozmawiać o procesie budowy aplikacji. Dowiemy się czym jest S-SDLC (Secure Software Development LifeCycle) i jak można do wdrażać. Porozmawiamy o modelowaniu zagrożeń – dowiemy się jak je przeprowadzać i jak pomoże nam zrozumieć problemy bezpieczeństwa w naszej aplikacji.
Tradycyjnie przedstawimy też kilka przykładów praktycznych błędów, które mogły zostać wykryte na poziomie projektowania tej aplikacji. Gdyby zostały wówczas wykryte – koszt ich naprawy byłby o wiele mniejszy.
A05:2021 – Security Misconfiguration
Czasem błędy bezpieczeństwa w aplikacji webowej nie wynikają z problemów w kodzie, ale z niewłaściwej konfiguracji aplikacji lub jej środowiska. O tym właśnie będzie ten punkt. Zobaczymy kilka przykładów, do czego może się przydać poznanie zawartości katalogów na serwerze; dlaczego na serwerach produkcyjnych nie należy wyświetlać dokładnych stack trace’ów czy też dlaczego powinniśmy zmieniać domyślne hasła do usług.
A06:2021 – Vulnerable and Outdated Components
Kilka lat temu miał miejsce bardzo głośny atak na systemy firmy Equifax, w wyniku których wyciekły dane ponad stu milionów Amerykanów. Powód? Brak aktualizacji biblioteki Apache Struts, która była podatna na błąd, pozwalający na wykonanie dowolnego kodu po stronie serwera. To jeden z wielu przykładów uświadamiających, jak ważne jest utrzymywanie komponentów aplikacji (bibliotek, zależności itp.) w najnowszych wersjach, a przynajmniej w wersjach niezawierających znanych podatności.
W tym rozdziale poznamy przykłady narzędzi, które pozwalają na weryfikację, czy używane przez nas zależności zawierają znane błędy bezpieczeństwa. Zobaczymy także, jak proces weryfikacji wersji zintegrować z procesem rozwoju aplikacji.
A07:2021 – Identification and Authentication Failures
Błędy związane z identyfikacją lub uwierzytelnieniem zazwyczaj pozwalają na przejęcie konta użytkowników. Poznamy tutaj przykłady następujących ataków:
- Przejęcie konta użytkownika przez brute force loginu i hasła,
- Ominięcie zabezpieczeń pozwalających na ustalenie, czy dany login istnieje,
- Ominięcie dwuskładnikowego uwierzytelnienia,
- Błędy w procesie resetu hasła (np. poprzez nadpisanie nagłówka Host)
Dowiemy się, jak zabezpieczać się przed tymi konkretnymi przykładami ataków, ale także poznamy ogólne zasady dobrej implementacji tego procesu, niezależnie od tego, czy implementujemy go sami, czy też integrujemy się z zewnętrznym dostawcą (np. poprzez OpenID Connect). Dowiemy się także, jakie są obecnie najbardziej polecane zasady tworzenia polityki haseł.
A08:2021 – Software and Data Integrity Failures
Kolejny punkt najnowszego OWASP TOP10, który dotyczy bardziej procesu rozwoju aplikacji, aniżeli konkretnych podatności. Dotyka on wszelakich błędów wynikających z braku sprawdzania integralności plików wykonywalnych oprogramowania.
Pokażemy tutaj m.in. następujący przykład: instalujemy zależność z npm, co do której mamy pewność, że jest bezpieczna. Gdy ta sama zależność jest instalowana w procesie CI/CD, okazuje się, że została zainstalowana inna, podatna na błędy bezpieczeństwa wersja! Jak to możliwe? Dowiemy się na szkoleniu 🙂
Przy okazji tego tematu omówimy sobie także ogólniej problemy związane z atakami na łańcuchy dostaw; zastanowimy się nad możliwymi sposobami minimalizacji tych ryzyk.
A09:2021 – Security Logging and Monitoring Failures
Załóżmy, że w naszej aplikacji występuje incydent bezpieczeństwa, w wyniku którego ktoś pobiera poufne dane użytkowników. W tym momencie chcielibyśmy się dowiedzieć, w jaki sposób dokładnie doszło do tego włamania, i do jakich danych napastnik uzyskał dostęp… Niestety – jeśli nie logujemy wystarczająco dużo danych na temat naszych systemów, może okazać się, że nie będziemy w stanie wyciągnąć odpowiednich wniosków.
Dlatego w tym rozdziale omówimy w jaki sposób należy podejść do logowania danych w aplikacji webowej. Tj. jakie dane powinny być logowane, a jakie nie powinny być logowane.
Pokażemy też przykład aktywnego monitoringu, który pozwoli wykryć atak, nawet jeśli nie jest to atak stricte techniczny, a po prostu wynikający z pewnego nietypowego użycia aplikacji.
A10:2021 – Server-Side Request Forgery (SSRF)
SSRF (Server-Side Request Forgery) to atak pozwalający na zmuszenie serwera aplikacyjnego do wykonywania zapytań do innych serwerów. Na pierwszy rzut oka może nie wygląda to specjalnie groźnie, ale w praktyce atak pozwala na przełamanie pewnych cichych założeń dotyczących naszych systemów (np. “jak ktoś jest w LAN, to na pewno jest zaufany!”). Na szkoleniu poznamy praktyczne przykłady wykorzystania SSRF nawet do całkowitego przejmowania serwerów!
Dowiemy się także, że ochrona przed tym atakiem nie jest prosta – spróbujemy zastanowić się, jakie podejście będzie najbardziej odpowiednie, jeśli SSRF będzie de facto wynikał z oczekiwanej funkcjonalności w naszej aplikacji.
Przydatne informacje
- Szkolenie prowadzone on-line, w godzinach 9:00-17:00.
- Do udziału w szkoleniu potrzebny jest komputer z dostępem do internetu. Podczas wydarzenia będzie można zadawać prowadzącemu pytania na czacie.
- [UWAGA!] Link/Linki do szkolenia wysyłamy najpóźniej do dwóch dni przed szkoleniem w osobnej wiadomości, na podanego podczas rejestracji maila. Jeżeli nie dostałeś linka to napisz na szkolenia@securitum.pl podając numer zamówienia.
- Istnieje możliwość organizacji szkolenia w formie zamkniętej – dla zamkniętej grupy osób. Szkolenia takie organizujemy na atrakcyjnych warunkach finansowych. W przypadku zainteresowania tego typu szkoleniem prosimy o kontakt e-mail: szkolenia@securitum.pl, tel.: +48 516 824 029
Co zawiera cena szkolenia
- Udział w szkoleniu
- Dostęp do zapisu video ze szkolenia przez 30 dni.
- Certyfikat ukończenia szkolenia (PDF).
Podobne szkolenia
Bezpieczeństwo aplikacji WWW
Bezpieczeństwo frontendu aplikacji WWW
Bezpieczeństwo API REST
Opinie uczestników o szkoleniu
- „Bardzo dobrze, rzeczowo przygotowana robota, mnóstwo przykładów co lepiej oddaje problem niż tylko sucha teoria.”
- „Zdecydowanie dobra droga z nauczaniem przy użyciu lab. Wszystkie tematy były na swój sposób ciekawe, bo mimo iż SQL Injection chyba każdy szanujący się dev wypróbował na sobie samym, to jednak ciekawie było sobie to odświeżyć.”„Merytoryka, nie nudziło mi się, nie chciało się spać :)”
- „Jasna agenda, dużo ciekawych przykładów, temat bardzo dobrze rozwinięty”
- „Dużo praktyki i live codingu z przykładami. Fajne narzędzia i gotowe sprawdzone rozwiązania.”
- „Wszystko było bardzo ciekawie i obszernie omówione, najbardziej przydatne będą dla mnie Crypto failures, błedy w JWT, SSRF”
- „Mega pozytywne szkolenie. Intensywne i dużo skumulowanej, ale praktycznej wiedzy”
- „Jak wyżej pisałem, widać było dużą wiedzę [trenera], a pytania zadane w trakcie nie potrafiły go zaskoczyć”
O prowadzącym
Kamil Jarosiński jest konsultantem ds. bezpieczeństwa IT w firmie Securitum. Posiada ponad 7 lat doświadczenia w prowadzenia testów penetracyjnych oraz szkoleń z zakresu bezpieczeństwa aplikacji webowych. Pasjonat bezpieczeństwa systemów IT lubiący dzielić się wiedzą. Prelegent na konferencjach branżowych m.in: Mega Sekurak Hacking Party, uczestnik programów Bug Bounty.