Les injections NoSQL JSSI 2012



Documents pareils
Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Vulnérabilités et sécurisation des applications Web

SQL Parser XML Xquery : Approche de détection des injections SQL

Mysql. Les requêtes préparées Prepared statements

les techniques d'extraction, les formulaires et intégration dans un site WEB

Attaques applicatives

Indicateur et tableau de bord

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

SQL MAP. Etude d un logiciel SQL Injection

TEST D INTRUSION : UNE SIMULATION DE HACKING POUR IDENTIFIER LES FAIBLESSES DE VOTRE SYSTÈME

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Programmation Web. Introduction

Retour d expérience sur Prelude

Bases de données documentaires et distribuées Cours NFE04

Impression de sécurité?

Devenez un véritable développeur web en 3 mois!

Revue de code Sécuritéou Test d Intrusion Applicatif. Quel est le plus efficace pour évaluer un niveau de sécurité applicatif?

Sécurité des Applications Web Comment Minimiser les Risques d Attaques les plus Courants

L externalisation de vos logiciels entreprises : une solution aux problèmes de coûts, de sécurités et de réactivités

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Samson BISARO Christian MAILLARD

Sécurité des applications Retour d'expérience

La mémorisation des mots de passe dans les navigateurs web modernes

DenyAll Protect. Sécurité & accélération. Parefeux pour applications et services Web. de vos applications.

Création d un «Web Worm»

Java et les bases de données

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Hébergement MMI SEMESTRE 4

SQL Server 2012 et SQL Server 2014

Vulnérabilités et solutions de sécurisation des applications Web

Bases de données cours 1

INTRODUCTION À PYRAMID Gaël Bearstech. Crédits: Blaise Laflamme

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure

UE 8 Systèmes d information de gestion Le programme

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Bases de données documentaires et distribuées Cours NFE04

Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC Francisco. Juin 2013 LEXFO 1

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Guide Enseignant de l application OpenERP

Présentation de la solution Open Source «Vulture» Version 2.0

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

Dans le cadre de SECURIDAY Et sous le thème de Computer Forensics Investigation SECURINETS. Analyse des fichiers LOG. Tarek LABIDI (RT3)

FileMaker Server 12. publication Web personnalisée avec XML

JOSY. Paris - 4 février 2010

Urbanisation des SI Conduite du changement IT 20/03/09. Patrick CHAMBET

PySQLi. Framework d'injection de code SQL

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Analyses croisées de sites Web pour détecter les sites de contrefaçon. Prof. Dr. Olivier Biberstein

LA PROTECTION DES DONNÉES

Applications Facebook : Quels Risques pour l Entreprise?

Mise à jour : Octobre 2011

Introduction à. Oracle Application Express

Intégration de systèmes

Windows Azure. Principales fonctions

Créer une connexion entre Sage CRM et Sage Etendue pour émettre directement des devis et commandes

Les bases de données relationnelles

SIMPLE CRM ET LA SÉCURITÉ

Joomla! Création et administration d'un site web - Version numérique

Les technologies du Big Data

Hébergement de sites Web

Formation Website Watcher

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

Bases de données documentaires et distribuées Cours NFE04

Qu est ce que Visual Guard. Authentification Vérifier l identité d un utilisateur

Plateforme WikiJob spécifications

Benjamin Cornu Florian Joyeux. Les choses à connaître pour (essayer) de concurrencer Facebook.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Hibernate vs. le Cloud Computing

JSSI mars 2012 Laurent Butti Orange France DMGP/PORTAIL

Can we trust smartphones?

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

PHP. PHP et bases de données

TP2 : Client d une BDD SqlServer

Technologies Web avancées. ING1 SIGL Technologies Web avancées

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Groupe Eyrolles, 2004 ISBN :

Mercredi 15 Janvier 2014

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

LEA.C5. Développement de sites Web transactionnels

OFFRE MDB Service & Architecture Technique. MyDataBall Saas (Software as a Service) MyDataBall On Premise

UltraBackup NetStation 4. Guide de démarrage rapide

Rapport de certification ANSSI-CSPN-2010/05. ModSecurity v2.5.12

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

I. Instalation de l environnement JDK et JRE : II. Configuration outil Reporting : Pentaho... 4

ENSIAS Rapport De Stage BPCS. Rapport de stage. Encadré par : MAREQUAZ Saâd. Réalisé par : Pratic Abdellah

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

3 Octobre Les Communautés MS

Nouveautés ArcGIS 10.2

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

Transcription:

Les injections NoSQL JSSI 2012

