• Aucun résultat trouvé

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT1

N/A
N/A
Protected

Academic year: 2022

Partager "Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT1"

Copied!
18
0
0

Texte intégral

(1)

Insecure Deserialization

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT

1

(2)

I. Qu’est-ce la sérialisation/Désérialisation

?

● La sérialisation :

○ Sauvegarder l’état d’une donnée en mémoire

● La désérialisation:

○ Récupérer la donnée sérialisée et la convertir

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Nathan Renaud 2

(3)

II. l’Insecure Deserialization

Qu’est-ce que la désérialisation insécurisée ?

● On parle de désérialisation non sécurisée quand

● Remplacer un objet sérialisé par un objet d'une classe entièrement différente

● “injection d'objet”

● L’insecure deserialization est 8ème dans le top 10 des vulnérabilités d’OWASP

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Nathan Renaud 3

(4)

Qu’est-ce que l’OWASP ?

● L’Open Web Application Security Project (OWASP)

II. l’Insecure Deserialization

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Nathan Renaud 4

(5)

II. l’Insecure Deserialization

Comment apparaissent les vulnérabilités de désérialisation non sécurisées ?

Manque général de compréhension du danger

● Contrôle de données mal effectuer

● Grand nombre de dépendances

● Il est difficile de totalement se prémunir de cette attaque

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Nathan Renaud 5

(6)

III. l’Insecure Deserialization par l’exemples

Profiter de l’Object Injection* afin de réaliser une élévation de privilège en PHP.

* En PHP, il est plus courant d’appelé l’Insecure Deserialization “Object Injection”.

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Allan JARRY 6

(7)

III. l’Insecure Deserialization par l’exemples

Format d’un objet php sérialisé :

O:4:”User”:2:{s:8:”username”;s:4:”Allan”;s:5:”admin”;b:0;}

Objet décomposé : TYPE : LONGUEUR_NOM : ”NOM_CLASSE” : NOMBRE_DE_PROPRIETES: { PROPRIETES }

Propriété décomposée : TYPE : LONGUEUR_NOM : ”NOM_PROP” : TYPE_VALEUR: LONGUEUR_VALEUR : VALEUR s:8:”username”;s:4:”Allan”;

Élévation de privilège en PHP

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Allan JARRY 7

(8)

III. l’Insecure Deserialization par l’exemples

Encodage en base64 :

O:4:”User”:2:{s:8:”username”;s:4:”Allan”;s:5:”admin”;b:0;}

Devient :

Tzo0OuKAnVVzZXLigJ06Mjp7czo4OuKAnXVzZXJuYW1l4oCdO3M6NDrigJ1BbGxhbuKAnTtzOjU64oCdYWRtaW7igJ07YjowO30K

Élévation de privilège en PHP

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Allan JARRY 8

(9)

III. l’Insecure Deserialization par l’exemple

1. On décode le cookie

2. On modifie les valeurs du champ admin : O:4:”User”:2:{s:8:”username”;s:4:”Allan”;s:5:”admin”;b: 1 ;}

3. On encode en base64 et on met à jour la valeur du cookie du navigateur.

Élévation de privilège en PHP

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Allan JARRY 9

(10)

III. l’Insecure Deserialization par l’exemples

Au rechargement de la page, si aucune vérification sur l’intégrité des données du cookie n’est réalisée.

Vous pouvez profiter de vos nouveaux droits d’administrateur !

Élévation de privilège en PHP

Potentiellement :

- Des accès à des zones de l’application restreintes - Utilisation d’action réservé

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Allan JARRY 10

(11)

IV. Les Risques

● Une désérialisation non sécurisée est une attaque à ne pas prendre à la légère

● fournit un point d'entrée à une surface d'attaque

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Florian MARTIN 11

(12)

IV. Les Risques

Attaque de désérialisation permet d'introduire du code non autorisé dans une application.

Si le code d'un attaquant est autorisé à être désérialisé de manière non sécurisée, presque toutes les intentions malveillantes sont possibles

L'exposition des données, la compromission du contrôle d'accès et l'exécution de code à distance (« Remote code execution ») sont autant de conséquences possibles d'une désérialisation non sécurisée.

Même dans le cas où l’exécution de code à distance n’est pas possible, la désérialisation non sécurisée peut conduire à une escalade des privilèges ou bien à des accès non autorisés aux fichiers

Cette vulnérabilité elle peut également ouvrir la porte à d’autres attaques comme l’injection SQL.

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Florian MARTIN 12

(13)

IV. Les Risques

Exécution de code à distance:

● L’attaquant se met à exécuter des commandes sur le serveur comme les commandes ls ou bien cat.

● Dans le cas de ces 2 commandes, on pourrait se dire qu’elles n’ont pas un grand impact sur le serveur.

