The Mozilla Art Of War. David Teller. 20 septembre 2008. Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

Documents pareils
Les rootkits navigateurs

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

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

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

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Sessions en ligne - QuestionPoint

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

LES REGLES ELEMENTAIRES DE SECURITE LE POSTE DE TRAVAIL. CNRS RSSIC version du 11 mai 2012

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 20/06/2007. AUTEUR : Equipe technique Syfadis

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

JAB, une backdoor pour réseau Win32 inconnu

OSSIR Groupe SécuritS. curité Windows. Réunion du du 9 octobre 2006 EADS. Réunion OSSIR du 09/10/2006. page 1

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

Préconisations Portail clients SIGMA

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

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Avantages. Protection des réseaux corporatifs de gestion centralisée

«Obad.a» : le malware Android le plus perfectionné à ce jour

4D Web 2.0 Pack DATA LIVES HERE. TM. Internet Riche et Solutions Mobiles en toute simplicité. 4D Ajax Framework 4D Ajax for Dreamweaver 4D for Flex


Programmation Web. Madalina Croitoru IUT Montpellier

Mozilla Firefox 3.5. Google Chrome 3.0 LES NAVIGATEURS WEB. (pour Windows) Opéra 10. Internet Explorer 8. Safari 4.0

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Création d un «Web Worm»

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

LEA.C5. Développement de sites Web transactionnels

Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Bureautique Initiation Excel-Powerpoint

E-Remises Paramétrage des navigateurs

emuseum PUBLIEZ VOS COLLECTIONS SUR INTERNET Pourquoi choisir emuseum? Intégration facile avec TMS Puissante fonction de recherche

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

La balise object incorporer du contenu en HTML valide strict

Introduction à. Oracle Application Express

DenyAll Detect. Documentation technique 27/07/2015

COMPÉTENCES TECHNIQUES

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Crédits... xi. Préface...xv. Chapitre 1. Démarrer et arrêter...1. Chapitre 2. L interface utilisateur...25

Protection des protocoles

dmp.gouv.fr Pour en savoir plus DMP Info Service : 24h/24 7j/7

Module BD et sites WEB

Mandataires, caches et filtres

Installation d OpenVPN

Guide d installation de SugarCRM Open Source version 4.5.1

Vulnérabilité des postes clients

Présentation de Firefox

Ajax, RIA et HTML Prise en charge d Ajax

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

Release Notes POM v5

Faille dans Internet Explorer 7

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

Consultant-Développeur en informatique

Environnements de développement (intégrés)

Idées et propositions de cours. «Cookies, Cache & Co!» NetLa Matériel pédagogique 6. Campagne pour la protection de la personnalité

NetCrunch 6. Superviser

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

Adresse directe fichier : Adresse url spécifique sur laquelle le lien hypertext du Client doit être

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

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

Tutoriel QSOS. Version /02/2013

Quels fondements, services fonctionnalités et limites de l intranet?

Logiciel Libre Cours 9 Modèles Économiques

ANSSI PROCEDURES DE REPORTING DES INCIDENTS AVEC LE CIRT RÔLES DES PARTIES PRENANTES 15/02/2014. SEMINAIRE DE Joly Hôtel

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

Bilan 2008 du Cert-IST sur les failles et attaques

Éléments de programmation et introduction à Java

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

BES WEBDEVELOPER ACTIVITÉ RÔLE

Chapitre 2 : Abstraction et Virtualisation

CHAPITRE 11. Temps réel Remy Sharp

La fuite d informations dans Office et Windows

Comment configurer votre navigateur pour Belfius Direct Net (Business)?

Des solutions sur mesure à partir de modules fonctionnels & CRM associés à un studio de customisation.

Attaques applicatives

Disque Dur Internet «Découverte» Guide d utilisation du service

Security Exposed. #1 - Take the red pill. An introduction to hacking & security flaws. ... and follow the white rabbit

Installation de Premium-RH

Le stockage local de données en HTML5

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

1. Installation standard sur un serveur dédié

