Macaron Une porte dérobée pour JavaEE

Documents pareils
Porte dérobée dans les serveurs d'applications JavaEE

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

JOnAS Day 5.1. Outils de développements

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

1. Installation d'un serveur d'application JBoss:

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

LICENCE PROFESSIONNELLE

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Guide de déploiement d'applications FormPublisher

JAB, une backdoor pour réseau Win32 inconnu

EXA1415 : Annotations

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Applications et Services WEB: Architecture REST

Formation en Logiciels Libres. Fiche d inscription

Curriculum Vitae de Michel Casabianca

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

JOnAS Day 5.1. Clustering

Installation du package esup-portail Version uportal-2.5.x-esup

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Utilisation de Jakarta Tomcat

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

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

TP réseau Android. Bidouilles Tomcat. a) Installer tomcat : il suffit de dézipper l'archive apache-tomcat windowsx64.zip.

Serveur d'application à la juste taille

Installation et prise en main

J2EE - Introduction. Développement web - Java. Plan du chapitre

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

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Introduction à la plateforme J2EE

THEGREENBOW FIREWALL DISTRIBUE TGB::BOB! Pro. Spécifications techniques

Environnements de Développement

Introduction aux «Services Web»

Architecture et infrastructure Web

Mobilité, quand tout ordinateur peut devenir cheval de Troie

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

Déployer les Fonts, Icones, et Images avec Forms Services 11G


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.

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Sommaire: 1. Introduction 2. Objectif 3. Les applications 4. Installation _Java _Applications lourdes _Applications légères _Remarques générales

Java pour le Web. Cours Java - F. Michel

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Création d un «Web Worm»

Etude de l ENT de l Université de Paris 5. Mise en place d outils de suivi de la charge de l ENT (monitoring)

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Documentation Projet ASR : Construction d un système réparti multi-échelle

Projet Java EE Approfondi

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Introduction au Déploiement

Titre: Version: Dernière modification: Auteur: Statut: Licence:

Web Tier : déploiement de servlets

Compte Rendu d intégration d application

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

Compétences informatiques

Programmation Web. Introduction

Test de HSQLDB et Comparatif avec Sqlite

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Point sur les solutions de développement d apps pour les périphériques mobiles

Présentation d'un Réseau Escolan

Catalogue Formations Jalios

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

JOnAS 5 Enterprise OSGi javaee compliant

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

A. Architecture du serveur Tomcat 6

1 JBoss Entreprise Middleware

Expert technique J2EE

WebSSO, synchronisation et contrôle des accès via LDAP

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Sécurité des réseaux Les attaques

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Phase 1 : Introduction 1 jour : 31/10/13

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

Application Web et J2EE

Offre LinShare. Présentation. Février Partage de fichiers sécurisé. LinShare 1.5

CAS, la théorie. R. Ferrere, S. Layrisse

Business et contrôle d'accès Web

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Documentation d'installation Plateforme femme actuelle

«ASSISTANT SECURITE RESEAU ET HELP DESK»

Guide de mise à jour de Suite SAP Business Intelligence Patch 10.x

Titre: Version: Dernière modification: Auteur: Statut: Licence:

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

ELO Office / Pro Les avantages : Archivage et gestion documentaire

Pentaho. présentation

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Méta-annuaire LDAP-NIS-Active Directory

Réf. : S2I-CIELL2-PI-1.0. Version : 1.0. Auteurs : S2I-TOULON

Authentification et contrôle d'accès dans les applications web

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Développement des Systèmes d Information

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

Direction des Technologies de l Information. Présentation OCDE. Contribution du Parlement européen. L utilisation de l OPEN SOURCE au PE

Glossaire. Acces Denied

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Transcription:

Macaron Une porte dérobée pour JavaEE Philippe PRADOS SSTIC 5 Juin 2009

Curriculum Vitae» Philippe Prados» Architecte, Consultant» Expert sécurité applicative 2

Backdoor JavaEE» L'affaire Kerviel à démontré que les attaques peuvent venir de l'intérieur de l'entreprise.» Les développeurs peuvent laisser des portes dérobées permettant une exploitation inhabituelle de l'application if (contribuable.equals("philippe")) impot=(byte)impot;» Quels sont les risques et comment s'en protéger? 3

Sommaire» Objectif du pirate» Démonstration» Attaques» Solutions 4

À la place du pirate» Pour la bonne cause, nous somme dans l'optique d'un pirate.» Quels sont les objectifs?» Quels sont les moyens de détection à contourner? 5

Une porte dérobée» Doit résister à un audit du code de l'application» Doit résister à un audit de configuration» Doit résister à un pentest» Doit résister aux évolutions futures du code» Il ne doit pas y avoir de dépendance avec le code existant.» Doit contourner le firewall réseau et le firewall applicatif» La communication avec la porte doit être invisible» Doit contourner la séparation entre les développements et la production 6

Sommaire» Objectif du pirate» Démonstration» Attaques» Solutions 7

Sommaire» Objectif du pirate» Démonstration» Attaques» Solutions 8

Techniques d'attaques» Présent dans une archive déclarée saine (JAR).» Exécution de code par la simple présence de l'archive JAR» Bootstrap par piège du code, plusieurs stratégies : - Surcharge d'une classe - Ajout d'un fichier de paramétrage - Utilisation des annotations - Exploitation d'un «Ressource Bundle» - Exploitation de l'aop - Détournement d'un «service» - Génération de classes lors de la compilation 9

