% INF8750 — Sécurité des systèmes informatiques % UQAM — Département d'informatique % Plan de cours — Hiver 2021 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Gambs, Sébastien PK-4925 Groupes: 050 Méthodes de communication ========================= Moodle servira à centraliser les informations liées au cours et les cours synchrones se feront sur Zoom, j'utiliserais aussi le courriel du groupe cours pour des informations générales. Si possible (par exemple si votre connexion vous le permet) et si vous êtes confortable avec cela (par exemple si vous êtes dans un environnement calme), je vous encourage à ouvrir votre caméra vidéo pour faciliter les interactions. Vous pouvez aussi utiliser un arrière-fond virtuel pour remplacer l'image en arrière-plan de votre domicile. Si une question concernant un aspect du cours pourrait intéresser tout le monde de manière globale, n'hésitez pas à la poser durant le cours ou sur le forum du cours sur Moodle. Vous pouvez aussi utiliser le courriel (réponse en 24h à 48h heures ouvrables) ou encore prendre rendez-vous avec moi pour une rencontre virtuelle. Auxiliaire d'enseignement (en charge des laboratoires) : Rosin Claude Ngueveu (ngueveu.rosin_claude\@courrier.uqam.ca). Modalités d'enseignement ======================== Pour cette session, l'enseignement se fera en distanciel de manière synchrone et asynchrone. - Capsules (asynchrone) : chaque semaine le jeudi matin au plus tard des capsules vidéo d'une durée totale de 30 minutes seront rendues disponibles. Ces capsules concernent des préliminaires pour le cours de vendredi et doivent être consultées en avance. - Cours magistraux (synchrone) : vendredi de 10h à 12h. Le cours magistral se déroulera sur Zoom et complètera et approfondira le matériel vu dans les capsules. - Laboratoires (synchrone) : vendredi de 13h30 à 15h30. Typiquement une mise en pratique et validation expérimentale de sujets vus en cours mais parfois aussi une approfondissement théorique. Local du cours ============== - Zoom le vendredi de 10h-12h pour le cours magistral (voir le lien sur le Moodle du cours). - Zoom le vendredi de 13h30-15h30 pour le laboratoire (voir le lien sur le Moodle du cours). Responsabilité des étudiants ============================ Il est attendu des étudiants qu'ils visionnent les capsules et assistent à chaque cours magistral. Il est aussi attendu des étudiants qu'ils lisent le matériel de cours (incluant les lectures supplémentaires) et qu'ils participent activement dans les discussions de classe. Dates importantes ================= - 21 janvier 2021 : date limite pour annulation sans facturation. - 9 avril 2021 : date limite pour abandon sans mention d'échec, avec facturation. Description du cours ==================== Principes et concepts fondamentaux de la sécurité des systèmes informatiques. Principaux services: confidentialité, intégrité, disponibilité, authentification, non répudiation, contrôle d'accès. Typologie des attaques: fuites, modifications d'information, privations de service. Mécanismes sécuritaires modernes: systèmes de chiffrage symétriques et asymétriques; fonctions de hachage; génération pseudo-aléatoire. Protocoles sécuritaires: authentification, signature, échange et gestion de clés. Sécurité des systèmes centralisés et des systèmes répartis: politiques et modèles de sécurité; contrôle d'accès; rôles et privilèges. Sécurité des programmes: virus, chevaux de Troie. Contre-mesures: journalisation, audits; détection d'intrusion; filtrage; mécanismes de recouvrement. Analyse de risque. Éducation des usagers. Considérations légales, politiques et éthiques. Objectif du cours ================= Avec la croissance fulgurante que connaît le monde des télécommunications, entraînée par la locomotive Internet et stimulée par la pénétration des technologies de transmission sans fil, la problématique de la sécurité des données et des processus prend de nos jours une importance cruciale. On abordera dans ce cours le très vaste sujet de la sécurité informatique, en s'intéressant aux principes fondamentaux, aux mécanismes permettant d'assurer des services de sécurité, de même qu'aux applications concrètes rencontrées dans les derniers déploiements technologiques. Le but premier du cours est de sensibiliser l'étudiant à la problématique de la sécurité dans un système informatique. Par la suite, par l'étude des principaux problèmes de sécurité et de leurs solutions possibles, on sera à même d'apprécier la complexité inhérente qui sous-tend la guerre perpétuelle que se livrent les attaquants et les défenseurs dans le monde de l'information électronique. Les compétences développées dans le cadre de ce cours rendront l'étudiant capable de : - Définir les propriétés fondamentales de la sécurité informatique tels que *confidentialité, authentification, intégrité, non-répudiation, disponibilité* et *respect de la vie privée. * - Énoncer les principes fondamentaux qui gouvernent l'établissement de services sécuritaires. - Décrire, expliquer le fonctionnement et mettre en oeuvre les principaux algorithmes cryptographiques pour le chiffrement, le hachage, l'authentification de messages et la signature électronique. - Décrire les caractéristiques des systèmes de chiffrage à clé secrète et à clé publique. - Décrire et comprendre des protocoles cryptographiques courants utilisés pour la sécurité informatique. - Effectuer une analyse de risque, en fonction d'un contexte de fonctionnement spécifique et d'hypothèses sur les capacités de l'attaquant et les menaces possibles. - Identifier les particularités des menaces contre la sécurité d'un système selon le contexte centralisé ou distribué de ce système. - Proposer des contre-mesures selon les menaces envisagées. Contenu du cours ================ - Introduction: Problématique de la sécurité: confidentialité, authentification, intégrité, disponibilité, non-répudiation, respect de la vie privée, contrôle d'accès. Vulnérabilités, menaces à la sécurité et attaques. Attaques conduisant à des fuites d'information (divulgation de contenu, analyse de trafic), à des modification d'information (modifications de contenu ou d'ordre des messages, reprises de messages), à des privations de service (retard de messages, destruction). - Techniques de base en sécurité: Terminologie. Notion de confiance. Analyse de risque. Principes et politiques de sécurité. Éducation des usagers. Contre-mesures: Journaux de bord (logs) et audits. Détection d'intrusion. Filtrage. Mécanismes de recouvrement. Analyse de risque. Principes et politiques de sécurité. Éducation des usagers. - Authentification par mot de passe. Fonctions de hachage (MD5, SHA-1, SHA-3). Stockage sécurisé de mots de passe. Politique de composition de mots de passe. Quantification de la sécurité des mots de passe. Craquage de mots de passe. Authentification par biométrie. - Chiffrement symétrique. Principes de Kerckhoffs. Exemples de chiffrements historiques et de mécanismes de base: transposition, permutation. Caractérisation des systèmes de chiffrement. Cryptanalyse et attaques. Notions de base fondamentales: entropie, redondance. Chiffrement à sécurité inconditionnelle : masque jetable. Systèmes de chiffrement symétriques modernes (DES, AES). Modes de fonctionnement : ECB, CBC, CTR. Chiffrement par flux (RC4). - Authentification de messages. Codes d'authentification de message (HMAC, CBC-MAC). Introduction aux protocoles d'authentification. Protocole: authentification mutuelle directe, authentification par serveur de confiance. - Chiffrement asymétrique (clé publique: RSA, Diffie-Hellman, DSA). Fonctions à sens unique. Intégrité des données et authentification de messages. Génération pseudo-aléatoire. Signature numérique. - Échange et gestion de clés. Tiers de confiance. Authentification par défi et réponse. Protocoles à divulgation nulle de connaissances. Infrastructures de distribution et de gestion de clés. Certificats: X.509. - Étude détaillée de protocoles de sécurité: TLS, PGP. - Sécurité des systèmes répartis et de réseaux: Menaces spécifiques: écoute illicite, imposture, déni de service, brouillage. Caractéristiques des médiums de transmission. Gestion de la confiance. Autorisation décentralisée. Pare-feu. Réseaux privés virtuels. Authentification dans les réseaux Wi-Fi (WEP, WPA et WPA2). - Respect de la vie privée. Lien avec la sécurité informatique. Outil de traçage, traces numériques. Attaques par inférence et méthodes d'assainissement. Technologies de protection de la vie privée (réseaux de communication anonyme, accréditations anonymes, retrait privé d'information). Modalités d'évaluation ====================== Description sommaire Date Pondération ------------------------------ ------------------------ ------------- Participation en classe 5 % Actualité de sécurité Une fois 5 % Devoirs et travaux pratiques Périodique 30 % Présentation article Une fois 20 % Travail de session Voir calendrier ci-bas 40 % La note global de passage pour le cours est de 60 %. **Présentation d'une actualité de sécurité (5%)** Chaque semaine en début du cours (à partir du cours 4), deux étudiants présenteront une actualité liée à la sécurité en 5 minutes chacun (capsule préenregistrée suivi d'une période de questions). L'objectif principal de ce travail est de présenter un problème actuel de sécurité de manière concise mais tout en allant plus loin que simplement un article de vulgarisation. **Devoirs notés et travaux pratiques (30 %, 10% par devoir)** Au cours de la session, trois devoirs écrits notés permettront aux étudiants d'approfondir les sujets vus en cours ou encore de mettre en pratique et de vérifier expérimentalement certains des concepts présentés en classe. Les devoirs et travaux, qui pourront être réalisés en *équipes de deux*, toucheront à différents sujets de la sécurité informatique. Il pourra y avoir de la programmation à effectuer, mais pas de développements majeurs. L'objectif principal des devoirs est de permettre de consolider les notions apprises pendant le cours. **Présentation d'un article scientifique (20 %)** Chaque semaine à partir du cours 5, deux ou trois étudiants vont présenter chacun un article de recherche sous la formule d'une capsule pré-enregistrée (20 minutes de présentation). L'objectif de ce travail est de se familiariser avec la recherche académique sur le sujet et de pouvoir le restituer de manière pédagogique. **Travail de session (projet) (40 %)** Comme nous aborderons un domaine beaucoup plus vaste que ce qu'il est possible de couvrir durant le temps limité qui est alloué au cours, un travail de longue haleine, réalisé dans le cadre du cours, vous permettra d'en approfondir un aspect particulier à votre choix. Ce travail peut prendre diverse formes: compte-rendu de lectures, application pratique de notions vues en classe, réalisation de logiciel ou de matériel, etc. Le produit fini devra de toute façon comporter un rapport, qui rendra compte de votre travail et permettra de démontrer ce que vous avez pu apprendre au-delà de ce qui est couvert en classe. Vous devrez d'abord sélectionner un sujet, qui sera ensuite approuvé par le professeur. Pour faire ce choix, on peut: - penser à un aspect de l'informatique ou des télécommunications et de le relier au concept de sécurité - discuter avec des collègues étudiants ou de travail pour des suggestions - songer à l'amélioration de la sécurité d'un système sur lequel vous travaillez - consulter un (des) articles intéressants sur la sécurité Les principales revues traitant de sécurité informatique sont: Computers & Security, Journal of Computer Security, mais on trouve des articles sur le sujet dans plusieurs autres revues. Les principales conférences sont Crypto et Eurocrypt (pour la cryptographie), Symposium on Research in Security and Privacy, National Computer Security Conference, Annual Computer Security Applications Conference ainsi que European Symposium on Research in Computer Security. Quelques suggestions de sujets (liste non-exhaustive) : - Anonymat, vie privée et confidentialité - Aspects sécuritaires de systèmes d'exploitation connus - Authentification dans un environnement distribué - Cartes à puce pour la sécurité - Éthique informatique - Gestionnaires de licences pour logiciels - Pares-feu, contrôle d'accès par listes - Prévention et détection d'intrusion avancée - Sécurité et bases de données - Sécurité et commerce électronique - Sécurité et réseaux sans fil/ad hoc - Stéganographie, copyright et protection contre la copie - Virus - Nuisances (pourriels, adware, etc.) - Systèmes leurres (honey-pots) - Réseaux de zombies (botnets) - Virtualisation et techniques de méta-surveillance - Tests de Turing inversés (CAPTCHA) Principaux jalons et éléments à remettre: - Semaine 5: Vous devez avoir fait le choix définitif du sujet. Vous devez remettre un document de 1 page expliquant ce que vous voulez faire et pourquoi. Vous devez fournir plusieurs sources bibliographiques et décrire comment vous comptez vous y prendre pour compléter le projet. *(4 % de la note du projet)* - Semaine 8 : Votre projet doit être relativement bien avancé.\ Vous devez remettre un plan détaillé précisant ce que vous faites, comment et quels sont les résultats spécifiques que vous attendez. De plus, vous devez justifier la pertinence de votre travail et indiquer comment votre travail peut être d'intérêt général. *(16 % de la note du projet)* - Semaines 13, 14 et 15: Séance de présentations. Chaque étudiant prépare une présentation décrivant de manière synthétique son travail. Chaque étudiant prépare une présentation décrivant de manière synthétique son travail qui se fera en direct (20 minutes de présentation + 10 minutes de questions). *(40% de la note du projet)* - Semaine 15: Remise du rapport final. Le produit fini doit être d'assez bonne qualité pour être soumis à un magazine ou à votre supérieur au travail. *(40 % de la note du projet)* Prenez note que la correction des devoirs tient abondamment compte des développements. Il est donc avantageux d'exposer votre démarche de travail. Une réponse correcte obtenue au terme d'un raisonnement invalide ne vaut pas grand chose. Par contre, un raisonnement valide, conduisant à une réponse erronée à cause d'erreurs mineures vaut beaucoup plus. Dans le doute, il vaut mieux être explicite que succinct. Les règlements de l'UQAM concernant le plagiat seront strictement appliqués. Pour plus de renseignements, consultez le site suivant : Tout travail que vous soumettez doit être le fait de votre propre travail. Vous pouvez échanger avec vos collègues sur les travaux, les approches de solutions, mais les idées et solutions que vous soumettez doivent émaner de votre propre réflexion. Dans le cas de programmes, vous devez créer et coder votre propre code source, et le documenter vous même. Une fois le programme écrit, il est possible de se faire aider pour le déboguage. En cas de doute sur l'originalité des travaux, un test oral pourra être exigé. Une pénalité de retard de 10% par jour ouvrable sera appliquée sur les travaux remis après les dates prévues. Il est de la responsabilité de l'étudiant de se faire des copies de ses travaux. Médiagraphie ============ Sera complété au fur et à mesure des lectures.