Podstawy bezpieczeństwa aplikacji WWW

299,00 

W obecnych czasach aplikacje Web potrafią być bardzo skomplikowane. Posiadając setki modułów, wiele funkcjonalności oraz obsługując miliony użytkowników ważne jest zapewnienie ich bezpieczeństwa. Obejmuje ono aspekty takie jak kontrola dostępu użytkowników do systemu, przetwarzanie złożonych danych czy obsługa danych z niezaufanego źródła. Błędy konfiguracji takich aplikacji mogą mieć poważne konsekwencje w kontekście bezpieczeństwa całego biznesu.

Pierwszym tematem poruszonym w ramach kursu będzie stworzenie środowiska do testów bezpieczeństwa aplikacji WWW oraz wykonanie podstawowych zadań, takich jak podgląd i modyfikacja przesyłanych żądań HTTP. Dodatkowo, w ramach zadań zapoznasz się z częścią funkcji powszechnie wykorzystywanych programów.

Uwierzytelnienie to proces weryfikacji, czy osoba, podmiot lub witryna jest tym, za kogo się podaje. Uwierzytelnienie w kontekście internetowych jest zwykle wykonywane przez przesłanie nazwy użytkownika lub identyfikatora i jednego lub więcej elementów prywatnych informacji, które powinien posiadać tylko dany użytkownik (np. hasło).

Zarządzanie sesją to proces, w którym serwer utrzymuje stan uwierzytelnionej osoby lub podmiotu. Jest to wymagane, aby serwer pamiętał, jak reagować na kolejne żądania w trakcie korzystania z aplikacji. Sesje są przechowywane na serwerze w formie identyfikatora sesji, który może być przekazywany w obydwie strony między klientem a serwerem podczas przesyłania i odbierania żądań. Identyfikator sesji powinien być unikatowy dla każdego użytkownika i trudny do odgadnięcia.

Kontrola dostępu, nazywana również autoryzacją (nie mylić z uwierzytelnieniem) to proces, który na podstawie potwierdzonej tożsamości użytkownika decyduje, czy może on uzyskać dostęp do zasobu. Zasobem mogą być zarówno dane (np. dane osobowe, dokumenty, itp.), jak i funkcje, czyli wykonanie pewnej operacji (np. wygenerowanie i pobranie raportu, zmiana hasła użytkownika). Autoryzacja to podstawowa usługa bezpieczeństwa, która występuje w większości aplikacji. Decyzje dotyczące kontroli dostępu są na ogół egzekwowane na podstawie reguł określonych dla użytkownika (tzw. polityk). W zadaniach z tego tematu zapoznasz się z prostymi metodami obejścia kontroli dostępu i uzyskania nieautoryzowanego dostępu do danych.

Wstrzyknięcie SQL (ang. SQL Injection) to atak, który polega na umieszczeniu (wstrzyknięciu) złośliwej części zapytania SQL do bazy danych w popranym zapytaniu, które generowane jest przez aplikację. Udany atak może pozwolić na odczyt dowolnych danych z bazy danych (np. haseł, danych osobowych), jak również do modyfikacji tych danych. Istnieją również ataki, które przez wstrzyknięcia SQL pozwalają przejąć pełną kontrolę nad serwerem bazy danych. W ramach kursu zapoznasz się ze słabościami aplikacji typu SQLi.

Opis

Kurs w liczbach:

  • Liczba zadań praktycznych w kursie: 22 zadań
  • Liczba minut materiału video: 262 minut
  • Liczba stron materiałów pdf: 82 stron
  • Poziom trudności: Średniozaawansowany 
  • Szacowany czas uczenia kursu: 20h

Co uzyskujesz w ramach kursu: 

  • Dostęp do laboratoriów specjalistycznych w chmurze przez 12 miesięcy od zakupu kursu 
  • Nielimitowany dostęp do materiałów video prezentujących sposób rozwiązania zadania wraz z omówieniem 
  • Nielimitowany dostęp do materiałów teoretycznych pdf wprowadzających w tematykę zadań praktycznych 
  • Imienny certyfikat ukończenia kursu (warunek wykonania poprawnie min. 85% zadań przewidzianych w kursie

Zawartość kursu:

  1. Wstęp do bezpieczeństwa aplikacji Web
    • Podgląd nagłówków odpowiedzi 
    • Manipulowanie parametrami HTTP
    • Uruchomienie i konfiguracja proxy w przeglądarce
    • Automatyczny skan aplikacji
    • Modyfikacja żądań HTTP
    • Powtarzanie żądania HTTP 
    • Wyszukiwanie właściwej wartości parametru metodą siłową
  2. Uwierzytelnienie użytkownika
    • Hasło użytkownika o niskiej złożoności 
    • Identyfikator sesji o niskiej losowości
    • Uwierzytelnianie po stronie klienta
    • Nieprawidłowa obsługa przypomnienia hasła
    • Enumeracja użytkowników na podstawie czasu odpowiedzi 
  3. Kontrola dostępu do funkcji i danych
    • Dostęp do ukrytych stron
    • Luki w dostępie do API
    • Manipulowanie parametrami HTTP 
    • Podatność typu Path Traversal
    • Podatność typu Insecure Direct Object Reference
  4. SQL Injection
    • Klasyczna podatność SQL Injection
    • Odczyt schematu bazy danych
    • Identyfikacja wersji serwera bazy danych
    • Podatność SQL Injection typu Blind
    • Podatność SQL Injection typu Time Based