1.18k likes | 1.3k Views
Protection des systèmes d’informations : Mena ces et solutions actuelles Frédéric Cuppens Maître de recherches ONERA Toulouse (et IRIT Toulouse à partir de Novembre 2002). Plan. A. Contexte 1. Introduction 2. Exemples d’attaques B. Démarche pour la sécurité des systèmes d’information
E N D
Protection des systèmes d’informations : Menaces et solutions actuelles Frédéric Cuppens Maître de recherches ONERA Toulouse (et IRIT Toulouse à partir de Novembre 2002)
Plan A. Contexte 1. Introduction 2. Exemples d’attaques B. Démarche pour la sécurité des systèmes d’information 3. Politique de sécurité 4. Détection d’intrusions 5. Authentification 6. Sécurité des communications 7. Politiques de contrôle d’accès C. Différents types de politiques de contrôle d’accès 8. Approche discrétionnaire 9. Approche basée sur les rôles 10. Base de données privée virtuelle D. Conclusion / perspectives
1. Introduction Evolution du contexte Technologie Internet future Technologie Internet BlueTooth UMTS Infrastructure hétérogène Active Network Client/Serveur Réseaux avec connections multiples Hiperlan WLAN Infrastructure hétérogène Mainframe WAP I-mode Systèmes ouverts Gestion de données et d’applications Systèmes interropérants Système de gestion indépendant Niveau de complexité Gestion centralisée Gestion centralisée Chemins d’accès multiples Chemin d’accès unique Oracle2 Oracle6 Oracle7 Oracle8i Oracle9i 1980 1990 2000
1. Introduction Quelques statistiques • 1,2 Milliard $US • Pertes d’eBay, Yahoo! and Amazon.com dues aux attaques contre leurs sites en 2000 • Attaque contre la disponibilité (DDOS: Distributed Denial of Service) • Source : Yankee Group • 85 % • Pourcentage des companies américaines et Canadiennes ayant trouvé un virus dans leur système • Source : CSI/FBI • 80 % • Pourcentage estimé des attaques correspondant aux intrusions internes • Source : FBI
1. Introduction Objectifs de l’intrusion Confidentialité Accès illégal à certaines informations Exemples : sniffing, cracking, ... Objectifs de l’intrusion Intégrité Disponibilité Création, modification ou suppression illégale de l’information Empêche les utilisateurs d’avoir un accès autorisé au système Exemples : altering, spoofing, hijacking, ... Exemples : flooding, smurfing, ...
1. Introduction Contexte actuel Nouvelles vulnérabilités Nouvelles menaces • Hacker amateur • E-crime • Infowarrior • menaces internes • sabotage d’information critique Au moins 800 vulnérabilités nouvelles découvertes chaque année dans les environements Internet Nouveaux risques Nouveaux outils d’intrusion permettant d’exploiter automatiquement les vulnérabilités • Firewall • VPN • Transactions électroniques sécurisées • Secure mail • Détection d’intrusion Mécanismes de sécurité
2. Exemples d’attaques Principales “classes” d’attaque • Sniffing • Ecoute • Spoofing • Mascarade • Flooding • Deni de service • Scanning • Balayage des services • Hijacking • Interception / détournement de communication • Virus et Chevaux de Troie
Internet ou DMZ 2. Exemples d’attaques Packet sniffing (R-a-Probe) Destinataire • Intercepter des paquets transmis via Internet (login, numéro de carte de crédit, autres données sensibles) • Voler des nom de machines, • Nom d’utilisateurs, mots de passe (même chiffrés), … M M M Attaquant Emetteur
2. Exemples d’attaques Flooding • Principe : • Envoyer un grand nombre de messages de sorte que le récepteur ne peut plus les gérer • Conduit à un déni de service • Ce déni de service peut provenir de plusieurs sources (DDOS pour Déni de service distribué) • Flooding les plus fréquents • Flooding TCP (ou Syn flooding) • Flooding UDP • Smurfing (exemple de flooding ICMP avec des paquets “Echo Request”)
SYN SYN SYN SYN SYN SYN - ACK Toto Nerd 2. Exemples d’attaques SYN flooding (R-a-deny(temporary ou administrative)) • Attaque DoS sur les réseaux IP • Connexion à moitié ouverte : le serveur insère les informations d’ouverture dans sa pile • Trop de connexions à moitié ouverte peuvent conduire à un déni de service Serveur Client • Le client n’envoie pas de ack pour ouvrir la connexion • Le serveur attend la réponse (ack) du client et conserve dans sa pile des connexions à moitié ouvertes
2. Exemples d’attaques Smurfing (R-a-deny(temporary)) Existence d ’une adresse « broadcast » en xxx.xxx.xxx.255 Si une machine du sous réseau envoie un message « echo request » à cette adresse,toutes les machines du sous-réseau vont répondre par un « echo reply » Internet ECHO REPLY de 192.168.0.20 vers la victime ECHO REPLY de 192.168.0.20 vers la victime ECHO REQUEST de la victime vers 192.168.0.255 ECHO REPLY de 192.168.0.20 vers la victime ECHO REPLY de 192.168.0.20 vers la victime ECHO REPLY de 192.168.0.20 vers la victime ECHO REPLY de 192.168.0.20 vers la victime Envoi d ’un message « echo request » forgé avec l ’adress de la victime (spoofing) Des centaines de messages « echo reply » envoyés à la victime Attaquant Victime Principe du smurfing : amplification du flooding Jusqu ’à 255 messages reçus par la victime pour un message envoyé par l ’attaquant
2. Exemples d’attaques Spoofing • Principe : • Masquerade : forger des paquets avec de fausses adresses pour pour se faire passer pour une autre machine • Spoofing les plus fréquents : • Spoofing ARP (appelé également ARP poison) • Spoofing ICMP • Spoofing UDP • Spoofing TCP
2. Exemples d’attaques ARP Poison • Principle du protocole ARP (protocole non connecté): • Dans le protocole ARP, chaque “requête” est diffusée aux autres machines d’un réseau local • Chaque machine conserve dans son cache la correspondance @IP/@MAC • Le cache est mis à jour lorsque la machine reçoit un “ARP reply” (même s’il n’a pas envoyé un “ARP request”) • Principe de l’attaque : • L’attaquant envoie des messages “ARP reply” avec une @IP qui ne correspond pas à une @MAC • Applications: • Deni de service • Hijacking
2. Exemples d’attaques Hijacking ARP (R-m-Intercept) @IP 192.16.1.2 @MAC 00:00:00:02 @IP 192.16.1.1 @MAC 00:00:00:01 (1) Communication Cache ARP : @IP 192.16.1.1 @MAC 00:00:00:01 Cache ARP : @IP 192.16.1.2 @MAC 00:00:00:02 (2) ARP Poison ARP Reply : 192.16.1.2 is-at @MAC 00:00:00:03 ARP Reply : 192.16.1.1 is-at @MAC 00:00:00:03 Cache ARP : @IP 192.16.1.1 @MAC 00:00:00:03 Cache ARP : @IP 192.16.1.2 @MAC 00:00:00:03 Man In the Middle (MiM) @MAC 00:00:00:03 (3) Hijacking Cache ARP : @IP 192.16.1.1 @MAC 00:00:00:03 Cache ARP : @IP 192.16.1.2 @MAC 00:00:00:03
2. Exemples d’attaques Scanning: exemples • Objectif général : • Obtenir la liste des ports ouverts d’un système • TCP SYN scanning (half-open scanning) • Envoyer un message SYN, attendre un SYN-ACK et ensuite envoyer un RESET • TCP FIN scanning • Envoyer un message FIN et attendre un RESET (port fermé) sinon le port est ouvert • UDP ICMP port unreachable scanning • Pour scanner les services UDP • Envoyer un paquet et attendre ensuite un message “ICMP_PORT_UNREACH” (port ouvert) sinon le port est fermé
2. Exemples d’attaques Virus et Chevaux de Troie • Il y a des milliers de virus et de Chevaux de Troie • Exemple : Back Orifice 2000 (bo2k) • Création d’une porte dérobée (back door) • Pour prendre le contrôle d’un système
2. Exemples d’attaques Back Orifice 2000 • Etape 1: • Encapsuler bo2k dans un fichier « attractif » pour que la victime installe bo2k sur son système • Etape 2: • Connexion entre l’attaquant et bo2k via un port particulier (par exemple: 8080) • Etape 3: • Prendre le contrôle de la victime • Lancer ou arrêter des services • Modifier ou télécharger des fichiers • Etc.
2. Exemples d’attaques Exemple d’attaque pour obtenir les droits d’accès root • ShellCode (R-b-S) • Effectue un Buffer Overflow • Exemple: Red Code • Principe : • Mauvaise gestion de la mémoire dynamique • Pas de séparation entre le code du programme et les données stockées dans la pile • Le volume des données insérées est plus volumineux que l’espace mémoire alloué • Pendant l’exécution, une sous-routine écrase l’adresse de retour • Ce qui permet l’exécution d’un shellcode • Vulnérabilité classique exploitée : • Fonctions sur les chaînes de caractères (sprintf)
2. Exemples d’attaques ShellCode • Gestion de la pile • Appel fonction • Début : • Sauvegarde du contexte • Création statique du domaine • Exécution du programme • Fin : • Restoration du contexte • Problème : • L’adresse de retour peut être écrasée
2. Exemples d’attaques Schéma d’un ShellCode adresse du shellcode … adresse du shellcode … adresse du shellcode … adresse du shellcode • Trois parties : • NOP • Padding • Car l’attaquant ne connait pas précisément la position du ShellCode • Problème pour positionner exactement l’adresse de retour au début du ShellCode • Instructions principales exécutées par le ShellCode • Adresse du Shellcode • Commentaires : • La partie NOP est facilement détectée • Mais existence de ShellCodes Polymorphiques • Utilisation de biblothèques d’instructions équivalente shellcode Début du shellcode NOP NOP … NOP NOP
2. Exemples d’attaques Attaque par injection de code SQL • Attaque due au pirate Rain Forest Puppy • Attaque contre une base données via une application proxy Page ASP Active Server Page Script Visual Basic Username: Base de données Réponse du SGBD Password:
2. Exemples d’attaques Attaque par injection de code SQL (suite) • Exemple de Script Visual Basic exécuté par le serveur : Dim sql Sql = "SELECT * FROM Users WHERE username = ' "& username &" ' AND password = ' "& password &" ' ; " Set rs = Comm.OpenRecordset(sql) If not rs.eof() then ' user connected successfully ' end if • Si un utilisateur fournit Eric comme Username et duratrouver comme mot de passe, la requête suivante est envoyée au SGBD : SELECT * FROM Users WHERE username = 'Eric' AND password = 'duratrouver' ; • Si la base retourne un n-uplet • Connection ok
2. Exemples d’attaques Attaque par injection de code SQL (suite) • Réalisation de l’attaque : • L’attaquant fournit le mot de passe suivant : Toto ' OR TRUE OR ' • Dans ce cas, la requête suivante est envoyée à la base : SELECT * FROM Users WHERE username = 'Eric' AND password = 'Toto' OR TRUE OR ' ' ; • Dans ce cas, le SGBD retourne l’ensemble des n-uplets de la relation Users • L’attaquant va se retrouver connecté en tant que premier utilisateur de la base • En général, il s’agira de l’administrateur de la base
2. Exemples d’attaques Attaque par injection de code SQL (suite) • Autre possibilité d’attaque Script Visual Basic Numero dossier : 1234 Base de données Résultat analyse : Réponse du SGBD
2. Exemples d’attaques Attaque par injection de code SQL (suite) • Script Visual Basic exécuté par le serveur : Dim sql Sql = "SELECT resultat FROM Dossier_analyse WHERE username = ' " & username & " ' AND numero_dossier = " & numero-dossier & " ; " Set rs = Comm.OpenRecordset(sql) • Si Eric demande à connaître les résultats de ses analyses correspondant au numéro de dossier 1234, la requête suivante est envoyée au SGBD : SELECT resultat FROM Dossier_analyse WHERE username = 'Eric' AND numero_dossier = 1234 ;
2. Exemples d’attaques Attaque par injection de code SQL (suite) • Réalisation de l’attaque : • L’attaquant fournit le numéro de dossier suivant : 1234 OR TRUE • La requête suivante est envoyée à la base : SELECT resultat FROM Dossier_analyse WHERE username = 'Eric' AND numero_dossier = 1234 OR TRUE ; • Le SGBD retourne l’ensemble des n-uplets de la relation Dossier_analyse • L’attaquant connaît les résultats d’analyse de tous les utilisateurs de la base
2. Exemples d’attaques Attaque contre les bases de données statistiques • Exemple : • Relation Analyse(Patient,H/F,Age,Mutuelle,Leucocyte)
2. Exemples d’attaques Attaque contre les bases de données statistiques (suite) • Base de données statistique • Base de données qui permet d'évaluer des requêtes qui dérivent des informations d'agrégation • Par exemple : des totaux, des moyennes • Mais pas des requêtes qui dérivent des informations particulières • Exemple : • La requête « quelle est la moyenne du taux de leucocytes des patients ayant plus de 30 ans ? » est permise • La requête « quel est le taux de leucocytes de Dupont ? » est interdite
2. Exemples d’attaques Attaque contre les bases de données statistiques (suite) • Exemple d’attaque simple : • U veut découvrir le taux de Leucocyte de Dubois • U sait par ailleurs que Dubois est un adhérent masculin de la MGEN. • Requête 1 SELECT COUNT ( Patient ) FROM Analyse WHERE H/F = 'H' AND Mutuelle = 'MGEN' ; Résultat : 1 • Conséquence : • Le système doit refuser de répondre à une requête pour laquelle la cardinalité du résultat est inférieure à une certaine borne b • Par exemple 2 • Requête 2 SELECT SUM ( Leucocyte ) FROM Analyse WHERE H/F = 'H' AND Mutuelle = 'MGEN' ; Résultat : 3500
2. Exemples d’attaques Attaque contre les bases de données statistiques (suite) • Requête 3 SELECT COUNT ( Patient ) FROM Analyse Résultat : 10 • Requête 4 SELECT COUNT ( Patient ) FROM Analyse WHERE NOT ( H/F = 'H' AND Mutuelle = ‘MGEN’ ) ; Résultat: 9 ; 10 - 9 = 1 • Conséquence : • Le système doit aussi refuser de répondre à une requête pour laquelle la cardinalité du résultat est inférieure à N - b • N est la cardinalité de la relation initiale • Requête 5 SELECT SUM ( Leucocyte ) FROM Analyse Résultat : 54300 • Requête 6 SELECT SUM ( Leucocyte ) FROM Analyse WHERE NOT ( H/F = 'H' AND Mutuelle = ‘MGEN’) ; Résultat : 50800 ; 54300 – 50800 = 3500
2. Exemples d’attaques Attaque contre les bases de données statistiques (suite) • Problème : • On peut montrer que limiter les requêtes à celles pour lesquelles le résultat a une cardinalité c telle que bcN - b n'est pas suffisant pour éviter la compromission • Exemple : si b = 2, les requêtes auront une réponse si c est telle que 2 c 8 • Requête 7 SELECT COUNT ( Patient ) FROM Analyse WHERE H/F = 'H' ; Résultat : 6 • Conséquence • U peut déduire qu'il existe exactement un patient masculin qui a la MGEN comme mutuelle, • Il s’agit de Dubois, puisque U sait que cette description correspond à Dubois • Requête 8 SELECT COUNT ( Patient ) FROM Analyse WHERE H/F = 'H' AND NOT (Mutuelle = ‘MGEN’) ; Résultat : 5
2. Exemples d’attaques Attaque contre les bases de données statistiques (suite) • Conséquence (suite) • Le taux de Leucocyte de Dubois est facilement découvert de la façon suivante : • Requête 9 SELECT SUM ( Leucocyte ) FROM Analyse WHERE H/F = 'H' ; Résultat : 30300 • Traqueur individuel pour Dubois • L'expression booléenne H/F = 'H' AND Mutuelle = ‘MGEN’ permet à l'utilisateur d'obtenir des informations concernant Dubois • C’est un traqueur individuel pour Dubois • Requête 10 SELECT SUM ( Leucocyte ) FROM Analyse WHERE H/F = 'H' AND NOT (Mutuelle = ‘MGEN’) ; Résultat : 26800 ; 30300 - 26800 = 3500
2. Exemples d’attaques Attaque contre les bases de données statistiques (suite) • Remarque • Un traqueur individuel ne fonctionne que pour des requêtes faisant intervenir une certaine expression inadmissible particulière • Traqueur global • Expression booléenne qui peut être utilisée pour trouver la réponse à toute requête inadmissible • Résultat de D. Denning et P. Denning • Data Security. ACM Computer Survey, 11(3), 1979 • Toute expression ayant un ensemble résultat de cardinalité c telle que 2bcN - 2b est un traqueur global • b doit être inférieur à N/4, ce qui sera en général le cas quand N est grand • [DD79] suggère qu’un traqueur global existe « presque toujours » • Et il est habituellement facile à trouver
B. Démarche pour la sécurité des systèmes d’information Politique de sécurité Règlement particulier appliqué à un système d ’information Modèles de sécurité Propriété (ou objectif) de sécurité Garantit que le système ne viole pas la politique de sécurité Approche protection Approche détection Détection d ’intrusion Mécanismes de sécurité Mécanismes logiciels ou matériels qui implantent la politique de sécurité dans le système conformément aux propriétés de sécurité Techniques pour détecter toute tentative de violation de la politique de sécurité
3. Politique de sécurité Comment construire une politique de sécurité • Méthodologie informelle Périmètre de sécurité Politique de sécurité Conception du système sécurisé Politique de sécurité interne Architecture de sécurité Analyse de risques Politique de sécurité système Fonctions et Mécanismes de sécurité Politique de sécurité technique
3. Politique de sécurité Comment construire une politique de sécurité • Etape 1 : Définition du périmètre de sécurité • Périmètre du système à protéger • Fonctions du système • Utilisateurs du système • Recensement des biens à protéger • Biens matériel, logiciel et humain
3. Politique de sécurité Comment construire une politique de sécurité • Etape 2 : Analyse de risque • Recenser les vulnérabilités du système • Recenser les menaces du système • Risque = Vulnérabilité Menace • Un risque existe s ’il existe une vulnérabilité et une menace potentielle qui cherche à exploiter la vulnérabilité • Recenser les éléments de confiance
Exemples de vulnérabilités Matériel non protégé Chiffrement des données médicales par le médecin sans séquestre de clé Manque de protection des communications Pas d ’utilisation d’anti-virus Exemples de menaces Feu, inondation, détérioration intentionnelle ou non Indisponibilité ou décès du médecin rendant inaccessible les données Possibilité d ’écoute dans le but de récupérer des données confidentielles Virus venant modifier les données médicales 3. Politique de sécurité Comment construire une politique de sécurité
3. Politique de sécurité Comment construire une politique de sécurité • Etape 3 : Définition de la politique de sécurité • Idée de base : la politique de sécurité doit être globale Politique de sécurité Politique de sécurité interne Etape 3.1 Politique de sécurité système Etape 3.2 Politique de sécurité technique Etape 3.3
3. Politique de sécurité Comment construire une politique de sécurité • Etape 3.1 : Définition de la politique de sécurité interne • Règlement de sécurité utilisé dans l ’organisation dans laquelle le système va fonctionner • Exemples d ’exigences de la politique de sécurité interne • Règles définissant le secret médical • Règles de déontologie du médecin • Conditions à remplir pour faire partie du personnel du groupe médical • Règles à respecter pour accéder au groupe médical • Accueil des patients, accès à la salle d ’attente, etc. • Règles à respecter lorsque le groupe médical est fermé • Fermeture et protection des locaux • Procédure pour contacter un médecin en cas d ’urgence • etc.
3. Politique de sécurité Comment construire une politique de sécurité • Etape 3.2 : Définition de la politique de sécurité système • Plus large que le système informatique • Doit être compatible avec la politique de sécurité interne • Prévoir une sensibilisation du personnel aux risques informatiques • Exemple d ’exigences de la politique de sécurité système • Règles pour contrôler l ’accès physique au serveur d ’informations du groupe médical • Choix du local, protection du local, contrôle d ’accès au local • Règles à respecter pour choisir et gérer son mot de passe • Règles pour gérer les sauvegardes du système d ’information médical • etc.
3. Politique de sécurité Comment construire une politique de sécurité • Etape 3.3 : Définition de la politique de sécurité technique • Spécifique aux systèmes informatiques • Fait partie de la politique de sécurité système • Inclut une politique de contrôle d ’accès au système d ’informations • Voir l ’ensemble des règles R1-R17 données comme exemple
3. Politique de sécurité Comment construire une politique de sécurité • Etape 4 : Définition de l ’architecture de sécurité • Choix des composants de sécurité • Exemple : router, firewall, SGBD, etc • Définition d ’une architecture intégrant ces composants • Etape 5 : Définition des mécanismes et fonctions de sécurité • Choix des mécanismes d ’authentification • Exemple : mot de passe, carte à puce, biométrie, etc • Définition des besoins de chiffrement et choix des fonctions de chiffrement • Définition et mise en œuvre des mécanismes de contrôle d ’accès • Etc.
4. Détection d’intrusions Détection d’intrusions • Plusieurs IDS (Intrusion Detection System) sont disponibles • prototypes de recherche • produits commerciaux • Plusieurs approches • Détection basée sur les signatures • Détection de scénario d’attaque • Détection d’anomalies: approche comportementale • Détection de comportement anormal • Approche politique de sécurité • Détection de la violation de la politique de sécurité • Plusieurs moyens • « Host based » • « Network Based »
Détection de scénarios d ’attaques Système cible Journalisation Fichiers d ’audit BD de signatures d ’attaques Analyseur d ’audit Attaques détectées IHM Insertion/Mise a jour Alarmes Commandes
4. Détection d’intrusions Détection de scénarios d ’attaques (suite) • Avantages • Possibilité d ’expliquer le raisonnement • Causes de l ’incident • Conséquences • Remèdes possibles • Possibilité de réactions (contre-mesures) • Inconvénients • Difficulté d ’acquisition et d ’actualisation de la connaissance • Base de signatures incomplètes et signatures « faibles » • Seules les attaques décrites dans la base de signatures peuvent être détectées • Puissance de calcul nécessaire • Limitation en capacité de traitement • Nécessite des audits de sécurité détaillés
Détection de comportements anormaux Système cible Journalisation Fichiers d ’audit BD de comportements normaux Analyseur d ’audit Anomalies détectées IHM Mise à jour des comportements Alarmes
4. Détection d’intrusions Détection de comportements anormaux (suite) • Avantages • Outil générique • Ces outils s ’adaptent facilement aux données d ’audit • Ils demandent moins de précision que les approches par reconnaissance de scénarios • Possibilité de détecter de nouvelles attaques • Inconvénients • Nécessite un comportement stable du système modélisé • Apprentissage éventuel de mauvais comportements ou de comportements intrusifs • Taux de fausses alarmes élevé • Temps d ’apprentissage élevé • De 1 semaine à un mois est nécessaire pour construire le modèle de référence • Il est nécessaire que le système soit protégé pendant cette période • En général, pas de diagnostic précis en cas d ’alarme
4. Détection d’intrusions Détection d’intrusion • Les limites actuelles de la détection d’intrusion • Faible taux de détection • Faux négatifs • Trop de fausses alertes • Faux positifs • Plus de 100 000 alertes générées en une semaine (source IBM USA) • Le niveau de granularité d’une alerte est trop faible • Pas de vision globale • Difficile de détecter une attaque distribuée • Difficile de détecter les attaques nouvelles • C’est un avantage des approches comportementales
Outils de protection d’un système d’information • Authentification • Confidentialité et intégrité des données transmises • Contrôle des accès • Bases de données virtuelles • Audit