Structure|Intro|Web|Scénarios|FW/IDS|Crypto 1|Crypto 2|Biblio
Le cours 4TC-SEC est structuré de la manière suivante :
Pour chaque séance, vous aurez un travail de préparation qui est décrit dans la suite de ce document. La préparation consiste à lire des ressources externes, les comprendre, répondre au quizz moodle correspondant et préparer des questions pour la séance de cours/TP associée. Attention, le volume de travail personnel n'est pas négligeable et ne peut donc pas être réalisé au dernier moment (du temps de face-à-face a été libéré de l'UE en contrepartie). La préparation a pour but d'acquérir les connaissances nécessaires pour appréhender les compétences qui seront vues en CM/TD/TP. Les connaissances ne seront pas traitées dans les heures de face-à-face, uniquement les questions précises que vous aurez amenées (pas de réponses générales, uniquement aux questions montrant que le travail de préparation a été fait).
La note finale de l'UE sera calculée comme suit :
La structure détaillée est la suivante, la préparation de chaque item est détaillée dans la suite du document :
Pour interagir/discuter/commenter/poser des questions en dehors des heures de cours, vous pouvez utiliser twitter avec le hashtag #tcsec et en me mettant en copie (@FLesueur).
L'objectif d'une attaque courante est de dérober des informations, d'altérer des information stockées ou de rendre une donnée inaccessible. Les attaques utilisent souvent le réseau pour se propager, mais il faut bien garder en tête que la sécurité réseau n'est pas une fin en soi mais l'un des outils pour assurer la sécurité des données.
Les menaces aujourd'hui sont autant externes qu'internes. En externe, il est bien évidemment nécessaire de se protéger d'attaques menées via internet. En interne, il est également nécessaire de se protéger d'employés indélicats ou de machines infectées, qui sont alors utilisées comme rebond par un attaquant externe mais qui apparaissent comme internes au niveau du SI (avec les privilèges associés).
En sécurité, l'essentiel n'est pas de faire compliqué, mais surtout de comprendre les tenants et les aboutissants. La tendance est au "Back to basics"
La SSI se décompose en trois propriétés fondamentales :
Ces propriétés, appliquées sur les données, les trames, les méta-données, etc., permettent d'exprimer l'ensemble des besoins de sécurité. Ces trois propriétés sont assurées par des mécanismes de sécurité, dont par exemple :
À la différence de nombreux autres domaines, la sécurité globale d'un système n'est pas la somme des sécurités de ses composants, mais la sécurité du maillon le plus faible (utilisateur compris). En d'autres mots, il ne sert à rien d'avoir quelques éléments hyper sécurisés si le reste du système est faible. Cela rend la SSI extrêmement difficile car un attaquant pourra toujours viser le composant le plus faible, quels que soient les efforts investis dans le reste.
"Security is a process, not a product" -- Bruce Schneier. La sécurité est un objectif, une démarche, une méthode. Ce n'est pas un état. Par ailleurs, la sécurité parfaite n'existe pas et il faut donc combiner des barrières de protection avec des outils de surveillance et de détection, ainsi que des personnes pour analyser l'ensemble.
La SSI est devenu un enjeu majeur mais reste un sujet difficile à cerner. Les métiers associés ne s'improvisent pas et demandent de solides connaissances, qui vont bien au-delà de ce que le temps permet de faire en formation initiale. Le besoin étant aujourd'hui supérieur à l'offre de qualité, il existe de bonnes opportunités mais également un certain opportunisme. Certaines entreprises n'hésitent ainsi pas à vendre un audit technique simplement basé sur un scanner de vulnérabilités (Nessus, Skipfish), ce qui est bien insuffisant et parfois même dangereux. Il est donc important de conserver un regard critique, y compris dans le rôle du client.
Sans jugement de qualité (difficile à établir) et sans ordre d'importance, voici un petit panorama non exhaustif de la SSI en France. Les principaux acteurs étatiques ou défense :
Quelques types d'entreprises de la SSI :
Quelques regroupements :
Et bien sûr, des équipes de recherches, académiques et privées.
Ressource à écouter (podcast 1h) : Épisode NoLimitSecu sur le livre "Sécurité opérationnelle" d’Alexandre Fernandez Toro, très bonne introduction sur la réalité du terrain et des métiers : No Limit Secu
Ouverture (obligatoire): Peut-on éteindre l'Internet ?, Stéphane Bortzmeyer
Ouverture (vidéo, facultative) : What makes software exploitation hard?, Ben Hawkes, Google Project Zero
L'OWASP (Open Web Application Security Project) est une communauté en ligne travaillant sur la sécurité des applications Web. Elle publie régulièrement une liste des dix risques de sécurité applicatifs Web les plus critiques, qui fait aujourd'hui référence dans le domaine de la sécurité web. Vous devez lire le TOP 10 de l'OWASP ici. Prêtez particulièrement attention aux vulnérabilités A1, A2, A3, A4, A5, A7, A8, A9. Pour bien comprendre chacune des vulnérabilités et des contre-mesures, vous aurez peut-être besoin d'effectuer quelques recherches complémentaires.
Ouverture (obligatoire) : These Top 10 Programming Languages Have Most Vulnerable Apps on the Internet
Cette section sera conclue par le TP Sécurité web.
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one." —Dennis Hughes, FBI. Pour preuve, personne n'est à l'abri.
Pour cette séance, vous devez étudier une attaque et une vulnérabilité dans les listes proposées. L'étude peut commencer par une lecture sur Wikipedia mais ne doit pas s'y limiter ! Vous devez faire des recherches pour approfondir, trouver des articles rédigés par des experts (journaux, blogs), etc.
L'attaque est à choisir parmi les 10 attaques de 2016 mentionnées ici.
La vulnérabilité est à choisir parmi :
(les vulnérabilités n'existent bien sûr pas que dans des environnements libres, mais sont mieux documentées dans ce cas)
Il est possible, avec accord préalable, de proposer d'autres attaques et vulnérabilités.
Cette section sera conclue par le TP Intrusion.
Ouverture (facultative) : Hack de Hacking Team
Dans cette séance, vous allez étudier le filtrage et la surveillance réseau. Ces 2 domaines sont très proches, les différences se faisant notamment au niveau des performances (temps réel contre hors-ligne, et donc complexité des règles et de l'analyse protocolaire), des risques de faux positifs (fausses alertes) et de la réaction (fermeture de connexion ou simple alerte). Historiquement, le firewall est côté filtrage et l'IDS côté surveillance. Aujourd'hui, les évolutions de ces deux outils (DPI, DCI, Reverse Proxy, IPS) ont des objectifs de plus en plus similaires. Globalement, l'objectif est de faire du filtrage temps réel avec des règles complexes sur des protocoles de haut niveau ; ceci nécessite de hautes performances et complexifie le logiciel (vulnérabilités sur les sondes ? cf ouverture).
Wikipedia propose un bon point d'entrée dans le domaine. Vous devez lire la page Firewall ainsi que les pointeurs Stateful Firewall, Application Firewall, Proxy Server (partie 2.1). Ensuite, les pages IDS et IPS.
Le cours de Nicolas Hernandez propose un panorama intéressant et un exemple de déploiement d'architecture sécurisée qui permet de concrétiser les usages. Vous trouverez une description des règles (et donc de l'expressivité) d'IPTables ici et de Snort (IDS) ici.
Enfin, retour sur Wikipedia pour découvrir la roll's du filtrage, le Deep Content Inspection (usages légitimes comme risques sur la privacy/l'espionnage, cf ouvertures).
Ouverture (obligatoire): FireEye Exploitation, Tavis Ormandy, Google Project Zero
Ouverture (optionnel):
Cette section sera conclue par le TP Firewall/IDS.
Dans cette section, nous allons aborder l'histoire de la cryptographie et son utilisation. La version française de Wikipedia propose un bon historique pour démarrer : WikipediaFR
Vous devez ensuite lire le cours de Ghislaine Labouret (jusqu'à la page 27/32). Vous y verrez les notions de cryptographie symétrique (ex AES), asymétrique (ex RSA), hash, chiffrement, signature ainsi que le problème de la distribution des clés. Ce cours est intéressant car bien construit mais relativement ancien (2001). Les notions, principes et difficultés n'ont pas changé depuis, les algorithmes et tailles de clés si : cela vous donne une idée de l'évolution à attendre pendant les 10 prochaines années (hors découverte majeure). À vous de chercher quels sont les algorithmes souhaitables aujourd'hui. Pour les tailles de clés, le site Key Length est très pratique.
La suite du travail est d'étudier le fonctionnement de RSA et les attaques associées (sans entrer dans les fondements mathématiques), par exemple sur Wikipedia. Prêtez une attention particulière à la génération des clés, aux mécanismes de chiffrement et déchiffrement ainsi qu'à la sécurité (attaques par force brute ou attaques spécifiques).
Enfin, le programme Bullrun donne un bon aperçu des forces et faiblesses de la cryptographie moderne : la partie mathématique est plutôt sûre, les attaques se concentrent sur l'usage (standardisation), le déploiement, l'implémentation, etc.
Ouverture (obligatoire): La sélection de l'AES
Ouverture (facultative):
Cette section sera conclue par le TD Crypto.
Dans cette section, noue étudions le déploiement et l'utilisation des mécanismes cryptographiques.
Vous avez vu dans le cours précédent les autorités de certification (CA) pour obtenir les clés publiques de tiers. Étudiez maintenant la toile de confiance telle qu'utilisée par PGP pour résoudre ce même problème (avec ses avantages et ses inconvénients). L'obtention de clés publiques est un service orthogonal au service de sécurité rendu par la cryptographie (ie, un même service, le mail chiffré et signé par exemple, peut-être rendu avec une approche type CA avec S/MIME ou une approche toile de confiance avec PGP).
Enfin, quelques protocoles et usages de la cryptographie, à étudier de manière adaptée au temps disponible :
Oouverture (obligatoire) : Security Design: Stop Trying to Fix the User, Bruce Schneier
Ouverture (facultative):
Cette section sera conclue par le TP OpenSSL.