25
Master 2 Sécurité des Systèmes d’Information : 2012 - 2013 Bassem – Belkacem – Guillaume – Romain – Thierry Encadrant: P-A Fouque

[Projet] Sécurité Androïd

Embed Size (px)

DESCRIPTION

Diaporama de soutenance de projet de fin de Master 2 Sécurité des Systèmes d'Information. Le nom du projet était "Sécurité Androïd" et le but de celui-ci était le portage de l'HIDS Stide sur le système Androïd de Google ainsi que le développement de modules kernels afin de "hooker" les appels systèmes dans le but des tracer puis analyser avec l'HIDS. Pour plus d'informations, regarder le diapo. Pour encore plus d'informations, n'hésitez pas à me contacter...

Citation preview

Page 1: [Projet] Sécurité Androïd

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Encadrant: P-A Fouque

Page 2: [Projet] Sécurité Androïd

Nombreux projets de recherche

Très spécifiques

Notre projet:

HIDS général

Basé sur des séquences d’appel

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Contexte du projet

1

Page 3: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Apprentissage Module LKM

Module ptrace

Exploit Androïd

Exploitation Fonctionnement de Stide

Stide en action

Contenu

2

Page 4: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

Apprentissage

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Modélise le comportement normal

La précision dépend de la durée

Surveillance des appels systèmes

Liste d’enchainement “normaux”

Module LKM de “hook”

“ptrace” sous Androïd

3

Page 5: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Basé sur un module de furtivité

Corruption des affichages sous Unix

Brute force sur la table des symboles

Modification:

@ légitime -> @ corrompue

Appel de la fonction corrompue

Retour vers la fonction légitime

Apprentissage: Module LKM

4

Page 6: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Phase de nettoyage possible

En sortie:

1401 16

1401 64

1401 51

1401 69

-1

Apprentissage: Module LKM

5

Page 7: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Utilise la librairie ptrace

Un démon qui tourne en fond

syscalltrace –p <pid> [-o out]

Apprentissage: Module ptrace

6

Page 8: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Attache du PID ptrace(PTRACE_ATTACH, target_pid, null, null)

Attend l’arrivé d’un appel système ptrace (PTRACE_SYSCALL, target_pid, 0, 0);

Récupération de l’id ptrace(PTRACE_PEEKUSER, target_pid,

PT_SYSCALL_NR_OFFSET, 0);

Apprentissage: Module ptrace

7

Page 9: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Module LKM

Nécessite les droits root

Fonctionne en KernelLand

Dégrade la stabilité du système

Module ptrace

Nécessite les droits root

Dépendant de la lib ptrace

Fonctionne en userland

Apprentissage: Bilan

9

Page 10: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Besoins

Etudier le système lors d’une attaque

Vérifier le fonctionnement de l’IDS

Problèmes

Peu d’exploit dans le domaine public

Faible taux de succès

« Use-after-free »: CVE-2010-1119

Apprentissage: Exploit

8

Page 11: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

Exploitation

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Configuration de l’HIDS

BDD des séquences autorisées

Flux d’entrée

Fonctionnement

10

Page 12: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Ligne de commande

Nom complet “- -” ou en raccourci “-”

Ex: -d nom.db ou --db_name nom.db

Fichier de configuration

2 formats: ancien ou nouveau

“#ConfigFileRev” pour le nouveau

Sinon l’ancien

Exploitation: Configuration

11

Page 13: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Exploitation: Configuration

12

Page 14: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Structure de sauvegarde: opt_infos

Exploitation: Configuration

long_name

Element i

short_name

set

type

int_val str_val bool_val

==s Type ==i ==f

db_name

0

d

true

s

NULL default_db NULL

==s Type !=i !=f

13

Page 15: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Vérification des erreurs

Flags lors de leur lecture

Format de sortie

Constantes pour définir les valeurs

Validité des valeurs entières

Exploitation: Configuration

14

Page 16: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Vecteur d’arbres

Stocker les séquences d’appels

Référence pour la comparaison

Exploitation: Base de données

15

Page 17: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

SeqForest

BDD des séquences valides

FlexiTree

On connait la racine

Contient les appels systèmes suivant

Exploitation: Base de données

16

Page 18: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Exploitation: Base de données

Appels systèmes: 24, 13, 5 13, 5, 81 4, 24, 4

24, 4, 13 4, 13, 5 13, 5, 18

24, 13, 2

17

Page 19: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Utilisation de vecteurs

Simule une architecture en arbre

Taille dynamique

Flexibilité de manipulation (get, set)

Exploitation: Base de données

18

Page 20: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

“current_seq” vecteur d’appels système

Nombre d’appels systèmes dans la séquence

de paires

d’anomalies

“streams”: vecteur de flux Répertorie tous les flux

Exploitation: Les flux

19

Page 21: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Lecture du fichier d’entrée

Remplissage de

sid_table

streams

Comparaison du flux

Comptage des anomalies

Exploitation: Stide en action

20

Page 22: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Pour tous les flux de streams

Comptage des anomalies des flux

Comptage du nombre de paires lues

Puis… affichage du rapport

Nombre de paires lues

Nombre d’anomalies

Pourcentage de séquences anormales

Exploitation: Stide en action

21

Page 23: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Module ptrace

Résultats incohérents sous Androïd

Module LKM

Passer à Androïd

HIDS Stide

Testé et résultats concluants

Conclusion technique

22

Page 24: [Projet] Sécurité Androïd

Contexte Contenu Apprentissage Exploitation Conclusion Bilan

1

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Bilan du projet

Découverte de la sécurité Androïd

Développement système

Mise en pratique d’un HIDS

Autonomie durant le projet

23

Page 25: [Projet] Sécurité Androïd

Merci de votre attention

Master 2 Sécurité des Systèmes d’Information : 2012 - 2013

Bassem – Belkacem – Guillaume – Romain – Thierry

Des questions ?

24