i Android och MeeGo? Översikt Ben Smeets Android och MeeGo: vad är r det?



Relevanta dokument
Android - En översikt samt titt på utvecklingsmiljö. Kalle Prorok 12 nov 2013

SÄKRA DIN VERKSAMHET OAVSETT VAR DEN TAR DIG. Protection Service for Business

Android och iphone. Kalle Prorok April 2011

Krypteringteknologier. Sidorna ( ) i boken

Din manual NOKIA C111

Tillgång till alla globala delar i systemet styrs av denna profil, som i sin tur kopplas till respektive användare.

Mobila enheter. Regler och rekommendationer. Mobiltelefoner Smarta mobiltelefoner Surfplattor. Fastställd av IT-chefen Version 1.

Androids säkerhetsmodell

Installationsanvisning för kursens programvara på egen dator

Användar Guide. är ett varumärke av Google Inc.

Teknikprogrammet, inriktning informations- och medieteknik

Avancerad SSL-programmering III

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Android översikt. TDDD80 Mobila och sociala applikationer

Testning av Sambi. Testplan. Version PA5. Fil namn: SAMBI_TP.docx Senast sparad: Copyright (c) 2014 IIS

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Instruktioner för användning av Accessapplikationen till uppföljning av skyddsvärda arter kärlväxter samt AnnexIIkärlväxter

TDDD80 Mobila och sociala applika1oner. Kursintroduk1on

Installations- och bruksanvisning för Gree Smart app: Hansol -seriens luftvärmepump med WiFi

MobileIron. installationsguide för ios-enhet

Säkerhet. Vad är det vi pratar om??

Användarguide för anslutning till Treserva och TES Användarguide för anslutning till Treserva och TES

Android (BYOD) -Installera mstart -Kom igång manual

Innehåll. 1 Dokumentbeskrivning 3. 2 Användarinformation 3. 3 Installations anvisning Starta upp enheten 5

Bluebiit Rocker 4G MANUAL

Projektet Windows 10 och molnet. Leif Lagebrand

Hämta appar. Hämta appar innehåller information om vilka P&G-appar du behöver och hur du ställer in dem rätt.

Datorlaboration 0, Programmering i C++ (EDAF30)

Tekniskt system för Lean Startup

Objektorienterad programmering

Att bygga VPN. Agenda. Kenneth Löfstrand, IP-Solutions AB. Olika VPN scenarios. IPsec LAN - LAN. IPsec host - host SSH

E-post på ett säkrare sätt

Introduktion till protokoll för nätverkssäkerhet

Nätverksoperativsystem i Datornätverk (Windows Server) DVA202, VT Tentamen

Läs igenom & Spara denna Guide för framtida användning.

Roth Touchline + app till Android och ios

IdrottOnline-appen Du kan installera appen från Google Play store för Android och Appstore för iphone. Sök på IdrottOnline så bör den komma fram.

Lantmäteriverket 2013

F R Å G O R & S VA R. Open eplatform v SKAPAD AV: Hillar Loor, Senior Partner

Jakob Schlyter

Home Storage Manager

F2 Exchange EC Utbildning AB

Inledning. Viktiga säkerhetsinstruktioner. Svensk version. LD Sweex Powerline USB-adapter

Elektroniskt informationsutbyte mellan arbetsgivare och Försäkringskassan. Information om filöverföring

ALLMÄNNA VILLKOR APPMANAGER CMS 1.0. MOBILAPPEN ORANGE. APPSALES SWEDEN AB

ANVÄNDARMANUAL ANSLUTA TILL REGION HALLAND VIA CITRIX

Android-app Användarmanual 1.0

Java och Javascript. Krishna Tateneni Översättare: Stefan Asserhäll

LW053 Sweex Wireless LAN USB 2.0 Adapter 54 Mbps

Metoder för datasäkerhet. Vad handlar en sådan kurs om???

