Cours cyber PDF
Document Details
Uploaded by GodGivenZombie
Tags
Summary
This document is a cybersecurity course. It provides an overview of cyber security concepts, including fundamental principles, attack prevention, and incident management. It also includes important historical cyberattacks and details the common types of cybersecurity attacks.
Full Transcript
🥾 Cours cyber Objectifs du cours Comprendre les principes fondamentaux de la cybersécurité Apprendre à identifier et à prévenir les attaques informatiques Acquérir les compétences nécessaires pour protéger les donn...
🥾 Cours cyber Objectifs du cours Comprendre les principes fondamentaux de la cybersécurité Apprendre à identifier et à prévenir les attaques informatiques Acquérir les compétences nécessaires pour protéger les données et les systèmes informatiques Contenu du cours Introduction à la cybersécurité Les types d'attaques informatiques Les mesures de sécurité informatique La gestion des incidents de sécurité Les bonnes pratiques en matière de cybersécurité En 2015 : la chaine de télé TV5 monde se fait pirater son SI et ces compte youtube , insta. Cours cyber 1 Le 24 décembre, des centaines de banques ont été compromises, entraînant une perte de plus de 1 milliard de dollars. L’Office of personnel Management (OPM) se fait hacker sa base de donne ou y sont tout les cordonnées des employées des agences américaine (FBI , CIA , ) Hacking team italy Ashley Madison USA se fait pirater en octobre 2015 plus de 32 millions de user dont 260 mil Français Juniper le plus grand frabricant de fierwall En 2016 : UK smartmeter En 2017 : Les protocoles VPN SSL , SMB , le MS17-010 est la vulnérabilité de la NSA NotPetya est un ransomware Début des années 2018 un vulnérabilités sur les processeurs x86 depuis1995 identifier par des chercheurs qui permet de lire les donnes d’autres applications.la premier appelle Meldown et la seconde spectre en 2020 l’attaque de type BADUSB Les normes cybersecurité : Un livre des Etats unis on la la NIST La cyber a besoin de 4 besoin principaux : le besoin de disponibilité (ISO 27000) ; l’intégrité qui la propriété d’exactitude et de propreté des biens. La confidentialité qui es le propriété des biens accessibles qu’aux personnes autorisé La PROOF (preuve ) decouper en trois partie : la tracabilité des actions menée ;l’authentification des utilisateurs ; l’imputabilité du responsable de l’action ffectué Cours cyber 2 La detectation d’un vulnerabilité CVE - The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities. http://cve.mitre.org/ OffSec’s Exploit Database Archive The Exploit Database - Exploits, Shellcode, 0days, Remote Exploits, Local Exploits, Web Apps, Vulnerability Reports, Security Articles, Tutorials and more. http://www.exploit-db.com/ La CVE (Common vulnerabilité and exposures ) Le MITRE et le NVD qui recense les vulnerabilités dans les base de données Le common vunerability and exposures scoring Un threat est un potentiel cause of uniwanted incident , which maiy resuult Une Attack est la realisation d’une menace qui est on attempt to destroy , epose Tout les systemes sont vulnerables Les types d’atttaques : Sniffing , spoofing , Man-in-the-middle , reconnaissances /Dos , wijacking , phishing, exploit qui attack les humains , les SI , EXPLOIT La sécurité est dif de safety: la secu protège des attack et la safety permet la prévention protège des accident involontaire L’analyse de risque : la mesure de risque est égale a la mesure de l’impact fois (*) la probabilité d’occurrence de l’attaque. Elle est spécifier par l’ISO “ La securité est un proccessus et pas un produit” de BRUCE schneir Cours cyber 3 les étapes dev : planifier , concevoir , réaliser , tester , packager les étapes Ops ( opérationnel) : Délivrer , opérer , superviser La gestion du risque est gérer par deux standard : standard ISO 27005 (plein de standard autour de la cyber avec le management de risque , La METHOD EBIOS RM qui détermine la méthodologie d’approche de management du risque numérique partant du plus haut niveau (grandes missions de l’objet étudie ) pour atteindre progressivement les fonctions métiers et techniques , par l’études des scenarios de risque possibles ? elle vise a obtenir un système Cette methode EBIOS RM adopte une demerche iterative qui se tructure autour de Cinq Methodes Cours cyber 4 Chaque chemin d’attaque il existe des putils d’Attacks qui : MITRE ATT&CK( entreprise de framework) https://attack.mitre.org/ L’attaquant s’attaque toujour au maillon le plus failble Vocabulaire cible une organistion specifique , prend APT (Advenced Preisdent threat): pied dans l’environnement , phishing cible social engineering utilse un systeme infecte pour acceder au reseau privee cible deplois des outils The cyber kill chain Cours cyber 5 Computer Hygiène Autenthfication : l’identification : I’am clain l’authenfiction : i prove corfirm le model d’authentification le plus utiliseer dans le mode est les Mot de passe 1,7% ont leurs passwd Laotop stolen (vol de pc): faire des backup Connectivité WireGuard iPsec social engineering : c’est l’art de manipuler les gens pour les pousser à pousser Le protocoel HTTP 07/11/2023 Botnet : a pour modelle d’exploiter les chaines de machine compromies. il utilise des canal de caontrol qui peuvent utiliser des serveur de control et des protocol en exemple le Botnet Gameover Zeus : type: Trojan ; date: 2011 Platefoerm de vverigfication de malware: Virus total commentetre informer sur la cyber: Podcast : Dark Diaries , no limit secu, interstorescyber , le comptoir secu , Blog : Cours cyber 6 conference: SECURITE WEB En 1984 Paul Mockapertris invente le protocole DNS 1990 Tim Berners-les invente le web pour le CERN( entreprise en suisse), , le protocole HTTP , l’addresse web(URL) , le Html, 1994 Tim invente le W3C 1999 Le protocole http tourne sur deux port : le port 80 TCP http /2 : More efficient and fast ; Binary protocol ; Push: server can sebd conten to the cclient without an request ; Mutiplexed not pipelined ; HPack: Hearders compesion ( Le protocole TLS : Le protocole TLS, acronyme de "Transport Layer Security" en anglais, est un protocole de sécurité informatique utilisé pour établir des connexions sécurisées sur un réseau, en particulier sur Internet. Il s'agit d'un successeur du protocole SSL (Secure Sockets Layer) et est largement utilisé pour sécuriser les communications entre un client et un serveur, telles que les transactions en ligne, les échanges de données sensibles et la protection de la confidentialité des utilisateurs. TLS garantit la confidentialité, l'intégrité et l'authenticité des données échangées entre les parties en utilisant divers mécanismes de sécurité, notamment : 1. Chiffrement des données : TLS chiffre les données en transit, de sorte qu'elles ne puissent pas être lues par des tiers non autorisés. Les algorithmes de chiffrement, tels que AES (Advanced Encryption Standard) et RSA (Rivest- Shamir-Adleman), sont utilisés pour cette tâche. Cours cyber 7 2. Authentification du serveur : Le serveur peut présenter un certificat numérique, généralement émis par une autorité de certification (CA), pour prouver son identité. Cela permet au client de vérifier que la connexion est établie avec le serveur légitime. 3. Authentification mutuelle : Si configuré, TLS permet également l'authentification du client en utilisant des certificats, ce qui signifie que le serveur peut également vérifier l'identité du 4. Négociation de paramètres de sécurité : Les clients et les serveurs TLS négocient les paramètres de sécurité, y compris les algorithmes de chiffrement et les méthodes d'échange de clés, pour s'assurer qu'ils utilisent les meilleures pratiques de sécurité disponibles. TLS est largement utilisé pour sécuriser les connexions HTTPS (Hypertext Transfer Protocol Secure) dans les navigateurs web, assurant ainsi la sécurité des transactions en ligne, la protection des mots de passe et des données personnelles. Il est également utilisé pour sécuriser d'autres protocoles, tels que SMTP (Simple Mail Transfer Protocol) pour les e-mails sécurisés, FTPS (FTP Secure) pour le transfert de fichiers sécurisés, et d'autres applications nécessitant une sécurité des communications. TLS a connu plusieurs versions au fil des ans, de TLS 1.0 à TLS 1.3, avec chaque nouvelle version apportant des améliorations en matière de sécurité et d'efficacité. Il est essentiel pour garantir la confidentialité et l'intégrité des données dans un monde de plus en plus connecté. la fonction de hash : En TLS (Transport Layer Security), les fonctions de hachage jouent un rôle essentiel dans le processus de sécurisation des communications entre un client et un serveur. Les fonctions de hachage sont utilisées principalement pour deux objectifs : Cours cyber 8 1. Intégrité des données : Les fonctions de hachage sont utilisées pour garantir l'intégrité des données échangées entre les parties. Avant de transmettre des données, elles sont hachées (c'est-à-dire qu'un résumé cryptographique est calculé à partir des données) et ce résumé est inclus dans un "message d'authentification de l'intégrité" ou "MAC" (Message Authentication Code). Lorsque les données atteignent leur destination, le résumé est recalculé, et si le résumé reçu correspond au résumé recalculé, cela signifie que les données n'ont pas été altérées en transit. 2. Authentification des messages : Les fonctions de hachage sont également utilisées pour l'authentification des messages. Dans TLS, elles sont utilisées dans la construction des signatures numériques. Lorsqu'un certificat numérique est utilisé pour prouver l'identité d'une partie (par exemple, le serveur), la partie qui génère la signature numérique hache le contenu du message (y compris un horodatage), puis signe le résultat avec sa clé privée. La partie qui reçoit le message peut utiliser la clé publique de l'émetteur pour vérifier la signature en recalculant le hachage du contenu et en comparant le résultat avec la signature. Cela garantit que le message n'a pas été modifié en transit et provient bien de l'entité prétendant être l'émetteur. Dans TLS, plusieurs fonctions de hachage peuvent être utilisées, notamment MD5 (bien que désormais considéré comme faible en sécurité), SHA-1 (également considéré comme faible en sécurité), SHA-256, SHA-384, SHA-512, etc. Cependant, en raison de vulnérabilités potentielles, les dernières versions de TLS, telles que TLS 1.3, ont réduit la diversité des algorithmes de hachage autorisés et encouragent l'utilisation de fonctions de hachage plus robustes, comme SHA-256 et SHA-384. https://shattered.io/ Cours cyber 9 En résumé, les fonctions de hachage en TLS sont essentielles pour garantir l'intégrité des données et l'authenticité des messages échangés entre les parties, contribuant ainsi à la sécurité des communications sécurisées sur Internet. Les # algo de hash: MD5 16 SHA1 30 SHA256 32 SHA512 64 LES CERTIFICATS X5 le TLS handshake (RSA): https://www.digitalberry.fr/handshake-protocole-tls-authent ification/ Comprendre le SSL/TLS: Partie 4 Handshake Protocol Les protocoles SSL / TLS https://blog.eleven-labs.com/fr/comprendre-le-ssltls-partie-4-handshake-protocol/ Cours cyber 10 le Diffie-Helman : cette techno soufre du manque d’athentificite de l’utilisateur Diffie–Hellman key exchange Diffie–Hellman key exchange is a mathematical method of securely exchanging cryptographic keys over a public channel and was one of the first public-key protocols as https://www.google.com/url?sa=i&url=https://en.wiki pedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange &psig=AOvVaw1TNMAJBT8K_ld42NwLu_Dp&ust=16994 55187553000&source=images&cd=vfe&opi=89978449& ved=0CA8QjRxqFwoTCNDRs4iSsoIDFQAAAAAdAAAAAB AI Le TLS1.3 (ECDHE) : Cours cyber 11 CYBER (13/11/23) Lesgilation & deotonlogie La GDPR (general data protection Regulattion) Data protection privacy by design security by default les requirement: consent data protection officer pseudonymisation data breach Right to easure Data portability record of processing activities Cours cyber 12 Le non respect des loi par les entreprise qui exploite les donnes d’utilisateurs francais est de payer 4% de leur chiffre d’affraire mondial k il Les permisions de pentest : les peprocessus deu pentest : Explore : endpoints softaware patch instaleg Attack: exploit know or supectect Report: rediger un erapport reatant les vulnerabilites trouves , son degre de cruticité , Les outils d’outils pour gagner du temps , on peut utiliser un ensemble d’outils on doit donc connaittre les plateforme d’attack: SamuraiWTF ParrotOS Kali you oown LlNUX VM App web scanner hp webinspect Burp IBM appscan Zap Cours cyber 13 Qualys Was Trustwave App Scanner Acunetix Wvs Whitehat Sentinel Contrast Interception des requetes: sniffers : capture du trafic dans le meem reseau que l’atttaquants Proxy d’interception : le device doit etre configure pour reg=diriger son trafic vers ce proxy ( en exemple on doit installer ZAP ) , on peut chainer les proxy d’interception le protocole DNS axfr(Ful transfer) ixfr (Incrementer -transfer) le brute fore ou atttque par divctionnnaire sur la service DNS les loutils DNS ( DNSBRecon: fournon une liste de mots commun connaitre les infoermation piubliques /ouvertes s’interrresser au profil publique aveant de deputer un attaque au pres d’un prestataire (linkedin) Google researh de la meilleure des maniere les ddifferentes startegis de scan de NMAP -sL list scan sP ping scan PN considere tous las hotes commme etant connecte PS / PA / PU Decouverte TCP SYN/ACK ou UDP COMMMANDE CLASIQ ( nmap -A -PN -n -sS -T5 x.x.x.x/24 Cours cyber 14 Vunerabilite L’injection la plus connu est l’injection SQL L’injection SQL : https://training.mylittlelab.org/yip/index.php?name=fred' ; select password as email from users-- les commandes d’injection Retour visible Quand les résultat sont retournez au navigateur comment se protejer des injection ? : Ne pas faire intervenir des interpreteur , et si o, apas le choix surttout en sql on doit presenter un prepareStatement , Valider les entrer qui est ausi la validation de liste blanche , Faire de l’analyse de code //prepare segment stmyt=con.prepareStatement("SELECT * FROM Users WHERE nam Le Broken authentification est la maniere dont est mal gerer les authentification : les Rainbow table sert de calculer un seul fois un teble de mdp asssocier et la reutioliser a l’infini, password Handling: Cours cyber 15 sensantive datat exposure le flag secure permt de securiser son cookie de tel maniere a ce qu’il ne soit envoyer uniqument en requête HTTPS Le flag "Secure" pour les cookies est une option de sécurité que vous pouvez définir lors de la création d'un cookie en JavaScript ou côté serveur. Lorsque le flag "Secure" est activé, le cookie ne sera envoyé au serveur que si la requête est effectuée via une connexion sécurisée, c'est-à-dire via HTTPS. Fonctionnement du Flag "Secure" : 1. Création du Cookie : Lors de la création d'un cookie, vous pouvez spécifier le flag "Secure" pour indiquer que le cookie doit être transmis uniquement sur des connexions sécurisées. Par exemple : javascript 2. document.cookie = "myCookie=myValue; Secure"; En utilisant des frameworks serveur, vous pouvez également définir le flag "Secure" côté serveur lors de la création d'un cookie. 3. Transmission uniquement via HTTPS : Lorsque le flag "Secure" est défini, le navigateur s'assure que le cookie est uniquement envoyé Cours cyber 16 au serveur lorsque la connexion est sécurisée via HTTPS. Si la page est chargée via HTTP, le cookie ne sera pas inclus dans les requêtes. Exemple d'utilisation : Supposons que vous ayez un site Web avec une page de connexion où les utilisateurs soumettent leurs informations de connexion. Une fois qu'un utilisateur s'est authentifié avec succès, vous pouvez définir un cookie sécurisé pour stocker des informations de session : // Côté serveur (exemple en Node.js avec Express) const express = require('express'); const cookieParser = require('cookie-parser'); const app = express(); app.use(cookieParser()); app.post('/login', (req, res) => { // Traitement de l'authentification réussie //... // Création d'un cookie sécurisé res.cookie('sessionID', '123456789', { secure: tru e, httpOnly: true }); res.send('Authentification réussie'); }); app.listen(3000, () => { console.log('Serveur en écoute sur le port 3000'); }); Dans cet exemple, le cookie de session "sessionID" est créé avec l'option "secure: true". Cela garantit que le cookie ne sera envoyé au serveur que sur une connexion HTTPS. Remarques : 1. Le flag "Secure" est particulièrement important lors de la transmission de cookies qui contiennent des informations sensibles, Cours cyber 17 telles que des jetons de session ou d'authentification. 2. Pour que le flag "Secure" soit efficace, votre site doit être configuré pour utiliser HTTPS. Si votre site ne prend pas en charge HTTPS, l'utilisation de ce flag peut ne pas offrir une protection efficace contre les attaques de type interception de données. 3. L'utilisation du flag "Secure" ne garantit pas à elle seule la sécurité des cookies. Il est également important d'utiliser d'autres pratiques de sécurité, telles que les cookies HTTPOnly pour empêcher l'accès via JavaScript, et de mettre en œuvre des bonnes pratiques de gestion de sessions Pour detruire un cookie on doit saisir la commende : SET-COOKIE: uid=QSQDZHYDHBSHU; (la date du passé) Le XML Le XML (eXtensible Markup Language) est un langage de balisage utilisé pour stocker et transporter des données structurées de manière lisible par les humains et les machines. Il est largement utilisé pour l'échange de données entre systèmes hétérogènes sur le web. Voici une définition générale de la syntaxe XML : Exemple de Syntaxe XML Harry Potter J.K. Rowling 29.99 Introduction to XML John Doe 19.95 Cours cyber 18 Explication de la Syntaxe : : Déclaration XML indiquant la version et l'encodage utilisés. : Élément racine du document. : Élément représentant un livre. Il a un attribut category pour spécifier la catégorie du livre. , , : Éléments à l'intérieur de représentant respectivement le titre, l'auteur et le prix du livre. Chaque élément peut avoir du texte ou d'autres éléments comme contenu. Les balises doivent être correctement imbriquées, ce qui signifie que chaque balise ouvrante a une balise fermante correspondante. Le XML est extensible et permet de définir des balises personnalisées selon les besoins de l'application. Il est souvent utilisé pour échanger des données entre différentes plateformes et applications, car sa structure claire facilite l'interprétation et la manipulation des données. La DTD en XML La DTD (Document Type Definition) en XML est une spécification formelle qui définit la structure et les types de données autorisés dans un document XML. La DTD est utilisée pour décrire la structure syntaxique d'un document XML, définissant les balises, les attributs et leur relation. Définition de DTD en XML : La DTD peut être interne (déclarée directement dans le document XML) ou externe (déclarée dans un fichier séparé et référencée dans le document). Une DTD définit les éléments, les attributs, les entités et les règles de structure du document XML. Exemple de DTD Interne : xml ]> Harry Potter J.K. Rowling 29.99 Dans cet exemple de DTD interne, les lignes entre définissent la DTD. Elle indique que le document doit commencer par un élément , qui doit contenir au moins un élément. Chaque livre ( ) doit avoir un titre ( ), un auteur ( ), et un prix ( ), et le livre doit également avoir un attribut category. Exemple de DTD Externe : Supposons que la DTD soit dans un fichier nommé "bookstore.dtd": Le document XML référencerait la DTD externe de cette manière : Cours cyber 20 Harry Potter J.K. Rowling 29.99 La DTD permet de spécifier la structure attendue du document XML, garantissant ainsi une certaine cohérence dans la manière dont les données sont organisées et présentées. Elle peut être utilisée pour valider la conformité d'un document XML par rapport à sa structure définie. LE BILLION LAUGH ATTACK L'attaque "Billion Laughs" est une forme d'attaque par déni de service (DoS) qui vise à exploiter la façon dont certains processeurs XML traitent les entités récursives. Elle tire son nom de l'idée d'amplifier une entité à une échelle massive, provoquant une charge de travail excessive pour le processeur et entraînant éventuellement un épuisement des ressources système. Principe de l'attaque : L'attaque Billion Laughs exploite la possibilité d'utiliser des entités XML dans la DTD (Document Type Definition) pour créer une structure récursive complexe. En XML, une entité est une référence à une chaîne de caractères, définie dans la DTD. Voici un exemple classique d'une attaque Billion Laughs en XML : Cours cyber 21 ]> &lol3; Dans cet exemple, l'entité lol est définie comme "lol". Ensuite, trois entités ( lol1 , lol2 , lol3 ) sont créées, chacune utilisant neuf occurrences de l'entité précédente, créant une amplification exponentielle du terme "lol". L'entité finale lol3 est ensuite incorporée dans l'élément. Effet de l'attaque : Lorsque ce document XML est traité par un parseur XML, il déroule les entités récursives et génère une charge de travail énorme pour le processeur, car il doit gérer une quantité massive de données, même si le document XML réel est relativement petit. Prévention : Pour prévenir les attaques Billion Laughs, les parseurs XML devraient limiter la profondeur des entités récursives ou désactiver complètement le remplacement des entités dans la DTD. Cela réduit le risque d'épuisement des ressources système dû à une amplification excessive des entités. Les développeurs et administrateurs système doivent être conscients de cette menace potentielle et prendre des mesures pour sécuriser leurs applications et services XML. Cours cyber 22 les Attacque XXE Attack ( injection xml) Une attaque XML External Entity (XXE) est une vulnérabilité de sécurité qui se produit lorsqu'une application XML mal configurée accepte des entrées XML non fiables sans validation appropriée, ce qui peut conduire à des attaques. L'attaque XXE exploite la possibilité d'inclure des entités externes dans un document XML, ce qui peut entraîner des fuites d'informations sensibles, des attaques par déni de service (DoS) ou même des attaques d'injection de code. Fonctionnement de l'attaque XXE : 1. Déclaration d'Entité Externe : L'attaquant insère une déclaration d'entité externe dans le document XML. Cette déclaration peut inclure un fichier externe, une URL, ou d'autres types de ressources.