SlideShare a Scribd company logo
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 spoofing

                                                                                 % of applications
Use of hardcoded chryptographic keys


           Unauthorized 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                                        View
■ Presenterer skjerminnhold                      ■ Et enkelt grensesnitt element
■ Kan vise Views, menyer, varsler og             ■ Håndterer brukerhendelser og tegner
  notifikasjoner                                   komponenten på skjermen
■ Må ha minst én Activity                        ■ Kan lage egne eller bruke eksisterende




                      Intent                                        Service
■ Linker to aktiviteter eller to applikasjoner   ■ En applikasjon som kan kjøre i bakgrunnen

■ Muliggjør sending av meldinger og data         ■ Deklareres i manifest filen
  mellom to entiteter
■ Gir tilgang til OS tjenester som kamera,
  browser mm
Nøkkelkonsepter 2
              Broadcast receivers                                 Content Providers

 ■ Lytter og reagerer på broadcast meldinger       ■ 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>
Intent spoofing
■ Komponent med svake rettigheter
■ Ondsinnet app sender en I nt som resulterer i
                               nte
  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 I nt som ikke krever spesielle
                    nte
  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




       M bile is the ne w p la tfo rm . M bile is a ve ry intim a te
          o                               o
p la tfo rm . I whe re the a tta c ke rs a re g o ing to g o . " [Sc hne ie r]
              t's


                                                         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)

More Related Content

Viewers also liked

Social Media and Democracy in Latin America
Social Media and Democracy in Latin AmericaSocial Media and Democracy in Latin America
Social Media and Democracy in Latin America
Rachel Johnson
 
Embracing Employee Generated Video for Knowledge Sharing
Embracing Employee Generated Video for Knowledge SharingEmbracing Employee Generated Video for Knowledge Sharing
Embracing Employee Generated Video for Knowledge Sharing
Rodan van Orden
 
Ebiz
EbizEbiz

Viewers also liked (6)

Social Media and Democracy in Latin America
Social Media and Democracy in Latin AmericaSocial Media and Democracy in Latin America
Social Media and Democracy in Latin America
 
Presentation1
Presentation1Presentation1
Presentation1
 
лекц 1
лекц 1лекц 1
лекц 1
 
лекц 2
лекц 2лекц 2
лекц 2
 
Embracing Employee Generated Video for Knowledge Sharing
Embracing Employee Generated Video for Knowledge SharingEmbracing Employee Generated Video for Knowledge Sharing
Embracing Employee Generated Video for Knowledge Sharing
 
Ebiz
EbizEbiz
Ebiz
 

Similar to Android sikkerhet

Hackcon - Ransomware
Hackcon - RansomwareHackcon - Ransomware
Hackcon - Ransomware
Marius Sandbu
 
Software Security: Hvordan bygge sikre systemer?
Software Security: Hvordan bygge sikre systemer?Software Security: Hvordan bygge sikre systemer?
Software Security: Hvordan bygge sikre systemer?
Marie Elisabeth Gaup Moe
 
Ransomware erfaringer 2021
Ransomware erfaringer 2021Ransomware erfaringer 2021
Ransomware erfaringer 2021
Marius Sandbu
 
Sikkerhet i praksis
Sikkerhet i praksisSikkerhet i praksis
Sikkerhet i praksis
MVP Dagen
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
Håvard Wigtil
 
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattform
Håvard Wigtil
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
Håvard Wigtil
 
Lecture on Interaction Design, Pt 3
Lecture on Interaction Design, Pt 3Lecture on Interaction Design, Pt 3
Lecture on Interaction Design, Pt 3
Jon Skivenes
 
Personvern for apputviklere
Personvern for apputviklerePersonvern for apputviklere
Personvern for apputviklere
Bjørn Sloth
 
Notifikasjoner i en asynkron verden
Notifikasjoner i en asynkron verdenNotifikasjoner i en asynkron verden
Notifikasjoner i en asynkron verden
Joar Øyen
 
SmartPhones - Innovasjon i SmartPhones
SmartPhones - Innovasjon i SmartPhonesSmartPhones - Innovasjon i SmartPhones
SmartPhones - Innovasjon i SmartPhones
SmartPhones Telecom AS
 
Hvordan Lykkes Med Overvåkning
Hvordan Lykkes Med OvervåkningHvordan Lykkes Med Overvåkning
Hvordan Lykkes Med OvervåkningOdd Inge Bjørdal
 
