Plan Szkolenia

Dzień 1: Wprowadzenie do bezpieczeństwa systemu Android

  • wprowadzenie do systemu Android
  • model bezpieczeństwa Androida: izolacja aplikacji, system uprawnień
  • Android z punktu widzenia programisty: Java, Kotlin, manifest, zasoby, komponenty IPC, web API
  • aplikacje od środka: formaty plików dex i apk
  • Android a Linux: z punktu widzenia programisty i z punktu widzenia badacza bezpieczeństwa
  • bezpieczeństwo Androida od środka: DAC, SELinux, montowanie partycji, dm-verity
  • rootowanie
  • podstawowe narzędzia: Android Studio, ADB, logcat
  • bezpieczeństwo aplikacji Androidowych w teorii: CVSS, MASVS, MSTG

Dzień 2: Inżynieria wsteczna aplikacji Androidowych, analiza statyczna i bezpieczeństwo IPC

  • co to jest inżynieria wsteczna (rewersowanie)
  • inżynieria wsteczna przy pomocy programu apktool: dekodowanie zasobów, deasemblacja kodu
  • maszyna wirtualna Dalvik, bajtkod dex i język Smali
  • dekompilacja kodu do języka Java: Bytecode Viewer
  • praca ze zdekompilowanym kodem w Android Studio
  • analiza manifestu pod kątem IPC
  • automatyczna analiza statyczna przy pomocy MobSF
  • dynamiczna analiza powierzchni ataku IPC przy pomocy Drozera
  • podatności w IPC
  • przygotowywanie proof of concept: am, Drozer, Java/Kotlin

Dzień 3: Analiza dynamiczna, repacking i instrumentacja

  • analiza logów aplikacji
  • analiza zawartości systemu plików
  • debugowalne i backupowalne aplikacje
  • praca z debuggerem
  • analiza ruchu sieciowego: tcpdump, Burp Proxy
  • zaufane certyfikaty i certificate pinning
  • repacking: modyfikowanie kodu lub manifestu aplikacji, ziapligner, jarsigner
  • instrumentacja: Frida i Objection

Dzień 4: WebView, aplikacje cross-platform, biblioteki natywne

  • WebView: HTML i JavaScript w aplikacjach Androidowych
  • interakcje między WebView a Javą: dostęp do filesystemu i JavascriptInterface
  • podatności w WebView: uzyskanie dostępu przez ucieczkę, XSS lub debugowalne WebView
  • podatności w WebView: eskalacja przez JavascriptInterface
  • aplikacje cross-platform: teoria
  • inżynieria wsteczna aplikacji C# (Xamarin) przy pomocy dotPeek i ILSpy
  • inżynieria wsteczna aplikacji JavaScript (React Native) przy pomocy react-native-decompiler
  • pozostałe frameworki cross-platform: Flutter (Dart), Ionic/Angular (JavaScript) i inne
  • biblioteki natywne: C, C++ i kod maszynowy w aplikacjach Androidowych
  • JNI: System.loadLibrary() i metody ze słowem kluczowym native
  • inżynieria wsteczna bibliotek natywnych przy pomocy narzędzia Ghidra

Dzień 5: Bezpieczeństwo API webowego

  • API webowe w aplikacjach Androidowych
  • protokoły do API webowego: SOAP, REST, JSON-RPC, GraphQL i inne
  • OWASP API Top 10
  • przechwytywanie komunikacji z API przy użyciu Burp Proxy
  • Burp Repeater: modyfikacja zapytań do API
  • podatności związane z uwierzytelnianiem: credential stuffing, login SQL injection, podatności w JWT
  • podatności związane z kontrolą dostępu: IDOR, mass assignment, dostęp do funkcji administracyjnych i debugowych
  • inne podatności: SSRF, injection, nadmiarowe dane w wiadomościach o błędach, podatności serwera
  • odkrywanie dodatkowych funkcji API w plikach definicji: WSDL, Swagger/OpenAPI, GraphQL SDL itp.
  • automatyczne generowanie zapytań API: SoapUI, Postman

Wymagania

Podstawowa wiedza z zakresu bezpieczeństwa.

Wiedza na temat systemu Android.

  35 godzin
 

Liczba uczestników


Data rozpoczęcia

Data zakończenia


Daty szkoleń są uzależnione od dostępności trenerów. Szkolenia standardowo odbywają się w godzinach od 09:00 do 16:00.
Szkolenia zdalne są realizowane w przypadku uzbierania się grupy szkoleniowej liczącej co najmniej 5 osób na dany termin.

Opinie uczestników (3)

Szkolenia Powiązane

Powiązane Kategorie