La filière STI (Sécurité et Technologies Informatique) de l'ENSI de Bourges forme des ingénieurs en informatique hautement spécialisés dans la sécurisation et le développement de systèmes d'informations. L'ingénieur ENSI filière STI a reçu une formation en informatique couvrant toutes les composantes scientifiques, techniques et humaines lui permettant de concevoir, gérer, développer et sécuriser tout type de systèmes d'informations ou de logiciels.
L'ingénieur STI a une bonne connaissance des concepts et des modèles de l'informatique théorique ce qui lui permet de tenir compte des aspects de complexité, de calculabilité et de performances. Il sait mettre en oeuvre les techniques de base pour résoudre les problèmes combinatoires (fiabilité, optimisation, cryptographie, vérification).
Il maîtrise le développement de logiciels selon des méthodes de conception professionnelles et scientifiques. Il possède une connaissance approfondie de tous les concepts de spécification (B, Z, UML, Merise, SA), de modélisation, de programmation, de vérification et de test. Il maîtrise notamment différents langages de programmation fonctionnelle, logique, et orientée objet.
Une des particularités de sa formation réside dans sa solide culture des systèmes d'exploitation et des réseaux informatiques au travers de l'étude de normes (POSIX) et des architectures réseau (OSI, protocoles de l'Internet, services web). Il est conscient des difficultés d'administration de tels systèmes. Il sait aussi mettre en oeuvre des solutions pour garantir leur sécurité.
Il est architecte des systèmes d'informations. Il sait concevoir, implanter des bases de données (PostGreSQL, Oracle). Il sait également développer les applicatifs et les intergiciels du système d'informations.
Selon l'option choisie en dernière année, il a acquis des connaissances approfondies en : sécurité des systèmes et des réseaux et de leurs applications embarquées; conception, déploiement et exploitation de systèmes d'informations répartis et transactionnels en respectant des méthodologies et normes de qualité; transmission numériques, leurs protocoles et modèles ainsi que les problèmes de sécurité et de fiabilité qui y sont liés.
Sa formation en sciences humaines lui donne une large autonomie pour développper et analyser en ayant le sens du besoin utilisateur, le travail en équipe et la gestion d'un projet complet, en respectant les normes et les contraintes réglementaires. Il possède également les connaissances en sciences sociales, en économie et en anglais qui lui permettent de diriger un service et de communiquer avec les différents acteurs du milieu professionnel en France et à l'étranger.
Sa formation généraliste en informatique et sa maîtrise des technologies de logiciels libres et propriétaires lui permettent en outre de prendre rapidement en main des technologies émergentes.
Le cursus de la filière STI est découpée en 3 années:
Deux choix majeurs s'offrent à l'étudiant de la filière STI durant son cursus:
La première année du cycle ingénieur de la filière STI est consacrée aux fondamentaux des sciences de l'informatique. L'objectif pédagogique est de mettre à niveau les étudiants ingénieurs mais aussi de leur donner une base solide centrée autour de la programmation, aussi bien d'un point de vu conceptuel que pratique. Les Unités d'Enseignements couvertes sont:
Un certain nombre de UEs participent à l'élaboration du savoir nécessaire à l'ingénieur, lui donnant une ouverture sur le monde de l'entreprise et des contraintes économiques.
4 projets encadrés se déroulent en parallèle des cours et travaux dirigés classiques de la formation d'ingénieur. Ils permettent de mettre en pratique les notions vus en cours et illustrées en TD et demandent aux étudiants un travail personnel afin d'approfondir leurs connaissances, découvrir la gestion de projet et le travail en équipe.
Ce premier projet permet aux étudiants de travailler sur la recherche documentaire, le traitement et la structuration de l'information ainsi qu'à la présentation écrite et orale de ces informations. Ci-dessous un exemple de projet:
Ce projet demande un lourd travail de développement en C ainsi que la mise en oeuvre d'algorithme travaillant sur des données souvent complexes. La nature du projet change chaque année mais est souvent découpée en une partie concernant des entrées/sorties fichiers, la réalisation de traitement complexes sur des données mises en méoire, la réalisation d'une interface graphique de visualisation des algorithme. Pour développer l'aspect ludique du projet, il s'agit souvent de concevoir une variante d'un jeu de la littérature. Ci-dessous quelques exemples de projets:
![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ce projet permet de travailler sur le coeur de l'informatique enseigné au second semestre de la première année: le réseau et le système. Il permet de s'exercer de manière approfondie à la programmation réseau et à la programmation système ce qui nécessite une bonne maitrise du langage C, des primitives bas niveau réseau et POSIX. Les étudiants travaillent en binôme et présentent au travers d'un rapport, d'une soutenance leurs travaux. Une démonstration réseau déployée sur un petit ensemble de machines illustrent leurs résultats.


Le projet d'application est un sujet personnalisé pour chaque binôme, encadré par un enseignant-chercheur de l'école. Les sujets sont très divers et recouvrent plusieurs unités d'enseignements vues dans l'année. Il peut s'agir de développement bas niveau, réseau, système; de développement web, initiation à la base de donnée, initiation à des points particuliers de la sécurité. Ces projets sont la charnière pédagogique entre la première et deuxième année: il s'agit d'approfondir les enseignements de la première année et d'aider l'étudiant ingénieur à l'autoformation à partir de livres et références techniques tout en introduisant une des unités d'enseignement de la deuxième année. Exemples de rapports, présentations, photos:
Un stage d'une durée minimale d'un mois est effectué en fin de première année. Il permet de mettre en application les divers concepts vus en cours et d'avoir, pour la majorité des élèves ingénieur, une première expérience du monde du travail.
La deuxième année du cycle ingénieur de la filière STI développe l'informatique théorique, approfondit les enseignements réseaux et systèmes permettant d'introduire les bases des enseignements en sécurité. Les Unités d'Enseignements couvertes sont:
En deuxième année, l'élève ingénieur reçoit aussi quelques Unités d'Enseignement plus générales:
Par ailleurs, un projet d'application est réalisé tout au long de l'année. Celui-ci consiste en une étude et une réalisation approfondie sur un sujet technique en lien avec les divers enseignement d'approfondissement.
En fin de deuxième année, un stage d'au minimum deux mois est demandé. Celui-ci est général très technique. Il est aussi souvent l'occasion de partir à l'étranger.
Pour sa dernière année de formation, l'élève ingénieur suit une spécialisation plus poussée dans l'une des options choisies au cours du premier semestre avant d'effectuer son stage d'ingénieur durant 6 mois minimum.
En informatique, les élèves ont actuellement le choix entre deux options (une troisième est en cours de définition). Le but est de donner une spécialisation particulière en lien avec leurs affinités personnelles. Ils suivent quelques cours communs entre les deux options, mais la différentiation se fait au niveau de l'option. Il n'existe plus de cours commun en informatique.
Les étudiants de 3ème année de la filière STI choisissent une des deux options suivantes:
Les systèmes d'exploitation et le réseau sont les deux principaux vecteurs d'attaque d'un système d'information. L'enjeu de cette option est de former des experts capables d'analyser, d'auditer et de protéger les systèmes informatiques. L'option prépare un ingénieur spécialisé dans ce domaine. Celui-ci est alors capable de définir les politiques de sécurité adaptées aux besoins de l'entreprise, de proposer et de développer les moyens de garantir ces politiques. On s'intéresse en particulier à l'administration de la sécurité et des réseaux, à la sécurité des services (comme la sécurité web et la sécurité mail) et à la sécurité des systèmes d'exploitation.
Quand on considère l'élaboration de logiciels complexes, on constate que les notions de sécurité doivent être introduites à toutes les étapes du cycle de vie du produit : de sa conception à sa mise en production, en passant par sa réalisation concrète. Ceci assure que le processus d'élaboration du logiciel est optimisé, garantissant ainsi qualité, performance et sécurité.
L'option ASL approfondit et formalise les notions de génie logiciel abordées durant le cursus. Elle apporte des notions de sécurité du logiciel de la conception aux tests des logiciels, sans écarter les aspects humains (interface, utilisabilité). Elle aborde de manière conséquente la sécurité dans le domaine des bases de données et de façon plus large traite des architectures logicielles réparties et/ou transactionnelles, dont l'ingénieur acquiert les compétences techniques mais est aussi sensibilisé aux aspects fonctionnels.
Aborder le logiciel à la fois du point de vue du concepteur et de l'utilisateur prépare ainsi l'élève ingénieur à des missions d'ampleur au sein de l'entreprise et de ses futurs contacts avec le client, et lui donne les clés de son évolution de carrière.
Les réseaux ambiants ou ubiquitaires se caractérisent par des entités mobiles communicantes de différentes tailles, comme les terminaux, routeurs, PDA ou téléphones cellulaires. Ils peuvent servir de support à différentes applications de type multimédia (réalité virtuelle), grid-computing (calcul intensif), pair-à-pair (répartition de données)… Ces nouveaux systèmes posent directement des problèmes de mobilité, de sécurité et de sûreté (confidentialité des données, fiabilité des applications), de continuité de service (tolérance aux pannes) et de qualité de service. L'objectif de cette option est de former des ingénieurs capables de maîtriser les divers concepts liés à cette problématique d'avenir, de savoir mettre en place des solutions adaptées, garantissant les niveaux de sécurité requis par chacune des applications.
Voici quelques exemples de projets réalisés, et pour certains proposés par les étudiants eux-mêmes
L'idée novatrice proposée ici est un site web capable de planifier vos voyages, en fonction de vos destinations et de vos thèmes de découvertes. L'application gère d'elle-même les transitions entre les lieux/thèmes. Utilisation de AJAX et middleware JDBC pour connection au serveur DB2 qui stocke les données. Développement applicatif en Java.
(projet en lien avec le travail réalisé par F. Dupré, en année de césure à Dayton, USA) L'application, réalisée à l'aide du framwork de développement peer-to-peer Java JXTA, permet de gérer les ressources diverses mise en jeu durant une situation de crise (catastrophe, attentat, etc.) avec leur autorisation et accréditations propres.
Ce projet a eu pour objectif d'étudier la faisabilité d'un outil d'extraction automatique des données contenu dans le logiciel HyperPlanning utilisé par la scolarité de l'ENSI de Bourges pour la définition des emplois du temps pour les exporter vers la base de donnée du logiciel Chandler, beaucoup utilisé par le membres de l'équipe de recherche SDS du LIFO. La difficulté résidait ici dans l'extraction des données plus que l'automatisation de leur insertion dans la base Chandler.
L'évolution du web (avec l'influence des technologie Google et web 2.0, Cloud Computing, services distants) est tellement puissante qu'il est possible que toute une frange de logiciels et services soient uniquement accessibles à distance d'ici quelques années. Pour rendre ces services totalement indépendants des OS, il est probable que les parties clientes s'exécutent directement dans les navigateurs. Ce projet s'inscrit dans cette démarche est a permis la création d'une interface de programmation en Java-Javascript afin de développer (ou porter des jeux existants) facilement pour être exécuté au sein du navigateur.
Ce projet, à la fois de développement et d'administration, était très orienté dans le domaine de la sécurité puisqu'il permettait de consulter et déployer des outils et des politiques de sécurité présentes sur les différents noeuds d'un réseau. Les outils pouvaient être des IDS, des monitors, …
L'ingénieur STI est particulièrement apte à travailler dans le domaine de la sécurité informatique et des systèmes d'information, en tant que:
Le tableau suivant donne le salaire moyen d'embauche de l'ingénieur STI:
| 2005 | 2006 | 2007 | 2008 | 2009 | |
|---|---|---|---|---|---|
| Sans primes | 29,5 K€ | 29,6 K€ | 29 K€ | 30.4 K€ | 30.5 K€ |
les missions classiques associés à ces métiers. Les salaires. Les types d'entreprises. Les partenaires privilégiés.
La filière STI est adossée aux chercheurs du LIFO, Laboratoire d'Informatique Fondamental d'Orléans, et particulièrement l'équipe SDS, Sécurité et Distribution des Systèmes. L'équipe SDS travaille sur les aspects sécurité des systèmes d'exploitation, des logiciels et des applications répartis. L'équipe est constituée de 2 Professeurs d'Universités, 5 Maîtres de conférences, 2 attachés temporaires de recherche et 4 doctorants. Tous ces enseignants-chercheurs enseignent principalement dans la filière STI.
Les travaux de l'équipe SDS concernent principalement les axes suivants:
Quelques exemples de publications de l'équipe SDS: