sécurité des applications mobile et web services
DESCRIPTION
une petite présentation sur la découverte de l’infrastructure Android , les mécanismes de sécurité introduit dessus , les failles les plus répondus ; mais aussi tout ce qui est Web Services et leurs sécurité ( inclus les failles les plus répondues )TRANSCRIPT
04/12/2023 1
Réalisé par :
Kondah Hamza
Sécurité des application mobiles etWeb Services
04/12/2023 2
INTRODUCTION
04/12/2023 3
ARCHITECTURE ANDROID
Architecture ANDROID
Au niveau système, Android est organisé autour de plusieurs instances de la machine virtuel Dalvik, dans différents processus.
Les instances communiquent entre elles à l'aide d'un mécanisme IPC (Inter Processus Call)
Une instance particulière de Dalvik, portée par le processus SystemServer, expose des composants et des services aux applications
2 modes de lancement d’application1.Terminal monoprocess: 1 classloader / appli2.Terminal monoprocess: 1 process / appli
4
Architecture ANDROID
Pour optimiser l'instanciation des machines virtuelles, Android utilise un processus spécifique apellé Zygote
Zygote porte une première instance de Dalvik comme modèle.
Zygote écoute sur un socket local.
Sur réception d'une ligne de commande, celle-ci est interprétée par Zygote, après avoir effectué un fork() du processus.
5
04/12/2023 6
Architecture ANDROID
704/12/2023
Architecture ANDROID – Linux Kernel
Caractéristiques : Architecture ARM Basé sur Linux 2.6 Système de fichier support : FAT32 Support de TCP/IP,UDP...Adaptation à la plateforme mobile : Alarm : timers pour réveiller des périphériques Ashmem : partage de mémoire entre processus Binder : driver IPC pour la communication inter processus Power Management Low Memory Killer Kernel Debugger Logger
04/12/2023 8
Architecture ANDROID – Librairies
• Bibliotèques C/C++ • Accès à travers des
interfaces Java• Surface Manager • 2D and 3D graphics • Codecs Media , SQLite etc….
04/12/2023 9
• Machine virtuelle Dalvik
• Un ensemble de librairies noyau qui fournissent la plupart des fonctionnalités disponibles dans les librairies noyau du langage de programmation Java
Architecture ANDROID – Android Runtime
04/12/2023 10
• Interfaces API
• Activity manager – permet de gérer le cycle de vie d’une application
Architecture ANDROID – Application Framework
04/12/2023 11
Architecture ANDROID – Applications
• un client mail, • un programme pour les SMS, • calendrier, • cartes,• navigateur, • contacts, et d’autres.
04/12/2023 12
Sécurité Android
04/12/2023 13
Sécurité Android – Threat modeling
Threat Modeli
ng
Menaces
Scénarios
d'attaque
Assets
Threat
agents
04/12/2023 14
Assets Finances Equipement réseau, consommation réseau Fonctionnement du téléphone Intégrité des informations Informations confidentielles Disponibilité des informations Informations environnementales Productivité
Threat Agents Pirate neutre Entités ennemies Ancien employé Script Kiddie Hasard
04/12/2023 15
Scénarios d'attaque
Abus de la confiance de l'utilisateur Utilisation d'une faille du système ou d'une
application Utilisation du téléphone par une personne
tierce Saturation de l'équipement réseau Ecoute du réseau Réception répétée de messages Panne matérielle
Menaces
04/12/2023 16
Sécurité Android – Approche de l’étude
04/12/2023 17
TOP 5 FAILLES ANDROID
18
INSECURE DATA STORAGE
19
FAIBLAISSE COTÉ SERVEUR
•OWASP Top 10
• https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
OWASP Cloud Top 10
• https://www.owasp.org/images/4/47/Cloud-Top10-Security-Risks.pdf
20
CLIENT SIDE INJECTION
• Applications utilisantdes libraries navigateurs
• Applications web pure
• Hybrid web/native
• Attaques les plus connues• XSS et HTML Injection
• SQL Injection
• Nouvelles attaques• Appels non autorisés+ SMS
• Paiment non autorisés
21
CLIENT SIDE INJECTION
• XSS : Avec un accès à :
22
AUTHENTIFICATION ET HABILITATION DEFAILLANTE
•50% du a des problèmes d’architecture,
50% du à des problèmes du mobile
• Certaines applications se reposent uniquement sur des éléments théoriquement inchangeables, mais pouvant être compromis (IMEI, IMSI, UUID)
• Les identifiants matériels persistent apres les resets ou les nettoyages de données.
•De l’information contextuelle ajoutée, est utile, mais pas infaillible.
23
AUTHENTIFICATION ET HABILITATION DEFAILLANTE
04/12/2023 24
UTILISATION DE DONNÉES D’ENTRÉE POUR EFFECTUER DES DÉCISIONS SÉCURITÉ.
• Peut être exploité pour passer outre les permissions et les modèles de sécurité.
• Globalement similaires sur les différentes plateformes
• Des vecteurs d’attaques importants
• Applications malveillantes
• Injection client
04/12/2023 25
UTILISATION DE DONNÉES D’ENTRÉE POUR EFFECTUER DES DÉCISIONS SÉCURITÉ.
04/12/2023 26
04/12/2023 27
SÉCURITÉ ANDROID – MÉCANISMES DE SÉCURITÉ
Il existe 2 catégories :
Mécanisme de sécurité au niveau de Linux (SandBoxing) Mécanismes spécifiques à Android
04/12/2023 28
SÉCURITÉ ANDROID MÉCANISMES DE SÉCURITÉ LINUX
04/12/2023 29
SÉCURITÉ ANDROID – MÉCANISMES DE LINUX - SANDBOXING
Les mécanismes de linux isolent les applications les unes des autres ainsi que des ressources systèmes • Les fichiers système sont la propriété des utilisateurs «
System» ou « Root» • Le « Sandboxing» est assuré au niveau du noyau de l’OS • Le code de chaque application est exécuté par une machine
virtuelle DalviK VM séparée dans un processus portant un UID unique
30
SÉCURITÉ ANDROID – MÉCANISMES DE LINUX - SANDBOXING
04/12/2023
04/12/2023 31
SÉCURITÉ ANDROID – MÉCANISMES DE LINUX
Portable Operating System Interface user (POSIX) - Chaque application se voit attribuer un UID différent - Chaque processus se voit attribuer un environnement d’exécution isolé Linux File Access - Chaque application possède son propre répertoire, et elle est la seule à pouvoir y accéder. - Empêche l’accès non autorisé aux données privées des applications
04/12/2023 32
SÉCURITÉ ANDROID – MÉCANISMES DE LINUX
Discretionary Access Control - DAC - Les Applications (Sujet) se voit attribuer un UID , GID et un ou plusieurs groupe d’utilisateurs - Les règles d’accès sont spécifiées pour chaque fichier(Objet) - - Lecture/écriture/Exécution pour le Owner / les utilisateurs du même groupe / et le reste des utilisateurs - Ce schéma est utilisé par le Kernel de linux pour renforcer les règles d’accès aux fichiers et ressources systèmes
04/12/2023 33
SÉCURITÉ ANDROIDMÉCANISMES DE SÉCURITÉ ANDROID
04/12/2023 34
Sécurité Android – Mécanismes de sécurité Android
o Séparation des utilisateurso Cloisonnement o Accès aux fichierso Unité de gestion de mémoireo Permissions des applicationso Signatures des applicationso Déverrouillage par patterno Services et interneto Bluetootho Suppression et mise à jour d'applications à distance
04/12/2023 35
LES WEB SERVICESPRINCIPES ET FAILLES
CONTEXTE
• Avènement d’Internet• Utiliser et fournir des services• Services à valeur ajoutée
• Architecture distribuée• Différents sites pour une entreprise• Hétérogénéité des applications• Des entreprises demandeuses de services• Proposer des standards
WEB SERVICE = ?
Un Web Service « minimal » c’est :
• Mise à disposition d’une application via :
• Internet
• Intranet
• Utilisation du XML
• Requête
• Réponse
• Alternative aux solutions distribuées (CORBA, EJB, …)
L’IDÉE
Réseau
Web Service
LES ATTENTES
0 10 20 30 40 50 60 70 80
Commerce électronique B to B
Relation Client
Commerce électronique C to C
Logistique
Progiciel de gestion
Résultats d’une enquête sur les attentes des entreprises
INTÉRÊTS DES WEB SERVICES• Orientés vers l’extérieur :
• « Plus vite, meilleur, moins cher »• Indépendant des technologies internes• Services aux entreprises (B2B)• Services aux particuliers (B2C)
• En interne• Utilisation de ressources distantes• Outils de travail, communication, …
EXEMPLE SIMPLE D’APPLICATION
Émetteur
Intermédiaire
Récepteur
Valide les signatures numériques
Donne le cours des actions
MISE EN ŒUVRE ACTUELLE• XML (eXtensible Markup Language)
• Échange de messages XML entre client et serveur
• Lisible, structuré
• HTTP, SMTP, BEEP…• Réutilisation des standards « habituels » d’Internet
• SOAP (Simple Object Access Protocol)
• Protocole définissant les échanges XML entre entités
• WSDL (Web Services Description Language)
• Description technique des services web proposés
• UDDI (Universal Description Discovery and Integration)
• Annuaire des services web disponibles
Entreprise A
Entreprise B
HTTP
SOAP
Firewall
Firewall
Serveur HTTP (WSDL)
Serveur HTTP (WSDL)
Client
SOAP
Applimétier
ClientSOAP
ClientSOAP
ClientSOAPCORBA
EJB
ApplicationC#
ÉCHANGES D’INFORMATIONS
Fournisseur de Web Services
Annuaire UDDI
WebServices référencés
DescriptionWSDLDescription
WSDL
BackOffice
EtSystème
d’entreprise
Serveur
web
Serveur
d’application
BusinessObject
BusinessObject
BusinessObject
DescriptionWSDLDescription
WSDL
WebService
2
WebService
1
DescriptionWSDLDescription
WSDL
ÉCHANGES D’INFORMATIONSAnnuaire UDDI
WebServices référencés
DescriptionWSDLDescription
WSDL
Fournisseur de Web Services
BackOffice
EtSystème
d’entreprise
Serveur
web
Serveur
d’application
BusinessObject
BusinessObject
BusinessObject
WebService
2
WebService
1
DescriptionWSDLDescription
WSDL
Client du Web Service
BusinessObject
DescriptionWSDL
DescriptionWSDL
ÉCHANGES D’INFORMATIONSAnnuaire UDDI
WebServices référencés
DescriptionWSDLDescription
WSDL
Fournisseur de Web Services
BackOffice
EtSystème
d’entreprise
Serveur
web
Serveur
d’application
BusinessObject
BusinessObject
BusinessObject
WebService
2
WebService
1
DescriptionWSDLDescription
WSDL
Client du Web Service
BusinessObject
DescriptionWSDL
Requête SOAP
PILE DE PROTOCOLES
Discovery(UDDI)
Description(WSDL)
Packaging(SOAP)
Transport(HTTP, SMTP, Jabber, BEEP, …)
Réseau
04/12/2023 48
DÉMYSTIFICATION DES TECHNOLOGIES• Languages : • XML : La base • xPath, xQuery : équivalent à SQL • WSDL : Descripteur de Services• Protocoles • Transport : HTTP • Message : SOAP (SOAP = HTTP + XML)• Autres éléments : • SAML : Security Assertion Markup Language • WS-Security : Web Services Security
04/12/2023 49
DÉMYSTIFICATION DES PROTOCOLESXML
• Ensemble non fini de balises
• L’utilisateur peut créer de nouvelles balises
• Définition de grammaires : XML est un Meta-Langage
• MathML, NewsML, XMI, Doc, Slides, …
• Séparation de la forme et du fond
• Un document XML peut être constitué de deux entités (le fond et la forme)
04/12/2023 50
EXEMPLE
<livre><titre> le super livre </titre><chapitre>
<numero> 1 </numero><titre> titre du chapitre 1 </titre><contenu> blabla blabla
</contenu></chapitre><chapitre>
…</chapitre>
</livre
04/12/2023 51
XPATH
<?xml version="1.0" encoding="ISO-8859-1"?><users><user><username>gandalf</username><password>!c3</password><account>admin</account></user><user><username>Stefan0</username><password>w1s3c</password><account>guest</account></user></users>
//username => Renvoi tous les username//user[username = 'gandalf’]/account => Renvoi le champaccount du compte gandalf
04/12/2023 52
SOAPSOAP : Simple Object Access Protocol Permet l’envoi de messages XML
04/12/2023 53
SOAP - TYPE DE COMMUNICATION
- RPC• Le document XML transmis dans la requête
SOAP estcalqué sur la syntaxe de la méthode invoquée• Traitement synchrone- Document• Le document XML transmis dans la requête
SOAP esttraité par le serveur, qui renvoie un document XML enretour• Le Client ne sait pas comment le service estimplémenté, ni comment le message est traité• Traitement asynchrone
04/12/2023 54
EXEMPLE
04/12/2023 55
04/12/2023 56
04/12/2023 57
XML SIGNATUREObjectif: signature numérique d’un
document XML Garantir l’authenticité et l’intégrité du
document Signature de tout ou partie du
document XML Recommandation W3C: XML Signature
Syntax and Processing http://www.w3.org/TR/xmldsig-core/
Types de signature1. Enveloppante (‘enveloping’)2. Enveloppée (‘enveloped’)3. Détachée (‘detached’)
04/12/2023 58
XML ENCRYPTION
Objectif: chiffrement d’un document XMLGarantir la confidentialité de bout en bout du
documentRecommandation W3C: XML
Encryption Syntax and Processing /http://www.w3.org/TR/xmlenc-core
FlexiblePossibilité d’encrypter tout ou partie du
document, avec 1 ou différentes clés
04/12/2023 59
XMLENCRYPTION
Chiffrement symétrique Quid de la clé?
Clé connue des deux partiesPlusieurs clés communes et identifiant de la clé
utilisée transmis Transmission de la clé partagée encryptée avec la
clé publique du correspondant
04/12/2023 60
XML ENCRYPTION
Chiffrement XML 1. Choix d’un algorithme (3DES ou AES) 2. Obtention ou génération de la clé 3. Sérialisation des données à encrypter 4. Chiffrement Déchiffrement 1. Identifier l’algorithme et la clé utilisés 2. Obtenir la clé 3. Déchiffrer les données 4. Intégrer les données déchiffrées dans le document
04/12/2023 61
WS SECURITY Objectifs
AuthentificationConfidentialité des messages Intégrité des messages
Fondation d’autres standards
04/12/2023 62
WS-SECURITY
Notion de jeton de sécurité (security token)Pour l’authentification ou l’autorisation
• Ex: username/password, certificat X509, …
Extension de SOAP Définition d’un header SOAP contenant
l’information de sécurité• Jetons de sécurité• Signatures numériques• Élements encryptés
04/12/2023 63
WS-SECURITY
Confidentialité des messages SOAP Utilisation de XML-Encryption
• Encryption d’un ou plusieurs éléments du message SOAP
• Référence vers les éléments encryptés dans le header
Clé partagée Possibilité d’encrypter différents élémentsavec des clés différentes
04/12/2023 64
WS-POLICY
Objectif: spécifier des informations et des exigences pour un WS S’applique aussi bien au serveur qu’au client
Exemples: utilisation d’une version spécifique de SOAP Exigence de signature Information sur le format de la réponse (encrypté, signée…)
04/12/2023 65
WS-TRUST
Modèles de confiance nombreux et variés
• Et transorganisations Problèmes
• Émettre et obtenir des jetons de sécurité
• Etablir et valider des relations de confiance
Définition d’un Security Token Service
• Émet, valide ou échange un jeton de sécurité
04/12/2023 66
LES PARSEURS XML
2 grandes familles :SAX :
• Simplistes• Analyse du document en fonction des événements• Appel de fonction lorsque des noeuds sont trouvés
DOM :• Plus complexes et utiles• Basés sur des principes d’arbres pour créer des
hiérarchies du document• Compatibles xPath !
04/12/2023 67
LES ATTAQUES SUR LES WEBSERVICES
04/12/2023 68
XML BOMB
o Trivial à effectuer :• Référence récursive à une entité du même
document :
04/12/2023 69
INJECTION XML ENTITY
La possibilité d’injecter du code XML de type entity system peut être catastrophique:
04/12/2023PROJET FIN D’ETUDES 70
INJECTION XML
04/12/2023PROJET FIN D’ETUDES 71
INJECTION CDATA
Le contenu des élément CDATA est éliminé lors du parsing. Soit :
04/12/2023PROJET FIN D’ETUDES 72
INJECTION XPATHImaginons la base d’authentification Xml suivante:
04/12/2023 73
MESSAGES SOAP
SOSOAP est un protocole d’échanges
AP ne dispose pas d’un mécanisme de sessions : Aucune relation entre les
messages Rejeu possible très
facilement :• Authentification• Messages• DOS…
04/12/2023PROJET FIN D’ETUDES 74