AGENDA NoSQL? Attaques d injection NoSQL Injection NoSQL en aveugle Protection Synthèse

NOSQL? Une multitude de technologies

NOSQL? Une multitude d acteurs

NOSQL? Objectif Proposer une alternative aux bases de données relationnelles classiques Caractéristique Absence de schéma prédéfini (le plus souvent) Pas d utilisation du langage SQL

NOSQL? Avantages Partitionnement facile des données sur un grand nombre de serveurs Souplesse d utilisation Très bonne scalabilité Inconvénient Pas d intégrité assurée par le moteur NoSQL

AGENDA NoSQL? Attaques d injection NoSQL Injection NoSQL en aveugle Protection Synthèse

Et la sécurité? Le mécanisme d attaque par injection SQL classique est bien connu

Et les injections NoSQL? Exemple sur MongoDB Requête d authentification NoSQL: $res = $coll->findone(array('$where' => "this.login == '$login' && this.password == '$password' "));

Et les injections NoSQL? Exemple sur MongoDB Requête d authentification NoSQL: $res = $coll->findone(array('$where' => "this.login == '$login' && this.password == '$password' ")); Elément injecté: A' 1==1 //

Et les injections NoSQL? Exemple sur MongoDB Requête d authentification NoSQL: $res = $coll->findone(array('$where' => "this.login == '$login' && this.password == '$password' ")); Elément injecté: A' 1==1 // Requête finalement effectuée $res = $coll->findone(array('$where' => "this.login == 'admin' && this.password == 'A' 1==1 //' "));

Démo

Cas particulier du PHP L API PHP utilise les tableaux associatifs comme opérateur Exemple: $db->find(array("uid" => array("$gt" => 500)));

Cas particulier du PHP Le moteur PHP transforme certain format d URL en tableau Exemple: http://www.example.com/?nom_du_tableau[clef]=valeur Sera interprété: $_GET['nom_du_tableau']=array('clef'=>'valeur') ;

Cas particulier du PHP Exemple de requête d authentification $res = $coll->findone(array('login' => $_REQUEST["login"], 'password' => $_REQUEST["password"])); Authentification contournable par une requête du type: http://www.example.com/authentication.php?login=admin&pa ssword[$ne]=111 Requête résultat $res = $coll->findone(array('login' => $_REQUEST["login"], 'password' => array( «ne» => 111 ) );

AGENDA NoSQL? Attaques d injection NoSQL Injection NoSQL en aveugle Protection Synthèse

Injection NoSQL en aveugle Il est possible d injecter du code Javascript interprété par le serveur Exemple: http://www.example.com/vulnerable.php?parama=a'; return db.version().lenght<10;//

Injection NoSQL en aveugle Exploitable de manière similaire à l injection SQL en aveugle Détection d un point d injection NoSQL Injection d un test binaire Dichotomie caractère par caractère Contrainte : très long à exploiter manuellement

Fonctions utiles pour l exploitation Fonctions d introspection db.getcollectionnames() db.nom_collection.find() Fonctions sur les chaines de caractères Longueur d une chaine : string.length Sélection d un caractère dans une chaine : string[i] Valeur numérique (unicode) d un caractère : charcodeat()

Automatisation Communication avec le serveur vulnérable Analyse du résultat du test binaire Récupération du résultat bit à bit Utilisation des fonctions d introspection Extraction du contenu de la base de données

Démo

Développement futur Support d autres moteurs de base de données NoSQL. Ajout des fonctionnalités d exploitation avancée: Lecture de fichier Déni de service Exécution de code Time-based injection

AGENDA NoSQL? Attaques d injection NoSQL Injection NoSQL en aveugle Protection Synthèse

PROTECTIONS Valider les entrées utilisateurs S assurer du type des entrées utilisateur $login = (string) $_REQUEST["login"] Encoder les caractères spéciaux dans les entrées utilisateur ou interdire leur utilisation : " / \ $ ] [

AGENDA NoSQL? Attaques d injection NoSQL Injection NoSQL en aveugle Protection Synthèse

SYNTHÈSE Nouvelle technologie, mêmes vulnérabilités Les vulnérabilités d injection restent toujours autant d actualité La gestion des entrées utilisateurs reste centrale dans la sécurité des applications Utiliser les fonction de sécurité de l API si disponible, Encoder les caractères spéciaux dans les entrées utilisateur, ou interdire leur utilisation.

Outil et application vulnérable disponible http://www.ngmsecurity.fr/outils-nosql-injector/ Références Server-Side JavaScript Injection, Bryan Sullivan BlackHat 2011 MISC 60 : Attaques NoSQL

Questions?