Wykrywanie i unikanie podatności w aplikacjach natywnych

LICZBA DNI: 3 (24h)

KOD KURSU: XPL

POZIOM SZKOLENIA:

# security

Szkolenie na zamówienie

Szkolenie dostosowane do potrzeb Twojego zespołu. Dostępne WYŁĄCZNIE na zamówienie.

  • Dostosowany program
  • Indywidualna wycena
  • Dowolny termin

Interesuje Cię ta tematyka i szukasz szkolenia tylko dla siebie?

O szkoleniu

DLA KOGO?

Szkolenie jest adresowane do specjalistów z zakresu bezpieczeństwa aplikacji, testerów wykonujących testy penetracyjne oraz programistów

WYMAGANIA

Od uczestników wymagana jest znajomość zasad działania komputera na poziomie architektury oraz biegłe posługiwanie się wybranym systemem operacyjnym (Windows lub Linux)

Sugerowana jest też umiejętność rozumienia kodu napisanego w języku C/C++ oraz asemblera x86 i x86-64

Pomocne jest wcześniejsze odbycie szkolenia z Inżynierii wstecznej (Reverse engineering)

ZALETY

Istotnym elementem szkolenia są warsztaty, podczas których uczestnicy przećwiczą poznane techniki na praktycznych przykładach z wykorzystaniem wiodących narzędzi i technik

Kameralne grupy - szkolenia technologiczne prowadzimy w grupach liczących do 8 osób. Pozwala to na indywidualne podejście oraz aktywizację każdego uczestnika

Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań

Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką

Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how

Cele szkolenia

Uczestnik szkolenia będzie umiał identyfikować podatności, wykorzystywać je do zakłócenia bądź przejęcia kontroli nad systemem oraz przygotować odpowiedni kod PoC (Proof of Concept)

Program

  • Linux
    • Zarządzanie pamięcią i formaty plików wykonywalnych
    • Narzędzia: GDB, objdump
  • Windows
    • Zarządzanie pamięcią i formaty plików wykonywalnych
    • Narzędzia: IDA Pro, OllyDbg, WinDbg, Immunity Debugger
  • Oprogramowanie z i bez dostępnego kodu źródłowego
  • Przepełnienie stosu (stack overflow)
  • Łańcuchy formatujące (format string)
  • Przepełnienie sterty (heap overflow)
  • Sytuacje wyścigu (race condition)
  • Użycie zwolnionej pamięci (use after free)
  • Użycie nieaktualnej wartości (time of check, time of use)
  • Odmowa usługi
  • Do czego można wykorzystać błędy - DoS vs. zdobycie kontroli
  • Analiza statyczna
  • Fuzzing statyczny
  • Fuzzing dynamiczny - zwiększanie skuteczności fuzzera przez badanie pokrycia kodu i modyfikację próbek
  • Generowanie błędów (fault injection)
  • Pokrycie kodu i wnioski z pokrycia kodu
  • Porównywanie zmian w kodzie oraz poprawek
  • Lint, FindBugs, PMD oraz SonarQube
  • Valgrind
  • Zzuf, SPIKE, AFL
  • IDA, IDASploit
  • BinNavi
  • Po co shellcode?
  • Budowa kodu shellcode
    • Linux
    • Windows
  • Samodzielny program exploit - przykłady w C i Python
  • Moduł Metasploit - implementacja przykładowego exploita
  • W^X
  • Niewykonywalny stos
  • Filtry - shellcode z wykorzystaniem Unicode/ASCII
  • ASLR
  • Wykrywanie nadpisania stosu (stack canaries)
  • Użyteczne wzorce i biblioteki
  • Przykłady z użyciem GCC i Visual C++

Autor szkolenia:

Sebastian Chmielewski

Expert QA z ponad 12 letnim doświadczeniem, ze specjalizacją w technicznej stronie testowania: testach automatycznych, testach wydajności a ostatnio w testach penetracyjnych i zapewnieniu bezpieczeństwa (jako, że testowanie bezpieczeństwa to po prostu bardzo dokładne testowanie oprogramowania). Zainteresowania to literatura postapokaliptyczna, idolem jest McGyver i Robinson Cruzoe a wolny czas spędzam z rodziną, często ogladając z synami dema dla Commodore 64 ;)

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.