Agenda. Bezpieczeństwo aplikacji mobilnych. Artur Maj, Mariusz Burdach Prevenity



Podobne dokumenty
OWASP OWASP. The OWASP Foundation Mariusz Burdach Prevenity

Agenda. Urządzenia mobilne w transakcjach elektronicznych. - szanse i zagrożenia. Artur Maj, Prevenity. Przegląd rynku urządzeń mobilnych

Agenda. Rys historyczny Mobilne systemy operacyjne

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Urządzenia mobilne Nowe szanse, nowe zagrożenia FWZQJAEHEPQABIRQS

Agenda. Quo vadis, security? Artur Maj, Prevenity

Android, wprowadzenie do SDK

BEZPIECZNE APLIKACJE MOBILNE NAJISTOTNIEJSZE ZAGADNIENIA. Sławomir Jasek Wersja: 1.1,

cat /agenda.txt /wybrane_fakty_i_mity grep zweryfikowane

Architektura bezpiecznych aplikacji internetowych na platformie Java Enterprise Edition. Jakub Grabowski Warszawa,

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Analiza malware'u SandroRAT_sec Kaspersky_Mobile_Security.apk

!!!!!! FUDO% Architektura%Bezpieczeństwa! % % Warszawa,%28:04:2014%

Dane z początku 2011 roku: 100 mln iphone ów 15 mln ipadów 60 mln ipodów Touch 200 tys. kont w AppStore 400 tys. aplikacji 10 mld pobrań

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Matryca funkcjonalności systemu FAMOC

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

SQL z perspektywy hakera - czy Twoje dane są bezpieczne? Krzysztof Bińkowski MCT,CEI,CEH,ECSA,ECIH,CLFE,MCSA,MCSE..

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Powiedz TAK dla mobilności w biznesie wybierając Novell ZENworks Mobile Management!

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Laboratorium Systemów Mobilnych. Wykład 1

Do użytku z aplikacjami z funkcją skanowania / czytania kodów QR

Rynek mobilnych systemów operacyjnych

OBC01/TOPMOB Projektowanie w języku Objective-C

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Bezpieczeństwo systemów informatycznych

MATRYCA FUNKCJONALNOŚCI SYSTEMU MDM T-MOBILE (FAMOC V 3.21)

PROFESJONALNE USŁUGI BEZPIECZEŃSTWA

The OWASP Foundation Session Management. Sławomir Rozbicki.

Czym jest Samsung KNOX? Bezpieczny telefon. -Zabezpieczenie służbowych danych i aplikacji - Środowisko pracy dla biznesu

Projekt wymagań bezpieczeństwa wobec statycznych bezpośrednich 1-fazowych i 3- fazowych liczników energii elektrycznej:

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Systemy operacyjne na platformach mobilnych

Dźwięk w IOS. Wykład 8. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Systemy operacyjne na platformach mobilnych

OWASP i Top 10 Sposób tworzenia Top 10 Czym jest a czym NIE jest Top 10? Zmiany w wersji 2013 Omówienie nowych podatności na liście Podsumowanie

Program szkolenia: Bezpieczny kod - podstawy

bezpieczeństwo na wszystkich poziomach

Bezpieczne udostępnianie usług www. BłaŜej Miga Zespół Bezpieczeństwa PCSS

SOP System Obsługi Parkingów

Android - wprowadzenie. Łukasz Przywarty

Google Android. Opracował Maciej Ciurlik

Comarch e-sklep Sync. wersja

Serwery LDAP w środowisku produktów w Oracle

Automatyczne testowanie infrastruktury pod kątem bezpieczeństwa. Leszek Miś IT Security Architect RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o.

Storware KODO. One KODO to protect them all STORWARE.EU

Storware KODO. Zaawansowana platforma do zarządzania i zabezpieczenia danych na urządzeniach mobilnych STORWARE.EU

ActiveXperts SMS Messaging Server

