Bądźmy w kontakcie

Plan Szkolenia

Wprowadzenie do bezpiecznego programowania w C i C++

  • Zrozumienie zasad bezpiecznego wytwarzania oprogramowania
  • Typowe zagrożenia bezpieczeństwa w aplikacjach C i C++
  • Związek między błędami programistycznymi a podatnościami bezpieczeństwa
  • Standardy bezpiecznego kodowania i najlepsze praktyki

Typowe podatności programistyczne w C i C++

  • Identyfikowanie częstych błędów kodowania wprowadzających zagrożenia bezpieczeństwa
  • Problemy z bezpieczeństwem pamięci w C i C++
  • Wzorce podatności i ich wpływ
  • Analizowanie przykładów niebezpiecznego kodu

Zasady bezpiecznego programowania

  • Stosowanie technik obrony w głąb
  • Pisanie solidnego i łatwego w utrzymaniu kodu
  • Minimalizowanie powierzchni ataku
  • Zasady bezpiecznego projektowania aplikacji C i C++

Walidacja danych wejściowych i obsługa danych

  • Zrozumienie znaczenia walidacji danych wejściowych
  • Zapobieganie złośliwemu wykorzystaniu danych wejściowych
  • Techniki sanityzacji danych
  • Bezpieczna obsługa danych użytkownika i danych zewnętrznych

Obsługa błędów i zarządzanie wyjątkami

  • Zagrożenia związane z nieprawidłową obsługą błędów
  • Projektowanie bezpiecznych mechanizmów obsługi błędów i wyjątków
  • Unikanie wycieku informacji przez komunikaty błędów
  • Tworzenie odpornych aplikacji

Bezpieczeństwo pamięci i ochrona przed przepełnieniem bufora

  • Zrozumienie podatności w zarządzaniu pamięcią
  • Przepełnienia bufora na stosie
  • Przepełnienia bufora na stercie
  • Wykrywanie i zapobieganie uszkodzeniom pamięci
  • Bezpieczne techniki zarządzania pamięcią

Ochrona stosu i funkcje bezpieczeństwa środowiska uruchomieniowego

  • Zrozumienie podatności na przepełnienie stosu
  • Zabezpieczenia oparte na kompilatorze
  • Kanarki stosu i mechanizmy ochrony
  • Randomizacja układu przestrzeni adresowej (ASLR)
  • Funkcje bezpieczeństwa nowoczesnych systemów operacyjnych

Zaawansowane zagadnienia bezpieczeństwa w C++

  • Bezpieczne zarządzanie cyklem życia obiektów
  • Zapobieganie podatnościom use-after-free
  • Bezpieczne zarządzanie wskaźnikami i referencjami
  • Unikanie problemów z pomyleniem typów
  • Bezpieczne korzystanie z funkcji języka C++

Narzędzia i techniki bezpiecznego kodowania

  • Korzystanie z narzędzi analizy statycznej do identyfikowania podatności
  • Techniki przeglądu kodu pod kątem oceny bezpieczeństwa
  • Zautomatyzowane podejścia do testowania bezpieczeństwa
  • Integrowanie kontroli bezpieczeństwa z procesami wytwarzania

Standardy bezpiecznego kodowania i najlepsze praktyki

  • Przegląd branżowych wytycznych bezpiecznego kodowania
  • Stosowanie technik programowania defensywnego
  • Wbudowywanie bezpieczeństwa w cykl życia oprogramowania
  • Utrzymywanie bezpiecznych i niezawodnych aplikacji C/C++

Praktyczne warsztaty bezpiecznego kodowania

  • Analizowanie podatnych przykładów kodu C/C++
  • Stosowanie poprawek i ulepszeń bezpieczeństwa
  • Testowanie kodu pod kątem typowych podatności
  • Podsumowanie kursu i zalecenia dotyczące bezpiecznego wytwarzania

Wymagania

Podstawy C/C++

 21 godzin

Liczba uczestników


Cena za uczestnika (netto)

Opinie uczestników (7)

Propozycje terminów

Powiązane Kategorie