Sécurité des systèmes informatiques Introduction

Google Merchant Center

Problème d affichage de rapports ou relevés dans HEC en ligne lié aux bloqueurs de pop-up

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Sécuriser les achats en ligne par Carte d achat

SITE I NTERNET. Conception d un site Web

sshgate Patrick Guiran Chef de projet support

Rapports d activités et financiers par Internet. Manuel Utilisateur

Sécurité des applications web. Daniel Boteanu

Version: 1.1 Date du document: 07 Novembre 2013 N du document: Guide Utilisateur Mandant. Guide utilisateur Mandant Page 1 de 20

Sommaire. -1-Computer en bref. Web en bref. Le web 3.0,...la mobilité. Evolution du Web web1.0, web2.0, web2.b, web3.0...

10. Base de données et Web. OlivierCuré

Nouveautés Ignition v7.7

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

IBM Power Systems - IBM i IBM Rational

Transcription:

The Mozilla Art Of War Laboratoire d Informatique Fondamentale d Orléans 20 septembre 2008

Firefox, c est sûr

Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité.

Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité. Hein?

Firefox, c est sûr Donc je vais faire mes extensions sous Firefox, elles seront en sécurité. Hein? Il est temps de faire peur à ces développeurs d extensions.

Attention

Attention Écouter cet exposé peut vous amener en prison.

Attention Écouter cet exposé peut vous amener en prison. (merci Dadvsi)

En fait, Firefox, c est... Que sait faire Firefox?

En fait, Firefox, c est... Que sait faire Firefox? 1. Résoudre des noms, négocier des connexions. 2. Télécharger des trucs. 3. Installer des extensions.

En fait, Firefox, c est... Que sait faire Firefox? 1. Résoudre des noms, négocier des connexions. 2. Télécharger des trucs. 3. Installer des extensions. 4. Exécuter du JavaScript. 5. Exécuter des templates.

En fait, Firefox, c est... Que sait faire Firefox? 1. Résoudre des noms, négocier des connexions. 2. Télécharger des trucs. 3. Installer des extensions. 4. Exécuter du JavaScript. 5. Exécuter des templates. 6. Afficher des images, des animations, jouer des musiques. 7. Afficher des pages web, des interfaces xul.

En fait, Firefox, c est... Que sait faire Firefox? 1. Résoudre des noms, négocier des connexions. 2. Télécharger des trucs. 3. Installer des extensions. 4. Exécuter du JavaScript. 5. Exécuter des templates. 6. Afficher des images, des animations, jouer des musiques. 7. Afficher des pages web, des interfaces xul. 8. Stocker des cookies, des relations, des triplets... 9. Recharger des cookies, des relations, des triplets...

En d autres termes, Firefox, c est... Que sait faire Firefox?

En d autres termes, Firefox, c est... Que sait faire Firefox? 1 3 Installer et charger des applications (locales et client-serveur).

En d autres termes, Firefox, c est... Que sait faire Firefox? 1 3 Installer et charger des applications (locales et client-serveur). 4 5 Exécuter des applications.

En d autres termes, Firefox, c est... Que sait faire Firefox? 1 3 Installer et charger des applications (locales et client-serveur). 4 5 Exécuter des applications. 6 7 Proposer des interfaces graphiques.

En d autres termes, Firefox, c est... Que sait faire Firefox? 1 3 Installer et charger des applications (locales et client-serveur). 4 5 Exécuter des applications. 6 7 Proposer des interfaces graphiques. 8 9 Stocker et relire des informations.

En d autres termes, Firefox, c est... Que sait faire Firefox? 1 3 Installer et charger des applications (locales et client-serveur). 4 5 Exécuter des applications. 6 7 Proposer des interfaces graphiques. 8 9 Stocker et relire des informations. Ça ne vous rappelle rien?

The browser is the OS

The browser is the OS Avec de grands pouvoirs, viennent quelques questions : Les applications peuvent-elles être compromises? Le système peut-il être compromis par une application locale? Le système peut-il être compromis à distance?