Bezpieczeństwo aplikacji typu software token. Mariusz Burdach, Prevenity. Agenda

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Szczegółowy opis przedmiotu zamówienia:

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Drobne błędy w portalach WWW

Warszawa, 22 marca Wstęp

NARZĘDZIA ANALITYCZNE W ZASTOSOWANIACH MOBILNYCH. Patryk Królikowski ISSA Polska

PRACA INŻYNIERSKA IMPLEMENTACJA MOBILNEGO KLIENTA BANKU ZABEZPIECZONEGO TOKENEM

Portal Security - ModSec Enterprise

INSTYTUT IMMUNOLOGII I TERAPII DOŚWIADCZALNEJ im. Ludwika Hirszfelda Polska Akademia Nauk

Szkolenie autoryzowane. MS Konfiguracja i zarządzanie Microsoft SharePoint 2010

Kontrola dostępu do kodu i własności intelektualnej w Zintegrowanej Architekturze. Copyright 2012 Rockwell Automation, Inc. All rights reserved.

Zagrożenia mobilne w maju

Jak bezpieczne są Twoje dane w Internecie?

Ochrona o poziom wyżej. OCHRONA DIGITAL

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Bringing privacy back

Instrukcja obsługi. Kamera IP

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Tworzenie aplikacji na platformie Android

1 Wprowadzenie do J2EE

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

NAZWA PRODUKTU: Ukryta Kamera Podsłuch w Ładowarce FullHD WiFi USB MicroSD S160 Cechy produktu

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Wykład 8. Temat: Hakerzy, wirusy i inne niebezpieczeństwa. Politechnika Gdańska, Inżynieria Biomedyczna. Przedmiot:

Netia Mobile Secure Netia Backup

TelCOMM Wymagania. Opracował: Piotr Owsianko Zatwierdził: IMIĘ I NAZWISKO

Kurs rozszerzony języka Python

Czy ochrona sieci jest nadal wyzwaniem, czy tylko jednorazową usługą?

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Konspekt pracy inżynierskiej

Materiał dystrybuowany na licencji CC-BY-SA

MS Visual Studio 2005 Team Suite - Performance Tool

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

11. Autoryzacja użytkowników

Laboratorium Programowania Kart Elektronicznych

Konfiguracja dostępu do zasobów

1. Tworzenie nowego projektu.

(Pluggable Authentication Modules). Wyjaśnienie technologii.

Wyspecjalizowani w ochronie urządzeń mobilnych

Rozwiązanie do dwuskładnikowego uwierzytelniania z wykorzystaniem telefonu komórkowego. Pomaga zagwarantować danym należyty poziom ochrony, zgodny z

Przewodnik po ING BusinessMobile

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Bezpieczeństwo aplikacji internetowych. Rozwój napędzany potrzebą WALLF Web Gateway. Leszek Miś, RHCA,RHCSS,Sec+ Linux Polska Sp. z o.o.

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Linux Kernel III. Character devices

Transkrypt:

Bezpieczeństwo aplikacji mobilnych Artur Maj, Mariusz Burdach Prevenity Agenda Rodzaje aplikacji mobilnych Bezpieczeństwo aplikacji mobilnych na przykładzie platform: Apple ios (iphone, ipad) Android Wyzwania dla aplikacji mobilnych 1

Aplikacje mobilne Popularne rodzaje aplikacji mobilnych: Aplikacja WWW ( Lite ) Aplikacja natywna Aplikacja na karcie SIM Aplikacja asynchroniczne/dostęp przez SMS/USSD Aplikacja głosowa (IVR) Aplikacja WWW ( Lite ) Wybrane zagrożenia: Klasyczne ataki na aplikacje WWW, np.: SQL Injection Cross-Site Scripting Cross-Site Request Forgery HTTP Redirect itp. Złośliwe oprogramowanie / MITM Brak silnego uwierzytelniania i autoryzacji Phishing 2