Sharepoint til mobile enheter på en sikker måte
Sharepoint til mobile enheter på en sikker måteSharepoint til mobile enheter på en sikker måte
Sharepoint til mobile enheter på en sikker måteSolv AS
 
PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]
Jermund Ottermo
 
Hvor smart er en smarttelefon?
Hvor smart er en smarttelefon?Hvor smart er en smarttelefon?
Hvor smart er en smarttelefon?
Ida Aalen
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
Håvard Wigtil
 
Hvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekterHvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekter
Alexander Viken
 
Tjenestenektangrep DND
Tjenestenektangrep DNDTjenestenektangrep DND
Tjenestenektangrep DND
Oddbjørn Steffensen
 
The Grand Tour of Azure Networking
The Grand Tour of Azure NetworkingThe Grand Tour of Azure Networking
The Grand Tour of Azure Networking
MVP Dagen
 
Mobil: Hva er alternativene? Hva må du tenke på?
Mobil: Hva er alternativene? Hva må du tenke på?Mobil: Hva er alternativene? Hva må du tenke på?
Mobil: Hva er alternativene? Hva må du tenke på?
Ida Aalen
 

Similar to Android sikkerhet (20)

Hackcon - Ransomware
Hackcon - RansomwareHackcon - Ransomware
Hackcon - Ransomware
 
Software Security: Hvordan bygge sikre systemer?
Software Security: Hvordan bygge sikre systemer?Software Security: Hvordan bygge sikre systemer?
Software Security: Hvordan bygge sikre systemer?
 
Ransomware erfaringer 2021
Ransomware erfaringer 2021Ransomware erfaringer 2021
Ransomware erfaringer 2021
 
Sikkerhet i praksis
Sikkerhet i praksisSikkerhet i praksis
Sikkerhet i praksis
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattform
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Lecture on Interaction Design, Pt 3
Lecture on Interaction Design, Pt 3Lecture on Interaction Design, Pt 3
Lecture on Interaction Design, Pt 3
 
Personvern for apputviklere
Personvern for apputviklerePersonvern for apputviklere
Personvern for apputviklere
 
Notifikasjoner i en asynkron verden
Notifikasjoner i en asynkron verdenNotifikasjoner i en asynkron verden
Notifikasjoner i en asynkron verden
 
SmartPhones - Innovasjon i SmartPhones
SmartPhones - Innovasjon i SmartPhonesSmartPhones - Innovasjon i SmartPhones
SmartPhones - Innovasjon i SmartPhones
 
Hvordan Lykkes Med Overvåkning
Hvordan Lykkes Med OvervåkningHvordan Lykkes Med Overvåkning
Hvordan Lykkes Med Overvåkning
 
Sharepoint til mobile enheter på en sikker måte
Sharepoint til mobile enheter på en sikker måteSharepoint til mobile enheter på en sikker måte
Sharepoint til mobile enheter på en sikker måte
 
PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]PANDA | Cloud Systems Management Presentasjon [Norsk]
PANDA | Cloud Systems Management Presentasjon [Norsk]
 
Hvor smart er en smarttelefon?
Hvor smart er en smarttelefon?Hvor smart er en smarttelefon?
Hvor smart er en smarttelefon?
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
Hvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekterHvordan lykkes med mobile prosjekter
Hvordan lykkes med mobile prosjekter
 
Tjenestenektangrep DND
Tjenestenektangrep DNDTjenestenektangrep DND
Tjenestenektangrep DND
 
The Grand Tour of Azure Networking
The Grand Tour of Azure NetworkingThe Grand Tour of Azure Networking
The Grand Tour of Azure Networking
 
Mobil: Hva er alternativene? Hva må du tenke på?
Mobil: Hva er alternativene? Hva må du tenke på?Mobil: Hva er alternativene? Hva må du tenke på?
Mobil: Hva er alternativene? Hva må du tenke på?
 

