Développement d'un valideur XML en OCaml

Documents pareils
MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

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.

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Programmation Web Avancée Introduction aux services Web

Solutions web : instructions aux développeurs

Télécom Nancy Année

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

Architectures Web Services RESTful

Cours Langage C/C++ Programmation modulaire

1 Introduction. 2 Les contrats. 3 Les bindings. 4 Hébergement. 5 Consommation. 6 WCF et remoting. 7 Sessions, instantiations et concurrence

Présentation du PL/SQL

PROGRAMME DE FORMATION

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

XMLInvoice Standard de facturation dans le domaine de la santé publique suisse

Processus de Développement Logiciel

Processus de Développement Logiciel

Le standard d'échange de données pour l'archivage (SEDA)

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

Manuel d intégration API FTP SMS ALLMYSMS.COM

Web Application Models

PROSOP : un système de gestion de bases de données prosopographiques

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

PREAVIS DE LA MUNICIPALITE AU CONSEIL COMMUNAL


A. À propos des annuaires

Programmation des Applications Réparties. Parsers XML DOM et SAX

Outils de traitements de logs Apache

Les Architectures Orientées Services (SOA)

SECTION 5 BANQUE DE PROJETS

Bee Ware. Cible de Sécurité CSPN. Validation Fonctionnelle Validation Fonctionnelle Bon pour application AMOA BEEWARE BEEWARE

Développement d un interpréteur OCL pour une machine virtuelle UML.

LES FICHES Domaines. Domaine D1. Travailler dans un environnement numérique

L optimisation des performances, la simplification des montées de version G.O.L.D. et le suivi statistique des processus.

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Guide Utilisateur ACQUIT : Anomalies issues du Guichet XML

Introduction aux «Services Web»

Module http MMS AllMySMS.com Manuel d intégration

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

Examen de la saisine Définition de l'architecture du SINP. Contributeurs : Frédéric Gosselin, Pascal Dupont

Courtage sémantique de services de calcul

BES WEBDEVELOPER ACTIVITÉ RÔLE

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

Sécurité. Objectifs Gestion de PKI Signature Cryptage Web Service Security

OASIS Date de publication

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Compte-rendu re union Campus AAR 3 mars 2015

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Classification : public 1/59

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

CONSERVATOIRE NATIONAL DES ARTS ET METIERS. Centre Régional Associé de Nantes. Mémoire présenté en vue d obtenir l examen probatoire en informatique

Réalisation d'un seeder BitTorrent en CPC Stage de TRE sous la direction de J. Chroboczek et G. Kerneis

Business Process Modeling (BPM)

Table des matières. 10 Gimp et le Web. Option de traitement d'images Mémento pour la séance N o Création d'animation

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Trend Micro Worry-Free Business Security 8.0 Première installation : trucs et astuces

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

De la modélisation linguistique aux applications logicielles: le rôle des Entités Nommées en Traitement Automatique des Langues

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

4. SERVICES WEB REST 46

XMLInvoice Standard de facturation dans le domaine de la santé publique suisse

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Diagramme de classes

LA QUALITE DU LOGICIEL

Web & Libre. Outils pour être présent sur le net librement

Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

(VM(t i ),Q(t i+j ),VM(t i+j ))

Une approche qualitative pour la prise de décision sous contraintes non-fonctionnelles dans le cadre d une composition agile de services

Packet Tracer : configuration des listes de contrôle d'accès étendues, scénario 1

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Web Services : Beyond the peer-to-peer architecture

Sage CRM. Sage CRM 7.3 Guide du portable

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Architecture Orientée Service, JSON et API REST

Une introduction à Java

Programmation Orientée Objet

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Introduction Définition...3

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Accès réseau Banque-Carrefour par l Internet Version /06/2005

Cours de Programmation 2

PostgreSQL, le cœur d un système critique

Shibboleth. David Verdin - JOSY "Authentification centralisée pour les applications web" - Paris - 4 février mai

Projet de Conception N 1 Automatisation d'un processus de paiement. Livrable: Spécification du système de compensation

Curriculum Vitae. GISBERT Aurélien Ingénieur Informatique INSA Senior Business & Data Analyst Business Intelligence 11 ans d expérience

Généralités sur le Langage Java et éléments syntaxiques.

ech-0148 Motifs d annonce Entreprises - taxes de domaine

Méthodologies de développement de logiciels de gestion

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

Université de Bangui. Modélisons en UML

Microsoft Vista et Oce 2007

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

des Données et Référentiels sur l'eau Service d'administration Nationale

Transcription:

1/14 : Étude de la sécurité intrinsèque des langages fonctionnels 1 Partie IV sur IV Développement d'un valideur XML en OCaml Damien Doligez, Christèle Faure, Thérèse Hardin, Manuel Maarek - février 2013 Safety & Security Forge 1. Etude commanditée par l'agence Nationale de la Sécurité des Systèmes d'information

