SlideShare uma empresa Scribd logo
1 de 30
Tél : +33 (0)1 58 56 10 00
Fax : +33 (0)1 58 56 10 01
www.octo.com© OCTO 2012
50, avenue des Champs-Elysées
75008 Paris - FRANCE
Solution Linux
29 mai 2013
Développement sécurisé sous Android
Philippe Prados (pprados@octo.com)
Consultant
Quelques articles dans GNU Linux Mag
CV
La sécurité sous Android
Protéger contre le vol du terminal
Protéger contre l'exploitation de l'application par une
autre application malveillante
Protéger contre l'utilisateur malveillant
Protéger les différents flux de communication
Objectif du développement sécurisé
Windows Mobile Phone 7 : Pas de risque
« Pas de multi-tâches », ainsi pas de risque de key-logger
Impossibilité de faire communiquer les applications
Forte limitation des applications proposées
Windows Mobile Phone 8 :
Renforcement du boot
Applications internes entreprises
IPhone : Peu de risque
Chiffrement du disque
Très peu de communication entre les applications
Multitâches fortement limité
Limitation des applications proposées
Android : Risque important
Chiffrement en option
De nombreux mécanismes de communication entre les applications
Véritable multitâches
Pratiquement aucune limitation sur les types applications proposées.
Différents modèles de sécurités
Publication des applications sur Play Store avec signature
numérique
Algorithmes de chiffrements disponibles (flux, fichier)
Pas de conteneur sécurisé officiellement disponible de clef
avant la version 4
Isolation des applications (user Linux différent)
Privilèges pour accéder aux services sensibles.
Possibilité d'ajouter de nouveaux privilèges
Présentation des privilèges AVANT l'installation de l'application
Quelques vulnérabilités découvertes sur les applications root
(de moins en moins) ou les surcouches constructeurs
Sécurité sous Android
Basé sur des Activités
sorte de page Web identifiée par une URL/Intent
Peuvent être déclenchées par toutes les applications
Publication de services
traitements en tâche de fond
utilisables par les autres applications
Événements broadcast.
Peuvent être envoyés et capturés par toutes les applications, même
absentes de la mémoire
Content provider
Exposition des bases de données des applications
Barre de notification pour informer l'utilisateur sur des événements
asynchrones
Tous ces canaux sont sensibles.
Modèle des applications
Authentification
L'utilisateur du téléphone est considéré comme « autorisé »
Valide si mécanisme de blocage du terminal (pin)
Pour les traitements sensibles, demander confirmation d'un autre
PIN
La dernière version d’Android propose le multi-compte
Habilitation
Les applications utilisent des users linux différents
De nouveaux privilèges peuvent être déclarés par les applications
Habilitation pour tous, limitée aux mêmes auteurs des applications
ou limitée au système.
Permet de partager des secrets entre applications du même auteur
Authentification/habilitation
Répertoire de travail par application
Droit limité à l'utilisateur associé à l'application (ou aux autres applications de
même signature)
Carte SD considérée comme publique (sinon il faut chiffrer les données)
Dernièrement, ajout d’un privilège pour avoir droit de lire la carte SD
Chiffrement « gratuit » si l'application est installée sur le carte SD
Chiffrement associé au terminal
Partage de fichier/flux
Possibilité de modifier les droits pour permettre un accès aux autres utilisateurs
=>Risque d'exposer des fichiers sensibles
Passage de handle fichier d'une application à une autre (permet de ne pas exposer le
fichier aux autres applications. Juste l’accès)
Depuis v4, possibilité d'ouvrir un pipe entre les applications (évite de créer un fichier
temporaire pour partager des données)
Toutes les « ressources » (fichiers xml, images, styles, etc) sont accessibles à
toutes les applications
Accès aux fichiers
Framework centralisé et protégé compatible OAuth2
(settings/account)
A UTILISER systématiquement
Ne pas demander les user/password dans chaque application
Permet de proposer un token aux autres applications sans
exposer les ids
Plus complexe à coder, mais plus d'ouverture et de sécurité
Reset automatique de tous les passwords lors d'un changement
de carte SIM
Secrets en caches dans le frameworks
Gestion des comptes
Par défaut, les activités et les services sont accessibles par toutes les
applications
Risque d'attaque par manipulation des paramètres utilisés (SQL
injection, XSS, CSRF, etc.)
Limiter l'exposition (par défaut depuis 4.2.2)
android:exported="false"
Sinon, vérifier les privilèges des appelants et qualifier
Pour les activités, les services et les broadcasts
Vulnérabilité Samsung Galaxy 3 à cause de la sur-couche constructeur
Exposition des services
Pas de garantie que le device est chiffré
SQLite3 n'est pas chiffré (utilisé par Webkit)
Possibilité d'utiliser les algorithmes de chiffrement de l'API
Mais où placer la clef privée ou symétrique ?
Pas de solution officielle avant la version 4 (Ice cream sandwich)
Nous avons LA solution (article à paraitre)
Alternative : chiffrement avec clef mixe local+réseau.
Impossible d'accéder aux données sans réseau
Ne pas utiliser de secret applicatif car l'utilisateur peut toujours y avoir
accès
Un secret présent dans une application n’est pas un secret
Toujours chiffrer les communications réseaux et vérifier les certificats
server (Impact sur les perfs)
Très peu d’application vérifient cela.
Man in the middle facile
Chiffrement
Vérifier tous les paramètres reçus
Action, url, extra, requêtes, etc.
Interface utilisateur sécurisé
Secure activity (limite l'interface lors d'un toast)
Trace
Peuvent révéler des infos (un privilège permet d'y avoir accès)
Adb logcat (event, radio, main)
Isoler le domaine web utilisé pour les mobiles du domaine web
classique
Autres points
Comment ajouter des permissions ?
Aucun service ou devices critique n'est directement accessible
aux applications (/dev n’est pas accessible)
Les applications doivent communiquer avec le processus
system_app
Ce dernier vérifie les privilèges du processus appelant
Car le mécanisme Binder (AIDL) injecte l'UID et le PID de
l'appelant
Les permissions sont déclarées par les applications dans
AndroidManifest.xml
Comment sont vérifiées les permissions ?
Une application peut utiliser plusieurs
processus
Plusieurs applications peuvent partager un
même processus (si même signature et
même nom de process)
Simple paramétrage pour distribuer les
applications et les processus
Il existe un mode « un seul processus pour
l’OS »
Gestion des processus dans Android
Et alors ?
Conclusion :
Les permissions sont associées aux PROCESSUS et non aux
applications
Utilisation de l’UID (User id) et PID (Process ID) pour vérifier les
privilèges
Possibilité d'ajouter une permission en ajoutant une application au
processus !
L’exploitation de la conception
L'application la plus petite du Play store
Aucune ligne de code
Juste un fichier AndroidManifest.xml
(et quelques icônes. Contraintes du Market)
Comment ajouter des permissions ?
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.prados.add.permission.sms"
android:sharedUserId="fr.prados.add.permission"
android:versionCode="3"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<application
android:hasCode="false"
android:process="fr.prados.add.permission"/>
</manifest>
Deux possibilités pour ajouter la permission :
Si l'utilisateur accepte les applications hors play store :
Installation directe depuis un APK présent dans le répertoire
asset
Sinon, déclencher l'activité Play Store pour demander
l'installation
Scénarios d’ajout de privilèges
Demo
DEMO
Http://goo.gl/aysRP
Le Play Store indique les privilèges déclarées, et non
les privilèges acquis !
Problème du Play store
Installation d'une application avec privilège
Installation d'une autre application sans privilège
Pourtant...
Les permissions accordées à un processus sont l'union des
permissions de chaque application
Il existe des permissions cachées
Unions des permissions
Détection des privilèges cachés :
Privilèges disponibles mais non déclarés dans le manifest
http://goo.gl/v5GxC
Comment ajouter des permissions ?
Les sources
http://goo.gl/GFpZr
Dans HS Linux Mag ( http://goo.gl/keMmy )
Plus d'informations
pprados@octo.com
Contact

Mais conteúdo relacionado

Destaque

ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...
ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...
ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...Universidad Autónoma de Barcelona
 
07 des photos insolites7
07 des photos insolites707 des photos insolites7
07 des photos insolites7Gerard Houdinet
 
red ciudadana por el cumplimiento gubernamental de las cumbres
red ciudadana por el cumplimiento gubernamental de las cumbresred ciudadana por el cumplimiento gubernamental de las cumbres
red ciudadana por el cumplimiento gubernamental de las cumbresGobernabilidad
 
Dark Patterns : la contre-attaque du pire (ParisWeb 2014)
Dark Patterns : la contre-attaque du pire (ParisWeb 2014)Dark Patterns : la contre-attaque du pire (ParisWeb 2014)
Dark Patterns : la contre-attaque du pire (ParisWeb 2014)Clément Hardoüin
 
Présentation du marché
Présentation du marchéPrésentation du marché
Présentation du marchéClairelem
 
Gestion ambiental
Gestion ambientalGestion ambiental
Gestion ambientalcarlos1008
 
Canvis econòmics i socials en el món del treball. La reforma laboral de 2012.
Canvis econòmics i socials en el món del treball. La reforma laboral de  2012.Canvis econòmics i socials en el món del treball. La reforma laboral de  2012.
Canvis econòmics i socials en el món del treball. La reforma laboral de 2012.Universidad Autónoma de Barcelona
 
Contribuciones desde la igualdad de género a la construcción de cartas orgánicas
Contribuciones desde la igualdad de género a la construcción de cartas orgánicasContribuciones desde la igualdad de género a la construcción de cartas orgánicas
Contribuciones desde la igualdad de género a la construcción de cartas orgánicasGobernabilidad
 
Loi anti-pourriel : implanter un centre de consentements (webinaire)
Loi anti-pourriel : implanter un centre de consentements (webinaire)Loi anti-pourriel : implanter un centre de consentements (webinaire)
Loi anti-pourriel : implanter un centre de consentements (webinaire)Dialog Insight
 
Optimisez votre profil LinkedIn
Optimisez votre profil LinkedInOptimisez votre profil LinkedIn
Optimisez votre profil LinkedInKarine Valgalier
 
Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...
Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...
Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...Universidad Autónoma de Barcelona
 
Journal56-12-2013
Journal56-12-2013Journal56-12-2013
Journal56-12-2013midod
 
24092014_Présentation Soirée Agences
24092014_Présentation Soirée Agences24092014_Présentation Soirée Agences
24092014_Présentation Soirée AgencesPrestaShop
 

Destaque (20)

ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...
ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...
ERES. nuevo repaso a la doctrina de las salas de lo social de la an y de los ...
 
07 des photos insolites7
07 des photos insolites707 des photos insolites7
07 des photos insolites7
 
red ciudadana por el cumplimiento gubernamental de las cumbres
red ciudadana por el cumplimiento gubernamental de las cumbresred ciudadana por el cumplimiento gubernamental de las cumbres
red ciudadana por el cumplimiento gubernamental de las cumbres
 
Dark Patterns : la contre-attaque du pire (ParisWeb 2014)
Dark Patterns : la contre-attaque du pire (ParisWeb 2014)Dark Patterns : la contre-attaque du pire (ParisWeb 2014)
Dark Patterns : la contre-attaque du pire (ParisWeb 2014)
 
Adolfo Panfichi,Peru
Adolfo Panfichi,PeruAdolfo Panfichi,Peru
Adolfo Panfichi,Peru
 
Présentation1
Présentation1Présentation1
Présentation1
 
Présentation du marché
Présentation du marchéPrésentation du marché
Présentation du marché
 
Gestion ambiental
Gestion ambientalGestion ambiental
Gestion ambiental
 
Canvis econòmics i socials en el món del treball. La reforma laboral de 2012.
Canvis econòmics i socials en el món del treball. La reforma laboral de  2012.Canvis econòmics i socials en el món del treball. La reforma laboral de  2012.
Canvis econòmics i socials en el món del treball. La reforma laboral de 2012.
 
La regulación del salario. .
La regulación del salario. .La regulación del salario. .
La regulación del salario. .
 
Contribuciones desde la igualdad de género a la construcción de cartas orgánicas
Contribuciones desde la igualdad de género a la construcción de cartas orgánicasContribuciones desde la igualdad de género a la construcción de cartas orgánicas
Contribuciones desde la igualdad de género a la construcción de cartas orgánicas
 
Premios Fundación Esplai al Voluntariado 2012
Premios Fundación Esplai al Voluntariado 2012Premios Fundación Esplai al Voluntariado 2012
Premios Fundación Esplai al Voluntariado 2012
 
Loi anti-pourriel : implanter un centre de consentements (webinaire)
Loi anti-pourriel : implanter un centre de consentements (webinaire)Loi anti-pourriel : implanter un centre de consentements (webinaire)
Loi anti-pourriel : implanter un centre de consentements (webinaire)
 
Optimisez votre profil LinkedIn
Optimisez votre profil LinkedInOptimisez votre profil LinkedIn
Optimisez votre profil LinkedIn
 
Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...
Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...
Más sobre Expedientes de Regulación de Empleo. Comentario de cuatro nuevas se...
 
Journal56-12-2013
Journal56-12-2013Journal56-12-2013
Journal56-12-2013
 
24092014_Présentation Soirée Agences
24092014_Présentation Soirée Agences24092014_Présentation Soirée Agences
24092014_Présentation Soirée Agences
 
Neumonía
NeumoníaNeumonía
Neumonía
 
Ma france
Ma franceMa france
Ma france
 
Dix propositions du Medef pour l'entrepreneuriat
Dix propositions du Medef pour l'entrepreneuriat Dix propositions du Medef pour l'entrepreneuriat
Dix propositions du Medef pour l'entrepreneuriat
 

Semelhante a Sécurité Android, comment l'exploiter

Le modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows AppsLe modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows AppsMicrosoft
 
PKI Android : Installer, gérer, sécuriser et utiliser un secret
PKI Android : Installer, gérer, sécuriser et utiliser un secretPKI Android : Installer, gérer, sécuriser et utiliser un secret
PKI Android : Installer, gérer, sécuriser et utiliser un secretOCTO Technology
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
Le sandboxing applicatif d'Android
Le sandboxing applicatif d'AndroidLe sandboxing applicatif d'Android
Le sandboxing applicatif d'AndroidAdrien Grassein
 
Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011LINAGORA
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutantsAmira Hakim
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Paris Android User Group
 
La_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.pptLa_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.pptmowaffakfejja
 
La_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.pptLa_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.pptChloLau
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)Sanaa Guissar
 
Séminaire Sécurité Linagora mai 2009
Séminaire Sécurité Linagora mai 2009Séminaire Sécurité Linagora mai 2009
Séminaire Sécurité Linagora mai 2009LINAGORA
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfBabacarDIOP48
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI Heithem Abbes
 

Semelhante a Sécurité Android, comment l'exploiter (20)

Chapitre 4 sem
Chapitre 4 semChapitre 4 sem
Chapitre 4 sem
 
Le modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows AppsLe modèle de sécurité des Windows Apps
Le modèle de sécurité des Windows Apps
 
Windows Phone 8.1 et la sécurité
Windows Phone 8.1 et la sécuritéWindows Phone 8.1 et la sécurité
Windows Phone 8.1 et la sécurité
 
PKI Android : Installer, gérer, sécuriser et utiliser un secret
PKI Android : Installer, gérer, sécuriser et utiliser un secretPKI Android : Installer, gérer, sécuriser et utiliser un secret
PKI Android : Installer, gérer, sécuriser et utiliser un secret
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Le sandboxing applicatif d'Android
Le sandboxing applicatif d'AndroidLe sandboxing applicatif d'Android
Le sandboxing applicatif d'Android
 
Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutants
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Stratégie de sécurité Microsoft
Stratégie de sécurité MicrosoftStratégie de sécurité Microsoft
Stratégie de sécurité Microsoft
 
Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
Chapitre 1 android
Chapitre 1 androidChapitre 1 android
Chapitre 1 android
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014
 
La_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.pptLa_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.ppt
 
La_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.pptLa_sécurité_des_systèmes_d-_information.ppt
La_sécurité_des_systèmes_d-_information.ppt
 
Projet de fin d étude (1)
Projet de fin d étude (1)Projet de fin d étude (1)
Projet de fin d étude (1)
 
Séminaire Sécurité Linagora mai 2009
Séminaire Sécurité Linagora mai 2009Séminaire Sécurité Linagora mai 2009
Séminaire Sécurité Linagora mai 2009
 
Les vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdfLes vrais enjeux de l'IA.pdf
Les vrais enjeux de l'IA.pdf
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
 

Sécurité Android, comment l'exploiter

  • 1. Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com© OCTO 2012 50, avenue des Champs-Elysées 75008 Paris - FRANCE Solution Linux 29 mai 2013 Développement sécurisé sous Android
  • 4. Protéger contre le vol du terminal Protéger contre l'exploitation de l'application par une autre application malveillante Protéger contre l'utilisateur malveillant Protéger les différents flux de communication Objectif du développement sécurisé
  • 5. Windows Mobile Phone 7 : Pas de risque « Pas de multi-tâches », ainsi pas de risque de key-logger Impossibilité de faire communiquer les applications Forte limitation des applications proposées Windows Mobile Phone 8 : Renforcement du boot Applications internes entreprises IPhone : Peu de risque Chiffrement du disque Très peu de communication entre les applications Multitâches fortement limité Limitation des applications proposées Android : Risque important Chiffrement en option De nombreux mécanismes de communication entre les applications Véritable multitâches Pratiquement aucune limitation sur les types applications proposées. Différents modèles de sécurités
  • 6. Publication des applications sur Play Store avec signature numérique Algorithmes de chiffrements disponibles (flux, fichier) Pas de conteneur sécurisé officiellement disponible de clef avant la version 4 Isolation des applications (user Linux différent) Privilèges pour accéder aux services sensibles. Possibilité d'ajouter de nouveaux privilèges Présentation des privilèges AVANT l'installation de l'application Quelques vulnérabilités découvertes sur les applications root (de moins en moins) ou les surcouches constructeurs Sécurité sous Android
  • 7. Basé sur des Activités sorte de page Web identifiée par une URL/Intent Peuvent être déclenchées par toutes les applications Publication de services traitements en tâche de fond utilisables par les autres applications Événements broadcast. Peuvent être envoyés et capturés par toutes les applications, même absentes de la mémoire Content provider Exposition des bases de données des applications Barre de notification pour informer l'utilisateur sur des événements asynchrones Tous ces canaux sont sensibles. Modèle des applications
  • 8. Authentification L'utilisateur du téléphone est considéré comme « autorisé » Valide si mécanisme de blocage du terminal (pin) Pour les traitements sensibles, demander confirmation d'un autre PIN La dernière version d’Android propose le multi-compte Habilitation Les applications utilisent des users linux différents De nouveaux privilèges peuvent être déclarés par les applications Habilitation pour tous, limitée aux mêmes auteurs des applications ou limitée au système. Permet de partager des secrets entre applications du même auteur Authentification/habilitation
  • 9. Répertoire de travail par application Droit limité à l'utilisateur associé à l'application (ou aux autres applications de même signature) Carte SD considérée comme publique (sinon il faut chiffrer les données) Dernièrement, ajout d’un privilège pour avoir droit de lire la carte SD Chiffrement « gratuit » si l'application est installée sur le carte SD Chiffrement associé au terminal Partage de fichier/flux Possibilité de modifier les droits pour permettre un accès aux autres utilisateurs =>Risque d'exposer des fichiers sensibles Passage de handle fichier d'une application à une autre (permet de ne pas exposer le fichier aux autres applications. Juste l’accès) Depuis v4, possibilité d'ouvrir un pipe entre les applications (évite de créer un fichier temporaire pour partager des données) Toutes les « ressources » (fichiers xml, images, styles, etc) sont accessibles à toutes les applications Accès aux fichiers
  • 10. Framework centralisé et protégé compatible OAuth2 (settings/account) A UTILISER systématiquement Ne pas demander les user/password dans chaque application Permet de proposer un token aux autres applications sans exposer les ids Plus complexe à coder, mais plus d'ouverture et de sécurité Reset automatique de tous les passwords lors d'un changement de carte SIM Secrets en caches dans le frameworks Gestion des comptes
  • 11. Par défaut, les activités et les services sont accessibles par toutes les applications Risque d'attaque par manipulation des paramètres utilisés (SQL injection, XSS, CSRF, etc.) Limiter l'exposition (par défaut depuis 4.2.2) android:exported="false" Sinon, vérifier les privilèges des appelants et qualifier Pour les activités, les services et les broadcasts Vulnérabilité Samsung Galaxy 3 à cause de la sur-couche constructeur Exposition des services
  • 12. Pas de garantie que le device est chiffré SQLite3 n'est pas chiffré (utilisé par Webkit) Possibilité d'utiliser les algorithmes de chiffrement de l'API Mais où placer la clef privée ou symétrique ? Pas de solution officielle avant la version 4 (Ice cream sandwich) Nous avons LA solution (article à paraitre) Alternative : chiffrement avec clef mixe local+réseau. Impossible d'accéder aux données sans réseau Ne pas utiliser de secret applicatif car l'utilisateur peut toujours y avoir accès Un secret présent dans une application n’est pas un secret Toujours chiffrer les communications réseaux et vérifier les certificats server (Impact sur les perfs) Très peu d’application vérifient cela. Man in the middle facile Chiffrement
  • 13. Vérifier tous les paramètres reçus Action, url, extra, requêtes, etc. Interface utilisateur sécurisé Secure activity (limite l'interface lors d'un toast) Trace Peuvent révéler des infos (un privilège permet d'y avoir accès) Adb logcat (event, radio, main) Isoler le domaine web utilisé pour les mobiles du domaine web classique Autres points
  • 14. Comment ajouter des permissions ?
  • 15. Aucun service ou devices critique n'est directement accessible aux applications (/dev n’est pas accessible) Les applications doivent communiquer avec le processus system_app Ce dernier vérifie les privilèges du processus appelant Car le mécanisme Binder (AIDL) injecte l'UID et le PID de l'appelant Les permissions sont déclarées par les applications dans AndroidManifest.xml Comment sont vérifiées les permissions ?
  • 16. Une application peut utiliser plusieurs processus Plusieurs applications peuvent partager un même processus (si même signature et même nom de process) Simple paramétrage pour distribuer les applications et les processus Il existe un mode « un seul processus pour l’OS » Gestion des processus dans Android
  • 18. Conclusion : Les permissions sont associées aux PROCESSUS et non aux applications Utilisation de l’UID (User id) et PID (Process ID) pour vérifier les privilèges Possibilité d'ajouter une permission en ajoutant une application au processus ! L’exploitation de la conception
  • 19. L'application la plus petite du Play store Aucune ligne de code Juste un fichier AndroidManifest.xml (et quelques icônes. Contraintes du Market) Comment ajouter des permissions ? <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="fr.prados.add.permission.sms" android:sharedUserId="fr.prados.add.permission" android:versionCode="3" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" /> <uses-permission android:name="android.permission.SEND_SMS"/> <application android:hasCode="false" android:process="fr.prados.add.permission"/> </manifest>
  • 20. Deux possibilités pour ajouter la permission : Si l'utilisateur accepte les applications hors play store : Installation directe depuis un APK présent dans le répertoire asset Sinon, déclencher l'activité Play Store pour demander l'installation Scénarios d’ajout de privilèges
  • 22. Le Play Store indique les privilèges déclarées, et non les privilèges acquis ! Problème du Play store
  • 24. Installation d'une autre application sans privilège
  • 26. Les permissions accordées à un processus sont l'union des permissions de chaque application Il existe des permissions cachées Unions des permissions
  • 27. Détection des privilèges cachés : Privilèges disponibles mais non déclarés dans le manifest http://goo.gl/v5GxC Comment ajouter des permissions ?
  • 29. Dans HS Linux Mag ( http://goo.gl/keMmy ) Plus d'informations