Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bezpieczeństwo aplikacji mobilnych

Podobne prezentacje


Prezentacja na temat: "Bezpieczeństwo aplikacji mobilnych"— Zapis prezentacji:

1 Bezpieczeństwo aplikacji mobilnych
Białystok 05 Marca 2018 Magdalena Dziesińska

2 Agenda ROOT –Czym jest i jaki wpływ ma na bezpieczeństwo aplikacji mobilnych Ataki typu injection, brute force oraz jak się przed nimi bronić Przechowywanie danych na urządzeniu 10 najważniejszych zagrożeń aplikacji mobilnych OWASP MOBILE SECURITY Checklist bezpiecznej aplikacji mobilnej

3 Kim jestem? Obecnie pracuje Junior Software Deweloper w iAlbatros Poland Mam roczne doświadczenie w pisaniu bankowych aplikacjach mobilnych Jestem szczęśliwą programistką Xamarinowych apek mobilnych Próbuje swoich sił jako Projektantka UX/UX Autorka Aplikacji Dreams Guide

4 ROOT - Czym jest i jaki wpływ ma na bezpieczeństwo aplikacji mobilnych
Root (z ang. dosłownie korzeń) – tradycyjna nazwa uniksowego konta, które ma pełną kontrolę nad systemem operacyjnym. Z założenia konto root nie powinno być używane do pracy, do której wystarczyłoby zwykłe konto z ograniczonymi uprawnieniami[1]. Istotną sprawą jest zabezpieczenie tego konta silnym hasłem i zabezpieczenie przed nieautoryzowanym dostępem. Domyślnie root ma dostęp do wszystkich komend i plików w systemie.

5 Czy każde urządzenie mobilne do dostęp do roota?

6 Co zrobić gdy chcemy aby nasze urządzenie miało dostęp do roota?

7 Jaki na wpływ na bezpieczeństwo?

8 Wykrywanie roota – Android

9 Przechowywanie danych na urządzeniu
Przechowywanie danych w SharedPreferences. Służy do przechowywania kilku ciągów, liczb , czy ustawienia naszej aplikacji Nie powinny być tam wstawione jakie klucze, tokeny które są dostępne do naszej aplikacji Jeżeli mamy telefon zrotowanym mamy możliwość podejrzenia podanego pliku Korzystanie z bazy danych SQL Lite Służy do przechowywania dużych ilości uporządkowanych danych Aby utworzyć nową bazę danych SQL Lite lub utworzyć już istniejącą, należy skorzystać z metody openOrCreateDatabase() z trybem MODE_PRIVATE, który umożliwia uzyskanie dostępu do bazy tylko przez aplikację. SQLiteDatabase myDB =  openOrCreateDatabase("my.db", MODE_PRIVATE,null);

10 Przechowywanie danych na urządzeniu
Korzystanie za pamięci wewnętrznej Każda aplikacja na Android posiada powiązany z nią prywatny katalog pamięci wewnętrznej, w którym aplikacja może przechowywać pliki tekstowe i binarne Pliki znajdujące się w tym katalogu nie są dostępne dla użytkownika lub innych aplikacji zainstalowanych na urządzeniu. Są również automatycznie usuwanie, gdy użytkownik odinstaluje aplikację.

11 Czy mamy dostęp to tych danych?

12 Shredpreference , Bazy danych, Korzystanie z pamięci wewnętrznej – Dostęp do danych
1. Z linii poleceń adb shell – polecenie które uruchamia powłokę linuksa # cd/data/data – polecenie wchodzimy do katalogu w którym są zainstalowane aplikacje # ls – polecenie które wyświetla katalogi naszych aplikacji # cd magdalena.pl.dreamguide – wchodzimy do intersującej dla nas aplikacji # ls - wyświetlamy zwartość naszej aplikacji # cd shared_prefs – wchodzimy do katalogu z danymi # ls – wyświetlamy zawartość podanego folderu # cat – wyświetlamy zawartość pliku <?xml version='1.0'encoding='utf-8'standalone='yes'?> <map>    <stringname="Locale.Helper.Selected.Language">en</string> </map> 2 . Z pomocą narzędzia Android Devie Monitor

13 Ataki typu injection, buutr force oraz jak się przed nimi bronić