Aplikacja WWW (cd.) Aplikacja natywna Wybrane zagrożenia: Zgubienie lub kradzież urządzenia Oprogramowanie złośliwe / MITM Ataki na stronę serwerową (np. Web Services) Podmiana aplikacji 3

Aplikacja na karcie SIM Wybrane zagrożenia: Złośliwe oprogramowanie Zdalny dostęp do GUI telefonu Internet Wi-Fi Bluetooth UMTS GPRS/EDGE Dostęp przez SMS/USSD Wybrane zagrożenia: Przekierowywanie wiadomości Podszywanie się pod nadawców wiadomości Ochrona poufności wiadomości Operator telekomunikacyjny Nieświadomy użytkownik Atakujący 4

Aplikacja głosowa (IVR) Wybrane zagrożenia: Podsłuch Nagrywanie Przekierowanie Vishing Bezpieczeństwo aplikacji na platformie Apple ios (iphone/ipad) 5

Środowisko programistyczne iphone - ios C/C++/Objective-C Secure Coding Guide, Apple 2010 http://developer.apple.com/library/mac/#documentation/security /Conceptual/SecureCodingGuide/Introduction.html Buffer overflows, format string, race-conditions, denial of service, etc Przykład błędów: CVE-2010-1797 PDF Compact Font Format stack-based buffer overflow CVE-2010-2973 Integer overflow w IOSurface Źródło: community.websense.com/blogs/securitylabs 6

ASLR Address Space Layout Randomization ios 4.3 2 tryby (PIE/noPIE) PIE Segment kodu TEXT Segment danych DATA Heap Stack Funkcje w bibliotekach Nie Bez zmian Bez zmian Zmienny Bez zmian Zmienny (po restart) Tak Zmienny Zmienny Zmienny Zmienny Zmienny (po restart) Dynamic linker (dyld) Bez zmian Zmienny Identyfikacja PIE (otool hv plik_wykonywalny) prevenity.app (architecture armv7): Mach header Magic cputype cpusubtype caps filetype ncmds sizeofcmds flags MH_MAGIC ARM V7 0x00 EXECUTE 19 2404 NOUNDEFS DYLDLINK TWOLEVEL PIE Uprawnienia aplikacji ios Provisioning Profile -.plist (XML) podpisany przez Apple Entitlements (get-task-allow, keychain-access-group, run-unsigned-code, ) <key>entitlements</key> <dict> <key>application-identifier</key> <key>get-task-allow</key> 7

Obfuskacja ios Symbole ( Strip Linked Products / Strip Style w Xcode) Szyfrowane aplikacje z AppStore # otool -l aplikacja Load command 9 cmdsize 20 cryptoff 4096 cryptsize 258048 cryptid 1 Odtwarzanie sekcji kodu cmd LC_ENCRYPTION_INFO iphone:~ root# gdb aplikacja (gdb) break *(OEP) (gdb) run (gdb) dump memory aplikacja_decrypted 0x1000 (rozmiar pierwszego obszaru pamięci rx + OEP) Narzędzie http://prevenity.com/files/iphone.py ios name 0x2dd8 MojaKlasa basemethods 0x3468 (struct method_list_t *) name 0x2840 metodainstancji: types 0x2f15 i12@0:4@8 imp 0x2791 baseprotocols 0x0 ivars 0x3494 entsize 20 count 3 offset 0x34d8 4 name 0x2d73 mojeimie type 0x2f1f @"NSString" alignment 2 size 4 offset 0x34dc 8 name 0x2d7c Nazwisko type 0x2f1f @"NSString" alignment 2 size 4 offset 0x34e0 12 name 0x2d85 wiek type 0x2f2b i alignment 2 size 4 Reverse Engineering IDA Pro 6.1 8