- Trådlöst NVR kitt - Snabb installations guide -

Beställning av Förlitandepart-certifikat Version

SIS Capture Station. IIIIII Användarhandbok

Manual C3 BMS för Android-telefoner

Enkel Säkerhetspolicy för Mobila enheter

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 18

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server?

SEAPILOT s nya PREMIUM tjänst

Föreläsning 3. Datorkunskap 50p Marcus Weiderstål Bromma Gymnasium

Med NetAlert är du aldrig ensam.

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

Introduktion till migrering till molnet. PART 4: Plattformar för molntjänster

Alla rättigheter till materialet reserverade Easec

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Säkerhet genom simpel nätverksutrustning. Högskoleingenjörsexamensarbete Fredrik Folke

KRYPTERING - MÖJLIGHET ELLER OMÖJLIGHET. Carl Önne carl.onne@certezza.net

ÅGIT PRESENTERAR FILR SMIDIG OCH SÄKER FILÅTKOMST OCH DELNING

Innehåll 1. Om ScandLarm Air Ladda ner App Starta kontrollpanel Konfigurera App till kontrollpanelen

Tunstalls erbjudande. Vi ger dig plattformen för den moderna vården och. omsorgen.

Objektsamlingar i Java

PP - kampanj För Sverige i framtiden NU SKA PIRATPARTIET TA PLATS!

Då Eduroam använder sig av WPA2 (kryptering) krävs att din dator har stöd för detta.

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Fortnox. För att aktivera bokföring genom Fortnox för er förening finns dessa krav:

Laboration 10 - NetBeans

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

Storage. Effektivare datalagring med det intelligenta informationsnätet.

Snabbstartsguide. PC, Mac, Android & ios

HOGIA skatteanalys. Installationsguiden startar med en välkomstdialog för produkten. Klicka på Nästa.

SUNET:s Box-tjänst. SUNET-veckan Malmö

HP ProtectTools. Komma igång

1 Introduktion Funktioner 3. 2 Kom igång Paketets innehåll Översikt över kameran 5. 3 Installation 6

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Din guide till IP RFID. Intertex Nu ännu starkare säkerhet för SIP. Snom - marknadens säkraste IP-telefon. Ur innehållet TALK TELECOM

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

GYMKEEPER ANDREAS SÖDERSTRÖM

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Nulägesanalys & Kravspecifikation

Services + REST och OAuth

Agil användbarhetsutveckling för handhållna enheter. Per Lind

Installationsanvisning av proximityläsare 1103/2. Mod. 1103/2

Avtalsform Ramavtal & enstaka köp Namn Nyckelfri låslösning för hemtjänsten

Kom igång med LUPP 6.1

Innehåll. Förändringar i v5.2

God nätverksdesign och distribuerade brandväggar. Patrik Fältström

För en helt ny användare går det snabbare än tidigare att lära sig de funktioner som finns.

Transkript:

Översikt Kan vi lita på säkerheten i Android och MeeGo? Ben Smeets Lunds Universitet SUSEC Årsmöte 13 Oktober 2010 Android och MeeGo: vad är det? Säkerheten i Android Grundidéen för säkerheten Interaktion och access-kontrol i Android Permissions MeeGo: skillnaden mot Android (säkerhetsmässigt) Androids platformssäkerhet Något om attacker på telefoner Några slutsatser - Kan vi lita på säkerheten? 2010-11-21 1 2010-11-21 2 Android och MeeGo: : vad är r det? En platform för mobiler med öppen källkod o Källkod: http://source.android.com Utvecklingen under kontroll av Open Handset Alliance Vem som helst kan installera appar Utvecklare kan använda sig av ett öppet SDK o SDK : http://developer.android.com Android och MeeGo: vad är r det? En platform för mobiler med öppen källkod o Källkod: http://meego.gitorious.org Utvecklingen under kontroll av MeeGo Technical Steering Group (TSG). Kommer från Intels Moblin och Nokias Maemo Vem som helst kan installera (öppen/stängd) Utvecklare kan använda sig av ett öppet SDK o SDK:http://wiki.meego.com/Getting_started_with_ the_meego_sdk_for_linux 2010-11-21 3 2010-11-21 4