Android sikkerhet

  • 1. Android app-utvikling & dagens trusselbilde
  • 2. Bio ■ Thomas Methlie ■ Konsulent @Capgemini, Bergen ■ Medlem av VSC ■ CISSP (Associate) sertifisering
  • 6. Baksiden av medaljen Overprivileged applications Information exposure through sent data Intent spoofing % of applications Use of hardcoded chryptographic keys Unauthorized intent receipt Insufficient entropy 0 10 20 30 40 50 60 70
  • 8. 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
  • 9. Nøkkelkonsepter Activity View ■ Presenterer skjerminnhold ■ Et enkelt grensesnitt element ■ Kan vise Views, menyer, varsler og ■ Håndterer brukerhendelser og tegner notifikasjoner komponenten på skjermen ■ Må ha minst én Activity ■ Kan lage egne eller bruke eksisterende Intent Service ■ Linker to aktiviteter eller to applikasjoner ■ En applikasjon som kan kjøre i bakgrunnen ■ Muliggjør sending av meldinger og data ■ Deklareres i manifest filen mellom to entiteter ■ Gir tilgang til OS tjenester som kamera, browser mm
  • 10. Nøkkelkonsepter 2 Broadcast receivers Content Providers ■ Lytter og reagerer på broadcast meldinger ■ 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>
  • 11.
  • 12. Intent spoofing ■ Komponent med svake rettigheter ■ Ondsinnet app sender en I nt som resulterer i nte datainjeksjon eller endret tilstand <receiver android:name=”one.special.recevier”> <intent-filter> <action android:name=”one.intent.action” /> </intent-filter </receiver>
  • 13. Eksempel Evil app Cool app Handles action: displayShop noShopsList Results UI Action: displayShop
  • 14. 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>
  • 15.
  • 16. 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
  • 17. Query String Injection Bruk parameteriserte spørringer!! query = userDB.query( MY_TABLE,MY_COLUMN,“userid = ?”,{userid}, null,null,null,null)
  • 18.
  • 19. Unauthorized Intent Receipt ■ Gitt en offentlig I nt som ikke krever spesielle nte 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);
  • 20. 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”);
  • 21.
  • 22. 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
  • 23. Persistent Messages: Sticky broadcasts ■ Bruk vanlige kringkasting som er beskyttet av mottakers tillatelser ■ Undersøk data som blir sent i kringkastings meldinger
  • 24.
  • 25. 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
  • 26. Insecure Storage ■ Bruk applikasjonens SQLite database ■ Bruk enhetens interne datalager ■ Bruk Context.MODE_PRIVATE
  • 27.
  • 28. 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
  • 29. Insecure Communication ■ Google Calendar og Contacts (fikset i v2.3.4) ■ Twitter app ■ Facebook app ■ Fake GSM tower, IMSI Catcher
  • 30.
  • 31. Overprivileged Applications ■ “Minst privilegium” prinsippet ■ Sårbarheter kan gi en angriper tilgang ■ Application Collusion Attack ■ Brukere godtar unødvendige tillatelser
  • 32. Trusselbilde M bile is the ne w p la tfo rm . M bile is a ve ry intim a te o o p la tfo rm . I whe re the a tta c ke rs a re g o ing to g o . " [Sc hne ie r] t's Bilde:http://www.mobi2tab.com
  • 33. Trusselbilde ■ Q1: 3, 063 ■ Q2: 5, 033 ■ Q3: 51, 447 ■ Kun 0,5 fra Play Store. 55,2 prosent faktisk ondsinnet!
  • 34. Trusselbilde Bilde: F-Secure, Mobile Threat Report
  • 35. Trusselbilde ■ Samle personlig informasjon ■ Kontakter, SMS, e-post, bilder, filer, GPS lokasjon ■ Pakkesniffing ■ Overvåking ■ Reklame ■ Installere/kjøpe andre applikasjoner ■ Premium SMS tjenester
  • 36. 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
  • 37. SE Linux ■ Mandatory Access Control vs Discretionary Access Control ■ Ingen root bruker ■ Sikkerhets policy definert av en administrator Bilde: Centos.org
  • 38. VPN ■ Always-On VPN ■ Hindrer data fra plutselig å bli sent i klartekst Bilde: How Stuff Works
  • 39. Premium SMS ■ Premium SMS tjenester belaster brukerens mobilabonnement ■ Varsling ved bruk av premium tjenester Bilde: http://k0il-inside.blogspot.no
  • 40. Pro tips! ■ Google Play ■ Rating og tilbakemeldinger ■ Kontroller tillatelser ■ Rooting
  • 41. Takk for meg! thomas.methlie@capgemini.com / thomas.methlie@gmail.com no.linkedin.com/in/thomasmethlie tsmethlie
  • 42. 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)