74
06/14/2022 1 Réalisé par : Kondah Hamza Sécurité des application mobiles et Web Services

Sécurité des applications mobile et Web Services

Embed Size (px)

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 )

Citation preview

Page 1: Sécurité des applications mobile et Web Services

04/12/2023 1

Réalisé par :

Kondah Hamza

Sécurité des application mobiles etWeb Services

Page 2: Sécurité des applications mobile et Web Services

04/12/2023 2

INTRODUCTION

Page 3: Sécurité des applications mobile et Web Services

04/12/2023 3

ARCHITECTURE ANDROID

Page 4: Sécurité des applications mobile et Web Services

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

Page 5: Sécurité des applications mobile et Web Services

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

Page 6: Sécurité des applications mobile et Web Services

04/12/2023 6

Architecture ANDROID

Page 7: Sécurité des applications mobile et Web Services

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

Page 8: Sécurité des applications mobile et Web Services

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

Page 9: Sécurité des applications mobile et Web Services

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

Page 10: Sécurité des applications mobile et Web Services

04/12/2023 10

• Interfaces API

• Activity manager – permet de gérer le cycle de vie d’une application

Architecture ANDROID – Application Framework

Page 11: Sécurité des applications mobile et Web Services

04/12/2023 11

Architecture ANDROID – Applications

• un client mail, • un programme pour les SMS, • calendrier, • cartes,• navigateur, • contacts, et d’autres.

Page 12: Sécurité des applications mobile et Web Services

04/12/2023 12

Sécurité Android

Page 13: Sécurité des applications mobile et Web Services

04/12/2023 13

Sécurité Android – Threat modeling

Threat Modeli

ng

Menaces

Scénarios

d'attaque

Assets

Threat

agents

Page 14: Sécurité des applications mobile et Web Services

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

Page 15: Sécurité des applications mobile et Web Services

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

Page 16: Sécurité des applications mobile et Web Services

04/12/2023 16

Sécurité Android – Approche de l’étude

Page 17: Sécurité des applications mobile et Web Services

04/12/2023 17

TOP 5 FAILLES ANDROID

Page 18: Sécurité des applications mobile et Web Services

18

INSECURE DATA STORAGE

Page 20: Sécurité des applications mobile et Web Services

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

Page 21: Sécurité des applications mobile et Web Services

21

CLIENT SIDE INJECTION

• XSS : Avec un accès à :

Page 22: Sécurité des applications mobile et Web Services

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.

Page 23: Sécurité des applications mobile et Web Services

23

AUTHENTIFICATION ET HABILITATION DEFAILLANTE

Page 24: Sécurité des applications mobile et Web Services

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

Page 25: Sécurité des applications mobile et Web Services

04/12/2023 25

UTILISATION DE DONNÉES D’ENTRÉE POUR EFFECTUER DES DÉCISIONS SÉCURITÉ.

Page 26: Sécurité des applications mobile et Web Services

04/12/2023 26

Page 27: Sécurité des applications mobile et Web Services

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

Page 28: Sécurité des applications mobile et Web Services

04/12/2023 28

SÉCURITÉ ANDROID MÉCANISMES DE SÉCURITÉ LINUX

Page 29: Sécurité des applications mobile et Web Services

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

Page 30: Sécurité des applications mobile et Web Services

30

SÉCURITÉ ANDROID – MÉCANISMES DE LINUX - SANDBOXING

04/12/2023

Page 31: Sécurité des applications mobile et Web Services

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

Page 32: Sécurité des applications mobile et Web Services

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

Page 33: Sécurité des applications mobile et Web Services

04/12/2023 33

SÉCURITÉ ANDROIDMÉCANISMES DE SÉCURITÉ ANDROID

Page 34: Sécurité des applications mobile et Web Services

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

Page 35: Sécurité des applications mobile et Web Services

04/12/2023 35

LES WEB SERVICESPRINCIPES ET FAILLES

Page 36: Sécurité des applications mobile et Web Services

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