The browser is the OS Avec de grands pouvoirs, viennent quelques questions : Les applications peuvent-elles être compromises? Le système peut-il être compromis par une application locale? Le système peut-il être compromis à distance? Note Nous parlons du modèle de sécurité, pas d éventuels bugs.

Page HTML Interface XUL Gecko Code JavaScript Windows / Linux / MacOS X / BSD /...

Page HTML Interface XUL Gecko Code JavaScript NSPR Windows / Linux / MacOS X / BSD /...

Page HTML Interface XUL Gecko (et Necko) XPCOM Code JavaScript NSPR Windows / Linux / MacOS X / BSD /...

Applications Page distantes Interface Applications Code locales (HTML, XUL, CSS, JS) XUL (HTML, XUL, JavaScript CSS, JS) Gecko (et Necko) XPCOM (et SpiderMonkey) NSPR Windows / Linux / MacOS X / BSD /...

plug-ins/extensions (Flash, Quicktime, Java, Gears...) Applications Page distantes Interface (HTML, XUL, CSS, JS) XUL Gecko (et Necko) NSPR Applications Code locales (HTML, XUL, JavaScript CSS, JS) XPCOM (et SpiderMonkey) XPConnect Windows / Linux / MacOS X / BSD /...

plug-ins/extensions (Flash, Quicktime, Java, Gears...) Applications Page distantes Interface (HTML, XUL, CSS, JS) XUL Gecko (et Necko) NSPR Applications Code locales (HTML, XUL, JavaScript CSS, JS) XPCOM (et SpiderMonkey) Composants natifs XPConnect Windows / Linux / MacOS X / BSD /...

Quelques critères de sécurité Définition Un système est sécurisé si ce qui n est pas autorisé ne peut pas arriver.

Quelques critères de sécurité Définition Un système est sécurisé si ce qui n est pas autorisé ne peut pas arriver. Confidentialité Une application peut lire les informations secrètes d une autre? Intégrité Une application peut-elle modifier le fonctionnement d une autre?

Quelques critères de sécurité Définition Un système est sécurisé si ce qui n est pas autorisé ne peut pas arriver. Confidentialité Une application peut lire les informations secrètes d une autre? Intégrité Une application peut-elle modifier le fonctionnement d une autre? Échanges Une application peut-elle communiquer avec une autre sans risque? Limites Où s arrête le modèle?

Unix Confidentialité Applications isolées par défaut. Mémoire partagée sur demande. Intégrité Applications isolées par défaut. Mémoire partagée sur demande.

Unix Confidentialité Applications isolées par défaut. Mémoire partagée sur demande. Intégrité Applications isolées par défaut. Mémoire partagée sur demande. Échanges Bibliothèques de communication, avec contrôle.

Unix Confidentialité Applications isolées par défaut. Mémoire partagée sur demande. Intégrité Applications isolées par défaut. Mémoire partagée sur demande. Échanges Bibliothèques de communication, avec contrôle. Limites Accès aux ressources pas réellement isolé

Unix Confidentialité Applications isolées par défaut. Mémoire partagée sur demande. Intégrité Applications isolées par défaut. Mémoire partagée sur demande. Échanges Bibliothèques de communication, avec contrôle. Limites Accès aux ressources pas réellement isolé Interactions lourdes mais plutôt robustes.

Mozilla Confidentialité Informations globales cachées uniquement par capacité ou pas du tout. Les clôtures permettent de cacher des choses. Intégrité Un objet connu peut généralement être modifié..

Mozilla Confidentialité Informations globales cachées uniquement par capacité ou pas du tout. Les clôtures permettent de cacher des choses. Intégrité Un objet connu peut généralement être modifié.. Échanges window, évènements.

Mozilla Confidentialité Informations globales cachées uniquement par capacité ou pas du tout. Les clôtures permettent de cacher des choses. Intégrité Un objet connu peut généralement être modifié.. Échanges window, évènements. Limites Accès à XPCom pas réellement isolé.

