Plan Szkolenia
Dzień 1
- Bezpieczeństwo IT i bezpieczne kodowanie
- Charakter bezpieczeństwa
- Terminy związane z bezpieczeństwem IT
- Definicja ryzyka
- Różne aspekty bezpieczeństwa IT
- Wymagania różnych obszarów zastosowań
- Bezpieczeństwo IT a bezpieczne kodowanie
- Od luk w zabezpieczeniach po botnety i cyberprzestępczość
- Charakter luk w zabezpieczeniach
- Przyczyny trudności
- Od zainfekowanego komputera po ataki ukierunkowane
- Klasyfikacja luk bezpieczeństwa
- Taksonomia Landwehry
- Siedem zgubnych królestw
- OWASP Pierwsza dziesiątka 2013
- OWASP Porównanie pierwszej dziesiątki lat 2003 – 2013
- Wprowadzenie do cyklu życia Microsoft® Security Development (SDL)
- Porządek obrad
- Aplikacje zagrożone...
- Ewolucja cyberprzestępczości
- Ataki koncentrują się na aplikacjach
- Większość luk występuje w mniejszych aplikacjach niezależnych dostawców oprogramowania
- Początki Microsoft SDL...
- Oś czasu zabezpieczeń w Microsoft...
- Które aplikacje muszą przestrzegać SDL?
- Microsoft Cykl rozwoju zabezpieczeń (SDL)
- Microsoft Cykl rozwoju zabezpieczeń (SDL)
- Wymagania wstępne SDL: szkolenie w zakresie bezpieczeństwa
- Faza pierwsza: Wymagania
- Faza druga: projektowanie
- Faza trzecia: wdrożenie
- Faza czwarta: Weryfikacja
- Faza piąta: Uwolnienie – Plan reakcji
- Faza piąta: Wydanie – końcowy przegląd bezpieczeństwa
- Faza piąta: Wydanie – Archiwum
- Wymóg post-SDL: Odpowiedź
- Wytyczne dotyczące procesu SDL dla aplikacji LOB
- Wytyczne SDL dotyczące metodologii Agile.
- Bezpieczne tworzenie oprogramowania wymaga ulepszenia procesów
- Bezpieczne zasady projektowania
- Powierzchnia ataku
- Redukcja powierzchni ataku
- Powierzchnia ataku – przykład
- Analiza powierzchni ataku
- Redukcja powierzchni ataku – przykłady
- Prywatność
- Prywatność
- Zrozumienie zachowań i problemów aplikacji
- Obrona w głębi
- Podstawowa zasada SDL: głęboka obrona
- Obrona głęboka – przykład
- Zasada najmniejszych przywilejów
- Najmniejsze uprawnienia – przykład
- Bezpieczne ustawienia domyślne
- Bezpieczne ustawienia domyślne – przykłady
- Powierzchnia ataku
- Bezpieczne zasady wdrażania
- Porządek obrad
- Microsoft Cykl rozwoju zabezpieczeń (SDL)
- Podstawy przepełnienia bufora
- Procesory Intel 80x86 – rejestry główne
- Układ adresu pamięci
- Mechanizm wywoływania funkcji w C/C++ na x86
- Zmienne lokalne i ramka stosu
- Przepełnienie stosu
- Przepełnienie bufora na stosie
- Ćwiczenia – wprowadzenie
- Ćwicz BOFIntro
- Ćwiczenie BOFIntro – określ układ stosu
- Ćwiczenie BOFIntro – prosty exploit
- Walidacja danych wejściowych
- Koncepcje walidacji danych wejściowych
- Problemy całkowite
- Reprezentacja ujemnych liczb całkowitych
- Całkowitą przepełnienie
- Przepełnienie arytmetyczne – zgadnij wynik!
- Ćwicz IntOverflow
- Jaka jest wartość Math.Abs(int.MinValue)?
- Łagodzenie problemu liczb całkowitych
- Łagodzenie problemu liczb całkowitych
- Unikanie przepełnienia arytmetycznego – dodawanie
- Unikanie przepełnienia arytmetycznego – mnożenie
- Wykrywanie przepełnienia zaznaczonym słowem kluczowym w C#
- Ćwiczenie – Używanie zaznaczonego słowa kluczowego w C#
- Wyjątki wywołane przepełnieniami w C#
- Studium przypadku – Przepełnienie liczb całkowitych w .NET
- Luka w zabezpieczeniach związana z przepełnieniem liczb całkowitych w świecie rzeczywistym
- Wykorzystanie luki w zabezpieczeniach związanej z przepełnieniem liczb całkowitych
- Luka w przechodzeniu ścieżki
- Łagodzenie przechodzenia przez ścieżkę
Dzień 2
- Bezpieczne zasady wdrażania
- Zastrzyk
- Typowe SQL Metody ataku wtryskowego
- Zastrzyk ślepy i czasowy SQL.
- SQL Metody zabezpieczenia wtryskowego
- Wstrzyknięcie polecenia
- Zepsute uwierzytelnianie - zarządzanie hasłami
- Ćwiczenie – Słabość hashowanych haseł
- Zarządzanie hasłami i ich przechowywanie
- Algorytmy mieszające specjalnego przeznaczenia do przechowywania haseł
- Skrypty między witrynami (XSS)
- Skrypty między witrynami (XSS)
- CSS wtrysk
- Eksploatacja: wstrzykiwanie poprzez inne HTML tagi
- Zapobieganie XSS
- Brak kontroli dostępu na poziomie funkcji
- Filtrowanie przesyłanych plików
- Praktyczna kryptografia
- Zapewnienie poufności dzięki kryptografii symetrycznej
- Algorytmy szyfrowania symetrycznego
- Szyfry blokowe – sposoby działania
- Hash lub skrót wiadomości
- Algorytmy mieszające
- Kod uwierzytelnienia wiadomości (MAC)
- Zapewnienie integralności i autentyczności za pomocą klucza symetrycznego
- Zapewnienie poufności dzięki szyfrowaniu klucza publicznego
- Praktyczna zasada – posiadanie klucza prywatnego
- Typowe błędy w zarządzaniu hasłami
- Ćwiczenie – hasła zakodowane na stałe
- Wniosek
- Zastrzyk
- Bezpieczne zasady weryfikacji
- Testowanie funkcjonalne a testowanie bezpieczeństwa
- Luki w zabezpieczeniach
- Priorytetyzacja
- Testowanie bezpieczeństwa w SDLC
- Etapy planowania testów (analiza ryzyka)
- Scoring i zbieranie informacji
- Interesariusze
- Aktywa
- Powierzchnia ataku
- Cele bezpieczeństwa dla testowania
- Modelowanie zagrożeń
- Modelowanie zagrożeń
- Profile napastników
- Modelowanie zagrożeń w oparciu o drzewa ataków
- Modelowanie zagrożeń w oparciu o przypadki niewłaściwego użycia/nadużycia
- Przypadki nadużyć/nadużyć – prosty przykład sklepu internetowego
- Podejście perelementowe STRIDE do modelowania zagrożeń – MS SDL
- Identyfikacja celów bezpieczeństwa
- Diagramowanie – przykłady elementów DFD
- Schemat przepływu danych – przykład
- Wyliczanie zagrożeń – elementy STRIDE i DFD MS SDL
- Analiza ryzyka – klasyfikacja zagrożeń
- Model rankingu zagrożeń/ryzyka DREAD
- Techniki i narzędzia testowania bezpieczeństwa
- Ogólne podejścia do testowania
- Techniki różnych etapów SDLC
- Przegląd kodu
- Przegląd kodu pod kątem bezpieczeństwa oprogramowania
- Analiza skażenia
- Heurystyka
- Analiza kodu statycznego
- Analiza kodu statycznego
- Analiza kodu statycznego
- Ćwiczenie – Korzystanie z narzędzi do analizy kodu statycznego
- Testowanie wdrożenia
- Ręczna weryfikacja czasu działania
- Ręczne a automatyczne testowanie bezpieczeństwa
- Testy penetracyjne
- Testy warunków skrajnych
- Fuzowanie
- Automatyczne testowanie bezpieczeństwa – fuzzing
- Wyzwania fuzzingu
- Skanery podatności sieci
- Ćwiczenie – Korzystanie ze skanera podatności
- Sprawdzanie i wzmacnianie środowiska
- Wspólny system punktacji podatności na ataki – CVSS
- Skanery podatności
- Publiczne bazy danych
- Studium przypadku – obejście uwierzytelniania za pomocą formularzy
- Luka w zabezpieczeniach związana z zakończeniem bajtu NULL
- Luka w kodzie związana z obejściem uwierzytelniania formularzy
- Wykorzystanie obejścia uwierzytelniania za pomocą formularzy
- Źródła wiedzy
- Bezpieczne źródła kodowania – zestaw startowy
- Bazy danych o podatnościach
- Wytyczne dotyczące bezpiecznego kodowania .NET w MSDN
- Ściągawki dotyczące bezpiecznego kodowania .NET
- Polecane książki – .NET i ASP.NET
Opinie uczestników (5)
Wiele przykładów dla każdego modułu i duża wiedza trenera.
Sebastian - BRD
Szkolenie - Secure Developer Java (Inc OWASP)
Przetłumaczone przez sztuczną inteligencję
Moduł3 Ataki i exploity na aplikacje, XSS, SQL wstrzyknięcie Moduł4 Ataki i exploity na serwery, DOS, BOF
Tshifhiwa - Vodacom
Szkolenie - How to Write Secure Code
Przetłumaczone przez sztuczną inteligencję
Wiedza trenera na temat przedmiotu była wysoce pozioma, a sposób przeprowadzania sesji, który umożliwiał uczestnikom podążanie za prezentacjami, naprawdę pomógł zconsolidować tę wiedzę, porównywalnie do prostego siedzenia i słuchania.
Jack Allan - RSM UK Management Ltd.
Szkolenie - Secure Developer .NET (Inc OWASP)
Przetłumaczone przez sztuczną inteligencję
Zakres wiedzy, jaki został poruszony. Na pewno nie wszystko udało się w dogłębny sposób wytłumaczyć, ale to pewnie kwestia czasu. Szkolenie trwa 3 dni. W ciągu tych 3 dni poruszone zostały różne zagadnienia, które po szkoleniu można bardziej zbadać. Szkolenie jak najbardziej na plus. Dużo wiedzy, zagadnień w skuulowanej formie.
Pawel Sitarz - Icotera sp. z o.o.
Szkolenie - C/C++ Secure Coding
Nic nie było doskonałe.
Zola Madolo - Vodacom
Szkolenie - Android Security
Przetłumaczone przez sztuczną inteligencję