Page 37: Sécurité des applications mobile et Web Services

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, …)

Page 38: Sécurité des applications mobile et Web Services

L’IDÉE

Réseau

Web Service

Page 39: Sécurité des applications mobile et Web Services

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

Page 40: Sécurité des applications mobile et Web Services

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

Page 41: Sécurité des applications mobile et Web Services

EXEMPLE SIMPLE D’APPLICATION

Émetteur

Intermédiaire

Récepteur

Valide les signatures numériques

Donne le cours des actions

Page 42: Sécurité des applications mobile et Web Services

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

Page 43: Sécurité des applications mobile et Web Services

Entreprise A

Entreprise B

HTTP

SOAP

Firewall

Firewall

Serveur HTTP (WSDL)

Serveur HTTP (WSDL)

Client

SOAP

Applimétier

ClientSOAP

ClientSOAP

ClientSOAPCORBA

EJB

ApplicationC#

Page 44: Sécurité des applications mobile et Web Services

É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

Page 45: Sécurité des applications mobile et Web Services

É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

Page 46: Sécurité des applications mobile et Web Services

É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

Page 47: Sécurité des applications mobile et Web Services

PILE DE PROTOCOLES

Discovery(UDDI)

Description(WSDL)

Packaging(SOAP)

Transport(HTTP, SMTP, Jabber, BEEP, …)

Réseau

Page 48: Sécurité des applications mobile et Web Services

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

Page 49: Sécurité des applications mobile et Web Services

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)

Page 50: Sécurité des applications mobile et Web Services

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

Page 51: Sécurité des applications mobile et Web Services

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

Page 52: Sécurité des applications mobile et Web Services

04/12/2023 52

SOAPSOAP : Simple Object Access Protocol Permet l’envoi de messages XML

Page 53: Sécurité des applications mobile et Web Services

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

Page 54: Sécurité des applications mobile et Web Services

04/12/2023 54

EXEMPLE

Page 55: Sécurité des applications mobile et Web Services

04/12/2023 55

Page 56: Sécurité des applications mobile et Web Services

04/12/2023 56

Page 57: Sécurité des applications mobile et Web Services

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

Page 58: Sécurité des applications mobile et Web Services

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

Page 59: Sécurité des applications mobile et Web Services

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

Page 60: Sécurité des applications mobile et Web Services

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

Page 61: Sécurité des applications mobile et Web Services

04/12/2023 61

WS SECURITY Objectifs

AuthentificationConfidentialité des messages Intégrité des messages

Fondation d’autres standards

Page 62: Sécurité des applications mobile et Web Services

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

Page 63: Sécurité des applications mobile et Web Services

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

Page 64: Sécurité des applications mobile et Web Services

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

Page 65: Sécurité des applications mobile et Web Services

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é

Page 66: Sécurité des applications mobile et Web Services

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 !

Page 67: Sécurité des applications mobile et Web Services

04/12/2023 67

LES ATTAQUES SUR LES WEBSERVICES

Page 68: Sécurité des applications mobile et Web Services

04/12/2023 68

XML BOMB

o Trivial à effectuer :• Référence récursive à une entité du même

document :

Page 69: Sécurité des applications mobile et Web Services

04/12/2023 69

INJECTION XML ENTITY

La possibilité d’injecter du code XML de type entity system peut être catastrophique:

Page 70: Sécurité des applications mobile et Web Services

04/12/2023PROJET FIN D’ETUDES 70

INJECTION XML

Page 71: Sécurité des applications mobile et Web Services

04/12/2023PROJET FIN D’ETUDES 71

INJECTION CDATA

Le contenu des élément CDATA est éliminé lors du parsing. Soit :

Page 72: Sécurité des applications mobile et Web Services

04/12/2023PROJET FIN D’ETUDES 72

INJECTION XPATHImaginons la base d’authentification Xml suivante:

Page 73: Sécurité des applications mobile et Web Services

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…

Page 74: Sécurité des applications mobile et Web Services

04/12/2023PROJET FIN D’ETUDES 74