42
Android app- utvikling & dagens trusselbilde

Android sikkerhet

  • Upload
    mrtompa

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

En gjennomgang av Android og hvordan lage sikre applikasjoner

Citation preview

Page 1: Android sikkerhet

Android app-utvikling

& dagens trusselbilde

Page 2: Android sikkerhet

Bio

■ Thomas Methlie

■Konsulent @Capgemini, Bergen

■Medlem av VSC

■CISSP (Associate) sertifisering

Page 3: Android sikkerhet

Agenda

Page 4: Android sikkerhet

http://android-developers.blogspot.com

Page 5: Android sikkerhet

http://android-developers.blogspot.com

Page 6: Android sikkerhet

Baksiden av medaljen

Insufficient entropy

Unauthorized intent receipt

Use of hardcoded chryptographic keys

Intent spoofing

Information exposure through sent data

Overprivileged applications

0 10 20 30 40 50 60 70

% of applications

Page 7: Android sikkerhet

Arkitektur

Page 8: Android sikkerhet

Arkitektur

■ Linux 2.6.x (Android 3.x), Linux 3.0.x (Android 4.0)

■Dalvik VM – optimalisert for begrensete ressurser

■ Sikkerhetsmodell: UID's, filrettigheter og tillatelser

Page 9: Android sikkerhet

Nøkkelkonsepter

Activity

■ Presenterer skjerminnhold

■ Kan vise Views, menyer, varsler og notifikasjoner

■ Må ha minst én Activity

View

■ Et enkelt grensesnitt element

■ Håndterer brukerhendelser og tegner komponenten på skjermen

■ Kan lage egne eller bruke eksisterende

Intent

■ Linker to aktiviteter eller to applikasjoner

■ Muliggjør sending av meldinger og data mellom to entiteter

■ Gir tilgang til OS tjenester som kamera, browser mm

Service

■ En applikasjon som kan kjøre i bakgrunnen

■ Deklareres i manifest filen

Page 10: Android sikkerhet

Nøkkelkonsepter 2Broadcast receivers

■ Lytter og reagerer på broadcast meldinger

Content Providers

■ Tilgjengeliggjør data fra en applikasjon til andre

■ Henter data fra filsystem, SQLite, mm.

Android Manifest fil

<manifest ...>

<application>

<activity android:name=“.MyActivity”>...</activity>

<receiver android:name=“.MyReceiver”>...</receiver>

</application>

<uses-sdk android:minSdkVersion=“16” />

<uses-feature android:name=“android.hardware.CAMERA”/>

<uses-permission android:name=“android.permission.INTERNET” />

<uses-permission android:name=“android.permission.CAMERA” />

<permission android:name=“com.emc.NewPermission” />

</manifest>

Page 11: Android sikkerhet
Page 12: Android sikkerhet

Intent spoofing

■Komponent med svake rettigheter

■Ondsinnet app sender en Intent som resulterer i datainjeksjon eller endret tilstand

<receiver android:name=”one.special.recevier”><intent-filter>

<action android:name=”one.intent.action” /></intent-filter

</receiver>

Page 13: Android sikkerhet

Eksempel

Evil app Cool app

Action: displayShop

Handles action:displayShopnoShopsList

Results UI

Page 14: Android sikkerhet

Intent spoofing

<receiver android:name=”one.special.recevier” android:exported=false>

<intent-filter><action android:name=”one.intent.action” />

</intent-filter></receiver>

<receiver android:name=”one.special.recevier”android:exported=trueandroid:permission=”one.permission”>

<intent-filter><action android:name=”one.intent.action” />

</intent-filter></receiver>

Page 15: Android sikkerhet
Page 16: Android sikkerhet

SQL og Query String Injection■ Delete, execSQL, rawQuery, update....

■Query String Injection: Sub-klasse av SQL Injection

■ Tillater en ondsinnet app å se uautorisert data■ Kan ikke endre data

■Hvordan?■ Data fra en uklarert kilde■ Dynamisk konstruerte SQLite spørringer

Page 17: Android sikkerhet

Query String Injection

Bruk parameteriserte spørringer!!

query = userDB.query(MY_TABLE,MY_COLUMN,“userid = ?”,{userid},null,null,null,null)

Page 18: Android sikkerhet
Page 19: Android sikkerhet

Unauthorized Intent Receipt

■Gitt en offentlig Intent som ikke krever spesielle tillatelser hos komponenten som mottar meldingen

■ Fanges opp av en ondsinnet app

■Kan lekke sensitive data og/eller endre programflyt

Intent intent = new Intent();

intent.setAction(“a.special.action”);

startActivity(intent);

Page 20: Android sikkerhet

Unauthorized Intent Receipt

