Sécurité des applications mobile et Web Services

Preview:

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

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

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

Recommended