Devis du protocole expérimental (mise à jour)



Documents pareils
Introduction au développement SharePoint. Version 1.0

Le langage C. Séance n 4

SCOM 2012 (System Center Operations Manager) De l'installation à l'exploitation, mise en oeuvre et bonnes pratiques

NatStar V8.00. Ce document présente la liste des nouvelles fonctionnalités de la 8.00, disponible à partir de septembre 2013.

Déploiement d'une base SQL Express

Objet du document. Version document : 1.00

M Études et développement informatique

NatRcs Ce document présente la liste des nouvelles fonctionnalités de la 7.00, disponible à partir de Mars 2011.

Microsoft Application Center Test

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

M Études et développement informatique

ELO pour appareils mobiles

MS PROJECT Prise en main. Date: Mars Anère MSI. 12, rue Chabanais PARIS E mail : jcrussier@anere.com Site :

Fiche Technique. Cisco Security Agent

Burckel Thomas. Formation. Compétences

Outlook Présentation.

Gestion des fichiers sur micro-ordinateur

Systeme d'exploitation

Auditer une infrastructure Microsoft

Configuration requise Across v6 (Date de mise à jour : 3 novembre 2014)

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Migration du pack office Planification, préparation, déploiement et formation

Installation Eclipse Galileo. Groupe Entreprenant et Innovateur. France. Tutoriel. Programmation Mobile. Cours. Arón HERRERA PONTE. Coach.

Faille dans Internet Explorer 7

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

Introduction à Eclipse

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt UFR SITEC Master 2 EESC 11 janvier 2012

SQL Server Installation Center et SQL Server Management Studio

Configuration requise pour l utilisation de la plateforme EnlightKS Online Certification Management Services ET2.13 Juin 2011

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

Le rôle Serveur NPS et Protection d accès réseau

Windows serveur 2008 installer hyperv

SPT Description du cours NORAMSOFT SPT2013. SharePoint 2013 pour développeurs

Qu est-ce que ArcGIS?

Chapitre 01 Généralités

STATISTICA Version 12 : Instructions d'installation

Manuel d installation

Console de supervision en temps réel du réseau de capteurs sans fil Beanair

Intégration de l interface graphique de Ptidej dans Eclipse

Thibault Denizet. Introduction à SSIS

Logiciel de gestion des équipements de test MET/TEAM. NOUVEAU logiciel convivial de gestion des ressources d étalonnage par navigateur

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Chapitre 2 : Abstraction et Virtualisation

Marketing Update. Enabler / ENABLER aqua / Maestro II

Terminal Server RemoteAPP pour Windows Server 2008

Les nouveautés d AppliDis Fusion 4 Service Pack 3

Qu'est-ce que le BPM?

Sauvegarde des bases SQL Express

Logiciel de conférence Bridgit Version 4.6

Windows 8 Installation et configuration

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

TP1 : Initiation à Java et Eclipse

Etude de cas : PGE JEE V2

Worry-FreeTM. Business Security Éditions Standard et Advanced. Administrator s Guide. Configuration minimale requise

Eclipse atelier Java

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

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

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Configuration système requise

Installation et configuration de base de l active Directory

Z i e d Z a i e r ( )

Une solution de sauvegarde complète pour les PME : BackupAssistv5

Logiciel Enterprise Guide Version 1.3 Windows

RM 4.0 RM 3.6 RM 3.5 RM 3.1 RM 3.0 RM 2.1 RM

Chapitre 1 L interface de Windows 7 9

Dynamiser l innovation tout en réduisant son coût

BIRT (Business Intelligence and Reporting Tools)

SQL Data Export for PS/PSS

Sujet Solution de sauvegarde de serveurs et postes de travail avec BackupPC et Bacula. par ALIXEN

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Annexe : La Programmation Informatique

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Installation et prise en main

Chapitre I Notions de base et outils de travail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Dispositif e-learning déployé sur les postes de travail

Documentation utilisateur "OK-MARCHE" Historique des modifications. 3.0 Mise à jour complète suite à version OK-MARCHE V2.2. de marchés publics

Réseau : Interconnexion de réseaux, routage et application de règles de filtrage.

Systèmes en réseau : Linux 1ère partie : Introduction

Printer Administration Utility 4.2

Traitement de données

Projet Personnel Encadré #5

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

Windows Server 2008 R2

Manuel d installation de Business Objects Web Intelligence Rich Client.

Stratégie de sécurité grâce au logiciel libre. Frédéric Raynal Cédric Blancher

Moteur de réplication de fichiers BackupAssist

Étude des Spywares. Étudiant : Professeur responsable : En collaboration avec : DE SOUSA Bruno LITZISTORF Gérald TRUPHEME Florent Telecom System 2005