Contourner les firewalls réseaux et applicatifs» Il faut utiliser les canaux de communications de l'application (HTTP)» Ainsi que ces requêtes» Même URL, mêmes paramètres, mêmes formats des valeurs des champs» Solution» S'injecter dans le flux de traitements des requêtes HTTP pour les capturer Filtre web.xml Valve Apache 10 AutoProxy AOP Valve Filtre JavaEE Servlet Framework MVC

Détection de l'ouverture et agents» Sur la présence d'une clef dans un champ quelconque d'un formulaire :» détournement du traitement vers la porte dérobée» La clef est le mot Macaron en écriture «Elit» : M4c4r0n» Les logs serveurs peuvent révéler l'utilisation de la clef (généralement en GET, rarement en POST).» Différents agents d'analyse sont disponibles» History (les dernières requêtes HTTP)» JMX (Outils de gestion dynamique du serveur)» JNDI (Annuaire d'objets : DB, files, etc.)» SQL» Java/javascript (Compilation et exécution dynamique de code)» Shell 11

Diffusion» Le code est un bon exemple de ce que peut faire un développeur inconvenant» Pour vérifier que les protections sont en place, il faut les challenger» Le code proposé sert à cela (Proof Of Concept)» Il vous permet de qualifier votre environnement» Il est diffusé en archive non hostile, pas en source. 12

Le code à vocation «preuve de concept»» Il peut être utilisé pour qualifier l'environnement d'exécution» Les sources n'étant pas publique, rien ne garantie qu'il n'y a pas de deuxième porte dérobée dans le code (bon réflexe!).» J'affirme que ce n'est pas le cas, mais vous ne pouvez le vérifier sans une étude approfondie.» Donc, ne pas l'utiliser en production ;-)» Vous avez alors saisi le message important de cette présentation 13

Diffusion = risque?» «Vous diffusez un code de pirate!»» Un pirate étant capable de le décompiler est capable de l'écrire, et cela plus rapidement» Il est volontairement très verbeux. Les logs présents reçoivent un message signalant clairement sa présence et ce qu'il fait.» Une variable système est nécessaire à son exécution» -Dmacaron-backdoor=i-take-responsibility-for-my-actions» La clef est codée en «dur» et ne peut pas être modifiée» Une simple règle du firewall permet alors d'interdire son usage depuis le réseau. Il suffit de détecter le mot «M4c4r0n» pour couper la communication. 14

Injection de la porte dérobée dans un projet» Un développeur inconvenant peut :» Injecter une archive» Injecter le code dans une archive d'un composant Open Source utilisé par le projet» Déclarer une dépendance MAVEN ou Ivy dans un des composants du projet» Déclarer une dépendance MAVEN ou Ivy dans le repository standard de MAVEN. Ainsi, tous les projets injectent la porte dérobée!» Véroler les repository Maven ou Ivy» Véroler la compilation du projet, par la simple présence d'une archive (injection possible dans une javacard!) 15

Sommaire» Objectif du pirate» Démonstration» Attaques» Solutions 16

Les solutions Java» Java possède un mode sécurisé limitant fortement les possibilités de la porte dérobée» Correctement utilisée, la porte dérobée ne peut s'installer et capturer tout le trafic.» D'autres techniques de manipulation du code sont possible, mais plus spécifiques à chaque projet.» Lorsque la sécurité Java2 est activée, les APIs disponibles sont limitées» Les classes du serveurs d'applications ont tous les privilèges, mais pas les applications hébergées» (Choix de Google App Engine) 17

Dans la vraie vie» Les serveurs d'applications utilisent rarement la sécurité Java2» Pourquoi?» Les développeurs n'ayant jamais testé ce mode, ils ne savent pas les droits minimums nécessaires.» Dans le doute, pour ne pas faire planter l'application, tous les privilèges sont ouverts» Cela complexifie l'installation des composants car il faut modifier un fichier global du serveur d'application (*.policy).» L'utilitaire macaron-policy aide à gérer les privilèges à accorder à chaque composant. 18

Archives scellées» Java permet de sceller les packages dans les archives. Ainsi, si la sécurité Java2 est active, toutes les classes d'un package doivent venir de la même archive.» L'utilitaire macaron-seal se charge de sceller les archive.» Il peut sceller Tomcat en une ligne de commande, pour le renforcer. 19

Audit» Des symptômes peuvent éveiller des soupçons avant la mise en production.» L'utilitaire macaron-audit peut identifier des risques. 20

Deux patchs à OpenJDK 6 sont proposés» Pour contrer les attaques» RessourceBundle» ServiceLocator» Deux patchs sont proposés.» SUN et Tomcat travaillent sur ces vulnérabilités, sur la base de mes patchs 21

Conclusion» Vous n'êtes pas obligé de faire confiance aux prestataires» Imposez l'utilisation de la sécurité Java2 dès les phases de développement» Ne faite pas confiance aux repositories» Limitez au maximum les droits ouverts aux projets» Testez l'utilisation de la porte dérobée proposée dans votre projet.» Tous est ici : http://macaron.googlecode.com» Vidéo de démonstration» Les utilitaires pour renforcer la sécurité et détecter les portes» La porte dérobée de démonstration» Le rapport de recherche 22

Synthèse» Attaque générique, pour pratiquement toutes les applications à base de servlet» Invisible aux pare-feux applicatifs et réseau» Différentes techniques de pièges pour exécution de code caché» Différentes techniques d'injection dans le flux de traitement des requêtes HTTP» Risque dans toute la chaine de production ou de déploiement du code 23

Pour plus d informations, contacter : Philippe PRADOS +33 (0)6 70 03 89 60 macaron@philippe.prados.name Atos Origin 18 avenue d'alsace 92926, Paris la Défense Cedex www.atosorigin.fr