Ochrona pamięci ARM bit XN Heap/Stack non-executable Strony nie mogą mieć uprawnień RWX Return-to-libc Return-oriented programming Podpis cyfrowy/dystrybucja ios Certyfikat dla programisty Wszystkie aplikację są podpisane przez Apple (tzw. mandatory code signing) Dystrybucja wyłącznie poprzez AppStore Inne modele: Development, Ad-Hoc oraz Enterprise (MDM/OTA) # codesign dvvv mariusz Executable=/Users/mariuszburdach/mariusz Identifier=Prevenity.mariusz Format=bundle with Mach-O universal (armv6 armv7) CodeDirectory v=20100 size=266 flags=0x0(none) hashes=5+5 location=embedded CDHash=37e528060cdde51425d4cfe0f94f4708887b54c7 Signature size=1256 Authority=iPhone Developer Signed Time=2011-08-07 15:51:16 CDHash (static/dynamic trust cache) AppleMobileFileIntegrity 9

Code Signing Enforcement ios Kod wykonywalny załadowany do pamięci nie może być zmieniony CSE chroni przed: Załadowaniem niepodpisanej biblioteki Załadowaniem nowego kodu wykonywalnego podczas działania aplikacji Zastosowaniem SMC (self-modified code) Entitlement: dynamic-codesigning XNU kernel struct proc { LIST_ENTRY(proc) p_list; /* List of all processes. */ pid_t p_pid; /* Process identifier. (static)*/ void * task; /* corresponding task (static)*/ struct proc * p_pptr; /* Pointer to parent process.(ll) */ uint32_t p_csflags; /* flags for codesign (PL) */ uint32_t p_pcaction; /* action for process control on starvation */ Code Signing Enforcement (cd.) /* code signing attributes of a process */ #define CS_VALID 0x0001 /* dynamically valid */ #define CS_HARD 0x0100 /* don't load invalid pages */ #define CS_KILL 0x0200 /* kill process if it becomes invalid */ #define CS_EXEC_SET_HARD 0x1000 /* set CS_HARD on any exec'ed process */ #define CS_EXEC_SET_KILL 0x2000 /* set CS_KILL on any exec'ed process */ #define CS_KILLED 0x10000 /* was killed by kernel for invalidity */ #define CS_RESTRICT 0x20000 /* tell dyld to treat restricted */ /* csops operations */ #define CS_OPS_STATUS 0 /* return status */ #define CS_OPS_MARKINVALID 1 /* invalidate process */ #define CS_OPS_MARKHARD 2 /* set HARD flag */ #define CS_OPS_MARKKILL 3 /* set KILL flag (sticky) */ #define CS_OPS_PIDPATH 4 /* get executable's pathname */ #define CS_OPS_CDHASH 5 /* get code directory hash */ #define CS_OPS_PIDOFFSET 6 /* get offset of active Mach-o slice */ #define CS_OPS_ENTITLEMENTS_BLOB 7 /* get entitlements blob */ #define CS_OPS_MARKRESTRICT 8 /* set RESTRICT flag (sticky) */ #ifndef KERNEL BEGIN_DECLS /* code signoperations */ int csops(pid_t pid, unsigned int ops, void * useraddr, size_t usersize); END_DECLS 10

ios Sandbox Kontener dla aplikacji /var/mobile/applications/uuid Moduł jądra MAC Framework Security policy dla każdego procesu (profil) container sandbox profile https://github.com/dionthegod/xnusandbox (gdb) print (FILE *) fopen("/private/var/mobile/library/sms/sms.db", "rb") $1 = (FILE *) 0x1d5775ac (gdb) print (int) fork() $2 = 920 (gdb) print (int) kill(375) $3 = -1 ios Sandbox (cd.) Container Sandbox Profile (['default'], ['deny-with-unknown-modifiers']) (['ipc-posix-sem', 'ipc-posix-shm', 'file-ioctl', 'mach-bootstrap', 'mach-lookup', 'network*', 'network-inbound', 'network-bind', 'priv*', 'priv-adjtime', 'priv-netinet*', 'priv-netinet-reservedport', 'sysctl-read'], ['allow']) (['file-read-data'], [('allow', path.match("(^/system/library/carrier Bundles/(.)*.png$) ), ('deny-with-unknown-modifiers', 'path.match("(^/private/var/logs(/ $)) (^/private/var/mobile/library/carrier Bundles($ /)) (^/System/Library/Carrier Bundles($ /))")'), ('if', 'path_in_extensions', [('allow', 'path.match("(^/private/var/mobile/applications/(([-0-9a-z])*)($ /))")'), ('deny-with-unknown-modifiers', path.match("(^/private/var/mnt/) (^/private/var/tmp(/ $)) (^/private/var/mobile/applications/(.)*$)")'), 11

Ochrona danych ios Sprzętowy akcelerator dla AES-256 GID KEY/UID KEY Hasło użytkownika (passcode) + unikalny klucz urządzenia (UID_KEY) Data Protection Ochrona danych w systemie plików Protection Class (NSFileProtection[None Complete]) Ochrona elementów z wykorzystaniem Keychain Protection Class (ksecattraccessible [Always AfterFirstUnlock WhenUnlocked ThisDeviceOnly...]) Ochrona danych (cd.) Źródło: Sogeti.com 12

Mobile Forensics ios Logiczna kopia pamięci oraz bit-by-bit image http://viaforensics.com/education/white-papers/iphone-forensics/ Metoda Jonathana Zdziarski Modyfikacja obrazu ramdisk z firmware VROM LLB iboot Kernel System Software Aplikacja Springboard metoda AppleKeyStore NSProtectComplete (Passcode) ~ 18 min/4 znakowy passcode Bezpieczeństwo aplikacji na platformie Android 13

Architektura systemu Android Źródło: http://developer.android.com Komponenty aplikacji Android Komponent Activity Service Content provider Broadcast receiver Opis Pojedynczy ekran z interfejsem użytkownika, np.: - Ekran wyświetlający wiadomości SMS - Ekran wyświetlający zawartość wiadomości SMS itp.. Usługa działająca w tle, bez interfejsu użytkownika, np.: - Aplikacja pobierająca pliki z serwera - Aplikacja odtwarzająca muzykę Zarządzanie danymi aplikacji (również ich współdzieleniem), np.: - Książka adresowa - Konfiguracja aplikacji Odpowiedź na wiadomości systemowe lub od innych aplikacji, np.: - Wyłączenie ekranu - Wykonanie zdjęcia 14

Mechanizmy bezpieczeństwa Android Na poziomie sprzętu: ARM v6 execute-never Mechanizmy bezpieczeństwa jądra Linux Izolacja procesów Model praw dostępu użytkownika (UID) i grupy (GID) Wymiana informacji między procesami (IPC) USER PID PPID VSIZE RSS WCHAN PC NAME root 1 0 388 240 ffffffff 00000000 S /init (u:0, s:437) root 2 0 0 0 ffffffff 00000000 S kthreadd (u:0, s:0) root 3 2 0 0 ffffffff 00000000 S ksoftirqd/0 (u:6, s:0) root 4 2 0 0 ffffffff 00000000 S watchdog/0 (u:0, s:0) root 5 2 0 0 ffffffff 00000000 S events/0 (u:0, s:309) (...) app_70 755 71 106012 15920 ffffffff 00000000 S com.htc.demoflopackageinstaller (u:6, s:0) app_42 814 71 111596 20752 ffffffff 00000000 S com.htc.android.mail (u:34, s:14) app_56 839 71 109128 21644 ffffffff 00000000 S com.htc.weatherwallpaper (u:942, s:447) app_79 1232 71 111856 23424 ffffffff 00000000 S com.speedsoftware.rootexplorer (u:3803, s:358) app_37 1409 71 109132 18496 ffffffff 00000000 S com.facebook.katana (u:12, s:11) app_71 1419 71 132732 21920 ffffffff 00000000 S com.google.android.youtube (u:41, s:14) app_74 2134 71 106328 18308 ffffffff 00000000 S com.prevenity.helloworld (u:8, s:6) Mechanizmy bezpieczeństwa Android (cd.) 15

Mechanizmy bezpieczeństwa Android (cd.) Mechanizmy ochrony pamięci Ochrona przed stack buffer overrun ProPolice Ochrona przed integer overvlows safe_iop Ochrona przed double free(), chunk consolidation, integer overflow during memory allaction, null pointer dereference privilege escalation Mechanizmy bezpieczeństwa Android (cd.) Piaskownica dla aplikacji (Application Sandbox) Dotyczy wszystkich aplikacji oprócz jądra (zarówno Dalvik jak również aplikacji natywnych i bibliotek) Każda aplikacja ma przypisany unikalny identyfikator użytkownika (UID) i grupy (GID) Każda aplikacja jest uruchamiana w oddzielnym procesie / maszynie wirtualnej Kod wykonywalny i dane aplikacji nie są dostępne dla innych aplikacji* 16

Mechanizmy bezpieczeństwa Android (cd.) Mechanizmy ochrony system plików Prawa dostępu do plików na bazie Linux drwxr-x--x app_60 app_60 1980-01-06 01:00 com.htc.lmw drwxr-x--x app_3 app_3 1980-01-06 01:00 com.htc.calendar drwxr-x--x app_3 app_3 1980-01-06 01:00 com.htc.provider.customizationsettings drwxr-x--x system system 1980-01-06 01:01 com.htc.android.worldclock drwxr-x--x nobody nobody 1980-01-06 01:01 com.htc.weatherwidget drwxr-x--x app_3 app_3 1980-01-06 01:01 com.htc.provider.settings drwxr-x--x app_61 app_61 1980-01-06 01:01 com.google.android.street drwxr-x--x app_62 app_62 1980-01-06 01:01 com.htc.android.htcime drwxr-x--x app_63 app_63 1980-01-06 01:01 com.android.defcontainer drwxr-x--x app_64 app_64 1980-01-06 01:01 com.android.updater drwxr-x--x app_65 app_65 1980-01-06 01:01 com.htc.cs drwxr-x--x app_20 app_20 1980-01-06 01:01 com.htc.music drwxr-x--x app_5 app_5 1980-01-06 01:01 com.android.htcdialer drwxr-x--x app_3 app_3 1980-01-06 01:01 com.htc.weather.agent drwxr-x--x system system 1980-01-06 01:01 com.android.systemui drwxr-x--x app_66 app_66 1980-01-06 01:01 com.android.setupwizard drwxr-x--x app_67 app_67 1980-01-06 01:01 com.htc.reportagent drwxr-x--x app_68 app_68 1980-01-06 01:01 com.bookmarkshortcut20110516104653075 Mechanizmy bezpieczeństwa Android (cd.) Mechanizm uprawnień aplikacji Developer musi określić wymagane prawa dostępu (w pliku AndroidManifest.xml) do zasobów sprzętowych i funkcji urządzenia, oraz danych użytkownika: Informacji osobistych (kontakty, kalendarz itp.) Wrażliwych urządzeń wejściowych (kamera, mikrofon, GPS itp.) Metadanych urządzenia (logi, nr telefoniczny urządzenia itp.) Użytkownik musi wyrazić pozwolenie na skorzystanie przez aplikację z wszystkich z wymienionych praw, aby można było aplikację uruchomić Wyrażenie zgody jest jednorazowe (podczas instalacji aplikacji) i obowiązuje do momentu deinstalacji aplikacji z systemu Użytkownicy mogą globalnie wyłączyć daną funkcjonalność (np. odbiornik GPS, Wi-Fi itp.) Domyślnie aplikacja nie ma żadnych pozwoleń 17

Mechanizmy bezpieczeństwa Android (cd.) Mechanizm uprawnień aplikacji Mechanizmy bezpieczeństwa Android (cd.) Mechanizm uprawnień aplikacji (cd.) 18

Słabości bezpieczeństwa Android Otwartość Android Market piętą achillesową bezpieczeństwa systemu Android: Do publikacji aplikacji wymagane jedynie: Rejestracja online Wniesienie opłaty $25 Możliwość użycia certyfikatów typu self-signed Brak procesu weryfikacji bezpieczeństwa aplikacji przed publikacją ułatwia publikację malware Nadużycia mechanizmu uprawnień Niezgodność aplikacji z zasadą least privilege Przykład 1: Zwykły kalkulator Przykład 2: Aplikacja do przechowywania haseł i sekretów 19

Możliwość dekompilacji aplikacji Możliwości dekompilacji aplikacji (cd.) 20

Możliwości dekompilacji aplikacji (cd.) Root ing systemu Root ing systemu daje większe możliwości, ale Nie wiemy co tak naprawdę uruchamiamy Pochodzenie większości oprogramowania do root owania telefonu jest praktycznie nie do zweryfikowania Jaką mamy gwarancję, że nie jest to malware? Osłabiamy mechanizmy bezpieczeństwa systemu Ułatwia uzyskanie wrażliwych danych z telefonu w przypadku kradzieży 21

Root ing systemu (cd.) Przykład możliwości pozyskania haseł i tokenów uwierzytelniających Zdalna instalacja aplikacji czyli jak ważna jest ochrona hasła do konta w Google 22

Słabości ochrony systemu plików Użycie pamięci SD Card: Pliki są do odczytu dla wszystkich aplikacji posiadających uprawnienia dla karty SD (system FAT!) Ryzyko nieautoryzowanego dostępu do danych aplikacji Szyfrowany system plików dostępny dopiero od wersji 3.0 Honeycomb Szyfrowanie algorytmem AES Klucz szyfrujący o długości 128 bitów, wywodzący się z hasła użytkownika i losowej soli Użycie szyfrowania wymaga podawania hasła przez użytkownik Błędy programistyczne (przykłady) Nadmiarowe prawa dostępu do komponentów Mogą umożliwić eskalację uprawnień i dostęp do danych podatnej aplikacji Brak walidacji danych podczas korzystania z komponentów Content Provider Głównie umożliwia nieautoryzowany odczyt danych z bazy danych SQLite Niewłaściwa obsługa protokołu SSL/TLS brak lub nieprawidłowo zaimplementowana walidacja certyfikatów SSL serwerów 23

Wyzwania dla aplikacji mobilnych Podsumowanie Aplikacje mobilne często stanowią rozbudowę tradycyjnych aplikacji internetowych lub kolejny kanał dostępu do informacji Duża różnorodność mobilnych systemów operacyjnych utrudnia zapewnienie bezpieczeństwa aplikacjom i przetwarzanych przez nie danych Jeżeli ich architektura nie zostanie zbudowana z uwzględnieniem specyfiki danych systemów mobilnych, mogą się one stać najsłabszym ogniwem całego systemu IT Perspektywa bezpieczeństwa może być różna od celów stosowania: Perspektywa korporacji Perspektywa konsumenta Perspektywa dostarczyciela usług lub aplikacji itp. 24

Największe wyzwania Zapewnienie silnego i jednocześnie wygodnego w użyciu mechanizmu uwierzytelniania użytkowników Ochrona aplikacji i danych przed złośliwym oprogramowaniem i atakami MITM W przypadku niektórych platform - ochrona przed rozpowszechnianiem nieautoryzowanych lub zainfekowanych aplikacji Ochrona danych przed nieautoryzowanym dostępem w przypadku kradzieży urządzenia Zapraszamy na blog http://mobile.prevenity.com 25