Vérifier la qualité de vos applications logicielle de manière continue

WINGOGEFAC COMPTABILITE & GESTION

Un logiciel pour aller plus loin dans la gestion de vos espaces. Mémo technique

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Évaluation et implémentation des langages

Transcription:

Devis du protocole expérimental (mise à jour) (Sécurité : C++ vs Java) Document présenté à : M. Dominique Goutier Dans le cadre du cours : Nouvelles technologies (420-620-SF) Étudiants : David Dastous St-Hilaire Ducas-Desrosiers Cégep de Sainte-Foy, département d informatique Mardi le 16 janvier 2007

Devis du protocole expérimental Page i de 10 Table des matières 1. Rappel du sujet...1 2. Contexte de réalisation de l expérimentation...1 2.1. Objectifs de l expérimentation...1 2.2. Limites du sujet choisi...1 2.3. Éléments inconnus à solutionner...1 2.4. Incertitudes...1 3. Démarche d expérimentation...1 4. Planification et ressources...1 4.1. Ressources matérielles...1 4.2. Ressources documentaires...1 4.3. Planification de l expérimentation...1 i

Devis du protocole expérimental Page 1 de 10 1. Rappel du sujet Nous sommes curieux de savoir quel langage de programmation est le plus sécuritaire, pour de futurs projets. Donc, notre sujet de recherche est la sécurité des langages de programmation C++ et Java. Nous allons comparer les avantages et désavantages d un langage relativement à l autre pour voir lequel est le plus sécuritaire en matière de retraçage du code source (décompilation) et d extraction des ressources. Le but de la recherche est de découvrir lequel peut être considéré comme étant le plus sécuritaire afin de guider certains programmeurs vers des bonnes pratiques de programmation et une meilleure connaissance sur cette réalité qu est la sécurité informatique. Aujourd hui, les entreprises recherchent la sécurité dans leurs programmes plutôt que la performance, car les ordinateurs deviennent plus puissants et la sécurité contre les pirates est de plus en plus utile. Les entreprises utilisent le C++ pour les jeux, les applications locales et les applications qui contiennent un environnement 3D; d un autre coté Java est le plus utilisé pour les applications locales et les applications web. Nous connaissons les deux langages assez bien, mais nous ne savons pas lequel est le plus sécuritaire, nous avons peu d information sur le sujet de la sécurité en ce moment. 1

Devis du protocole expérimental Page 2 de 10 2. Contexte de réalisation de l expérimentation 2.1. Objectifs de l expérimentation Comprendre les principales notions de sécurité après compilation (édition des ressources, décompilation, etc.) Comprendre les principales notions de sécurité avant compilation (obfuscation, bonnes pratiques de programmation) Utiliser des logiciels de décompilation et d édition des ressources Utiliser des logiciels d obfuscation 2.2. Limites du sujet choisi Afin de limiter le temps de la recherche et de pouvoir remettre le travail à l échéance donnée, nous devons poser des limites à notre recherche. Nous n allons pas utiliser d autre langage que C++ et Java, ni utiliser une approche par interface graphique; toutes nos applications seront en mode console. Nous utiliserons la plate-forme Eclipse pour le développement des applications Java, et Visual Studio 2005 pour le développement des applications C++. De plus, nous créerons seulement un programme de chaque langage pour tester la sécurité. Nous regarderons chaque faille de sécurité, mais sans trop nous attarder sur chacune d entre elles, car il serait trop long de développer un texte sur toutes les failles que nous pouvons retrouver. Du moment où une faille de sécurité a été identifiée, nous nous assurerons que la méthode utilisée pour l exploiter ne soit pas trop complexe, et qu elle coïncide avec le temps que nous avons prévu. 2.3. Éléments inconnus à solutionner Nous ne connaissons pas les trous de sécurité que nous découvrirons. Est-ce facile d avoir accès à ses failles? Nous allons découvrir des failles qui seront difficiles à identifier et, si elles ne sont pas connues, nous ne pourrons peut-être pas les utiliser pour les comparer avec le langage concurrent. Ne nous connaissons pas les résultats que la décompilation donnera et ne nous savons également pas quel programme on doit utiliser pour décompiler nos programme. Aussi, nous ne connaissons pas les bonnes pratiques de programmation à adopter pour être plus sécuritaire. Nous allons explorer si on peut utiliser des techniques dans les deux langages pour sécuriser le code qu on créer. Nous allons aussi découvrir un monde très vaste et nous allons aussi devoir y trouver ce que nous désirons vraiment. 2.4. Incertitudes La principale incertitude est de savoir si nous pourrons trouver suffisamment de failles de sécurité afin de bien illustrer le volet sécurité et de pouvoir faire une 2