Mozilla Confidentialité Informations globales cachées uniquement par capacité ou pas du tout. Les clôtures permettent de cacher des choses. Intégrité Un objet connu peut généralement être modifié.. Échanges window, évènements. Limites Accès à XPCom pas réellement isolé. C++ omnipotent.

Mozilla Confidentialité Informations globales cachées uniquement par capacité ou pas du tout. Les clôtures permettent de cacher des choses. Intégrité Un objet connu peut généralement être modifié.. Échanges window, évènements. Limites Accès à XPCom pas réellement isolé. C++ omnipotent. Interactions riches mais dangereuses.

Filtre anti-phishing? Ce que l extension devrait faire Vérifier si l utilisateur visite uniquement des sites sûrs : function AntiPhishing () { } AntiPhishing. prototype = { displaysafety : function (e) { var browser = getbrowser (); if( checksafetysomehow ( browser. currenturi )) // laisser passer else // refuser l adresse } } getbrowser (). addeventlistener ("onload ", function (e){ antiphising.displaysafety (e )});

Ou filtre pro-phishing? Ou après piratage... Faire croire que "http://break.your-computer.xxx" est sûr : var olddisplaysafety = AntiPhishing. prototype. displaysafety ; AntiPhishing. prototype. displaysafety = function (e) { var browser = getbrowser (); if( browser. currenturi. host == " break.your - computer. xxx ") // accepter l adresse else olddisplaysafety. apply (this, [e ]); }

Recette générale 1. explorer window, surcharger Array.push, String.indexOf...

Recette générale 1. explorer window, surcharger Array.push, String.indexOf... 2. trouver un objet de l extension 3. trouver son prototype

Recette générale 1. explorer window, surcharger Array.push, String.indexOf... 2. trouver un objet de l extension 3. trouver son prototype 4. lire les propriétés éventuellement secrètes 4.1 directement 4.2 subtilement, avec Object.toSource / Object.watch 4.3 violemment, à coups de débogueur ou C++

Recette générale 1. explorer window, surcharger Array.push, String.indexOf... 2. trouver un objet de l extension 3. trouver son prototype 4. lire les propriétés éventuellement secrètes 4.1 directement 4.2 subtilement, avec Object.toSource / Object.watch 4.3 violemment, à coups de débogueur ou C++ 5. si nécessaire, 5.1 remplacer les méthodes de manière transparente 5.2 remplacer les propriétés par des accesseurs transparents 5.3 s en servir pour trouver d autres objets 5.4 reprendre à 2

Recette générale 1. explorer window, surcharger Array.push, String.indexOf... 2. trouver un objet de l extension 3. trouver son prototype 4. lire les propriétés éventuellement secrètes 4.1 directement 4.2 subtilement, avec Object.toSource / Object.watch 4.3 violemment, à coups de débogueur ou C++ 5. si nécessaire, 5.1 remplacer les méthodes de manière transparente 5.2 remplacer les propriétés par des accesseurs transparents 5.3 s en servir pour trouver d autres objets 5.4 reprendre à 2 6. si nécessaire 6.1 remonter au contexte à l aide de parent 6.2 reprendre à 2

Pour s en prémunir cloisonner le code à coups de clôtures, const, definegetter, definesetter, nosuchmethod composants XPCom modules jsm s en servir pour couper les chemins depuis le domaine partagé vers les objets internes au module surcharger tosource et watch

Pour s en prémunir cloisonner le code à coups de clôtures, const, definegetter, definesetter, nosuchmethod composants XPCom modules jsm s en servir pour couper les chemins depuis le domaine partagé vers les objets internes au module surcharger tosource et watch ne passer aucun objet important en argument à du JavaScript public ou du XPCom

Pour s en prémunir cloisonner le code à coups de clôtures, const, definegetter, definesetter, nosuchmethod composants XPCom modules jsm s en servir pour couper les chemins depuis le domaine partagé vers les objets internes au module surcharger tosource et watch ne passer aucun objet important en argument à du JavaScript public ou du XPCom pour plus de paranoïa, vous pouvez aussi désactiver le débogage régulièrement vérifier avec caller qui invoque vos méthodes critiques.

Bilan du round 1 Non de sécurité n est pas prévu pour protéger une application locale d une autre.

Bilan du round 1 Non de sécurité n est pas prévu pour protéger une application locale d une autre. Oui Sous JS, vos valeurs privées peuvent rester privées.

Bilan du round 1 Non de sécurité n est pas prévu pour protéger une application locale d une autre. Oui Sous JS, vos valeurs privées peuvent rester privées. Non Votre ennemi juré pourra toujours supprimer votre extension ou l empêcher de fonctionner. Non Vous ne pourrez pas vous défendre contre C++.

Bilan du round 1 Non de sécurité n est pas prévu pour protéger une application locale d une autre. Oui Sous JS, vos valeurs privées peuvent rester privées. Non Votre ennemi juré pourra toujours supprimer votre extension ou l empêcher de fonctionner. Non Vous ne pourrez pas vous défendre contre C++. Attention Votre ennemi juré pourra toujours s enfoncer plus profondément dans le système.

Mozilla Confidentialité Un script ne peut pas consulter des informations d un script d origine différente. Intégrité Deux scripts d origine différente ne peuvent pas interagir.

Mozilla Confidentialité Un script ne peut pas consulter des informations d un script d origine différente. Intégrité Deux scripts d origine différente ne peuvent pas interagir. Échanges Deux scripts d origine différente ne peuvent pas interagir.

Mozilla Confidentialité Un script ne peut pas consulter des informations d un script d origine différente. Intégrité Deux scripts d origine différente ne peuvent pas interagir. Échanges Deux scripts d origine différente ne peuvent pas interagir. Limites Le serveur ou le site peut prétendre que deux scripts ont la même origine.

Mozilla Confidentialité Un script ne peut pas consulter des informations d un script d origine différente. Intégrité Deux scripts d origine différente ne peuvent pas interagir. Échanges Deux scripts d origine différente ne peuvent pas interagir. Limites Le serveur ou le site peut prétendre que deux scripts ont la même origine. Sans hack, pas d interactions du tout.

Mozilla (suite) Une fois que les interactions sont possibles... Confidentialité Comme applications locales. Intégrité Comme applications locales.

Mozilla (suite) Une fois que les interactions sont possibles... Confidentialité Comme applications locales. Intégrité Comme applications locales. Échanges Comme applications locales.

Mozilla (suite) Une fois que les interactions sont possibles... Confidentialité Comme applications locales. Intégrité Comme applications locales. Échanges Comme applications locales. Avec hack, aucune protection.

Recette générale 1. Se débrouiller pour créer une page qui mélange l application cible et le code pirate. 2. Trifouiller comme applications locales.

Recette générale 1. Se débrouiller pour créer une page qui mélange l application cible et le code pirate. 2. Trifouiller comme applications locales. Cross-Site Scripting (XSS) : 70% des alertes de sécurité, ces jours-ci.

Pour s en protéger En résumé : Oublier eval. Vérifier que le seul code JS sur vos pages est bien votre code. Clôtures, etc.

Pour s en protéger En résumé : Oublier eval. Vérifier que le seul code JS sur vos pages est bien votre code. Clôtures, etc. Plus de détails une autre fois, aujourd hui, on parle d extensions.

Mozilla Confidentialité Une application locale peut consulter toutes les informations du système. Intégrité Une application locale peut agir sur le système sans limites.

Sans limites? Une extension suffisamment malicieuse (ou un plug-in) peut : accéder au système d exploitation donner accès au système d exploitation à une application distante se faire passer pour une application locale, une page web...

Sans limites? Une extension suffisamment malicieuse (ou un plug-in) peut : accéder au système d exploitation donner accès au système d exploitation à une application distante se faire passer pour une application locale, une page web... Applications directes : Phishing Rediriger un site bancaire vers un site pirate identique. Sabotage Oublier vos mots de passe. Vol Envoyer vos mots de passe à un pirate.

Sans limites? Une extension suffisamment malicieuse (ou un plug-in) peut : accéder au système d exploitation donner accès au système d exploitation à une application distante se faire passer pour une application locale, une page web... Applications directes : Phishing Rediriger un site bancaire vers un site pirate identique. Sabotage Oublier vos mots de passe. Vol Envoyer vos mots de passe à un pirate. Sabotage Supprimer vos fichiers. Vol Envoyer vos fichiers à un pirate.

Sans limites? Une extension suffisamment malicieuse (ou un plug-in) peut : accéder au système d exploitation donner accès au système d exploitation à une application distante se faire passer pour une application locale, une page web... Applications directes : Phishing Rediriger un site bancaire vers un site pirate identique. Sabotage Oublier vos mots de passe. Vol Envoyer vos mots de passe à un pirate. Sabotage Supprimer vos fichiers. Vol Envoyer vos fichiers à un pirate. Escalade S emparer d un mot de passe sudoer.

Sans limites? Une extension suffisamment malicieuse (ou un plug-in) peut : accéder au système d exploitation donner accès au système d exploitation à une application distante se faire passer pour une application locale, une page web... Applications directes : Phishing Rediriger un site bancaire vers un site pirate identique. Sabotage Oublier vos mots de passe. Vol Envoyer vos mots de passe à un pirate. Sabotage Supprimer vos fichiers. Vol Envoyer vos fichiers à un pirate. Escalade S emparer d un mot de passe sudoer. Note C est exactement le syndrome ActiveX.

Mozilla Confidentialité Une application distante ne peut pas consulter les informations du système. Intégrité Une application distante ne peut pas agir sur le système.

Mozilla Confidentialité Une application distante ne peut pas consulter les informations du système. Intégrité Une application distante ne peut pas agir sur le système. Limites Une application distante peut presque se faire passer pour une application locale.

Mozilla Confidentialité Une application distante ne peut pas consulter les informations du système. Intégrité Une application distante ne peut pas agir sur le système. Limites Une application distante peut presque se faire passer pour une application locale. Limites Flash, Java, Quicktime, Google Gears...

Mozilla Confidentialité Une application distante ne peut pas consulter les informations du système. Intégrité Une application distante ne peut pas agir sur le système. Limites Une application distante peut presque se faire passer pour une application locale. Limites Flash, Java, Quicktime, Google Gears... et votre extension.

Les limites Une application locale peut : modifier une page web échanger des évènements avec des pages web

Les limites Une application locale peut : modifier une page web échanger des évènements avec des pages web passer des références à une page web

Les limites Une application locale peut : modifier une page web échanger des évènements avec des pages web passer des références à une page web étendre la bibliothèque JavaScript.

Les limites Une application locale peut : modifier une page web échanger des évènements avec des pages web passer des références à une page web étendre la bibliothèque JavaScript. Quelqu un a pensé à tester la résistance de Google Gears à de l injection SQL?

Les limites Une application locale peut : modifier une page web échanger des évènements avec des pages web passer des références à une page web étendre la bibliothèque JavaScript. Quelqu un a pensé à tester la résistance de Google Gears à de l injection SQL? Ou à du XSS?

Les limites Une application locale peut : modifier une page web échanger des évènements avec des pages web passer des références à une page web étendre la bibliothèque JavaScript. Quelqu un a pensé à tester la résistance de Google Gears à de l injection SQL? Ou à du XSS? Une bibliothèque privilégiée pour un site web peut se retrouver utilisée par un autre site malicieux et ainsi donner accès à tout le système.

Pour se protéger Protéger l application locale comme d habitude. Protéger l application distante comme d habitude.

Pour se protéger Protéger l application locale comme d habitude. Protéger l application distante comme d habitude. Ne pas laisser traîner des références locales. Ne jamais avoir confiance en une page web.

Alors?

Alors?

Bilan Une application locale a tous les droits. Une application distante n a aucun droit dangereux. Une application locale malicieuse / boguée peut donner tous les droits à une application distante.

Bilan Une application locale a tous les droits. Une application distante n a aucun droit dangereux. Une application locale malicieuse / boguée peut donner tous les droits à une application distante. On ne peut pas se protéger contre C++.

Solutions techniques Protégez votre code. Pour une application non-browser, préférez XULRunner à Firefox. Pour une application hybride desktop/web, préférez Prism à Firefox. Faites attention aux bibliothèques.

Solution communautaire La vraie raison de la sécurité de Firefox s appelle AMO (http://addons.mozilla.org).

Solution communautaire La vraie raison de la sécurité de Firefox s appelle AMO (http://addons.mozilla.org). Quelques critères de rejet : Code JS téléchargé dynamiquement. Code XUL téléchargé dynamiquement. Code binaire téléchargé et installé dynamiquement. Mises-à-jour non contrôlées.

Solution communautaire La vraie raison de la sécurité de Firefox s appelle AMO (http://addons.mozilla.org). Quelques critères de rejet : Code JS téléchargé dynamiquement. Code XUL téléchargé dynamiquement. Code binaire téléchargé et installé dynamiquement. Mises-à-jour non contrôlées....ou si une faille est trouvée!

Solution communautaire La vraie raison de la sécurité de Firefox s appelle AMO (http://addons.mozilla.org). Quelques critères de rejet : Code JS téléchargé dynamiquement. Code XUL téléchargé dynamiquement. Code binaire téléchargé et installé dynamiquement. Mises-à-jour non contrôlées....ou si une faille est trouvée! En pratique, la solution communautaire marche pas mal du tout.

Solution communautaire La vraie raison de la sécurité de Firefox s appelle AMO (http://addons.mozilla.org). Quelques critères de rejet : Code JS téléchargé dynamiquement. Code XUL téléchargé dynamiquement. Code binaire téléchargé et installé dynamiquement. Mises-à-jour non contrôlées....ou si une faille est trouvée! En pratique, la solution communautaire marche pas mal du tout. gardez votre code simple si vous voulez qu il soit accepté!

L avenir de JavaScript JavaScript 2 arrive.

L avenir de JavaScript JavaScript 2 arrive. Les modules entrent en force. Exit eval (ou presque). Typage statique + programmation défensive? Un typage dynamique plus puissant. Valeurs privées/protégées contre les modifications. Meilleure gestion des erreurs.

Alternatives D autres techniques sont possibles : Restriction de privilèges Séparation des extensions Analyse statique Compilateurs sûrs

Alternatives D autres techniques sont possibles : Restriction de privilèges cf. nsscriptsecuritymanager Séparation des extensions Analyse statique Compilateurs sûrs

Alternatives D autres techniques sont possibles : Restriction de privilèges cf. nsscriptsecuritymanager Séparation des extensions mais ça va tout casser Analyse statique Compilateurs sûrs

Alternatives D autres techniques sont possibles : Restriction de privilèges cf. nsscriptsecuritymanager Séparation des extensions mais ça va tout casser Analyse statique typage/interprétation abstraite Compilateurs sûrs

Alternatives D autres techniques sont possibles : Restriction de privilèges cf. nsscriptsecuritymanager Séparation des extensions mais ça va tout casser Analyse statique typage/interprétation abstraite Compilateurs sûrs Caja, etc.

Alternatives D autres techniques sont possibles : Restriction de privilèges cf. nsscriptsecuritymanager Séparation des extensions mais ça va tout casser Analyse statique typage/interprétation abstraite Compilateurs sûrs Caja, etc. Toutes ces techniques nécessitent de rejeter les extensions qui contiennent du code binaire.

Derniers mots C est bon, je vous ai fait peur?

Derniers mots C est bon, je vous ai fait peur? Stagiaires wanted!

Merci pour votre attention Des questions?