SlideShare a Scribd company logo
1 of 30
Développement sécurisé sous Android




          DevFest - GDG Nantes
          9 novembre 2012



                       50, avenue des Champs-Elysées   Tél : +33 (0)1 58 56 10 00
                                75008 Paris - FRANCE   Fax : +33 (0)1 58 56 10 01   1
© OCTO 2012                                            www.octo.com
CV



Philippe Prados (pprados@octo.com)
Consultant
Quelques articles dans GNU Linux Mag




                                            2
La sécurité sous Android




                           3
Objectif du développement sécurisé



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




                                                                 4
Différents modèles de sécurités



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 : A étudier
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.


                                                                              5
Sécurité sous Android



Publication des applications sur Play Store avec signature
numérique
Algorithmes de chiffrements disponibles (flux, fichier)
Pas de conteneur sécurisé 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




                                                                       6
Modèle des applications



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.



                                                                                 7
Authentification/habilitation



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




                                                                            8
Accès aux fichiers



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




                                                                                                9
Gestion des comptes



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




                                                                  10
Exposition des services



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
    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




                                                                                   11
Chiffrement



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 fiable avant la version 4 (Ice cream sandwich)
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




                                                                                   12
Autres points



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




                                                                            13
Comment ajouter des permissions ?




                                    14
Comment sont vérifiées les 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




                                                                     15
Gestion des processus dans Android



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 »


                                                          16
Et alors ?




             17
L’exploitation de la conception



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 !




                                                                                  18
Comment ajouter des permissions ?



L'application la plus petite du Play store
Aucune ligne de code
Juste un fichier AndroidManifest.xml
(et quelques icônes. Contraintes du Market)



  <?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>



                                                                            19
Scénarios d’ajout de privilèges



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




                                                                       20
Demo




       DEMO
Http://goo.gl/aysRP




                             21
Problème du Play store




Le Play Store indique les privilèges déclarées, et non
                les privilèges acquis !




                                                               22
Installation d'une application avec privilège




                                                23
Installation d'une autre application sans privilège




                                                      24
Pourtant...




              25
Unions des permissions



Les permissions accordées à un processus sont l'union des
permissions de chaque application
Il existe des permissions cachées




                                                                   26
Comment ajouter des permissions ?



Détection des privilèges cachés :
Privilèges disponibles mais non déclarés dans le manifest
                             http://goo.gl/v5GxC




                                                                           27
Les sources




http://goo.gl/GFpZr




                                    28
Plus d'informations