Devis du protocole expérimental Page 3 de 10 comparaison intéressante entre le C++ et Java. Pour le moment, la recherche devrait plus aboutir sur l utilisation de logiciels de décompilation et d édition des ressources, ainsi que sur le concept d obfuscation. Aussi, le langage de programmation Java n étant pas développé de façon parallèle par plusieurs petits organismes, il risque d être plus difficile d avoir un minimum de diversité lorsque nous élaborerons sur cette technologie. 3

Devis du protocole expérimental Page 4 de 10 3. Démarche d expérimentation Dans un premier temps, une recherche préalable à l'expérimentation devra être faite, afin de pouvoir obtenir un maximum d'information sur les éléments suivants: les principales failles de sécurité couramment rencontrées dans un programme informatique les différents compilateurs et programmes de développements en C++ et en Java les différents utilitaires de décompilation d'applications créées en C++ et en Java Une fois cette recherche effectuée, il sera plutôt facile d'avancer certains concepts et de faire des comparaisons plus évoluées entre les niveaux de sécurité sous C++ et sous Java. Les deux prototypes utilisés seront programmés dans différents environnements, qui n'auront pas d'impacts sur les résultats finaux. Seul le code sera important, et il sera idéalement compilé en utilisant plus d'un compilateur, afin de pouvoir tester le plus de cas possibles. Actuellement, l'environnement de développement Visual Studio 2005 de Microsoft sera privilégié pour le développement des applications en C++, tandis que la plate-forme Eclipse sera utilisée pour le développement du prototype en Java. Le résultat final sera une application console, qui devra afficher de façon claire les différentes étapes accomplies dans la poursuite du test choisi. Pour le moment, la vision que nous avons de ce prototype se limite à l illustration d un concept simple (saisie de nombres, tri et affichage), qui sera appuyé par une démarche de décompilation, d analyse des ressources exposées et d obfuscation. Par contre, au fur et à mesure que la recherche avancera, il se peut que certains aspects puissent être rajoutées et qu il soit nécessaire d ajouter des modules au prototype, voire même d avoir plus d un prototype. 4

Devis du protocole expérimental Page 5 de 10 4. Planification et ressources 4.1. Ressources matérielles Le développement des prototypes ne nécessite qu'un ordinateur ayant les capacités minimales pour faire fonctionner un compilateur C++ et un environnement d'exécution Java, soit un ordinateur ayant un processeur 32 bits. Les tests seront entièrement faits sur une machine tournant sous Windows XP, édition professionnelle. 4.2. Ressources documentaires La majorité des sources documentaires proviendront de sites Internet, certains ayant une meilleure cotation que d'autres. Pour le moment, la liste de sites suivante sera celle d'où partiront la majorité des recherches, et des sources subséquentes: http://msdn2.microsoft.com/en-us/library/k3a3hzw7(vs.80).aspx : Le site aide les développeurs à s améliorer dans leur programmation. Site de référence à Microsoft. http://www.hotscripts.com/detailed/11680.html : Site avec des exemples de code qui permette de voir comment faire. http://java.sun.com/sfaq/ : Aide général pour les développeurs de Java. Site de référence à Sun. http://www.cs.princeton.edu/sip/faq/java-faq.php3 : Site général sur la sécurité du langage java. 5

Devis du protocole expérimental Page 6 de 10 4.3. Planification de l expérimentation Périodes Temps estimé Descriptions des tâches à réaliser Tâches assignées à 19/01/2007 3h La recherche documentaire : Recherche sur les outils de décompilation Recherche de failles. David & 22/01/2007 29/01/2007 30/01/2007 05/02/2007 12h La construction des outils d expérimentation : Le programme de c++ Le programme de java David 05/02/2007 3h La mise au point des outils d expérimentation : Test de fonctionnalité des outils de décompilation Test de fonctionnalité des programmes réalisés David 07/02/2007 12/02/2007 6h L expérimentation avec les outils : Allocation de mémoire et tentatives d accès concurrentiels; Accessibilité des données dans une application multithreads; Accès aux ressources du système d exploitation; Utilisation de classes et partage d information de manière incorrecte; Ressources visibles et encryptés lors de la décompilation (sera testée à l aide de logiciels tierce partie). David David David 6

Devis du protocole expérimental Page 7 de 10 Périodes Temps estimé Descriptions des tâches à réaliser Tâches assignées à 12/02/2007 2h Les validations quant aux résultats obtenus : Qu on puisse reproduire les résultats obtenus. David & 16/02/2007 1h L analyse de ces résultats : Comparaison des deux langages basés sur les résultats observés à l étape précédente 16/02/2007 3h La publication des résultats : Construction du site web et mise en ligne des documents. David & David & simon 7