Sécurité des Systèmes d'Information
Architecture des Systèmes d'Information
Algorithmique Avancée
Programmation Orientée Objet Avancée
Bases de Données Avancées
Atelier: Les dessous technique et marketing d'une startup web
Atelier Développement WEB
Atelier mise à niveau: Bases de Données Avancées
Sécurité des Systèmes d'Information
Professeur : Sha Rémi GERAUD, Ecole Normale Supérieure de Paris, CNRS/INRIA et Ingénico
Objectif :
L'objectif de ce cours est de présenter une introdutcion à la problématique moderne de la sécurité informatique.
Depuis, l'étude des vulnérabilités (corruption mémoire, dépassements, canaux auxiliaires, XSS, heartbleed, etc.) jusqu'à leur utilisation concrète dans des attaques récentes (APTs, Flame, Torpig, Ransomware, etc.) nous analyserons les politiques de sécurité, leur efficacité, leurs limites et leur implémentation, avec pour objectif la préparartion des RSSI de grandes entreprises ou de chercheurs en sécurité. Nous dissèquerons des attaques réelles et étudierons quelles réponses donner en temps réel.
Contenu :
Nous apprendrons notamment :
- à quantifier le niveau de sécurité d'une certaine politique, à ressources données, en fonction des modèles d'adversaires pertinents;
- à développer des politiques de sécurité adaptées aux contraintes métier et aux moyens débloqués pour l'implanter, en connaissance du cadre légal idoine, des standards et certifications;
- comment fonctionnent les attaques complexes récentes, leurs motivations, et leurs techniques;
- à répondre à un incident en cours et à préparer le prochain;
- à identifier les questions de sécurité soulevées par certains choix techniques ou technologiques (BYOD, open source, clouds, terminaux mobiles, cryptomonnaies, etc.);
- à communiquer avec les acteurs de la sécurité, en entreprise ou dans la recherche.
- Le cours sera accompagné de démonstrations et d'un support écrit.
Organisation :
Le cours est divisés en trois parties: rappels techniques, analyse de sécurité et organisation d'une stratégie de sécurité. La validation du cours se fera par des mini-projets en groupes, sur des cas réels tirés de l'actualité. Les élèves pourront ainsi mettre à profit leurs compétences et les éléments appris en cours.
Prérequis :
Ce cours requiert une aisance avec les technologies discutées. Il est fortement recommandé de savoir programmer, d'avoir suivi un cours de Droit de l'Informatique (par exemple celui d'Alain Bensoussan) ou de Droit du Travail et un cours de Cryptographie (par exemple celui de Jacques Patarin et Patrick Stachtchenko).
Bibliographie :
Les ouvrages suivants constituent des références utiles :
- Ross J. Anderson, Security Engineering, Wiley (ce livre est disponible gratuitement et en ligne sur le site de l'auteur
- John Viega, Secure Programming Cookbook, O'Reilly
- Christiane Féral-Schuhl, Cyberdroit: le droit à l'épreuve de l'Internet 2011-2012, Dalloz.
Architecture des Systèmes d'Information
Coordinateurs : Luc Vo Van et Thierry Rapatout
Objectif :
Le cours Architecture des Systèmes d'Information présente les différentes strates composant le SI: Infrastructure (Datacenter, Serveurs, Réseau, Stockage, Virtualisation) et Applicatif (modèles d'architecture au travers de l'histoire du SI: du mainframe aux architectures micro-services).
Le cours fait la part belle à de nombreux retours d'expérience issus de la connaissance de l'IT des grands comptes français des intervenants.
Les étudiants développent leurs connaissances sur les thèmes liés aux Infrastructures du SI, les liens entre les différentes briques d'infrastructure, la connaissance des briques de bases (serveur, réseau, stockage). Le cours est aussi l'occasion d'un éclairage sur la gouvernance et les modèles de gestion des infrastructures du SI. Un focus est aussi apporté sur la compréhension de la cohabitation de nombreux modèles d'applicatifs (applicatifs mainframe, client lourd, client server, client léger, micro-service...) et des propriétés de chacun de ses modèles ainsi que sur l'émergence de nouveaux paradigmes architecturaux.
Contenu :
Infrastructure
- Datacenter / Infogérance / Cloud
- Serveur / Consolidation / Virtualisation
- Réseau / Stockage / Sauvegarde
Architecture Applicative
- Architecture logicielle et patterns d'échange
- Architecture du SI / Principes SOA
- Webservices et autres composants SOA
- Architecture distribuée et micro-services
TP Architecture (Etude de cas)
- Réalisation en TP d'une étude de cas
Contrôle
- QCM + Etude de cas architecture
Organisation :
Le cours est assuré par 2 intervenants (1 sur la partie Infrastructure/Architecture Technique, 1 sur la partie Architecture Applicative/Logicielle) spécialistes de leur domaine.
Le contrôle se présente sous la forme d’un QCM assorti d'une étude de cas.
Algorithmique Avancée
Professeur : Christoph DÜRR, CNRS, LIP6, équipe Recherche Opérationnelle
Objectif :
Ce cours a pour objectif de donner aux élèves un aperçu de toutes les techniques modernes de conception et d'analyse d'algorithmes.
A l'issue de ce cours, les élèves devraient être capables d'identifier la ou les méthodes les plus appropriées pour la résolution des problèmes algorithmiques qu'ils pourront rencontrer dans leur carrière professionnelle. Il ne sera évidemment pas possible de rentrer dans les détails de toutes les thématiques abordées dans le cours, qui pourraient mériter chacune un cours à part entière. Toutefois, les ouvrages de référence mentionnés en cours devraient permettre de satisfaire tous les élèves désirant en savoir plus sur tels ou tels thèmes du cours.
Contenu :
Tous les grands thèmes de l'algorithmique séquentielle seront abordés dans le cours. Le cours débutera ainsi par quelques rappels de théorie de la calculabilité et de la complexité. Ceci permettra de classer la difficulté des problèmes algorithmiques rencontrés tout au long du déroulement du cours. Seront ensuite successivement abordées: les principales techniques de conception d'algorithmes (glouton, récursivité, programmation dynamique, flots, programmation linéaire, etc.), la conception et l'analyse d'algorithmes d'approximation, la conception et l'analyse d'algorithmes probabilistes, etc.
Note: les algorithmes parallèles et distribués font l'objet d'une option séparée, et ne seront donc pas abordés dans le cours d'algorithmique avancée.
Organisation :
Le cours se déroulera sous la forme d'une suite cohérente d'exposés présentant les différentes thématiques listées ci-dessus, en insistant sur les liens forts existant entre ces thématiques. Ces exposés seront accompagnés de quelques séances d'exercices au fil du déroulement du cours, afin de permettre aux étudiants de tester leurs connaissances sur la conception et l'analyse d'algorithmes.
Programmation Orientée Objet Avancée
Professeur : Jean-Philippe POLI
Objectif :
L'objectif de ce cours est de parcourir tout un ensemble de techniques couramment utilisées de nos jours pour réaliser des logiciels robustes et d'une certaine taille. Le cours ne s'attardera pas sur l'algorithmique ni sur la syntaxe de tel ou tel langage informatique, mais plus sur les concepts sous-jacents à ces différents langages, la manière d'organiser un codede manière à ce qu'il soit robuste et évolutif. Il utilisera plus principalement en illustration les langages C++, C# et Java.
Une attention particulière sera aussi portée sur des méthodes et outils permettant de s'organiser lors d'un développement logiciel.
Contenu :
- Méthodes de développement logiciel, cycle en V, méthodes agiles, scrum
- Paradigmes de programmation
- UML, Modélisation
- des spécifications,
- de la structure,
- du comportement.
- Abstract data types, encapsulation;
- Programmation orientée objets, polymorphisme, principe de substitution de Liskov;
- Design patterns;
- Tests unitaires, TDD;
- Programmation par contrats;
- Mécanismes de gestion d'erreur, exceptions;
- Gestion de ressources, gestion de mémoire, garbage collectors, smart pointers;
- Boîte à outil : case tools, gestion de code, debugging, documentation, profiling
- Suivant le temps, petites introduction à la problématique du calcul numérique.
Organisation :
Cours et exercices. Les ateliers réalisés en parallèle permettront de mettre en application des éléments étudiés pendant ce cours.
Évaluation sous la forme d'un contrôle ou d'un projet informatique (sujet libre) à réaliser en groupe.
Bases de Données Avancées
Professeur : Nicolas TRAVERS, CNAM
Objectif
Les Bases de Données sont un point clé de tout Système d'Information intégré au service informatique. Elles permettent de garantir la pérennité des données du système et de l'interrogation de celles-ci.Toutefois, le volume de données produites chaque année par les entreprises explose de manière exponentielle, et les Administrateurs de Bases de Données (DBA) sont confrontés à de véritables défis de passage à l'échelle. L'optimisation de la base de données devient un point critique et incontournable pour avoir une bonne qualité de service (QoS) au niveau applicatif. Le but de ce cours est de :
- Comprendre la problématique du DBA,
- Étudier l'optimisation du SGBDR et du "Tuning" de requêtes,
- Assimiler les nouvelles technologies appelées "NoSQL" pour le BigData.
Contenu :
- Objectifs et Enjeux de l'optimisation d'une Base de Données Relationnelles
- Stockage des données
- Indexation de données
- Optimisation de requêtes et Plans d'exécution
- Différents SGDB du marché (Oracle, DB2, SQLServer, MySQL, PostgreSQL, SQLlite)
- Tuning de Bases de Données
- Objectifs et Enjeux des bases de Données "NoSQL"
- Principe de la distribution de Données
- Indexation et hachage distribué
- Passage à l'échelle dans le Cloud
- Langage d'interrogation: MapReduce
Organisation :
Le cours développera chacun des points cruciaux des problèmes de performances dans une Base de Données. Une formalisation des concepts permettra d'avoir une vision globale du processus et de comprendre les points clés. Les exercices pratiques sont intégrés au cours pour une mise en pratique directe des concepts avec des exemples concrets.
Des travaux pratiques permettront également de tester directement les problèmes de performances aussi bien dans une Base de Données relationnelle avec le logiciel "Oracle" (Leader du marché) que dans une base "NoSQL" avec MongoDB (outils opensource référence dans le domaine du BigData).
Le cours sera validé par un examen final durant la dernière séance de cours.
Atelier Développement WEB
Professeur: Benoît VALIRON, enseignant d'Informatique à CentraleSupélec
Objectif :
Les technologies actuelles du web vont au-delà de la simple création de sites: leurs capacités d'intéraction sont telles qu'elles permettent de réaliser toutes sortes d'applications pour toutes sortes de supports, comme des téléphones mobiles par exemple. Connectées au web, ces applications échangent des données en s'appuyant sur un ensemble de formats de structuration et de manipulation de données, notamment la famille XML.
L'objectif de cet atelier est de découvrir les technologies sur lesquelles s'appuient les applications web. L'enseignement accordera une large place à la pratique au travers d'exercices sur machines.
Contenu :
A l'issue de ce module, les étudiants seront capables:
- de créer des pages web et leur rendu visuel (langages HTML et CSS),
- de rendre dynamiques des pages web, afin d'ne faire des applications web à part entière (Javascript
- de concevoir des intéractions entre une page web et un serveur (AJAX),
- de créer un serveur de données simple (en Javascript via node.js),
- de structurer des données pour les applications web (XML et JSON),
- de manipuler ces données.
Programme:
- Concepts et technologies de base du web
- Architecture et protocoles du web
- Pages web: structure et contenu (HTML), mise en forme (CSS)
- lnteraction dynamique avec l'utilisateur dans le navigateur (Javascript).
- Echange de données structurées
- Format JSON: structure, manipulation
- Format XML: structure, manipulation (DOM)
- Exemples ; flux d'information (RSS, podcasts), graphismes (SVG)
- Communication entre navigateur et services web
- lntéraction asynchrone entre navigateur et serveur (AJAX)
- Applications: geocoding, cartographie, tec.
Organisation:
L'atelier consiste en une série de TPS sur machine. Une ou deux technologies sont introduites dans chaque séance, afin d'obtenir en fin de cours une vue d'ensemble. Cet enseignement ne contient pas (peu) de notions théoriques et consiste essentiellement en la mise en pratique des techniques présentées.
Atelier mise à niveau : Bases de Données Avancées
Coordinateur : Nicolas TRAVERS, Maître de Conférence, CNAM.
Objectif :
Les Bases de Données Relationnelles sont des logiciels présents dans toutes structures demandant de stocker et de manipuler des données pour l'application (assurance, banque, employés, site web, stock, vente...). Les besoins de stockage et d'interrogation des données sont primordiaux pour obtenir des résultats et les utiliser dans l'application.
L'objectif de cet atelier est de comprendre le fonctionnement d'une base de données et de savoir faire des requêtes SQL. L'atelier donne les bases indispensables pour aborder les problèmes d'optimisation des bases de données.
Contenu :
Les thèmes suivants sont abordés:
L'algèbre Relationnelle permet d'avoir un caddre indispensable à la compréhension du fonctionnement d'une requête SQL au sein de la base de données. Grâce à cela, les requêtes peuvent être optimisées.
Organisation :
Cet atelier présente rapidement les notions de cours et de nombreux exercices permettent de mettre en pratique ces notions et de les assimiler.
DETRICHE JEAN-MARIE
Responsable Option
Courriel :
jean-marie.detriche@centralesupelec.fr
HUDELOT CÉLINE
Responsable Parcours SI/SA
Courriel :
celine.hudelot@centralesupelec.fr
CABARET LAURENT
Responsable Parcours ITB
Courriel :
laurent.cabaret@centralesupelec.fr
Liens utiles
- Site des études
- Ecole Centrale Paris
- Forum Centrale-Supélec
- La Fabrique
- Serveur des Elèves
- Platefome des stages ECP
- Annuaire ECP