Intent fixedIntent = new Intent();fixedIntent.setClassName(“pkg.name”,“pkg.name.DestinationName”);

Intent fixedIntent2 = new Intent();fixedIntent2.setAction(“a.special.action”);sendBroadcast(“fixedIntent2, “a.special.permission”);

or

Page 21: Android sikkerhet
Page 22: Android sikkerhet

Persistent Messages:Sticky broadcasts

■Kan ikke sette krav til tillatelser på mottaker

■ Tilgjengelig for alle(!)

■Kompromittere sensitiv program data

■ Lever videre etter at den har blitt sent■ Kan fjernes av alle som har

BROADCAST_STICKY tillatelse

Page 23: Android sikkerhet

Persistent Messages:Sticky broadcasts

■Bruk vanlige kringkasting som er beskyttet av mottakers tillatelser

■Undersøk data som blir sent i kringkastings meldinger

Page 24: Android sikkerhet
Page 25: Android sikkerhet

Insecure Storage

■ Innhold på SD-kort er tilgjengelig for alle

■Blir ikke fjernet når app'en blir fjernet

■Kan gi tilgang til passord, lokasjoner, SMS, epost, etc

Page 26: Android sikkerhet

Insecure Storage

■Bruk applikasjonens SQLite database

■Bruk enhetens interne datalager

■Bruk Context.MODE_PRIVATE

Page 27: Android sikkerhet
Page 28: Android sikkerhet

Insecure Communication

■ Ikke send sensitiv data over HTTP

■Om mulig, bruk HTTPS, hvis du bruker WebViews

■Bør undersøkes og behandles som hvilken som helst web applikasjon

Page 29: Android sikkerhet

Insecure Communication

■Google Calendar og Contacts (fikset i v2.3.4)

■ Twitter app■ Facebook app■ Fake GSM tower, IMSI Catcher

Page 30: Android sikkerhet
Page 31: Android sikkerhet

Overprivileged Applications

■ “Minst privilegium” prinsippet

■ Sårbarheter kan gi en angriper tilgang■ Application Collusion Attack

■Brukere godtar unødvendige tillatelser

Page 32: Android sikkerhet

Trusselbilde

Bilde:http://www.mobi2tab.com

Mobile is the new platform. Mobile is a very intimateplatform. It's where the attackers are going to go." [Schneier]

Page 33: Android sikkerhet

Trusselbilde

■ Q1: 3, 063

■Q2: 5, 033

■ Q3: 51, 447■Kun 0,5 fra Play Store. 55,2 prosent

faktisk ondsinnet!

Page 34: Android sikkerhet

Bilde: F-Secure, Mobile Threat Report

Trusselbilde

Page 35: Android sikkerhet

Trusselbilde

■Samle personlig informasjon■ Kontakter, SMS, e-post, bilder, filer, GPS lokasjon

■Pakkesniffing

■Overvåking

■Reklame

■ Installere/kjøpe andre applikasjoner

■Premium SMS tjenester

Page 36: Android sikkerhet

Hva skjer fremover?

■Android v4.2

■ (Opt-in) Skanning av applikasjoner i sanntid

■Valideres mot eksisterende Google Play app's og APK-filer tilgjengelig på nettet

■Ny installasjons-skjerm med tydeligere informasjon

Page 37: Android sikkerhet

SE Linux

Bilde: Centos.org

■ Mandatory Access Control vs Discretionary Access Control

■ Ingen root bruker

■ Sikkerhets policy definert av en administrator

Page 38: Android sikkerhet

VPN

Bilde: How Stuff Works

■ Always-On VPN

■ Hindrer data fra plutselig å bli sent i klartekst

Page 39: Android sikkerhet

Premium SMS

Bilde: http://k0il-inside.blogspot.no

■ Premium SMS tjenester belaster brukerens mobilabonnement

■ Varsling ved bruk av premium tjenester

Page 40: Android sikkerhet

Pro tips!

■Google Play

■Rating og tilbakemeldinger

■Kontroller tillatelser

■Rooting

Page 41: Android sikkerhet

Takk for meg!

[email protected] / [email protected]

tsmethlie

no.linkedin.com/in/thomasmethlie

Page 42: Android sikkerhet

Kilder■ Seven ways to hang yourself with Google Android. Y. O'Neil and E. Chin

■ Veracode State of Software Security v04

■ http://android-developers.blogspot.com

■ http://nakedsecurity.sophos.com/2011/05/17/security-hole-android-smartphones

■ Developing secure mobile applications for android. Jesse Burns, iSEC Partners

■ F-Secure: Mobile Threat Report Q3 2012

■ Application Collusion Attack on the Permission-Based Security Model and its Implications for Modern Smartphone Systems (ftp://ftp.inf.ethz.ch/doc/tech-reports/7xx/724.pdf)