Android app-utvikling & dagens trusselbilde
Bio Thomas Methlie Konsulent @Capgemini, Bergen Medlem av VSC CISSP (Associate) sertifisering
Agenda
http://android-developers.blogspot.com
http://android-developers.blogspot.com
Baksiden av medaljen Overprivileged applications Information exposure through sent data Intent spoof ing Use of hardcoded chryptographic keys % of applicat ions Unaut horized intent receipt Insufficient entropy 0 10 20 30 40 50 60 70
Arkitektur
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
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 Service En applikasjon som kan kjøre i bakgrunnen Deklareres i manifest filen Gir tilgang til OS tjenester som kamera, browser mm
Nøkkelkonsepter 2 Broadcast receivers Lytter og reagerer på broadcast meldinger Content Providers Tilgjengeliggjør data fra en applikasjon til andre Android Manifest fil Henter data fra filsystem, SQLite, mm. <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>
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>
Eksempel Evil app Cool app Handles action: displayshop noshopslist Results UI Action: displayshop
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=true android:permission= one.permission > <intent-filter> <action android:name= one.intent.action /> </intent-filter> </receiver>
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
Query String Injection Bruk parameteriserte spørringer!! query = userdb.query( MY_TABLE,MY_COLUMN, userid =?,{userid}, null,null,null,null)
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);
Unauthorized Intent Receipt Intent fixedintent = new Intent(); fixedintent.setclassname( pkg.name, pkg.name.destinationname ); or Intent fixedintent2 = new Intent(); fixedintent2.setaction( a.special.action ); sendbroadcast( fixedintent2, a.special.permission );
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
Persistent Messages: Sticky broadcasts Bruk vanlige kringkasting som er beskyttet av mottakers tillatelser Undersøk data som blir sent i kringkastings meldinger
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
Insecure Storage Bruk applikasjonens SQLite database Bruk enhetens interne datalager Bruk Context.MODE_PRIVATE
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
Insecure Communication Google Calendar og Contacts (fikset i v2.3.4) Twitter app Facebook app Fake GSM tower, IMSI Catcher
Overprivileged Applications Minst privilegium prinsippet Sårbarheter kan gi en angriper tilgang Application Collusion Attack Brukere godtar unødvendige tillatelser
Trusselbilde Mobile is the new platform. Mobile is a very intimate platform. It's where the attackers are going to go." [Schneier] Bilde:http://www.mobi2tab.com
Trusselbilde Q1: 3, 063 Q2: 5, 033 Q3: 51, 447 Kun 0,5 fra Play Store. 55,2 prosent faktisk ondsinnet!
Trusselbilde Bilde: F-Secure, Mobile Threat Report
Trusselbilde Samle personlig informasjon Kontakter, SMS, e-post, bilder, filer, GPS lokasjon Pakkesniffing Overvåking Reklame Installere/kjøpe andre applikasjoner Premium SMS tjenester
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
SE Linux Mandatory Access Control vs Discretionary Access Control Ingen root bruker Sikkerhets policy definert av en administrator Bilde: Centos.org
VPN Always-On VPN Hindrer data fra plutselig å bli sent i klartekst Bilde: How Stuff Works
Premium SMS Premium SMS tjenester belaster brukerens mobilabonnement Varsling ved bruk av premium tjenester Bilde: http://k0il-inside.blogspot.no
Pro tips! Google Play Rating og tilbakemeldinger Kontroller tillatelser Rooting
Takk for meg! thomas.methlie@capgemini.com / thomas.methlie@gmail.com no.linkedin.com/in/thomasmethlie tsmethlie
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)