Poziom zaawansowania:
Prowadzący: Michał Bentkowski
Miejsce i data:
  • Zdalne (w tym dostęp do zapisu filmowego): 20-21.12.2021
  • Voucher (2022): 01.01-31.12.2022
Cena: 1999 PLN netto 2 dni

Jeśli kiedykolwiek myślałeś, że chciałbyś sprawnie wejść w tematykę aplikacji webowych, lub poszerzyć czy uporządkować swoją wiedzę, mamy dla Ciebie coś naprawdę unikalnego: szkolenie: “Praktyczne wprowadzenie do OWASP Top Ten”.

Dwudniowe szkolenie zawiera:

  • omówienie wszystkich punktów zawartych w najnowszej edycji dokumentu OWASP Top Ten 2021,
  • topowy prowadzący (Michał Bentkowski), który zjadł zęby na hackowaniu aplikacji webowych należących do największych korporacji, badacz mający na koncie dziesiątki podatności z publicznie znanych produktach, współautor bestsellerowej książki: “Bezpieczeństwo aplikacji webowych” dostępna zamknięta platforma klasy CTF umożliwiająca praktyczne utrwalanie swojej wiedzy,
  • dostęp do zamkniętego chata (uczestnicy oraz prowadzący) – dostępnego minimum 6 miesięcy również po szkoleniu (chciałbyś po jakimś czasie jeszcze dopytać o coś prowadzącego – nie ma problemu!)
  • autorski PDF z checklistą najważniejszych aspektów bezpieczeństwa, które warto zweryfikować w swojej aplikacji
  • godzinna sesja Q&A na żywo z prowadzącym – po każdym dniu szkolenia
  • w ramach materiałów przygotowujących przed szkoleniem:
    • dostęp do 4-godzinnego nagrania naszego innego szkolenia Michała Bentkowskiego “wprowadzenie do bezpieczeństwa aplikacji webowych”
    • rozbudowany quiz umożliwiający samodzielne zweryfikowanie swojej wiedzy przed szkoleniem (nie ma obaw, nie oceniamy go, a całą wiedzę o OWASP Top Ten wykładamy w ten sposób, że również osoby mało zaawansowane nie będą czuły się zagubione 🙂
  • 3 miesięczny dostęp do nagrania całego szkolenia (bez sesji Q&A na żywo)

Grupa docelowa

Do wzięcia udziału zapraszamy:

  • programistów / testerów  – dowiecie się, w jaki sposób pisać bezpieczniejszy kod; być może nawet natychmiast po szkoleniu zidentyfikujecie błędy w swoim kodzie! (raz na jakiś czas dostajemy od naszych uczestników, już po pierwszym dniu szkolenia informacje typu: “popatrzyłem wieczorem na moją aplikację i znalazłem takie dziury, o których była dzisiaj mowa!”
  • testerów bezpieczeństwa – poznają nowe sztuczki pozwalające znajdować mniej znane problemy bezpieczeństwa w aplikacji,
  • pentesterów (może poznasz parę dodatkowych, mało znanych tricków? będziesz miał również możliwość – również po szkoleniu – dopytać o pewne szczegóły czy warsztat prowadzącego)
  • architektów  / projektantów (poznasz konkretne rozwiązania architektoniczne minimalizujące ryzyko błędów bezpieczeństwa w aplikacji webowej),
  • administratorów (w Twojej sieci masz aplikacje webowe? Trochę podchodzisz do nich jak do jeża? Po tym szkoleniu będziesz już wiedział gdzie czają się największe niebezpieczeństwa dla aplikacji webowych; będziesz też mógł sprawnie rozmawiać z programistami w temacie bezpieczeństwa ich aplikacji),
  • osoby odpowiadające za proceduralne aspekty bezpieczeństwa / menagerowie (dowiecie 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ędziecie też umieć nieco sprawniej rozmawiać z programistami czy osobami odpowiedzialnymi za techniczne bezpieczeństwo IT w firmie).

Agenda

Na szkoleniu omawiamy każdy z punktów najnowszej wersji OWASP TOP 10 (tej z 2021 roku) 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.

FAQ

Pytanie: W jakich godzinach trwa szkolenie?

Odpowiedź: 9:00 -> 16:00 (w tym przerwy). Po każdym dniu dostępna jest również sesja Q&A z prowadzącym (16:00 -> 17:00)

Pytanie: Czy otrzymam certyfikat uczestnictwa po szkoleniu?

Odpowiedź: Tak

Pytanie: Czy szkolenie jest zdalne czy on-site w sali szkoleniowej?

Odpowiedź: Zdalne

Pytanie: Czy możemy zapłacić za szkolenie na podstawie wystawionej przez Was faktury pro forma?

Odpowiedź: Tak, zapisz się na szkolenie w normalny sposób, otrzymasz fakturę pro-forma.

Pytanie: jestem programistą, ale nie miałem do czynienia z bezpieczeństwem aplikacji webowych – czy dam sobie radę na szkoleniu?

Odpowiedź: Jak najbardziej, dodatkowo (jak każdy inny uczestnik) otrzymasz przed szkoleniem dostęp do zapisu filmowego 4-godzinnego szkolenia: wprowadzenie do bezpieczeństwa aplikacji webowych.

Pytanie: Czy na szkoleniu są warsztaty praktyczne?

Odpowiedź: Szkolenie ma postać pokazów praktycznych (plus oczywiście konieczna teoria). Uczestnicy mogą we własnym zakresie realizować zadania na naszej zamkniętej, praktycznej platformie szkoleniowej (dostępne są tam celowo podatne aplikacje). Platforma dostępna będzie minimum 6 miesięcy po zakończeniu szkolenia.

Pytanie: czy moglibyśmy zorganizować takie szkolenie zamknięte? (tylko dla pracowników naszej firmy) 

Odpowiedź: Tak, prosimy o kontakt: szkolenia@securitum.pl

Pytanie: nie odpowiada mi termin. Czy posiadacie już jakieś inne daty tego szkolenia?

Odpowiedź: W 2021. roku to jedyny termin szkolenia otwartego. Zachęcamy do wykupienia dostępu (otrzymasz 3-miesięczny dostęp do nagrania szkolenia i wszystkie benefity należne uczestnikom – dostęp do platformy CTF, extra materiały PDF, itd)

Pytanie: zapomniałem o coś dopytać na szkoleniu, jak mogę skontaktować się z prowadzącym?

Odpowiedź: przez minimum pół roku dostępny będzie chat (dla każdego uczestnika) gdzie można skontaktować się z innymi uczestnikami (które dołączyły do chatu), a także z prowadzącym.

Pytanie: czy sesja Q&A jest nagrywana?

Odpowiedź: samo szkolenie jest nagrywane i udostępniane uczestnikom, ale sama sesja Q&A – nie jest.

Formularz zgłoszeniowy

Wypełnij formularz, aby zapisać się na szkolenie.

Prowadzący: Michał Bentkowski

  • Michał Bentkowski jest konsultantem d/s bezpieczeństwa IT w firmie Securitum
  • Uczestnik programów bug bounty
  • Wysokie miejsce w globalnym rankingu Hall of Fame Google – Application Security). W swojej karierze lokalizował błędy klienckie w domenie google.com czy Google Docs – zgłoszonych przeszło 20 błędów z pulą wypłaty przeszło 60 tysięcy USD.
  • Zgłoszone błędy bezpieczeństwa w przeglądarkach: Firefox, Internet Explorer (zob. np. ominięcie Same Origin Policy w Firefox; Microsoft Browser Elevation of Privilege Vulnerability – CVE-2015-6139).
  • Ponad 7 lat doświadczenia w testowaniu aplikacji mobilnych i webowych
  • Współautor książki „Bezpieczeństwo aplikacji webowych”
  • Prelegent na konferencjach: MEGA SHP (2019), Confidence (2019, 2018), SEMAFOR (2019), SECURE (2019, 2018), WTH (2019), KrakYourNet (2016), 4Developers (2016), OWASP@Kraków (2015)
  • Autor tekstów w serwisie: sekurak.pl, sekurak/offline oraz w magazynie Programista.