Module 312 Sécurité des systèmes d'information La sécurité sur Internet Connexion à Internet Scénarios d'attaque Sécurisation des applications Internet Bibliographie Gérard-Michel Cochard cochard@u-picardie.fr
La sécurité sur Internet La connexion à Internet Se connecter, c est donner des renseignements [voir : http://www.cnil.fr] 1) Connexion simple à un serveur Web Les protocoles d Internet utilisent et transportent/récupèrent des variables d environnement (ici définies dans le navigateur équipant le poste client) exemple : consultation d un serveur Web REMOTE_HOST : adresse en clair du demandeur REMOTE_ADDR : adresse IP HTTP_USER_AGENT : type de navigateur/système d exploitation HTTP_REFERER : adresse de la page précédemment consultée Le serveur Web peut donc récupérer votre adresse URL votre adresse IP quel navigateur vous utilisez quel système d exploitation équipe votre ordinateur quelle langue vous utilisez ce que vous avez consulté précédemment 2) Les cookies Le protocole HTTP ne reconnaît pas deux chargements consécutifs de la même page : ces deux chargements sont considérés comme totalement indépendants. Si l'on veut garder entre deux chargements consécutifs (ou plus) des valeurs de variables, on peut cependant utiliser la technique des cookies. Les cookies sont des informations qui sont écrites sur le poste client, sur le disque dur et donc mémorisées en vue d'une utilisation ultérieure lors d'une connexion future dans un fichier texte. Attention! chaque navigateur a son emplacement pour le fichier relatif aux cookies ; si vous changez de navigateur, vous risquez des incohérences relativement aux cookies stockés.
Répertoires des cookies Microsoft Internet Explorer : Sous Windows 95 : C:\Windows\Cookies Sous Windows NT : C:\WinNT\Cookies Sous UNIX : /repperso/.microsoft/ Cookies Sous Macintosh : dossier_navigateur:preferences Panel:Cookies Netscape Navigator : Sous Windows 95 : C:\Program Files\Netscape\Navigator\Cookies.txt Sous Windows NT : C:\Program Files\Netscape\Navigator\Users\User_name \Cookies.txt Sous Unix : /repperso/.netscape/cookies Sous Macintosh : dossier_navigateur:magiccookie Netscape Communicator : Sous Windows 95 et NT : C:\Program Files\Netscape\Communicator\Users \User_name\Cookies.txt Sous Unix : /repperso/.netscape/cookies Sous Macintosh : dossier_navigateur:magiccookie L'écriture et la lecture dans ce fichier peut être effectuée notamment par un petit programme JavaScript. La structure d'un cookie est la suivante : nom=valeur [; expires=date][; domain=nom_domaine][; path=chemin][;secure] nom (du cookie) est une variable et valeur est sa valeur instantanée expires=date exprime la date d expiration du cookie ; par défaut, le cookie expire à la fin de la session. domain est le nom du domaine du serveur qui a posé le cookie path définit quelles sont les pages qui peuvent accéder au cookie à partir du serveur précédent. secure définit si le cookie est transmis de façon sécurisée ou non. écriture d'un cookie : elle peut se faire à l'aide de la fonction setcookie(nom,valeur, expiration) en JavaScript lecture d'un cookie : elle peut s'effectuer à l'aide de la fonction getcookie(nom) La pose de cookies est une intrusion! Utilisations (gentilles) courantes : Connaître vos goûts (remplissage de formulaires) et proposition de produits adaptés Remplissage de caddies en vente sur Internet Publicité en fonction des rubriques consultées Personnalisation de pages d accueil
Parades : On peut refuser les cookies, à la carte ou globalement On peut nettoyer les fichiers «cookies» manuellement 3) Détection de votre personnalité Un serveur peut enregistrer votre parcours dans vos différentes requêtes : fichier d audit On peut donc ainsi connaître quels sont vos goûts lors de plusieurs connexions (enregistrement de votre adresse). Et puis un jour, on vous demande votre nom, votre adresse, Et vous pouvez alors être fichés avec vos caractéristiques Parades : Utilisation d un proxy, d un firewall, d un site d anonymisation Mais l administrateur de ces sites peuvent aussi vous espionner 4) Souriez, vous êtes espionnés : vos traces sont enregistrées Les pages du Web consultées sont référencées sur le poste client : fichiers cache Microsoft Internet Explorer : Sous Windows 95 : C:\Windows\Temporary Internet Files Sous Windows NT : C:\WinNT\Temporary Internet Files Sous UNIX : /repperso/.microsoft/ TempInternetFiles Sous Macintosh : Dossier Système:Préférences:Explorer:Temporary Files Netscape Navigator : Sous Windows 95 : C:\Program Files\Netscape\Navigator\Cache Sous Windows NT : C:\Program Files\Netscape\Navigator\Users\User_name\Cache Sous UNIX : /repperso/.netscape/cache Sous Macintosh : Dossier Système:Préférences:Netscape f:cache f Sous Netscape Communicator : Sous Windows 95 et NT : C:\Program Files\Netscape\Communicator\Users\User_name \Cache Sous UNIX : /repperso/.netscape/cache Sous Macintosh : Dossier Système:Préférences:Netscape f:cache f
Quelques scénarios d attaque via Internet On peut les classer en 4 catégories : Le DENI DE SERVICE Objectif : perturbation d'un service ou de l'accès à un service Méthodes : intrusion, abus de droits L'ALTERATION de données, voire de destruction Objectif : dénaturer ou détruire l'information ou des configurations Méthodes : injection de code, intrusion LE RENSEIGNEMENT Objectif : vol d'information Méthodes : injection de code, intrusion, usurpation d'identité, abus de droits L'UTILISATION DE RESSOURCES Objectif : utilisation clandestine de ressources Méthode :intrusion, abus de droits Quelques scénarios d'attaque : Intrusion : exploitation des vulnérabilités du système pour l'exécution de commandes non autorisées exemples : exploitation des erreurs de configuration ou de bugs de certains logiciels Abus de droits : utilisation abusive de certaines fonctionnalités d'un système exemples : diffusion de logiciels sur un compte FTP anonyme, saturation d'un serveur par envoi de requêtes successives, sniffing Usurpation d'identité : prise de l'identité d'un utilisateur exemples : IP Spoofing (changement d'adresse IP), se faire passer pour l'administrateur
Injection de code : installation d'un logiciel clandestin sur une machine exemples : virus, bombes logiques, ver, cheval de Troie, cookies, Back Orifice, Packet Sniffer Ecoute : récupération d'informations exemple : analyseur de réseau Exemples d'attaques 1)Appropriation de mots de passe Comment obtenir un mot de passe? Par indiscrétion des utilisateurs (très courant) Par obtention simple (évidence : date de naissance, noms familiers, etc ) Par analyse de trafic (repérage des paquets IP et de leur contenu) : utilisation de sniffers Par utilisation de dictionnaires et de listes : essais successifs Par cheval de Troie : petit programme de détournement 2)Détournement du fichier des mots de passe Intrusion sur la machine de service ; Parade : chiffrement
3)Usurpation - Attaque TCP Interposition du fraudeur (qui devine les numéros de ports TCP) - Autre attaque TCP Objectif : paralyser un serveur. TCP est un protocole orienté connexion qui nécessite, avant tout échange de données, l'établissement d'une communication par un double système d'acquittement : Le client demande la connexion (SYN) Le serveur accepte et renvoie un acquittement (SYN- ACK) ; il mémorise les données relatives au client. Le client confirme par un acquittement (ACK). Après cette poignée de main, le transfert de données peut commencer. Supposons que le client se fasse passer pour un ordinateur inconnu et demande une connexion au serveur : les données de l'ordinateur inconnu sont mémorisées sur le serveur le serveur envoie un SYN-ACK à l'ordinateur inconnu (qui n'arrive jamais) le serveur attend l'acquittement ACK (qui ne viendra jamais).
Si le client réitère un grand nombre de fois la demande de connexion, il va finir par saturer la mémoire du serveur et donc le paralyser. La détection du client douteux n'est pas simple! - Attaque par fragmentation Un paquet peut être fragmenté en plusieurs paquets plus petits et plus adaptés au réseau ; seul le début du paquet porte l adresse du port TCP ; on peut donc ajouter des fragments pirates à la suite. - Attaque par déroutement Modification de la route suivie par les paquets pour les envoyer vers une destination connue du fraudeur - Attaque par ARP Au passage de la couche réseau à la couche liaison, il faut établir la correspondance entre les adresses IP et les adresses MAC(de réseaux locaux) ; c est le protocole ARP (Address Resolution Protocol) qui fait ce travail : envoi d une requête ARP pour savoir à qui est destiné le paquet IP. On peut envoyer des requêtes insolubles (on ne trouve pas l adresse MAC) ce qui a pour but de saturer le réseau local : indisponibilité. - Attaque par UDP UDP (User Datagram Protocol) est l un des deux protocoles de la couche transport (TCP est l autre) TCP nécessite l établissement d une connexion préalable (une procédure d identification a donc lieu) UDP ne nécessite pas l établissement d une connexion préalable (pas de procédure d identification) ; on peut alors envoyer n importe quoi connaissant l adresse du destinataire et effectuer ainsi une intrusion par le protocole UDP (protocole à éviter pour sites sensibles). - Attaque par inondation : smurfing
Envoi de messages en grand nombre : inondation d où harcèlement et paralysie. La commande Ping permet de savoir si une machine est en fonctionnement : la machine A envoie un message Ping (contenant son adresse) ; la machine B répond à A par un message Pong. Supposons que le réseau possède l'adresse IP 192.212.47.0. L'adresse permettant d'envoyer un message à toutes les machines du réseau est 192.212.47.255. Imaginons la situation suivante : la machine A envoie un message Ping, mais en prenant l'identité de B (et donc l'adresse de B) à toutes les machines du réseau. En fait, dans la pratique, on passe par un reroutage par un serveur broadcast. Quoi qu'il en soit, la machine B (à tort) va recevoir des messages Pong de toutes les machines du réseau. Cette inondation peut paralyser la machine B. Sécurisation des applications Internet La messagerie électronique Très répandue et très utilisée Problèmes principaux : Perte, interception, altération, destruction de messages Infection (virus) Harcèlement (spamming)
Impératifs de sécurité : Confidentialité des messages (cryptage) Intégrité des messages (anti-virus) Non répudiation (certification, signature) Authentification des acteurs du système Nécessité d améliorer le protocole initial SMTP (Simple Mail Transfer Protocol) S/MIME PGP Secure Multipurpose Internet Mail Extensions MIME propose une structuration plus sophistiquée des messages. S/MIME propose des services d authentification par signature (RSA, DSS) et de confidentialité par chiffrement (RSA, DES, RC2) Pretty Good Privacy (Voir plus haut) Les serveurs de noms DNS DNS (Domain Name Server) est un découpage «postal» permettant de trouver le destinataire d un message. Structure hiérarchique :
Délégation de gestion des domaines : Des machines connectées gèrent la correspondance entre les adresses URL et les adresses IP : serveurs de nom Organisation hiérarchique suivant les domaines, sous-domaines,. Chaque serveur DNS connaît l adresse IP de son père. Nécessité de sécuriser les serveur DNS : contrôle d accès et encryptage obligatoire. Applications Web Deux dispositifs principaux de sécurité : SSL (Secure Socket Layer)
Établissement d une connexion sécurisée Incorporation au navigateur dans le poste client S-HTTP (Secure HTTP) Analogue à SSL Encore peu utilisé Services d authentification - Kerberos Utilisation d un serveur central auprès duquel clients et serveurs doivent être enregistrés ; Stockage des caractéristiques dans une base de données : Identification, Mot de passe, Droits d accès Partage d une clé secrète avec chaque utilisateur Délivrance d un ticket de validité - Service X.509 Proposition d une infrastructure de certificats Reprise des recommandations par S/MIME, IPSec, SSL, SET, ) IPSec La version actuelle IPv4 du protocole IP n est pas sécurisée. La version future IPv6 le sera. En attendant, IPSec propose, en compatibilité avec IPv4 et IPv6, une version sécurisée
Un paquet IPv4 possède la structure suivante : une en-tête et un corps (qui comprend l en tête TCP et les données). Avec IPSec, on le transforme en un autre paquet avec une nouvelle en-tête IP et une en-tête IPSec qui protège l ancien paquet (tunnel). L en-tête IPSec contient les informations sur les procédures d authentification et de confidentialité. Bibliographie A. Tanenbaum : Systèmes d exploitation (InterEditions) A. Tanenbaum : Réseaux (InterEditions) S. Ghernaouti-Helie : Sécurité Internet (Dunod) W. Stallings : Data and Computer Communications (Prentice Hall) Maekawa, Oldehoeft & Oldehoeft : Operating Systems (Benjamin) Réseaux et protection numérique des documents multimédias (études INA) Réseaux et commerce électronique (études INA) J.P. Lovinfosse : Le piratage informatique (Marabout) N.J.Yeager, R.E.McGrath : Technologie des serveurs Web (Thomson Pub.) S.M.Bellowin, W.R.Cheswick : Firewalls et sécurité Internet (Addison Wesley) A.Fenyö, F.Le Guern, S. Tardieu : Raccorder son réseau d'entreprise à l'internet (Eyrolles) Commission Nationale de l'informatique et des Libertés : http://www.cnil.fr