Sécurité informatique - Interfaces et Sécurité - cours-info
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Les attaques Objectifs Classification Description Interfaces et Sécurité Sécurité informatique Michel Salomon IUT de Belfort-Montbéliard Département d’informatique michel.salomon@univ-fcomte.fr Ouvrage de référence Sécurité informatique : Ethical Hacking ACISSI. Collection Epsilon. Éditions ENI. Michel Salomon Sécurité informatique 1 / 70
Les attaques Objectifs Classification Description Plan du cours 1 Généralités, aspects juridiques et normes 2 Sécurisation d’un système d’information Évaluer / mesurer sa sécurité : audit / test d’intrusion Bilan et sécurisation 3 Principaux types d’attaques Objectifs possibles et classification Description de quelques attaques 4 Outils de sécurité Systèmes pare-feu (firewall) Détecteurs d’intrusion, détection de programmes malveillants 5 Sécurité des applications web Michel Salomon Sécurité informatique 2 / 70
Les attaques Objectifs Classification Description Historique “Préhistoire” Début de années 70 - Premiers “virus” 1971 - Creeper → non malveillant (pas de dégât) 1974 - Rabbit → prolifère pour réduire les perf. de la cible etc. 1975 - Jon Postel pressent le problème du SPAM RFC-706 → “On the Junk Mail Problem” 1983 - Wargames (film) Un jeune pirate accède à un supercalculateur militaire Matériel informatique relativement “réel” (IMSAI 8080, etc.) 1988 - Morris worm (se diffuse tout seul à travers un réseau) Un des premiers vers sur Internet (ralentissait les ordinateurs) Objectif initial → estimer le parc d’ordi. dans Internet Exploitait des vulnérabilités connues dans Unix 10% du parc mondial touché (6000 sur 60000) DARPA finance la création du US Computer Emergency Response Team Michel Salomon Sécurité informatique 3 / 70
Les attaques Objectifs Classification Description Historique (suite) Développement des vers provoquant des dénis de service (DoS) 1989 - The Cukoo’s Egg (livre) Traque d’un pirate qui s’est introduit dans un laboratoire (Lawrence Berkeley National Lab.) Concept de honeypot pour piéger le pirate 2001 - Code Red Prise de contrôle de serveurs pour saturer un site web ciblé Exploitait une vulnérabilité de type buffer overflow dans les serveurs web 4.0 / 5.0 IIS de Microsoft Coût financier estimé ≈ 2 milliards de $ et 359000 ordinateurs infectés la première semaine 2003 - SQL Slammer Similaire à Code Red ; impact important sur le trafic Internet Exploitait une vulnérabilité de type buffer overflow dans les serveurs SQL et SQL Server Data Engine de Microsoft Un correctif avait été diffusé 6 mois avant l’attaque 75000 ordinateurs (90% des vulnérables) infectés en 10 minutes Michel Salomon Sécurité informatique 4 / 70
Les attaques Objectifs Classification Description Historique (suite) Développement des botnets ; les menaces se multiplient Apparition du concept de botnet utilisé pour le SPAM en 2001 Aujourd’hui dans le monde ≈ 305 milliards d’emails sont envoyés / jour Au moins 50 % sont du SPAM (un botnet peut générer millions $ / mois) 2004 - Bagle Contrôlait 230000 ordi. ; 5,7 milliards d’emails / jour 2006 - Rustock Contrôlait 150000 à 2,4 millions ordi. ; actif jusqu’en 2011 Un ordi. infecté pouvait émettre jusqu’à 25000 emails / heure etc. 2016 - Mirai Cibles → objets de l’IoT (caméras, ...) et routeurs réseaux Exploite des couples login / password par défaut Utilisé pour mener des attaques de déni de service (DDoS) → par exemple lors de l’attaque d’OVH en octobre 2016 2006 / 2007 - Premières attaques des Anonymous Michel Salomon Sécurité informatique 5 / 70
Les attaques Objectifs Classification Description Historique (suite) Les contemporains 2009 - Conficker Ver ayant infecté plusieurs millions d’ordinateurs Encore actif en 2015 (≈ 400000 ordi.) ; contrôlable à distance Exploite des techniques connues (vulnérabilité, protection, etc.) Impact militaire assez fort 2009 / 2010 - Operation Aurora Vol de codes sources / données (Yahoo, Google, etc.) Attaque de type Advanced Persistent Threat Ciblait essentiellement des entreprises américaines Responsables agissant pour le gouvernement chinois ? 2013 / ... - Backdoor D-Link Possibilité d’accéder à la page d’admin. sans authentification Plusieurs routeurs affectés par ce type de problème Problème au niveau du firmware (analyse du code par la technique du reverse engineering) Michel Salomon Sécurité informatique 6 / 70
Les attaques Objectifs Classification Description Historique (suite) Advanced Persistent Threat ⇒ piratage furtif et continu Haut degré de dissimulation et sur une longue période Cibles Entreprise → motivation financière (propriété intellectuelle, ...) État → motivation politique Michel Salomon Sécurité informatique 7 / 70
Les attaques Objectifs Classification Description Historique (suite) Les contemporains 2012 - Heartbleed Exploitait une vulnérabilité due à un bug dans la bib. OpenSSL Mauvais traitement des données en entrée au niveau de TLS Découvert début 2014 → version corrigée diffusée en avril 2013 / 2014 - CryptoLocker Un rançongiciels (ransomware) notable Propagation par emails et botnet Chiffrement avec l’algo. asymétrique RSA de certains fichiers stockés localement ou accessibles via le réseau Clé privée stockée sur des serveurs contrôlés par les attaquants 2015 - AFNetworking apps Exploitait une vulnérabilité dans la bib. AFNetworking Bibliothèque open source utilisée dans des applis iOS et OS X Mauvaise gestion des certificats SSL Michel Salomon Sécurité informatique 8 / 70
Les attaques Objectifs Classification Description Historique (suite) Les contemporains ⇒ programmes malveillants 2015 - Ashley Madison, Backdoor Cisco, etc. 2017 - Reaper (ou IoTroop) Programme malveillant ciblant l’IoT Exploite au moins 9 vulnérabilités connues, touchant des objets de D-Link, Netgear, Linksys, etc. 2018 - LockerGoga Ransomware with wiper capabilities A notamment touché des sites de production d’entreprises de la filière aluminium (Norsk Hydro, etc.) Processus d’infection pas clairement identifié (phishing ?) 31 variantes détectées fin mars 2019 Premières version uniquement de type rançongiciel Variantes ultérieures changeant les mots de passe (connexion impossible → message de rançon non visible...) Désactive les adaptateurs WiFi et Ethernet 2018 - Credential stealer are ranked 1 (Lokibot, Pony, etc.) Michel Salomon Sécurité informatique 9 / 70
Les attaques Objectifs Classification Description Les attaques en temps réel Site http://honeynetproject.com Michel Salomon Sécurité informatique 10 / 70
Les attaques Objectifs Classification Description Les attaques en temps réel Site https://norse-corp.com/map/ Michel Salomon Sécurité informatique 11 / 70
Les attaques Objectifs Classification Description Les attaques en temps réel Site https://cybermap.kaspersky.com Michel Salomon Sécurité informatique 12 / 70
Les attaques Objectifs Classification Description Les attaques en temps réel Site http://www.zone-h.org - Archive de défacement de sites web Michel Salomon Sécurité informatique 13 / 70
Les attaques Objectifs Classification Description Évolution temporelle du niveau des attaques Pléthore d’outils sophistiqués disponibles, requérant peu de connaissances Michel Salomon Sécurité informatique 14 / 70
Les attaques Objectifs Classification Description Quels sont les objectifs possibles d’une attaque ? Rendre inaccessible une ressource Prendre le contrôle d’une ressource Capturer de l’information d’un système informatique Utiliser un système informatique compromis pour rebondir Constituer un réseau de machines contrôlées à distance etc. Qu’exploite une attaque ? → une ou plusieurs vulnérabilité(s) 1 failles humaines → ingénierie sociale 2 failles applicatives → erreurs d’admin. ou de programmation 3 failles systèmes → mots de passe, utilisateurs, etc. 4 failles réseaux → faiblesse, mauvaise implémentation / utilisation de proto. 5 failles matérielles et physiques Michel Salomon Sécurité informatique 15 / 70
Les attaques Objectifs Classification Description Quels sont les objectifs possibles d’une attaque ? Flux normal de données entre deux machines 1 L’interruption 2 L’interception 3 La modification 4 La fabrication Michel Salomon Sécurité informatique 16 / 70
Les attaques Objectifs Classification Description Quels sont les objectifs possibles d’une attaque ? 1 L’interruption Vise la disponibilité des données 2 L’interception 3 La modification 4 La fabrication Michel Salomon Sécurité informatique 17 / 70
Les attaques Objectifs Classification Description Quels sont les objectifs possibles d’une attaque ? 1 L’interruption Vise la disponibilité des données 2 L’interception Vise la confidentialité des données 3 La modification 4 La fabrication Michel Salomon Sécurité informatique 18 / 70
Les attaques Objectifs Classification Description Quels sont les objectifs possibles d’une attaque ? 1 L’interruption Vise la disponibilité des données 2 L’interception Vise la confidentialité des données 3 La modification Vise l’intégrité des données 4 La fabrication Michel Salomon Sécurité informatique 19 / 70
Les attaques Objectifs Classification Description Quels sont les objectifs possibles d’une attaque ? 1 L’interruption Vise la disponibilité des données 2 L’interception Vise la confidentialité des données 3 La modification Vise l’intégrité des données 4 La fabrication Vise l’authenticité des données Michel Salomon Sécurité informatique 20 / 70
Les attaques Objectifs Classification Description Attaque passive versus active Attaque passive Consiste à écouter pour observer le fonctionnement Capture de trames Analyse du trafic Généralement indétectable → prévention Attaque active Consiste à modifier des données / trames ; à perturber le fonctionnement d’un(e) réseau / machine ; éventuellement sans capacité d’écoute Généralement détectable Michel Salomon Sécurité informatique 21 / 70
Les attaques Objectifs Classification Description Menaces actives Rejeu (Replay) d’une communication capturée Masquerade (Spoofing) ou usurpation d’identité Attaque de l’homme du milieu (Man-In-The-Middle) Déni de service (Denial of Service) Intrusion via le réseau dans un système informatique (par un service) dans un site web Infection par un programme malveillant Virus / vers Espiologiciels etc. Messagerie électronique Phishing (non “‘personnalisé”) Spear phishing (“personnalisé” : vise une cible précise) Michel Salomon Sécurité informatique 22 / 70
Les attaques Objectifs Classification Description Illustration d’attaques actives Rejeu (Replay) Illustration Pirate Capture des trames provenant de Bob, plus tard réémission des trames vers Alice Internet ou autre infrastructure réseau Bob Alice Masquerade (Spoofing) Attaque de l’homme du milieu (Man-In-The-Middle) Michel Salomon Sécurité informatique 23 / 70
Les attaques Objectifs Classification Description Illustration d’attaques actives Rejeu (Replay) Masquerade (Spoofing) Illustration Pirate Trames provenant du pirate, mais semblant provenir de Bob Internet ou autre infrastructure réseau Bob Alice Attaque de l’homme du milieu (Man-In-The-Middle) Michel Salomon Sécurité informatique 24 / 70
Les attaques Objectifs Classification Description Illustration d’attaques actives Rejeu (Replay) Masquerade (Spoofing) Attaque de l’homme du milieu (Man-In-The-Middle) Illustration Pirate Le pirate modifie les trames provenant de Bob, puis les envoie à Alice Internet ou autre infrastructure réseau Bob Alice Michel Salomon Sécurité informatique 25 / 70
Les attaques Objectifs Classification Description Attaque directe versus indirecte Attaque directe ⇒ pas d’intermédiaire Le pirate attaque directement la machine cible Pratique courante des pirates amateurs (script kiddies) Utilisation de programmes peu paramétrables Remonter à l’origine de l’attaque est possible Attaque indirecte ⇒ plus ou moins de machines intermédiaires Trames de l’attaque émises vers une machine intermédiaire Deux types d’attaques : par rebond → ré-émission des trames Rebond DNS, Content Delivery Network, etc. par réponse → à une requête Trames pouvant passer par une ou plusieurs machines Permet de masquer l’origine de l’attaque (adresse IP) Remonter à l’origine de l’attaque est très difficile Michel Salomon Sécurité informatique 26 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles physiques Défaillance au niveau de la sécurisation des accès au matériel Accès à un ordinateur éteint BIOS protégé → effacement du mot de passe BIOS pas protégé → boot sur une clé USB ou un Live CD Résoudre le problème de l’authentification Outils pour casser la base de mots de passe (hachés) aspirée Utilisation de dictionnaires d’empreintes Utilisation des tables arc-en-ciel ; Utilisation de la force brute Outils exploitant des failles dans le noyau du système Contournement de la phase d’authentification Élévation de privilèges Accès à un ordinateur allumé avec session active (non verrouillée) Outils (sur clé USB) automatisant la collecte d’info. ; Keyloggers Michel Salomon Sécurité informatique 27 / 70
Les attaques Objectifs Classification Description Comment sont stockés les mots de passe dans un système ? Utilisation d’une fonction de hachage pour garantir l’intégrité Transforme une suite d’octets de taille habituellement quelconque en une suite de bits de longueur finie Suite appelée empreinte, condensat ou haché (digest ou hash) Empreinte “unique” → absence de collision Une même suite d’octets → un même condensat Petite modification → grande différence de condensat Génération / vérification d’un mot de passe Alice saisit un mot de passe m1 → le système stocke son haché h1 En se reconnectant Alice saisit un mot de passe m2 (égal à m1 normalement) 1 Le système calcul le haché h2 de m2 2 Si h2 = h1 c’est le bon mot de passe, sinon... Protéger les mots de passe d’une application de cette manière Michel Salomon Sécurité informatique 28 / 70
Les attaques Objectifs Classification Description Comment sont stockés les mots de passe dans un système ? Comment renforcer la sécurité des infos hachées ? ⇒ le salage Principe Ajout d’une donnée supplémentaire → le grain de sel Deux infos identiques ne donneront pas le même condensat Le grain de sel peut être initialisé de manière statique → même séquence pour tous les utilisateurs dynamique → séquence aléatoire pour chaque utilisateur Illustration avec le fichier /etc/shadow $6$spTDVJP3$Eu5p.miyyBBIUWmOwb5bAb671J6WJxvL... Algorithme de hachage : $6$ → SHA-512 Grain de sel concaténé au mot de passe Mot de passe haché Intérêt si compromission d’une table de mots de passe hachés On suppose que l’attaquant connaît les salages employés Calcul d’un dictionnaire / une table pour chaque mot de passe Michel Salomon Sécurité informatique 29 / 70
Les attaques Objectifs Classification Description Comment sont stockés les mots de passe dans un système ? Une table arc-en-ciel concilie taille de fichier et temps de calcul Basée sur l’utilisation de fonctions de réduction Permet de calculer un mot de passe à partir d’une empreinte Une fct produit des collisions → utiliser plusieurs fct différentes Michel Salomon Sécurité informatique 30 / 70
Les attaques Objectifs Classification Description Comment hacher les mots de passe avec PHP ? Deux points importants Le temps de traitement lié à l’algorithme et le grain de sel utilisé Choix possibles dans PHP API native de hachage d’un mot de passe Gère le hachage et la vérification d’un mot de passe password_hash() et password_verify() Bibliothèque de compatibilité ; Fonction crypt Ne pas utiliser les fonctions sha1 ou md5 Value retournée par crypt() ou password_hash() Michel Salomon Sécurité informatique 31 / 70
Les attaques Objectifs Classification Description Comment chiffrer (si besoin) avec PHP ? PHP n’est pas l’endroit idéal pour chiffrer Le serveur HTTP ou le SGBD s’en chargent très bien Par exemple avec le module pgcrypto pour PostgreSQL Choix possibles dans PHP openssl crypt phpseclib etc. Éviter mcrypt qui est basé sur une biblio. plus maintenue Nombreux algorithmes disponibles → symétriques et asymétriques Différents modes d’opération → traitement des blocs de données Michel Salomon Sécurité informatique 32 / 70
Les attaques Objectifs Classification Description Comment chiffrer (si besoin) avec PHP ? Poignée de main (handshake) SSL / TLS et passage en HTTPS Authentification mutuelle via des certificats Michel Salomon Sécurité informatique 33 / 70
Les attaques Objectifs Classification Description Comment chiffrer (si besoin) avec PHP ? Poignée de main (handshake) SSL / TLS et passage en HTTPS Construction des clés de chiffrement symétrique Michel Salomon Sécurité informatique 34 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - Observation Observation des protocoles via un analyseur réseau ou renifleur Impact important sur la sécurité Capture de mots de passe Capture d’informations confidentielles ou personnelles Cartographie du réseau Parades (ou contre-mesures) Topologie sécurisée → segmentation du réseau Sécurisation des protocoles par des moyens cryptographiques Couche Application Couche Transport etc. Utiliser un détecteur de renifleur → matériel en mode promiscuous Réseaux sans fils → réduire la puissance / la zone écoutable Un renifleur est également un outil de sécurité Diagnostiquer des problèmes sur le réseau Connaître le trafic réseau qui circule Michel Salomon Sécurité informatique 35 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - Sécurisation des protocoles Session chiffrée Utilisation de ssh à la place de telnet, rlogin, etc. Tunnel chiffré Encaps. des données d’un protocole dans un autre protocole Exemple : flux tcp redirigé dans un tunnel ssh Sécurisation des connexions TCP/IP Secure Socket Layer / TLS Entre couches Application et Transport Authentification, confidentialité et intégrité Couramment utilisé (sécurisation web et courrier électronique) Sécurisation de la couche Transport → IP SECurity / IPv6 En-tête d’authen. (AH) / Encapsulation données (ESP) Michel Salomon Sécurité informatique 36 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - WiFi Surveiller, écouter, balayer des réseaux (wardriving) est illégal Nouveaux risques Plus de cloisonnement physique → capture aisée du signal Déni de service facilité (brouillage, saturation) Hotspot public Rogue Access Point Origine Utilisateur le faisant sans autorisation Un pirate pour mener des attaques Man-In-The-Middle Parade (ou contre-mesure) → surveillance du spectre radio Wireless Intrusion Detection System Composants : capteurs ; serveur ; console d’administration Michel Salomon Sécurité informatique 37 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - WiFi Sécurisation par chiffrement des communications Wired Equivalent Privacy ⇒ cassé en 2001 Chiffrement symétrique RC4 avec des clés de 64 et 128 bits Capture de paquets pour casser la clé WEP 64 bits → 400000 paquets WEP 128 bits → 1200000 paquets WiFi Protected Access ⇒ WPA / WPA2 “cassés” en 2009 / 2017 Authentification / distribution des clés WPA-Personal → WPA-Pre Shared Key Clé de chiffrement (128 bits) dérivée d’une passphrase (256 bits) commune WPA-Enterprise → authentification par serveur RADIUS Chiffrement WPA → Temporary Key Integrity Protocol Chiffrement symétrique RC4 mais avec une clé 128 bits différente pour chaque paquet WPA2 → CTR mode with CBC-MAC Protocol Chiffrement symétrique AES Michel Salomon Sécurité informatique 38 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - Déni de service Objectif du Denial of Service rendre “muet” un hôte faisant office de serveur Impossible de répondre à une requête de l’utilisateur Interruption de service Service de messagerie électronique Site web etc. Attaque habituellement menée via un roBot network un ensemble d’hôtes / machines contrôlés via un programme de type cheval de Troie On parle d’hôtes / machines zombies Utilisation à l’insu du propriétaire En résumé : saturation d’un serveur ou d’un réseau Michel Salomon Sécurité informatique 39 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - Déni de service Plusieurs façons de procéder Saturation de la bande passante (“occuper la ligne”) Ping flooding → requêtes d’écho ICMP manipulées Impossible de lutter seul (se “cacher” derrière des prestataires) Saturation des connexions réseau (“livreurs de pizzas”) SYN flooding → dépassement du nombre maximum autorisé de connexions semi-ouvertes Lutter avec l’utilisation des SYN cookies Saturation de l’espace disque Fork bomb → saturation de la table des processus Mail bombing • saturation de la BAL d’une personne • saturation de l’espace disque du serveur etc. Michel Salomon Sécurité informatique 40 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - Déni de service Distributed Denial of Service Attaques DoS menées en parallèles par “beaucoup” de machines Attaque menée par un seul pirate → utilisation d’un botnet Attaque concertée de plusieurs pirates Développement pandémique des botnets Plusieurs milliers de machines seraient infectées chaque jour Touche également les smartphones Il existe un “marché” des botnets Rustock générait ≈ 50 % du SPAM mondial à son apogée Contrôle via un serveur IRC, web, du P2P, etc. (botmaster) Intérêt : réduire le temps requis pour obtenir le DoS Michel Salomon Sécurité informatique 41 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - ARP Spoofing Attaque permettant de détourner un flux de données dans un réseau commuté Vise les réseaux locaux Ethernet Vise l’Address Resolution Protocol Compromission du cache ARP : table de correspondance entre les adresses IP et les adresses MAC (ou physique) Objectifs L’interruption du flux → déni de service L’interception du flux → observation du trafic La modification des données qui transitent En cas d’interception / de modification, c’est une attaque : active → attaque de l’homme du milieu directe Michel Salomon Sécurité informatique 42 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - DNS Spoofing Attaque consistant à faire parvenir de fausses réponses aux requêtes DNS émises par la machine cible Vise le Domain Name System Associe une adresse IP à un nom symbolique Les noms symboliques sont structurés et hiérarchiques Approches 1 DNS Spoofing La réponse du DNS est usurpée par le pirate 2 DNS Cache Poisoning Compromission du cache (noms symboliques ⇔ adresses IP) Rappels Un serveur DNS ne possède les correspondances que pour les machines du domaine sur lequel il a autorité Pour les autres domaines, il interroge le serveur DNS ayant autorité → réponses stockées dans un cache Michel Salomon Sécurité informatique 43 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux - DNS Spoofing Objectifs L’interruption de l’accès à un site web → déni de service Redirection des internautes vers un faux site web (fabrication) Parades Vérifier que la réponse correspond à ce qui était attendu Uniquement une adresse IP Pas d’infos supplémentaires visant à corrompre le cache L’aléa actuel des IDs rend quasi impossible leur prédiction Limiter l’usage du cache Sécurisation avec DNS SECurity Extensions Authentification de l’origine des données DNS Signature des données DNS, mais pas de chiffrement Utiliser la recherche inversée (Reverse DNS Lookup) Requête d’un enreg. PTR avec un nom de domaine spécial IPv4 → utilise le domaine spécial in-addr.arpa IPv6 → utilise le domaine spécial ip6.arpa Michel Salomon Sécurité informatique 44 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles réseaux Comment se protéger L’idéal Des services bien conçus Des services bien administrés (configuration et mise à jour) Des services bien utilisés (manque d’intelligence entre chaise et clavier) La réalité Limiter les accès aux services nécessaires Limiter les conséquences d’une intrusion Une protection périmétrique a des limites WiFi ; portables infectés ; applications web vulnérables En pratique Séparation services publics / internes Limiter la visibilité depuis l’extérieur Passage par un point de contrôle unique → pare-feu Michel Salomon Sécurité informatique 45 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles applicatives - Erreurs de prog. Situation de concurrence (race condition) Des processus ou threads accèdent à une même ressource (fichier, variable partagée, mémoire) sans contrôle correct → le résultat de l’exécution va dépendre de l’ordre des accès Illustration - value est initialisée à 3 Thread A Thread B Un changement de contexte possible Instruction Registre EAX Instruction Registre EAX mov EAX,[value] 3 mov EAX,[value] 3 sub EAX,1 2 mov [value],EAX 2 add EAX,1 4 mov [value],EAX 4 Un pirate pourrait donc récupérer ou modifier des données La parade consiste à verrouiller la ressource Michel Salomon Sécurité informatique 46 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles applicatives - Erreurs de prog. Situation de concurrence (race condition) Des processus ou threads accèdent à une même ressource (fichier, variable partagée, mémoire) sans contrôle correct → le résultat de l’exécution va dépendre de l’ordre des accès Illustration - value est initialisée à 3 Thread A Thread B Un autre changement de contexte possible Instruction Registre EAX Instruction Registre EAX mov EAX,[value] 3 mov EAX,[value] 3 add EAX,1 4 mov [value],EAX 4 sub EAX,1 2 mov [value],EAX 2 Un pirate pourrait donc récupérer ou modifier des données La parade consiste à verrouiller la ressource Michel Salomon Sécurité informatique 47 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles applicatives - Erreurs de prog. Débordement de tampon (buffer overflow) Faille dans un programme permettant d’exécuter un code arbitraire compromettant la machine cible Consiste à écraser le contenu de la mémoire → modifier l’adresse de retour d’une fonction en cours d’exécution Illustration du buffer overflow - Le programme 1 #include 2 #include 3 4 void fct(char *str) int main(int argc,char *argv[]) 5 { { 6 char tampon[8]; if (argc!=1) 7 printf("Usage: %s \n",argv[0]); 8 ... else 9 strcpy(tampon,str); fct(argv[1]); 10 ... return 0; 11 } } Michel Salomon Sécurité informatique 48 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles applicatives - Erreurs de prog. Illustration du buffer overflow - État de la pile 4 octets arg1 = tampon arg2=str Sens d’empilement tampon EBP @retour fct ... argc argv[0] argv[1] Parades Utiliser des fonctions sûres strcpy → strncpy Programmer avec un langage “sûr” Vérifier le code source avec des logiciels Michel Salomon Sécurité informatique 49 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles applicatives - Erreurs de prog. Contenu dynamique Java ; ActiveX ; JavaScript ; etc. Scripts CGI (Common Gateway Interface) PHP (Personal Home Pages) etc. Quelques attaques Attaque par validation d’entrée non reconnaissance d’une entrée syntaxiquement incorrecte ; un module ne parvient pas à traiter des entrées manquantes ; etc. Falsification des données HTTP Cookies ; Uniform Resource Locator ; etc. Cross-Site Scripting Forcer l’affichage de code HTML ou de scripts “injectés” par l’utilisateur Michel Salomon Sécurité informatique 50 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles applicatives - Erreurs de prog. Quelques attaques (suite) Injection de code SQL Modif. de la requête via une instruction dans une valeur Exemple • Requête $req=SELECT id FROM admins where login="$login"; • Arguments login=jdoe" OR 1=1 OR login="toto Manipulation d’URL Les paramètres sont passés au travers de l’URL http://machine/forum/index.php3?cat=3 le pirate modifie manuellement la valeur du paramètre http://machine/forum/index.php3?cat=6 → éventuellement accès à un espace protégé Le pirate peut essayer de se promener dans l’arborescence, rechercher des scripts, le tout en aveugle Michel Salomon Sécurité informatique 51 / 70
Les attaques Objectifs Classification Description Attaques exploitant des failles web Problématique générale Origine des failles Utilisation imprévue d’une variable → produit un comportement inattendu Comportement plus ou moins contrôlé par le pirate Les mots de passe sont rarement à l’origine des intrusions Acteurs de la sécurité web Open Web Application Security Project - http://www.owasp.org Communauté ouverte de recherche / lutte contre les failles web Accès libre à des projets → Info. ; Développement (outils) Web Application Security Consortium - http://www.webappsec.org Communauté ouverte d’experts, industriels, de représentants d’organismes Définition et préconisations → Bonnes pratiques ; Normes ; etc. Michel Salomon Sécurité informatique 52 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Qu’est-ce qu’un programme malveillant (malicious software) ? Un programme indésirable exécutant des actions néfastes Forcer la consultation de certains sites web → Adware Espionner, voler des infos confidentielles → Spyware / Keylogger Prendre le contrôle (backdoor ) → Trojan Rançonner → Ransomware Rendre certains sites web inaccessibles (Denial of Service) Effacer des fichiers → Virus etc. Grande variété de programmes malveillants Différentes cibles (matérielles ; logicielles ; sociales) Différentes charges malicieuses Différents vecteurs de propagation Michel Salomon Sécurité informatique 53 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Différentes cibles Sociales (ou utilisateurs) Entreprise ; État (administration ; secteurs sensibles → défense, etc.) Tout le monde Logicielles Suites bureautiques ; emails ; pdf ; etc. Systèmes d’exploitation Firmware Matérielles Ordinateurs, imprimantes Smartphone Objets connectés etc. Michel Salomon Sécurité informatique 54 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Classifiés principalement suivant la méthode de propagation Se dissimule dans un autre programme → Virus Programme autonome → Ver (worm) Différences entre virus et ver ? Un virus ne se trouve pas sous la forme d’un fichier Réplication en infectant un fichier existant pour s’y dissimuler Un ver est plus simple Pas besoin de se “cacher” et de se “reproduire” Un ver se propage tout seul via le réseau Messagerie électronique / emails Messagerie instantanée Sites / pages web Services réseaux comme FTP etc. Michel Salomon Sécurité informatique 55 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Bombe logique (≈ virus) Programme capable de réaliser une action néfaste Création d’une porte dérobée (backdoor ) Destruction de données etc. À déclenchement Différé → à une certaine date (Tchernobyl ; Michelangelo ; etc.) Téléguidé → valeur particulière pour une donnée, combinaison de touches, etc. Cheval de Troie (Trojan ≈ virus) Programme avec une fonction légitime, mais qui contient en plus une fonctionnalité malveillante cachée Remplit éventuellement (souvent) la fonction souhaitée Effectue une ou plusieurs fonctions à l’insu de l’utilisateur Généralement pour ouvrir une porte dérobée (backdoor ) Transforme la machine en machine zombie Michel Salomon Sécurité informatique 56 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Historique de la virologie 1970 à 1990 → genèse et premières infections Premier virus touchant un PC IBM → virus de boot (c)Brain Virus infectant des fichiers exécutables (COM, etc.) 1990 à 2000 → sophistication Premier macro-virus (Microsoft Word) en juillet 1995 Virus de type Dark Avenger → moteur de mutation polymorphique 2000 à 2005 → l’apogée des vers Melissa virus → 100 millions de $ Ciblait Microsoft Word et utilisait Outlook pour se propager ILOVEYOU (Love Bug) → milliards de $ Écrit en VBScript, il détruisait aléatoirement des fichiers Utilisait Windows Address Book et Outlook pour se propager 2005 à ... Multiplication des vecteurs d’infection Sophistication croissante → contrôle à distance via le réseau, etc. Michel Salomon Sécurité informatique 57 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Les programmes malveillant comme bras armé des États 2007 / ... - Babar → DGSE / France Babar et ses variantes sont des logiciels à visée d’espionnage Pourquoi la paternité française ? Unité du kilooctet ; locale fr_FR ; anglais “approximatif” 2010 - StuxNet → États-Unis et/ou Israël ? Visait l’infrastructure nucléaire iranienne Exploitait 4 vulnérabilités zero-day Modification de micro-code de Siemens, PLC, SCADA 5 personnes pendant 6 mois Michel Salomon Sécurité informatique 58 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Virus résident (en mémoire) versus non-résident Différence au niveau du mode d’infection → en continu ou non Résident → infection en continu des différents fichiers S’installe comme un composant du système d’exploitation Au démarrage, le virus est chargé en mémoire ou il reste actif Intercepte certaines interruptions et fonctions du système d’ex. Activation de l’infection lors d’un accès à un fichier ciblé Non-résident → infection en une seule vague (tous les fichiers) Activé lorsqu’il est exécuté Scanne le disque dur afin de rechercher les fichiers à infecter S’arrête une fois que tous les fichiers repérés ont été infectés Michel Salomon Sécurité informatique 59 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Techniques d’obfuscation (“de protection”) → mutation de code Virus crypté Code du virus débutant par un décrypteur en clair Corps du virus chiffré, clé évoluant à chaque réplication Polymorphisme Corps du virus chiffré, clé évoluant à chaque réplication Décrypteur mutant à chaque réplication Code mort Réorganisation du code etc. Anti-émulation Rendre difficile l’émulation du décrypteur par un antivirus Métamorphisme Suppression du décrypteur Corps du virus mutant (polymorphisme intégral) Michel Salomon Sécurité informatique 60 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Virus Zmist (ou Zombie.Mistfall - 2000) Virus métamorphique → mutations et modifications du flot de contrôle Technique de code integration (première utilisation) Désassemblage du fichier hôte → nécessite 32 Mio de mémoire Relocation de blocs de code de l’hôte → création d’îlots Intégration du code du virus dans les espaces créés Recompilation du nouvel exécutable Virus Simile (ou Win32/Simile - 2002) Code source du virus ≈ 14000 lignes d’assembleur Machine de métamorphisme ≈ 90% du code Polymorphique → décryptage non-linéaire Anti-désassemblage, anti-émulation, etc. Michel Salomon Sécurité informatique 61 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Virus Zmist (ou Zombie.Mistfall - 2000) - code integration Michel Salomon Sécurité informatique 62 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Virus souvent écrits en assembleur (de dizaines à plusieurs milliers de lignes de code) Qu’est-ce que l’assembleur ? ⇒ exemple avec hello world Michel Salomon Sécurité informatique 63 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillants Illustration du polymorphisme / métamorphisme Michel Salomon Sécurité informatique 64 / 70
Les attaques Objectifs Classification Description Détection des programmes malveillants - Techniques Parade → antivirus (+ pare-feu) Intègrent des techniques qui sont apparues avec les différentes générations de virus (boot, puis premiers infecteurs de fichiers) Techniques de détection des antivirus par ordre d’apparition Signature → suite d’octets caractéristique Hachage des signatures Recherche en début ou fin de fichier, au point d’entrée etc. Moteur heuristique Analyse de code → structure des exécutables respectées ? Détournement, puis vérification des appels systèmes Émulation Poly et métamorphiques complexes → signature ? Virus polymorphiques → corps du virus fixe Émuler le décrypteur, puis signature sur le virus en clair Michel Salomon Sécurité informatique 65 / 70
Les attaques Objectifs Classification Description Détection des programmes malveillants - Techniques Difficultés de l’analyse de code Désassemblage indécidable Combinaison de code statique / dynamique Techniques d’obfuscation Programmes auto-modifiants Archives auto-extractables (runtime packers) Compression Just-In-Time compilation (JIT) Une meilleure détection avec l’analyse morphologique Basée sur la structure des programmes via la construction du Control Flow Graph Robuste aux mutations locales Prise en compte de la sémantique Construction automatique de signatures Michel Salomon Sécurité informatique 66 / 70
Les attaques Objectifs Classification Description Détection des programmes malveillants - Analyse morphologique Signatures (Illustration tirée d’un support de Jean-Yves Marion du LORIA) Michel Salomon Sécurité informatique 67 / 70
Les attaques Objectifs Classification Description Détection des programmes malveillants - Analyse morphologique Détection (Illustration tirée d’un support de Jean-Yves Marion du LORIA) Michel Salomon Sécurité informatique 68 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillant Déroulement de l’infection et parade Importance du filtrage Blacklist → interdit si connu comme dangereux Greylisting → ralenti si inconnu Michel Salomon Sécurité informatique 69 / 70
Les attaques Objectifs Classification Description Attaques s’appuyant sur des programmes malveillant Contournement “souvent” partiellement possible Prépondérance du facteur humain La sécurité globale est celle de son maillon le plus faible Michel Salomon Sécurité informatique 70 / 70
Vous pouvez aussi lire