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 (24h) :

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 s'articule en 24 heures, divisées 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: http://www.cl.cam.ac.uk/~rja14/book.html)
  • 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

Coordinateur : Franck LENORMAND

Objectif :

Au travers de 7 sessions de 3h, 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 (24h):

  • Infrastructure (3x3h)
    • Datacenter / Infogérance / Cloud
    • Serveur / Consolidation / Virtualisation
    • Réseau / Stockage / Sauvegarde
  • Architecture Applicative (3x3h)
    • 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) (3h)
    • 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 : Pierre FRAIGNIAUD, Directeur de recherche CNRS, Université Paris Diderot

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 (24h) :

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.

Les élèves auront accès à un document présentant les grands axes du cours, dont la version électronique en cours d'élaboration est accessible à:

http://www.liafa.univ-paris-diderot.fr/~pierref/centrale.pdf

Programmation Orientée Objet Avancée

Professeur : Loïc Joly

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 code de 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 (30h)  :

  • 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 de C++ 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 :

1 - Comprendre la problématique du DBA,

2 - Étudier l'optimisation du SGBDR et du "Tuning" de requêtes,

3 - 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: Les dessous technique et marketing d'une startup web

Professeur: Yvan Wibaux, fondateur et CTO d'Evaneos

Objectif:

Il y a beaucoup d'histoires sur les startups, l'idée de ce cours est de passer derrière le storytelling fait dans la presse pour voir ce qu'une startup a dans le ventre: marketing, technique, structuration, organisation...

Suite à ce cours, vous comprendrez l'envers du décor d'une startup et donc plus généralement du Web.

 

Contenu (9 heures: 3 demi-journées de 2 sénaces de 1h30):

Le cours est divisé en trois chapitres:

 

1 - De l'idée au site en ligne

Comment créer un premier POC, concrètement?

Comment attirer du monde sur un site?

Comment passer d'une idée à un MVP (minimum viable product) via le Lean?

Comment débute une startup? Y-a-t-il LA bonne idée? Comment commence-t-on?

 

2 - Du MVP au site à traffic:

Ok, nous avons maintenant un pseudo site en ligne, il est maintenant temps de consolider tout cela. Base de données, cache, framework back, API, front, framework JS, comment tout cela communique-t-il? Quelles sont les technos open source disponibles?

 

3 - Quand on se bat pour chaque client:

Malheureusement, attendre ne suffit pas pour faire venir du traffif sur un site. SEO, SEM, retargetting display, retarggeting email, partenariat, test AB, emailing: les outils sont nombreux pour attirer du monde sur un site. Nous allons les passer en revue et voir comment ils sont mis en place.

 

Organisation:

Le cours sera très collaboratif: un tiers en présentation d'une base théorique, un tiers de questions réponses et un tiers de travail en groupe.

Pré-requis: Les étudiants devront venir avec leur propre machine.

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 (23 heures):

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 et API web),
  • 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)
    • Intéraction 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
    • Inté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 (6h) :

Les thèmes suivants sont abordés:

  • Architecture d'une base de données relationnelle,
  • Algèbre Relationnelle (opérateurs de manipulation utile à l'optimiseur),
  • Langage SQL

 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 et Parcours SA & ITB Courriel : jean-marie.detriche@centralesupelec.fr

HUDELOT Céline

Responsable Parcours SI Courriel : celine.hudelot@centralesupelec.fr

CABARET Laurent

Responsable La Fabrique Courriel : laurent.cabaret@centralesupelec.fr

Parcours ITB

Architecture IT "Next Gen"

En savoir