Android: vad är r det? Modifierad Linux kärna (baserad på 2.6.32, för Android 2.2) Använder mer än 90st öppna källkodsbibliotek Integrerat WebKit baserad browser SQLite för strukturerad datalagring OpenSSL BouncyCastle libc baserad på OpenBSD Apache Harmony och Apache HttpClient Stöd för många vanliga ljud-, video- och bildcodecs APIstöd för kunna implementera I/O till en mobilenhet Datakommunikation: Bluetooth, EDGE, 3G, WIFI Periferistöd: kamera, video, GPS, kompass, accelerometer, ljud, vibrator The basics i Android 2010-11-21 5 Android säkerhet s grundidéen Applikationer utvecklade på andra platformer kan ej köras. Applikationer skrivs i ett Javaliknande språk och körs i en egen Dalvik VM- instans. Interaktion mellan applikationer begränsas genom en speciell API och genom att applikationer har sin egen (Linux) identitet. Genom permissionlabel-tilldelning styr man access till resurser och andra applikationer. Fundament: Android Package (APK) fil struktur /META-INF MANIFEST.mf -sha-1 digest av varje fil av applikationen HelloWorld.sf -sha-1 digest of each file (baserad på info från Manifest.mf) HelloWorld.rsa - PKCS#7 RSA signatur av HelloWorld.sf /res Applikationens resursfiler / AndroidManifest.xml app information till Android systemet classes.dex - kompilerad Android Dalvik app:en resources.arsc tabel om alla resurser in applikation HelloWorld.apk 2010-11-21 7

Fundament: Processer och Trådar Varje applikation får sin egen Linux process Per default körs varje komponent i processens huvudtråd Man kan skapa trådar för längre processer Trådar kan skapas i appens kod med standard Java Thread objects Fundament: Android applikationer byggs enligt en gemensam struktur Activities står för presentationslagret; en för varje skärm och Views ger UI för en aktivitet. Intents specifierar vad som ska utföras Services är bakgrundprocesser utan UI: updaterar data och utlöser händelser Broadcast receivers tillhandahåller brevlådor för meddelanden från andra applikationer och kan utlösa intents som startar en applikation Content providers tillhandahåller data/resurser 2010-11-21 9 2010-11-21 10 Android Applikationer - Exempel Programinteraktion i Android RävSöker-app StartRävPosition Broadcast receiver RävSökKontroll Activity RävPosition Service RävPositioner ContentProvider RävKarta-app StartRävSök Broadcast receiver RävSökKontroll : UI för starta/stoppa sökfunktion RävPosition: Kontaktar extern lokaliserings server RävPositioner: Spara senasta positioner RävKarta Activity VisaRävKontroll Activity De flesta interaktioner i Android är inter-komponent interaktioner (ICC): Intents: meddelande object med måladress och data Actions: själva processen för inter-komponent interaktion Androids filosofi är att applikationer kan göra (del av) sina APIer tillgängliga för andra applikationer 2010-11-21 11 2010-11-21 12

Exempel - Interaktion Broadcast intent RävSöker-app RävKarta-app StartRävPosition RävPosition Broadcast intent StartRävSök RävKarta Applikationssäkerhet kerhet - accesskontroll Start/stopp läs/skriv läs Start/stopp RävSökKontroll RävPositioner VisaRävKontroll De flesta interaktioner i Android är inter-komponent interaktioner 2010-11-21 13 Accesskontroll i Android User ID Tabell Android skyddar applikationer på (Linux) system nivå och inter-komponent kommunikations nivå: Rätigheter (Permissions) Varje applikation kör som en unik Linux användare under en egen identitet (user ID) vilket begränsar skadeverkan av ett programmerings fel i en applikation: Linux access kontroll (som vanligt) User ID tilldelas (lokalt) vid installation av applikationen system 0 1000-1999 2000-2999 3000-3999...... 9999 9999 10000 10000 Root: Ett fåtal root processer, t ex init, runtime, Zygote, Systemprocesser ADB och andra debug processer Android processer med kopplingar till kärnan Appar får en user ID 10000 2010-11-21 15 2010-11-21 16