Développement d'une application de sécurité en OCaml 2/14 Pertinence de l'utilisation du langage OCaml pour le développement d'applications de sécurité Pertinence et applicabilité des recommandations de sécurité issues de l'étude du langage OCaml Faisabilité d'une évaluation de sécurité d'un logiciel écrit en OCaml

3/14 XSVGen Générateur de valideurs XML vis-à-vis de grammaires XSD (XML Schema) Conformément aux recommandations XML du W3C Conformément aux recommandations XSD du W3C Interprétation restrictive des langages XML et XSD pour souscrire à des objectifs de sécurité La sécurité des langages XML/XSD est hors du sujet de l'étude Cadre d'utilisation Protection de services prenant en entrée des chiers XML

Exemples XSD 4/14 Exemple de dénition d'un type simple XSD <xsd : schema xmlns :xsd=" http :// www.w3.org /2001/ XMLSchema " targetnamespace =" exemple type simple "> <xsd : element name =" test " type =" Test "> <xsd : simpletype name =" Test "> <xsd : union > <xsd : simpletype > <xsd : restriction base =" xsd : string "> <xsd : maxlength value ="3" > <xsd : pattern value ="a+"> <xsd : simpletype > <xsd : restriction base =" xsd : string "> <xsd : maxlength value ="3" > <xsd : pattern value ="b+"> Exemple de dénition d'un type complexe XSD <xsd : schema xmlns :xsd=" http :// www.w3.org /2001/ XMLSchema " targetnamespace =" exemple type complexe "> <xsd : complextype name =" base "> <xsd :all > <xsd : element name =" e1"> <xsd : element name =" e2"> <xsd : element name =" doc "> <xsd : complextype > <xsd : complexcontent > <xsd : extension base =" base ">

5/14 du développement Conformité aux recommandations émises par l'étude du langage OCaml Préparation de l'évaluation : la recherche de vulnérabilités documents de spécication, conception et développement base de tests en robustesse, en conformité

Fonctionnement de l'application 6/14

Développement incrémental 7/14 Prototype 1 Prototype 2 Caractères UTF-8 entités Types de données expressions rationnelles types primitifs, facettes Fonctionnalités Types de structures combinateurs (all choice sequence) types complexes (extension, restriction) Méta constructions attributegroup Prototype 3 Prototype nal v0.2 types construits Prototype fonctionnellement complet importation, groupes concrets, héritage

Prototype nal v0.2 Fonctionnalités 8/14 XML supports versions 1.0 et 1.1 encodage UTF-8 entités restrictions caractères déconseillés par XML 1.1 type de document instructions de traitement sections d'échappement commentaires références non-ascii espaces de noms limitations équivalences Unicode clés XML XSD supports version 1.1 types simples prédénis (primitifs, construits) domaines de valeurs expressions rationnelles types complexes combinateurs groupes importations occurrences espaces de noms restrictions limitations entrelacement attributs d'instance URI de chiers XSD vérications de validité XSD (contraintes d'héritage, validité des valeurs par défaut) groupes d'attributs par défaut modularité XSD certaines catégories de caractères expressions de contraintes (chemins, valeurs, précisions) clés XSD

Résultats de la validation sur les bases de tests 9/14 Nom Nombre Résultats Origine UTF-8 280 100% Développée pour l'étude XML 312 100% W3C XML Test Suite (extrait) XSD 74000 92% 2 XML Schema Test Suite (extrait) 99% 3 XSD-LIM 159 100% Développée pour l'étude 2. des grammaires XSD 3. des chiers XML

Apports du langage 10/14 Pour l'implémentation des exigences de sécurité Invariants de représentation de données : typage, encapsulation Protection des données : types non mutables, encapsulation Encapsulation des eets de bord Pour l'implémentation des exigences fonctionnelles Cloisonnement des fonctionnalités : modules distincts Traitements pas cas : ltrage exhaustif et non fragile partielle pour isoler les étapes de traitement Explicitation du ot d'exécution

Apports des recommandations 11/14 Pour l'implémentation des exigences de sécurité Spécication des interfaces Encapsulation des chaînes de caractères Gestion des exceptions Encapsulation des eets de bord Utilisation de types non mutables Filtrage exhaustif et non fragile Pour la facilité de développement Vérication de la complétude des traitements Développement incrémental facilité

Résultats de l'évaluation 12/14 Dicultés d'évaluation rencontrées Manque d'outils d'analyse de OCaml Evaluateurs peu formés à OCaml s Utilisation fragile de Sys.command : non spécique à OCaml Valideur reconnu fonctionnellement able et robuste Détection de chiers invalides non détectés par d'autres valideurs L'inverse n'étant pas vrai

Liste des participants Tranches conditionnelles du projet : développement et évaluation 13/14 Développement de XSVGen : SafeRiver Samuel Colin Damien Doligez Christèle Faure Thérèse Hardin Manuel Maarek Cible de sécurité et évaluation du valideur : Oppida

14/14 Véronique Delebarre : veronique.delebarre@safe-river.com Christèle Faure : christele.faure@safe-river.com