Warsztaty “Od zera do pierwszego 0-daya!”

Moim zawodowym celem jest sprawianie aby szeroko pojęte “cyber” było bezpieczniejszym miejscem – podobnie jak P0 jestem przekonany, że “Make 0-days harder” jest właściwym kierunkiem. Robię to na kilka sposobów, a jednym z nich są szkolenia. Wspólnie z wydawnictwem PWN, organizującym konferencję Security PWNing 2019 połączyliśmy siły, aby zaproponować maksymalnie praktyczne warsztaty w kierunku automatycznego poszukiwania i analizy podatności bezpieczeństwa. Takiego tematu na polskim rynku szkoleń IT Security jeszcze nie było 😀

Jak wyglądają warsztaty i dla kogo są?

Jeżeli chcesz “mieć” swoje CVE to trafiłeś idealnie!

Warsztat jest opracowany z myślą o wprowadzeniu uczestników w arkana najlepszych metod i narzędzi służących do automatycznego wykrywania podatności i analizy błędów w oprogramowaniu w praktyczny sposób.

Na początku skupimy się na zrozumieniu technik: analizy binarnej, wyszukiwania różnych typów podatności oraz debuggowania. “Wgryziemy” się w praktyczny fuzzing i błędy, które spędzają sen z powiek programistom za pomocą swojego niedeterministycznego występowania. Uczestnicy poznają techniki do analizy słabych stron aplikacji, pisania gramatyk oraz pozyskiwania korpusów testowych gwarantujących interesujące wyniki.

Po zrozumieniu aspektów bughuntingu nadejdzie czas na automatyzację analizy podatności i sposoby debuggowania gwarantujące szybkie znalezienie wadliwych elementów kodu.

Szkolenie skupia się na architekturze x86/x64 i atakowaniu parserów (tekstowych, sieciowych, binarnych), fuzzingu sieciowym na platformach Windows i Linux

Najwięcej ze szkolenia wyniosą osoby, które codziennie stykają się z problemami bezpieczeństwa aplikacji, a więc:

  • specjaliści ds. bezpieczeństwa IT i pentesterzy,
  • programiści i testerzy,
  • badacze bezpieczeństwa IT,
  • dostawcy rozwiązań w zakresie bezpieczeństwa IT,
  • pasjonaci bezpieczeństwa teleinformatycznego,

Ponad 50 ćwiczeń technicznych uwzględniających każdy etap procesu bughuntingu w modelach whitebox, blackbox oraz greybox oraz trochę teorii przeplatanej case-study – przede wszystkim praktyka, praktyka, praktyka!

Plan warsztatów, wybrane zagadnienia:

Dzień 1

  • Dlaczego warto szukać podatności bezpieczeństwa?
  • Dlaczego warto to robić za pomocą fuzzerów i metod automatycznych?
  • Najczęściej występujące problemy bezpieczeństwa w oprogramowaniu i mechanizmy mitygacji
    • Klasy podatności
    • Mechanizmy ochrony
  • Workflow poszukiwania podatności
    • 8 praw fuzzingu
  • Fuzzery pod maską i niejedno imię fuzzera
  • Wprowadzenie do fuzzingu na GNU/Linux
    • Jak znaleźć interesujący komponent do ataku?
    • Atakowanie whitebox
      • AFL++
        • Różnice pomiędzy AFL i AFL++
      • Honggfuzz
      • LibFuzzer
      • Fuzzery Go / .NET / Python
      • Pokrycie kodu
    • Atakowanie greybox 
      • AFLSmart
    • Atakowanie blackbox
      • AFL++ + QEMU
      • DynInst
    • Inne
      • Fuzzing z wykorzystaniem preeny
  • Szybkie wprowadzenie do sanitizerów ich możliwości w zakresie detekcji błędów (ASAN, MSAN, UBSAN, TSAN) 
  • Wprowadzenie do fuzzingu na Windows
    • Proces wyszukiwania funkcji do automatycznych testów
    • WinAFL
    • DrFuzz
  • Inne
    • Predykcja ROI za pomocą Pythia – Kiedy fuzzing przestaje się opłacać?
    • Fuzzing sieciowy
    • Fuzzing hybrydowy z Symbolic / Concolic Execution
    • Sztuczna inteligencja w służbie bughuntingu
  • Zarządzanie i tworzenie korpusów testowych
    • Ewolucja i badanie pokrycia kodu
    • Generowanie i ręczne tworzenie inputu z lepszym pokryciem kodu
  • Fuzzing w wielkiej skali
    • ClusterFuzz od Google
    • Fuzz-Driven Development
    • Integracja FuzzManagera z AFL / Honggfuzz / Python
    • Badanie pokrycia kodu na potrzeby FuzzManagera
    • Grupowanie duplikatów za pomocą sygnatur

Dzień 2

  • Pisanie własnego fuzzera opartego o LibFuzzer
    • Analiza metod integracji z OSS-Fuzz
    • Poprawianie osiągów fuzzera
  • Statyczna analiza kodu
    • Mamy 2019 rok, czy dalej warto?
    • cppcheck vs. Clang Static Analyzer
    • Weryfikacja znalezisk za pomocą fuzzera
    • Statyczna analiza jako pierwszy krok do ręcznego przeglądu kodu? 
  • Make vulnerability reporting great again!
    • Analiza błędów
      • Sanitizery (ASAN, MSAN, UBSAN, TSAN)
      • Valgrind
      • DrMemory
    • Co powinien zawierać rzetelny raport o podatności?
    • O co chodzi z CVE?
  • Podstawy selekcji interesujących przypadków błędów
    • Określanie krytyczności awarii
      • exploitability / crashwalk
  • Praca z niedeterministycznymi awariami kodu
    • Debuggowanie za pomocą RR
    • Narzędzia analizy binarnej w GNU\Linux
  • Co dalej?
    • Rode0day

Data, lokalizacja, cena?

Warsztaty odbędą się przed konferencją tj. 12-13.11.19 w Golden Floor Plaza (Warszawa, Aleje Jerozolimskie 123a). Cena wynosi 3499 PLN netto (brutto: 4303.77 PLN).

UWAGA!!! Aby wynieść jak najwięcej wiedzy ze szkolenia ograniczamy liczbę osób, które mogą brać udział w szkoleniu – im szybciej się zapiszesz, tym lepiej 🙂

Pełen opis i formularz zgłoszeniowy znajdziesz na dedykowanej stronie warsztatu – bughunting.pl

2 thoughts on “Warsztaty “Od zera do pierwszego 0-daya!”

  1. Witam Panie Kamilu,

    Czy te warsztaty odbędą się tylko raz? Czy może będzie możliwość wzięcia udziału w innym terminie?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.