Dans HS Linux Mag ( http://goo.gl/keMmy )




                                                                  29
Contact



pprados@octo.com




                             30

More Related Content

What's hot

OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...
OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...
OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...OCTO Technology
 
Sécurité Android, comment l'exploiter
Sécurité Android, comment l'exploiterSécurité Android, comment l'exploiter
Sécurité Android, comment l'exploiterOCTO Technology
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications WebKlee Group
 
Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...
Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...
Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...Rational_France
 
BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...
BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...
BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...Microsoft
 
Rapport Threat Intelligence Check Point du 8 août 2016
Rapport Threat Intelligence Check Point du 8 août 2016Rapport Threat Intelligence Check Point du 8 août 2016
Rapport Threat Intelligence Check Point du 8 août 2016Blandine Delaporte
 
Windows Phone 8 et la sécurité
Windows Phone 8 et la sécuritéWindows Phone 8 et la sécurité
Windows Phone 8 et la sécuritéMicrosoft
 
« Protégez votre entreprise avec une approche multiniveau de l'anti-phishing »
« Protégez votre entreprise avec  une approche multiniveau de l'anti-phishing »« Protégez votre entreprise avec  une approche multiniveau de l'anti-phishing »
« Protégez votre entreprise avec une approche multiniveau de l'anti-phishing »Ivanti
 
Petit déjeuner du 20/11 MDM en mode Cloud Saphelec & Monaco Telecom
Petit déjeuner du 20/11 MDM en mode Cloud   Saphelec & Monaco TelecomPetit déjeuner du 20/11 MDM en mode Cloud   Saphelec & Monaco Telecom
Petit déjeuner du 20/11 MDM en mode Cloud Saphelec & Monaco TelecomYannick Quentel
 
White paper - La sécurisation des web services
White paper - La sécurisation des web servicesWhite paper - La sécurisation des web services
White paper - La sécurisation des web servicesBee_Ware
 
Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Paris Android User Group
 
Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002Sylvain Maret
 
Guide de mise en oeuvre de l'authentification forte
Guide de mise en oeuvre de l'authentification forteGuide de mise en oeuvre de l'authentification forte
Guide de mise en oeuvre de l'authentification forteNis
 
Les principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesLes principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesBee_Ware
 

What's hot (19)

Architecture android
Architecture androidArchitecture android
Architecture android
 
OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...
OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...
OCTO - DroidCon - PKI Android : Installer, gérer, sécuriser et utiliser un se...
 
Sécurité Android, comment l'exploiter
Sécurité Android, comment l'exploiterSécurité Android, comment l'exploiter
Sécurité Android, comment l'exploiter
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
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é
 
Symantec Code Signing (FR)
Symantec Code Signing (FR)Symantec Code Signing (FR)
Symantec Code Signing (FR)
 
Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...
Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...
Rational France - Livre blanc - Choisir le bon outil pour outils pour faire d...
 
Owasp
OwaspOwasp
Owasp
 
BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...
BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...
BYOD : les nouveaux scénarios d’authentification adaptés au monde de l’entrep...
 
Rapport Threat Intelligence Check Point du 8 août 2016
Rapport Threat Intelligence Check Point du 8 août 2016Rapport Threat Intelligence Check Point du 8 août 2016
Rapport Threat Intelligence Check Point du 8 août 2016
 
Windows Phone 8 et la sécurité
Windows Phone 8 et la sécuritéWindows Phone 8 et la sécurité
Windows Phone 8 et la sécurité
 
« Protégez votre entreprise avec une approche multiniveau de l'anti-phishing »
« Protégez votre entreprise avec  une approche multiniveau de l'anti-phishing »« Protégez votre entreprise avec  une approche multiniveau de l'anti-phishing »
« Protégez votre entreprise avec une approche multiniveau de l'anti-phishing »
 
Petit déjeuner du 20/11 MDM en mode Cloud Saphelec & Monaco Telecom
Petit déjeuner du 20/11 MDM en mode Cloud   Saphelec & Monaco TelecomPetit déjeuner du 20/11 MDM en mode Cloud   Saphelec & Monaco Telecom
Petit déjeuner du 20/11 MDM en mode Cloud Saphelec & Monaco Telecom
 
White paper - La sécurisation des web services
White paper - La sécurisation des web servicesWhite paper - La sécurisation des web services
White paper - La sécurisation des web services
 
Sécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francaisSécurité informatique mobile cloud astoine maroc francais
Sécurité informatique mobile cloud astoine maroc francais
 
Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012Sécurité android par Philippe Prados 25/07/2012
Sécurité android par Philippe Prados 25/07/2012
 
Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002Authentification Forte Cours UNI 2002
Authentification Forte Cours UNI 2002
 
Guide de mise en oeuvre de l'authentification forte
Guide de mise en oeuvre de l'authentification forteGuide de mise en oeuvre de l'authentification forte
Guide de mise en oeuvre de l'authentification forte
 
Les principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuellesLes principales failles de sécurité des applications web actuelles
Les principales failles de sécurité des applications web actuelles
 

Viewers also liked

Les 10 risques liés aux applications mobiles
Les 10 risques liés aux applications mobilesLes 10 risques liés aux applications mobiles
Les 10 risques liés aux applications mobilesBee_Ware
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPyaboukir
 
Formation au Mobile Commerce (m-commerce)
Formation au Mobile Commerce (m-commerce)Formation au Mobile Commerce (m-commerce)
Formation au Mobile Commerce (m-commerce)SimaWay Simaway
 
سيرتي الذاتية بالغة العربية
سيرتي الذاتية بالغة العربيةسيرتي الذاتية بالغة العربية
سيرتي الذاتية بالغة العربيةTaoufik Chaieb
 
Le Marketing Mobile face aux idées reçues
Le Marketing Mobile face aux idées reçuesLe Marketing Mobile face aux idées reçues
Le Marketing Mobile face aux idées reçuesLaFrenchMobile
 
1er Baromètre du Marketing Mobile en France
1er Baromètre du Marketing Mobile en France1er Baromètre du Marketing Mobile en France
1er Baromètre du Marketing Mobile en Franceservicesmobiles.fr
 
In01 - Programmation Android - 06 - publication
In01 - Programmation Android - 06 - publicationIn01 - Programmation Android - 06 - publication
In01 - Programmation Android - 06 - publicationYann Caron
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)TECOS
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
In01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesIn01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesYann Caron
 