En revanche, si l’attaquant se met à exécuter des

commandes comme rm ou rmdir, alors les commandes vont avoir un grand impact sur le serveur qui peut se retrouver compromis.

● De même, un attaquant pourrait installer à partir de la ligne de commande des malwares de toutes sortes sur le serveur.

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Florian MARTIN 13

(14)

IV. Les Risques

● Une vulnérabilité de désérialisation avait été découverte chez PayPal et elle avait permis aux attaquants de détourner les systèmes de production

● Incapsula avait rapporté que le nombre d'attaques de désérialisation avait augmenté de 300 % en moyenne, ce qui les transformaient en un risque de sécurité sérieux pour les applications web.

● Très efficace pour les attaques par exécution de code à distance.

● Avec une exploitation réussie d'une mauvaise implémentation de la désérialisation, un attaquant peut utiliser les serveurs d'une victime à n'importe quelle fin. Il peut s'agir d'une prise de contrôle complète du système.

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Florian MARTIN 14

(15)

IV. Les Risques

● Développement avec des frameworks récents qui vont abstraire tous les processus de sérialisation /

désérialisation

● Nous n’avons plus vraiment la main sur ces processus ce qui rend difficile la gestion des vulnérabilités de désérialisation insécurisée

● Si le framework ne gère pas correctement les

vulnérabilités, c’est la porte ouverte aux attaquants qui souhaitent exécuter du code malveillant

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Florian MARTIN 15

(16)

V. Comment s’en défendre/Tester la vulnérabilité de son application

● Théorie des systèmes → Patience et analyse [ TEST LOGICIEL ]

○ Boite blanche

○ Boite noire

● Non-acceptation objets sérialisés

○ → Source non fiable

○ → Types primitifs

● ⚠ User input ⚠

● Mesure robuste

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Alexandre BOUGRAT 16

(17)

V. Comment s’en défendre/Tester la vulnérabilité de son application

● Intégrité → signatures numériques

● Environnements faible privilège

● Authentification → rôle utilisateur

○ ⚠ Piratage

● Exceptions

● Surveillance réseau → drapeau autorisation

● Fichier journal

● Validation user input

○ ⚠ Vookie

● Pare-feu d’application

● WAF → traffic HTTP

○ ⚠ Injections SQL

● Formats données non standard

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Alexandre BOUGRAT 17

● Environnement

● Mesures sécuritaires

● Nettoyage code

● Lutte

(18)

VI. Ressources intéressante pour en savoir plus sur l’Insecure Deserialization

- Explication simple et courte :

https://hdivsecurity.com/owasp-insecure-deserialization

- Article avec plusieurs exemples dans divers langages :

https://thehackerish.com/insecure-deserialization-explained-with-examples/

- Article très complet sur l’Insecure Deserialization :

https://infosecwriteups.com/understanding-identifying-insecure-deserialization-vulnerabilities-f7fac5414bb3

- Ressource très intéressante, “guide” pour sécuriser son application face à cette vulnérabilité, proposé par OWASP : https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html

Nathan RENAUD - Allan JARRY - Florian MARTIN - Alexandre BOUGRAT - Qui parle ? Allan JARRY 18

Références

Documents relatifs

Il s’agit ainsi, à l’occasion d’une série de tables-rondes consacrées aux différents aspects de l’œuvre de Nathan Wachtel, non seulement de rendre compte de l’évolution

Cette note biographique, rédigée par Thorez en 1943 et retrouvée dans les archives de l’IC à Moscou, éclaire la profondeur et la permanence du fossé entre la direction du PCF et

e) Le cahier numérique se mettra dans votre espace, et vous pourrez ensuite aussi y accéder directement par l’espace (en ligne) ou alors télécharger l’application Biblio-Manuels.

Donc pour équilibrer le Levothyrox, il faut apporter toutes les hormones ça peut être un vrai casse tête et donc j’insiste, si votre ORL vous propose tout de suite l’ablation de

• Le père de Renaud ne possède pas le permis de conduire, --> il n’est pas chauffeur ==> le père de Renaud est donc professeur (puisqu’il n’est ni boulanger, ni facteur,

DESIGN : RENO Pour votre écriture tout terrain, pour vos accélérations littéraires, pour vos dérapages contrôlés ayez toujours sous la main, au bout de votre crayon, de quoi faire

Jérusalem fut alors interdite aux Juifs et leur centre spirituel devint Yavneh, près de Tel-Aviv; après la deuxième révolte juive de Bar Kochba (fils de

A) Il pense être responsable de la mort d’une jeune femme. B) Il pense qu’il a été trop méchant et égoïste quand il était vivant. C) Il pense qu’il n’aurait jamais