Accesskontroll Signerade Applikationer SysResource Middleware Linux Inter-komponent access(icc) kontroll User: app_100 User: app_105 Usr/home/RävPositioner Usr/home/RävKarta För att kunna bestämma applikationens ursprung måste den signeras mot ett själv-signerad certifikat. Androids Appstore tar inte emot appar signerad med defaultnyckeln från SDK Dvs det är en policyfråga om SDKs kända nyckel accepteras för en app. Två appar kan få samma user ID om de är signerade med samma nyckel/certificat (bör undvikas!) 2010-11-21 17 2010-11-21 18 PKI strukturen och accesskontroll utan signaturrättigheter PKI strukturen och accesskontroll med signaturrättigheter Spotify SpotifySignatur RävKarta MinSignatur Android skiljer på fyra kärn platformskomponent typer som har sin egen nyckel Platform: en nyckel för packet som tillhör core platformen I standard Android där signaturerrättigheter inte används har signaturer inga (inte mycket i alla fall) säkerhetsbetydelse. Signaturen används för att urskillja (identifiera?) applikations ursprung. Shared: a nyckel for komponenter vilka är delade i home /contact processen. Media: a nyckel för packaget som tillhör media/download systemet. Testkey/releasekey (Application) : default signeringsnyckel

Permissions (1/2) Permissions (2/2) <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" > <uses-permission android:name="android.permission.receive_sms" android:permissiongroup="android.permission-group.cost_money" android:protectionlevel="dangerous" /> </manifest> ICC Accesskontroll sätts vid installation och kan sedan inte ändras: jmfr. regelstyrd accesskontroll (MAC). Rättigheter definieras av en textsträng i en manifestfil. flexibelt men kommer användaren alltid begrippa denna sträng; språk, semantiken, etc. Finns fördefinierade tex Manifest.permission_group En applikation som vill använda en API måste få tillständ att använda denna. Detta sker vid installation av applikationen. Beroende på API, dess rättigheter och vem som har signerad måste användaren godkänna access till APIn. Vid uppdatering av en applikation ska samma nyckel och certifikat användas. Rättigheter ändras inte vid en uppdatering. Accessfel kan ge ett felmeddelande till applikationen (men inte alltid). Accessfel registreras felen normalt i systemloggen. 2010-11-21 21 2010-11-21 22 Rättighetsmodell: skydssnivåer normal: ger applikationer automatisk access dangerous: användning av APIn innebär risk och kräver användarens godkännande signature: access enbart om applikationen är signerad mot samma certifikat som applikationen som deklarerad rättigheten signatureorsystem: som ovan men kan användas fritt av packet i system image (ska användas med försiktighet) User ID och Fil access Filer tillhör normalt en user ID. Max två olika Android packet kan har samma user ID om de är signerad mot samma certificat och i manifestet finns shareduserid attributet. Man kan sätta MODE_WORLD_READABLE och/eller MODE_WORLD_WRITEABLE flagor så att alla packet får läsa/skriva från/till filen 2010-11-21 23 2010-11-21 24