Les applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web appsLes applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web appsNeedeo
 
Alphorm.com Formation Android 5
Alphorm.com Formation Android 5Alphorm.com Formation Android 5
Alphorm.com Formation Android 5Alphorm
 
Observatorio de análisis de políticas públicas
Observatorio de análisis de políticas públicasObservatorio de análisis de políticas públicas
Observatorio de análisis de políticas públicasGobernabilidad
 
Projet associatif-janvier-2013
Projet associatif-janvier-2013Projet associatif-janvier-2013
Projet associatif-janvier-2013midod
 
La saeta
La saetaLa saeta
La saetaablimon
 

Viewers also liked (20)

Les 10 risques liés aux applications mobiles
Les 10 risques liés aux applications mobilesLes 10 risques liés aux applications mobiles
Les 10 risques liés aux applications mobiles
 
Les 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASPLes 5 risques les plus critiques des applications Web selon l'OWASP
Les 5 risques les plus critiques des applications Web selon l'OWASP
 
Formation au Mobile Commerce (m-commerce)
Formation au Mobile Commerce (m-commerce)Formation au Mobile Commerce (m-commerce)
Formation au Mobile Commerce (m-commerce)
 
سيرتي الذاتية بالغة العربية
سيرتي الذاتية بالغة العربيةسيرتي الذاتية بالغة العربية
سيرتي الذاتية بالغة العربية
 
Le Marketing Mobile face aux idées reçues
Le Marketing Mobile face aux idées reçuesLe Marketing Mobile face aux idées reçues
Le Marketing Mobile face aux idées reçues
 
1er Baromètre du Marketing Mobile en France
1er Baromètre du Marketing Mobile en France1er Baromètre du Marketing Mobile en France
1er Baromètre du Marketing Mobile en France
 
In01 - Programmation Android - 06 - publication
In01 - Programmation Android - 06 - publicationIn01 - Programmation Android - 06 - publication
In01 - Programmation Android - 06 - publication
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
In01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancéesIn01 - Programmation Android - 07 - techniques avancées
In01 - Programmation Android - 07 - techniques avancées
 
Les applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web appsLes applications mobiles, sites mobiles et web apps
Les applications mobiles, sites mobiles et web apps
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Business Plan d’une application mobile
Business Plan d’une application mobileBusiness Plan d’une application mobile
Business Plan d’une application mobile
 
Marketing Mobile
Marketing MobileMarketing Mobile
Marketing Mobile
 
Alphorm.com Formation Android 5
Alphorm.com Formation Android 5Alphorm.com Formation Android 5
Alphorm.com Formation Android 5
 
Copa de las almenas 2010
Copa de las almenas 2010Copa de las almenas 2010
Copa de las almenas 2010
 
Observatorio de análisis de políticas públicas
Observatorio de análisis de políticas públicasObservatorio de análisis de políticas públicas
Observatorio de análisis de políticas públicas
 
20100825 le salut-2
20100825 le salut-220100825 le salut-2
20100825 le salut-2
 
Projet associatif-janvier-2013
Projet associatif-janvier-2013Projet associatif-janvier-2013
Projet associatif-janvier-2013
 
La saeta
La saetaLa saeta
La saeta
 

Similar to OCTO - Sécurité android

Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdfRihabBENLAMINE
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
 
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
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfmed_univ78
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfolfaharrabi2
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutantsAmira Hakim
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidSalah Gharbi
 