14 Atak injection – SQL INJECTION
SQL INJECTION -  polega na wstrzyknięciu kodu sql w zapytanie wysyłane do bazy danych. Dzięki użyciu znaków specjalnych (apostrofy, cudzysłowy itp), można dowolnie zmodyfikować treść zapytania. Przykład: Znamy login pewnego użytkownika Login : marek’ – (apostrofspacjadwamyslnikispacja) Hasło: iffeelpreety SELECT * FROM USER WHERE login=’marek’ -- AND pass=iffeelpreety wszystko po znaku komentarza (dwa myślniki) zostanie zignorowana bo jest tarkowane jako komentarz, a nie właściwa treść zapytania

15 Jak przed tym atakiem się zabezpieczyć ?

16 Atak brute force BRUTE FOURCE - technika łamania haseł lub kluczy kryptograficznych polegająca na sprawdzeniu wszystkich możliwych kombinacji. Jest to prosta metoda pozwalająca w teorii na odgadnięcie każdego klucza. Metoda zabezpieczania przed poddanym atakiem Prostą metodą zabezpieczenia przed atakiem brute force jest ograniczanie możliwej liczby prób logowania w określonym czasie, co znacznie wydłuża czas działania algorytmu.

17 10 najważniejszych zagrożeń aplikacji mobilnych OWASP MOBILE SECURITY
OWASP jest to organizacja, która kojarzy nam się z projektami związanymi z bezpieczeństwem aplikacjami webowymi. Ale od jakiegoś czasu organizacja ta zajmuje się bezpieczeństwem aplikacji mobilnych. W tym celu organizacja ta stworzyła projekt o nazwie  OWASP Mobile Security Project. Podczas tego projektu została stworzona lista zawierająca 10 najważniejszych zagrożenie aplikacji mobilnych. Pierwsza lista została stworzona w 2012 roku. Następna i która jest aktualna została stworzona w 2014 roku.

18 OWASP: Mobile Top 10 Risks 2014
M1: Weak Server Side Controls M3: Insufficient Transport Layer Protection M4: Unintended Data Leakagex M2: Insecure Data Storage M5: Poor Autharization and Authentication M6: Broken Cryptography M7: Client Side Injection M8: Security Decision via Intrusted Inputs M9: Improper Session Handling M10: Lack of Binary Protection

19 Chceklista bezpiecznej aplikacji
Sprawdź czy urządzenie na którym odpalana jest aplikacja nie ma uprawnień roota. Wyłącz tryb debug w aplikacji produkcyjnej. Nie zapisuj w logach systemowych danych wrażliwych. Nie umieszczaj w kodzie aplikacji kluczy szyfrujących, kodów dostępowych, tokenów. Zaciemniaj kod aplikacji (Android - ProGuard (darmowe, wrarto poprawić domyślne ustawienia), DexGuard(komercyjny, znaczne skuteczniejsze zacienie), iOS llvm, iOS-Class-Guard (darmowe), Arxan (komercyjny) ) Walidacja wprowadzonych  danych – SQL Injection Usuń dane testowe gdy aplikacja będzie wdrożona na produkcji Dane szczególnie wrażliwe (np. hasła dostępu, dane finansowe, danelokalizacji) nie powinny być zapisywane na stałe w sposób umożliwiający dostęp do formy jawnej nawet w katalogach prywatnych aplikacji (Android)lub Keychain (iOS). Dane te mogą być odzyskane z urządzenia np. W przypadku jego kradzieży, zgubienia, malware z uprawnieniami administracyjnymi. I wiele innych danych na temat bezpieczeństwa znajdziesz tutaj

20 Ciekawe linki Sekurk https://sekurak.pl/
Niebezpiecznik Mobile Security Testing Guide – książka, która pokazuje jak przetestować pod względem bezpieczeństwa aplikację mobilną link

21 Narzędzia Android Studio DB Browser for SQL Lite

22 Ciekawe książki na temat bezpieczeństwa aplikacji mobilnych

23 Znajdź mnie magdalenadziesinska@gmail.com

24 Dziękuje za uwagę


Pobierz ppt "Bezpieczeństwo aplikacji mobilnych"

Podobne prezentacje


Reklamy Google