3. 3
Introduction
Les terminaux mobiles, qui recèlent d’un nombre de données exponentiel
(contacts, données de géolocalisation, mails, identifiants, etc.) sont très
souvent volés.
Comment assurer la sécurité d’une application mobile?
4. 4
Définition:OWASP
•Open Web Application Security Project (OWASP): est une organisation
mondiale sans but lucratif axée sur l'amélioration de la sécurité des
logiciels.
OWASP Top 10 risques des mobiles:
• Vision multi-plateforme :Android, IOS, Nokia, Windows, ...
•Concentrer sur les risques plutôt que les vulnérabilités.
5. 5
Risques
M1 - Stockage de données non sécurisé
M2 - Contrôles serveur défaillants
M3 - Protection insuffisante lors du transport de données
M4 - Injection client
M5 - Authentification et habilitation défaillante
M6 - Mauvaise gestion des sessions
M7- Utilisation de données d’entrée pour effectuer des décisions sécurité.
M8 - Perte de données via des canaux cachés
M9 - Chiffrement défectueux
M10 - Perte d’information sensible
6. 6
M1 - Stockage de données non sécurisé
Impact
• Perte de confidentialité sur
les données,
• Divulgation d’authentifiants,
• Violation de vie privée.
Les données sensibles ne
sont pas protégées.
Généralement du à :
• Défaut de chiffrement des
données,
• Permissions globales ou
faibles,
• Non suivi des bonnes
pratiques de la plateforme.
8. 8
M1 – Prévention
1. Ne stocker que ce qui est réellement nécessaire.
2. Ne jamais stocker des données sur des éléments publics (SD-
Card...)
3. Ne pas donner des droits en “world writeable” ou “world readable”
9. 9
M2 - Contrôles serveur défaillants
Impact
•Perte de confidentialité sur
des données
• Perte d’intégrité sur des
données
S’applique uniquement aux
services de backend.
M2- Prévention
1. Comprendre les nouveaux risques induits par les applications mobiles sur
les architectures existantes
2. OWASP Top 10, Cloud Top 10, Web Services Top 10
10. 10
M3 - Protection insuffisante lors du transport de données
Impact
•Attaques MITM
• Modification des
données transmises
• Perte de confidentialité
M3 – Prévention
1. Vérifier que les données sensibles quittent l’appareil chiffrées.
2. Ne pas ignorer les erreurs de sécurité !
Perte complète de chiffrement des données
transmises.
Faible chiffrement des données transmises.
Fort chiffrement, mais oubli des alertes
sécurité
11. 11
M4 - Injection Client
Impact
•Compromission de l’appareil
•Fraude à l’appel
•Augmentation de privilèges
Utilisation des fonctions de
navigateurs dans les applications
On retrouve les vulnérabilités
connues: Injection XSS et HTML,SQL
Injection
M4 – Prévention
1. Valider les données d’entrée avant utilisation
2. Nettoyer les données en sortie avant affichage.
3. Utilisation des requêtes paramétrées pour les appels bases de
données.
12. 12
M5 - Authentification et habilitation défaillante
Impact
•Elévation de privilèges
•Accès non autorisé.
Se reposer sur des éléments
théoriquement inchangeables, mais
pouvant être compromis (IMEI,…)
Les identifiants matériels persistent
après les resets ou les nettoyages de
données.
M5 – Prévention
1. Ajouter des informations contextuelles en cas d’implémentation
d’authentification multifacteur.
2. Ne jamais utiliser l’ID machine ou l’ID opérateur (subscriber ID), comme
élément unique d’authentification.
13. 13
M6 - Mauvaise gestion des sessions
Impact
•Elévation de privilèges
•Accès non autorisé
•Contournement des
licences et des éléments
de paiements
Le maintien de session applicative se fait
via: HTTP cookies, OAuth tokens,SSO
authentication services.
Très mauvaise idée d’utiliser l’ID matériel
comme identification de session.
M6 – Prévention
1. Redemander aux utilisateurs de se ré-authentifier plus souvent.
2. S’assurer que les ID/token peuvent être révoqués en cas de perte.
14. 14
M7 - Utilisation de données d’entrée pour effectuer
des décisions sécurité.
Impact
•Utilisation de ressources
payantes.
•Exfiltration de données
• Elévation de privilèges.
Peut être exploité pour passer
outre les permissions et les
modèles de sécurité.
Des vecteurs d’attaques importants:
• Applications malveillantes
• Injection client
15. 15
Exemple
• Gestion de skype dans l’URL sur IOS...
M7- Prévention
1. Vérifier les permissions lors de l’utilisation de données d’entrée.
2. Demander à l’utilisateur une confirmation avant l’utilisation de
fonctions sensibles.
16. 16
M8 - Perte de données via des canaux cachés
Impact
• Perte définitive de
données.
•Violation de la vie privée.
Mélange de fonctionnalités de la
plateforme et de failles de programmation.
Les données sensibles se trouvent
un peu partout:
• Web caches
• Screenshots
• Logs (system, crash)
• …
Faire attention à ce que font les librairies tierces
avec les données utilisateurs( publicité, analyse, ...)
17. 17
M8- Prévention
1. Ne jamais stocker des authentifiants/passwords ou d’autres
informations sensibles dans les logs.
2. Debugger les applications avant mise en
production pour vérifier les fichiers produits, modifiés, lus, ....
3. Porter une attention particulière aux librairies tierces.
18. 18
M9 - Chiffrement défectueux
Impact
•Perte de confidentialité.
• Elévation de privilèges
• Contournement de la
logique métier.
2 catégories importantes:
Implémentations défectueuses via
l’utilisation de librairies de chiffrement.
Implémentations personnelles de
chiffrement.
M9- Prévention
1.Le stockage de clef et des données chiffrées n’est pas correct.
2. Il vaut mieux utiliser des librairies connues de chiffrement que sa
propre librairie....
19. 19
M10 - Perte d’information sensible
Impact
•Perte d’authentifiants
•Exposition de
propriété intellectuelle
Il est assez simple de faire du reverse engineering
sur des applications mobiles...
Quelques informations classiques
trouvées :
• clefs d’API
• Passwords
M10- Prévention
1. Pas de stockage des clefs d’API privées sur le client.
2. Exécuter la logique métier propriétaire par le serveur .
20. 20
Conclusion:
Une protection et une sécurisation des données est indispensable.
Nous venons d’identifier quelques problèmes, il est nécessaire de
les corriger !
Les plateformes deviennent plus matures, les applications le
doivent aussi...