Sécurité informatique - Interfaces et Sécurité - cours-info

 
CONTINUER À LIRE
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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
Sécurité informatique - Interfaces et Sécurité - cours-info
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