Le sandboxing applicatif d'Android
Le sandboxing applicatif d'AndroidLe sandboxing applicatif d'Android
Le sandboxing applicatif d'AndroidAdrien Grassein
 
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 LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011LINAGORA
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneMicrosoft Technet France
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Hadina RIMTIC
 
Ch2. Développement mobile
Ch2. Développement mobileCh2. Développement mobile
Ch2. Développement mobileHaifa Chorfi
 

Similar to OCTO - Sécurité android (20)

Chapitre 4 sem
Chapitre 4 semChapitre 4 sem
Chapitre 4 sem
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
cours Android.pptx
cours Android.pptxcours Android.pptx
cours Android.pptx
 
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
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdf
 
Android pour les debutants
Android pour les debutantsAndroid pour les debutants
Android pour les debutants
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-android
 
Le sandboxing applicatif d'Android
Le sandboxing applicatif d'AndroidLe sandboxing applicatif d'Android
Le sandboxing applicatif d'Android
 
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 LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011
 
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é
 
Gestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderneGestion de Windows 10 et des applications dans l'entreprise moderne
Gestion de Windows 10 et des applications dans l'entreprise moderne
 
Android
AndroidAndroid
Android
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Ch2. Développement mobile
Ch2. Développement mobileCh2. Développement mobile
Ch2. Développement mobile
 

More from OCTO Technology

Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudOCTO Technology
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...OCTO Technology
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...OCTO Technology
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...OCTO Technology
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Technology
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Technology
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...OCTO Technology
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Technology
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanOCTO Technology
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? OCTO Technology
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...OCTO Technology
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...OCTO Technology
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionOCTO Technology
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...OCTO Technology
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...OCTO Technology
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...OCTO Technology
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API DesignOCTO Technology
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture StrategyOCTO Technology
 

More from OCTO Technology (20)

Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture Test
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend web
 
Refcard GraphQL
Refcard GraphQLRefcard GraphQL
Refcard GraphQL
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/Leaseplan
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
 

OCTO - Sécurité android

  • 1. Développement sécurisé sous Android DevFest - GDG Nantes 9 novembre 2012 50, avenue des Champs-Elysées Tél : +33 (0)1 58 56 10 00 75008 Paris - FRANCE Fax : +33 (0)1 58 56 10 01 1 © OCTO 2012 www.octo.com
  • 3. La sécurité sous Android 3
  • 4. Objectif du développement sécurisé 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 4
  • 5. Différents modèles de sécurités 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 : A étudier 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. 5
  • 6. Sécurité sous Android Publication des applications sur Play Store avec signature numérique Algorithmes de chiffrements disponibles (flux, fichier) Pas de conteneur sécurisé 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 6
  • 7. Modèle des applications 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. 7
  • 8. Authentification/habilitation 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 8
  • 9. Accès aux fichiers 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 9
  • 10. Gestion des comptes 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 10
  • 11. Exposition des services 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 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 11
  • 12. Chiffrement 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 fiable avant la version 4 (Ice cream sandwich) 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 12
  • 13. Autres points 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 13
  • 14. Comment ajouter des permissions ? 14
  • 15. Comment sont vérifiées les 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 15
  • 16. Gestion des processus dans Android 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 » 16
  • 18. L’exploitation de la conception 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 ! 18
  • 19. Comment ajouter des permissions ? L'application la plus petite du Play store Aucune ligne de code Juste un fichier AndroidManifest.xml (et quelques icônes. Contraintes du Market) <?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> 19
  • 20. Scénarios d’ajout de privilèges 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 20
  • 21. Demo DEMO Http://goo.gl/aysRP 21
  • 22. Problème du Play store Le Play Store indique les privilèges déclarées, et non les privilèges acquis ! 22
  • 23. Installation d'une application avec privilège 23
  • 24. Installation d'une autre application sans privilège 24
  • 26. Unions des permissions Les permissions accordées à un processus sont l'union des permissions de chaque application Il existe des permissions cachées 26
  • 27. Comment ajouter des permissions ? Détection des privilèges cachés : Privilèges disponibles mais non déclarés dans le manifest http://goo.gl/v5GxC 27
  • 29. Plus d'informations Dans HS Linux Mag ( http://goo.gl/keMmy ) 29