MeeGo: skillnaden med Android (säkerhetsm kerhetsmässigt) ssigt) MeeGo: Aegis (1/2) MeeGo finns i öppen och stängd (closed) mode, i öppen mode kan utvecklare påverkar säkerhets policyn. MeeGo konceptet täcker flera typer av devices. MeeGo s säkerhet bygger mer på grupp accesskontroll i Linux, jmfr med rollbaserad accesskontroll. Mer säkerhetsstöd än Android i HW och skydd för nycklar samt användardata ARM TrustZone, Intel Trusted Execution Technology Intel/Nokia bestämmer säkerhetspolicyn Integritetsskydd av exefiler (binärer, bibliotek, scripts) Säker IPC (integritet + kryptering på D-bus) Säkerhetspolicyn kan uppdateras genom speciella uppdateringar 2010-11-21 25 2010-11-21 26 MeeGo: Aegis (2/2) Skyddade resurser är identifierade genom resurstokens som är kopplade till extra (eng: supplementary) grupper. Om en applikation (process) har rättigheten att göra access till en skyddad resurs så läggs tillhörande grupp id till de extra grupper för applikations process. jmfr. rollbaserad accesskontroll IMPLEMENTATION Process credentials assigner (MeeGo extension i kärnan) ger applikation rättigheter baserad på en credential lista. Som uppdateras vid installation av applikationer 2010-11-21 27

Androids platformssäkerhet De flesta tillverkare gör viss anpassning vid integrationen av Android på hårdvaran Säkert bootprocess: vilka komponenter som verifieras är olika för olika tillverkare Tillverkare försöker begränsa access till root. Dock har en del tillverkare mycket att lära sig på den punkten Om modemet är ett eget hw subsystem så förblir modemet ganska isolerad från applikations systemet där Android kör imed att RIL gränssnittet begränsar möjligheter till attack och resultatet blir. 2010-11-21 29 Något om Attacker påp telefoner (1/2) Något om Attacker påp telefoner (2/2) Varför hackar man en telefon? Ta bort märkesbegränsningar Avlägsna SIM-lås Ändra IMEI Det är kul (att vara root) Inkörsportar för attacker Kvalitetsbrister i mjukvara Ej komplett trustkjedja vid boot Systemdebug-möjligheter kvar Produktions/Service programvara Via periferigränssnitt (inkl GSM som är öppen för falsk basstationsattack) 2010-11-21 31 2010-11-21 32

Kan vi lita påp en Androidtelefon? Om frågan gäller en produkt så beror svaret på många faktorer (se nästa bild) Om frågan gäller om det är möjligt så finns det förutsättningar att besvara frågan positivt. Men det krävs Produktgranskning (vad och hur är det implementerad?) Försiktighet vid användning (val av appar såklart) Kan vi lita påp en Androidtelefon? Inga fel i Androids säkerhetsdesign har hittats. Systempåverkan av fel i en app eller virus är oftast begrånsad genom separationen i Android. Vilka appar är installerade? Begriper användaren vad han godkänner vid installation av en app? En rootad Android är i corporate-sammanhang en riskfaktor. Oerfarna tillverkare har mer problem med att lyckas med en säker systemimplementering som motstår rootning (men även de stora mislyckas då och då). Implementationsfel i Android kan i nödfall rättas av tillverkare i fall Google reagerar långsamt (öppen källkod). Telefonens appmiljö byggs på känd grundmjukvara 2010-11-21 33 2010-11-21 34 och MeeGo då? d Frågor Förtidigt att säga hur det blir i praktik. Slutna MeeGo produkter har bättre säkerhets förutsättningar än Android produkter Ben.Smeets@eit.lth.se Men också här krävs Produktgranskning (vad och hur är det implementerad?) Försiktighet vid användning (val av appar såklart)

Referenser Android developer site pages: (too many to list here) Understanding Android Security, William Enck, et. al, Security & Privacy January/February 2009 Developing Secure Mobile Applications For Android, isec Partners 2008 Maemo 6 Platform Security, Elena Reshetova, Nokia, maemo.org git://gitorious.org/meego-platform-security/aegis-examples.git git://gitorious.org/meego-platform-security/librestok.git http://meego.gitorious.org/meego-platform-security/pages/functionality