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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les attaques Objectifs Classification Description
Les attaques en temps réel
Site http://honeynetproject.com
Michel Salomon Sécurité informatique 10 / 70Les attaques Objectifs Classification Description
Les attaques en temps réel
Site https://norse-corp.com/map/
Michel Salomon Sécurité informatique 11 / 70Les attaques Objectifs Classification Description
Les attaques en temps réel
Site https://cybermap.kaspersky.com
Michel Salomon Sécurité informatique 12 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les attaques Objectifs Classification Description
Attaques s’appuyant sur des programmes malveillants
Illustration du polymorphisme / métamorphisme
Michel Salomon Sécurité informatique 64 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Les 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 / 70Vous pouvez aussi lire