Bezpieczeństwo aplikacji dla programistów Androida


Czas trwania: 2 dni


Zamów szkolenie

Szkolenie przedstawiające najważniejsze zagadnienia związane z tworzeniem bezpiecznych aplikacji na Androida. Uczestnicy poznają metody i narzędzia, które mogą zostać użyte do atakowania aplikacji oraz sposoby ich zabezpieczania.

    Tematy, które powinien znać każdy developer:

  • architektura aplikacji i systemu
  • algorytymy kryptograficzne
  • dekompilacja i obfuskacja
  • szyfrowanie danych na urządzeniu
  • bezpieczna komunikacja sieciowa
  • przechowywanie haseł i autentykacja
  • narzędzia służące do analizy i ataku

11 praktycznych ćwiczeń

1

Dzień 1

    1. Wprowadzenie

  • Bezpieczeństwo kontra wygoda
  • Kryteria oceny bezpieczeństwa
  • Dlaczego Android jest takim dobrym celem?
  • Znane podatności w Androidzie

    2. Prymitywy kryptograficzne

  • Funkcje skrótu (Hash)
  • Szyfrowanie symetryczne (Secret key)
  • Szyfrowanie asymetryczne
  • Podpis cyfrowy
  • Public Key Infrastucture (PKI)
  • Solenie
  • Tryby blokowe
  • Polecane algorytmy dostępne w Androidzie

    3. Architektura systemu Android i mechanizmy zabezpieczeń

  • Wersje Androida (od strony bezpieczenstwa)
  • Warstwy systemu Android i ich wpływ na bezpieczeństwo
  • Użytkownicy w Android
  • Model uprawnień Androida
  • Własne uprawnienia - tworzenie i korzystanie
  • Binder i komunikacja międzyprocesowa (IPC)
  • Zabezpieczanie komponentów aplikacji

    4. Pliki APK

  • Gdzie szukać plików APK?
  • Struktura APK
  • Podpisywanie plików APK V1 i V2
  • Lab 1: Analiza APK i podpisywanie paczek
  • Reverse engineering
  • Lab 2: Dekompilacja aplikacji w JADX
  • Obfuskacja
  • ProGuard
  • Lab 3: Dekompilacja po ProGuard w JADX
  • DexGuard
  • Lab 4: Dekompilacja po DexGuard w JADX
  • ADB: Android Debug Bridge
  • Pobieranie APK z urządzenia
  • Wyciąganie danych przez Backup
  • Lab 5: Rozpakowywanie backup z ABE

    5. Utrudnianie analizy

  • Wykrywanie emulatora
  • Wykrywanie root
  • Wykrywanie debugable=true
  • Sprawdzanie podpisu
  • Sprawdzanie instalacji z Google Play
  • SafetyNet
  • Lab 6: Przepakowywanie aplikacji w Apktool

    6. Przechowywanie danych na urządzeniu

  • Biblioteki do szyfrowania plików
  • Shared Preferences
  • SQL Cipher
  • Klucze do szyfrowania danych lokalnych
  • SQL Injection
  • Lab 7 : Dynamiczna analiza w Drozer
  • FileProvider
2

Dzień 2

    1. Komunikacja sieciowa

  • Podsłuchiwanie WIFI: Atakujący w tej samej sieci
  • Podsłuchiwanie WIFI: Rouge AP
  • Man In The Middle
  • SSL/TLS
  • Lab 8 : Podsluchiwanie ruchu HTTP i HTTPS
  • SSL Pinning
  • Network Security Configuration
  • Lab 9 : SSL pinning i NSC

    2. Bezpieczne uwierzytelnienie

  • Jak przechowywać API Key i inne sekrety?
  • Natywny kod
  • Zasady bezpiecznej Autentykacji
  • Android KeyStore
  • Hasło szyfrowane asymetrycznie
  • Hash
  • OAuth
  • Magic Link
  • Kiedy unieważniać sesje?

    3. Inne metody ataku

  • Wyciek danych: Zewnętrzne biblioteki
  • Wyciek danych: Logcat
  • Wyciek danych: Schowek
  • Wyciek danych: Screenshot z recent
  • Wyciek danych: Pliki cache
  • Wyciek danych: Cache klawiatury
  • Wyciek danych: Zrzut pamięci
  • Lab 10: Hooking z użyciem Frida
  • Narzędzia do automatycznej analizy
  • Lab 11: MobSF - analiza statyczna i dynamiczna

    4. Checklisty i zasady bezpieczeństwa

  • OWASP Mobile Security Risk Top 10 2016
  • Zasady bezpieczeństwa wg Google
  • OWASP Mobile Security Testing Guide

    5. Lab: Hack me please!

  • zastosowanie poznanych narzędzi na przygotowanej aplikacji typu Capture The Flag

Zobacz również nasze pozostałe szkolenia

Android <b>od podstaw</b> w Android Studio 3.6

Android od podstaw w Android Studio 3.6


Czas trwania: 4 dni


Sprawdź ofertę

Szkolenie bazowe, będące dobrym wprowadzeniem dla programistów języków obiektowych (Java, C#, PHP, Ruby). Uczestnicy poznają najważniejsze komponenty składowe aplikacji (Activity, Service, BroadcastReceiver, ContentProvider). Uzyskane umiejętności pozwalają na tworzenie aplikacji wykorzystujących API i lokalne bazy danych SQLite.

<b>Modern</b> Android Development  – narzędzia i techniki

Modern Android Development – narzędzia i techniki


Czas trwania: 3 dni


Sprawdź ofertę

Szkolenie dla osób, które posiadają już podstawową wiedzę z zakresu tworzenia aplikacji na Androida. Zawiera zbiór popularnych bibliotek, narzędzi i technik, które pozwalają tworzyć lepsze aplikacje. Uzupełnia szkolenie podstawowe i pokazuje warsztat doświadczonych programistów. Główny nacisk położony zostanie na tworzenie aplikacji, których architektura pozwala na łatwe utrzymywanie, testowanie i rozbudowę.

<b>Bezpieczeństwo aplikacji</b> dla programistów Androida

Bezpieczeństwo aplikacji dla programistów Androida


Czas trwania: 2 dni


Sprawdź ofertę

Szkolenie przedstawiające najważniejsze zagadnienia związane z tworzeniem bezpiecznych aplikacji na Androida. Uczestnicy poznają metody i narzędzia, które mogą zostać użyte do atakowania aplikacji oraz sposoby ich zabezpieczania.

<b>Kotlin</b> dla programistów Androida

Kotlin dla programistów Androida


Czas trwania: 1 dzień


Sprawdź ofertę

Wprowadzenie do języka Kotlin dla programistów Androida. Najważniejsze cechy i konstrukcje języka oraz sposoby integracji z popularnymi bibliotekami.

Reactive Android z biblioteką <b>RxJava 2</b>

Reactive Android z biblioteką RxJava 2


Czas trwania: 1 dzień


Sprawdź ofertę

Użycie RxJavy w ekosystemie Androida - przykładowe zastosowania i przypadki użycia

<b>Testowanie + Clean Architecture</b> w środowisku Androida

Testowanie + Clean Architecture w środowisku Androida


Czas trwania: 2 dni


Sprawdź ofertę

Testowanie + Clean Architecture w środowisku Androida

Masz pytania? Sprawdź stronę najczęściej zadawane pytania lub napisz do mnie szkolenia@szkoleniaandroid.pl