Programowanie bezpiecznych parserów – ciekawostki, triki, PRAKTYKA

Parsery plików binarny, czyli funkcje i biblioteki, których zadaniem jest wyekstrahowanie wysokopoziomowych informacji z serii bajtów zapisanych w plikach, są historycznie jednymi z najbardziej najeżonych błędami fragmentów kodów. O ile można słusznie argumentować, że swoją złą opinię zawdzięczają głównie błędogennym językom typu C czy C++, o tyle w praktyce w niektóre pułapki można się wpakować programując w dowolnym języku (tak, nawet w Ruscie).

Podczas szkolenia „Programowanie bezpiecznych parserów” prowadzący nie tylko nauczy uczestników jak tworzyć parsery w sposób ustrukturyzowany i przemyślany, ale także zgodny z założeniami zasad secure-by-default. W szczególności, prowadzący wskaże wszystkie typowe pułapki związane z ich projektowaniem oraz implementacją, i zaprezentuje co można zrobić, aby ograniczyć zarówno ryzyko pojawienia się błędów w kodzie samego parsera, jak i ryzyko ich błędnego użycia.

Pakiet PRO

Zachęcamy do skorzystania z PAKIETU PRO. Pakiet obejmuje cztery szkolenia:

Wszystkie 4 szkolenia razem stanowią ścieżkę, która przeprowadzi uczestnika od "nie wiem nic o danych binarnych" do "umiem sam rozgryźć proste pliki binarne i zaimplementować do nich bezpieczny parser".

Całość to ponad 28 godzin konkretnej i praktycznej wiedzy. Tylko do końca sierpnia pakiet kosztuje 2099 zł netto (oszczędzasz 400 zł netto).

Dodatkowo wszystkie osoby, które kupią pakiet dostaną specjalne dyplomy (PDF).

Do kogo skierowane jest szkolenie

  • Programistów, którzy chcą nauczyć się projektować i implementować parsery plików binarnych.
  • Programistów, którzy chcą rozszerzyć swoje doświadczenie w implementacji parserów i ugruntować swoją wiedzę w tej tematyce.
  • Badaczy bezpieczeństwa i pentesterów, którzy chcą zrozumieć jak tworzone są parsery... i gdzie szukać błędów.
  • Uczestników poprzednich szkoleń w serii – tj. „Operowanie na bitach i bajtach” oraz „Wstęp do plików binarnych i hexedytorów” – dla których to szkolenie może być kolejnym krokiem w naucę.
  • Oraz przyszłych uczestników szkoleń „Wstęp do inżynierii wstecznej nieznanych formatów”, którzy chcą zdobyć wiedzę potrzebną by jak najlepiej wykorzystać nadchodzące szkolenie.

Po szkoleniu...

  • Będziesz potrafić zaprojektować i zaimplementować bezpieczny parser.
  • Będziesz wiedzieć, na co zwrócić szczególną uwagę czytając specyfikację formatów plików binarnych.
  • Będziesz wiedzieć, które elementy projektu oraz implementacji są najbardziej kluczowe z punktu widzenia bezpieczeństwa.
  • Będziesz wiedzieć, jak zaimplementować interfejs modułu parsera tak, żeby jego użytkownicy nie mieli problemu z jego prawidłowym, bezpiecznym użyciem.

Wymagania wstępne

  • Obsługa hexedytorów, umiejętność interpretacji danych binarnych oraz operowanie na bitach i bajtach.
  • Programowanie w dowolnym języku.

Poprzednie szkolenia w tej serii pokrywają wszystkie wymagania wstępne, z wyłączeniem samej nauki programowania.

Agenda

Szkolenie będzie prowadzone w formie prezentacji, uzupełnionej pokazami na żywo, a uczestnicy będą mieli możliwość praktycznego przećwiczenia zdobywanych umiejętności podczas serii ćwiczeń na dedykowanej platformie szkoleniowej lub na własnym komputerze. 

Wiodącym językiem podczas szkolenia będzie Python, ale będą się pojawiać również inne popularne języki programowania, przede wszystkim w celu wskazania istotnych różnic w podejściu. Dodatkowo zostaną udostępnione ekwiwalentne przykłady w kilku popularnych językach programowania.

  • Wstęp
    • Cel parsingu
    • Parsing strumieniowy, na żądanie, pełny
    • Parsery z lotu ptaka
    • Rodzaje pułapek czyhających na programistów
  • Sztuka czytania specyfikacji, czyli na co zwracać uwagę
    • Typowe pułapki przy interpretacji specyfikacji
  • Niskopoziomowy odczyt danych
    • Alternatywne podejścia
    • Przygotowanie niskopoziomowych funkcji
    • Dobre zasady przy obsłudzę błędów
  • Parsery wielowarstwowe
  • Projektowanie bezpiecznego interfejsu
  • Omówienie problemów specyficznych dla różnych podgrup plików binarnych
  • Problem dużych systemów i rozbieżnych implementacji

Przydatne informacje

Szkolenie jest podzielone na dwie, odbywające się dzień po dniu, części, po 4 godziny każda (w sumie 8 godzin).

  • Część pierwsza: 9:00 - 13:00, 2 października, 2023 (poniedziałek)
  • Część druga: 9:00 - 13:00, 3 października, 2023 (wtorek)

Zachęcamy kursantów, do wykorzystania przerwy pomiędzy częściami na przećwiczenie zdobytej wiedzy wykonując przygotowane przez nas ćwiczenia.

Do udziału w szkoleniu potrzebny jest komputer z dostępem do internetu, dowolny hexedytor, oraz ulubione środowisko programistyczne. 

Podczas szkolenia uczestnicy będą zachęcani do wykonania serii ćwiczeń. Ćwiczenia będą opcjonalne, ale – z przyczyn dydaktycznych – zalecane.

Podczas wydarzenia będzie można zadawać prowadzącym 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.

Co zawiera cena szkolenia

  • Udział w szkoleniu i dostęp do zapisu wideo ze szkolenia przez 90 dni.
  • Zestaw ćwiczeń.
  • Certyfikat ukończenia szkolenia (PDF).

O prowadzącym

Gynvael Coldwind - Programista pasjonat z zamiłowaniem do bezpieczeństwa komputerowego i niskopoziomowych aspektów informatyki. Autor bestsellerowej książki „Zrozumieć Programowanie”, redaktor naczelny i twórca eksperymentalnego magazynu Paged Out!, a także licznych artykułów, publikacji, podcastów oraz wystąpień poświęconych wspomnianym tematom. Współzałożyciel i były kapitan zespołu Dragon Sector, historycznie jednej z najlepszych drużyn Capture The Flag na świecie. W 2013 roku odebrał w Las Vegas (wspólnie z Mateuszem Jurczykiem) nagrodę Pwnie Award w kategorii „Najbardziej innowacyjne badanie naukowe” z dziedziny bezpieczeństwa komputerowego. Większość swojego ponad 17-letniego życia zawodowego spędził pracując w zespole bezpieczeństwa firmy Google. Obecnie jest dyrektorem zarządzającym w HexArcana Cybersecurity GmbH.

Poziom zaawansowania:grade grade grade

Prowadzący: Gynvael Coldwind