Initiation et sensibilisation à la sécurité informatique Le but du présent document et le cours dont il est issu est de sensibiliser les lecteurs aux risques liés au piratage et de comprendre les principales techniques utilisées. Ce document ne se veut absolument pas exhaustif, il correspond simplement aux différentes notes que j ai prises lors du cours de Dr_Unix, le 9 février 2002 au CRM de Mulhouse. But du piratage Le terme de «piratage» est une notion qui reste assez vague puisqu il existe différentes idéologies parmi les pirates toutefois ce qui faut en retenir avant tout c est que les méthodes qu ils utilisent permettent d accéder d une manière illégale à des données ou des ordinateurs. Les motivations sont, elles aussi, multiples : pécuniaires, par vengeance, défi, attrait de l interdit, etc Mais quelque soit sa motivation première, il faut retenir que si le pirate parvient à forcer l accès à un système, il peut alors sans problème dénaturer toute sorte de choses : ternir l image de marque en stoppant un service : c est le déni de service (DoS), toucher aux données sensibles d une entreprise : les effacer ou pire les modifier, insérer un ou plusieurs logiciels afin de se permettre un accès ultérieur. Donc à partir du moment ou un pirate à réussi à accéder à un système, celui-ci est considéré comme gravement compromis. En effet, il est fort probable que le pirate se sera ménagé un accès spécifique pour pouvoir maintenir son accès et ainsi continuer à espionner et copier des informations sensibles ou s en servir comme d une machine relais pour une autre attaque. Quelle que soit la motivation d un pirate, il n en reste pas moins un homme et par conséquent il aura tendance à rechercher la facilité et sera donc à la recherche des erreurs des autres pour pouvoir les utiliser à son avantage Quelques méthodes utilisées Nous allons à présent voir comment un pirate même faiblement qualifié est capable de paralyser toute une organisation grâce à quelques méthodes simples mais qui, malgré tout, ont déjà fait leurs preuves. Actuellement, il existe tout une panoplie du «parfait petit pirate» qu il suffit de télécharger et d exécuter pour trouver facilement tout une série de failles Le point essentiel qu il faut garder en mémoire, après un piratage il faut absolument trouver et régler la cause du piratage. Et sans cette condition, les attaques persisteront et continueront à poser problème sur problème. L erreur humaine Pour commencer, un chiffre : 60 %, c est le nombre d attaques réussies et qui sont liées directement à une erreur humaine. Que ce soit l administrateur qui a oublié de régler un paramètre ou qui n a pas installé les derniers patchs, une installation par défaut qui défini des paramètres de sécurité insuffisants, un mot de passe trop simple ou inexistant. L importance du choix d un mot de passe nous apparaît ici comme primordial. En effet une démonstration d attaque par force brute nous à convaincu que de choisir un mot existant est une protection quasi inexistante. L exemple du prénom féminin de 8 lettres n a pas résisté 5 secondes et a été trouvé après environ 500 essais. Il faut donc choisir avec soin un «mot de passe» ne correspondant qu à un moyen mnémotechnique pour le retenir et surtout ne jamais l écrire à proximité de son poste de travail!!! Fig 1 : très mauvais exemple de sécurité! Créé le 11/02/02 08:30 Page 1 sur 6
La recherche de la faille de configuration est relativement aisée grâce à l existence de programmes auxquels il suffit de donner l adresse pour lancer une recherche de tout détail qui serait exploitable. Par exemple : démarrer une session FTP anonyme et se rendre compte que nous disposons des droits d écriture, ce qui est bien suffisant pour monter vite fait et bien fait un site avec des données tout à fait illégales (MP3, warez, etc ). Le social engineering ou l art de pousser les gens à faire exactement ce qu on attend d eux C est une méthode bien basique et qui n a rien à voir avec l informatique elle-même, il suffit d avoir assez d influence pour provoquer une réaction. Par exemple : Téléphoner à une Hotline en se faisant passer pour quelqu un d autre et réussir à obtenir les codes d accès de la personne sans fournir de justificatif. Bref une belle usurpation d identité en fait. Les failles logicielles Comme nous le disions auparavant l homme est faillible, un logiciel étant crée par un ou plusieurs hommes il est logique que les défauts de l homme se transmettent au logiciel! Il faut donc partir du principe que tout logiciel est buggé, certains plus que d autres, il comporte des failles pour lesquelles le seul remède efficace est l application d un correctif. L administrateur n a pas d autre solution puisqu il n est pas le créateur du logiciel en cause Mais comment un pirate peut-il savoir quelle faille est présente sur telle ou telle autre machine? C est très simple, il suffit de rechercher une machine précise quels sont les ports ouverts (c est ce qu on appelle un scanner de port).et ensuite en fonction des résultats, il n y a plus qu à tester les différents ports les un après les autres pour rechercher la version exacte, certains logiciels se présentent d eux même lorsque l on s y connecte Pour d autre, il suffit à peine de faire générer un message d erreur pour qu il présente la version actuelle. Par exemple : Les serveurs FTP se présentent d eux même lorsqu on s y connecte Fig 2 : trouver une version d un logiciel. Et voilà, le tour est quasiment joué, il ne reste plus qu à aller farfouiller dans les sites spécialisés dans la sécurité pour voir s il n existe pas quelques informations à propos de cette version particulière Une remarque : ces fameux spécialisés sont réellement des armes à double tranchant, puisque c est la principale source d information tant pour les pirates qui cherchent les failles que pour les administrateurs qui cherchent des solutions pour sécuriser leurs installations.! Que faire si l on découvre une faille de sécurité?! Il est d usage de prévenir l auteur du logiciel par mail, en lui décrivant le plus exactement possible la nature et les conditions dans lesquelles le problème à été découvert en lui laissant une quinzaine de jours pour trouver un correctif! Passé ce délai, il faut rendre publique le problème. Il est bien évident que le délai peut être allongé toutefois il ne faut pas tomber dans le piège de l auteur qui cherche à éviter la publication du problème pour s économiser une correction Les failles de ce type sont malheureusement assez nombreuses, et pour limiter le nombre d attaques réussies il faut très régulièrement et très souvent consulter ces sites spécialisés dans la sécurité informatique afin de voir si les versions en fonctions ne sont pas de vraies passoires! Pour n en citer qu un : http://www.securityfocus.com Créé le 11/02/02 08:30 Page 2 sur 6
Les attaques réseaux Pour rester clair dans cette partie, il faut avant tout redéfinir certains points un peu plus techniques mais qui sont absolument nécessaires à la bonne compréhension des différentes méthodes qui vont êtres décrites plus bas. Internet est une interconnexion de différents types de matériels (ordinateurs, routeurs, imprimantes, etc ) d une manière qui ressemble à un filet de pêche. Chaque nœud du filet est un matériel doté d une adresse unique (appelée adresse IP) et c est grâce à cette adresse que nous pouvons dire où doivent aller les informations que nous allons envoyer ou recevoir grâce au protocole de communication IP. Une IP valide est composée de plusieurs éléments : l adresse elle-même de la forme XXX.XXX.XXX.XXX accompagnée d un masque de sous-réseau de la même forme et éventuellement d une passerelle qui permet de définir la route à utiliser pour sortir du réseau local. Il existe d un certain nombre adresses IP particulières, des adresses dites non routable qui sont destinées à créer des réseaux internes sans interférer avec les IP publiques d Internet. De plus chaque réseau logique dispose de 2 adresses particulières : la première (dite adresse du réseau) et la dernière (dite adresse de broadcast). Celle ci permet de faire répondre toutes les machines d un réseau, nous en verrons l utilité un plus loin. En fonction de la nature des données à transmettre, nous allons utiliser un autre protocole encapsulé dans IP : UDP (Unreliable Datagram Protocol ou User Datagram Procotol) qui ne garantie pas l exactitude des infos. TCP (Transmission Control Protocol) qui inclus des fonctions de vérification des infos transmises ICMP (Internet Control Message Protocol) qui véhicule les messages d information et d erreur Donc si nous désirons transmettre des données qui n ont pas besoin d être absolument exactes nous utiliserons UDP (par exemple : la vidéo ou le son), TCP sera utilisé pour la navigation sur le web ou les transferts de fichiers. ICMP mérite un peu plus d explications, car c est grâce à lui que le «ping» et le «traceroute» sont possibles. Deux fonctions à retenir de ce protocole sont le echo et le reply. Principe de fonctionnement d un Trace Route Chaque paquet qui transite par le réseau est doté d une valeur appelée TTL (Time To Live) et qui définit quelle est sa durée de vite, cette valeur correspond au nombre de routeurs qu'il peut traverser, chaque routeur décrémentant le champ TTL quand il voit passer un paquet. Quand un routeur reçoit un paquet avec une TTL de zéro, il le détruit et envoie un message ICMP 'TTL expired' à l'émetteur du paquet. Admettons à présent que nous envoyons les paquets ayant des TTL de 1 puis 2, 3, 4, etc chaque routeur qui va détruire un paquet va nous le signaler et donc grâce aux messages que nous recevons en retour, nous sommes donc capables de reconstruire tout le chemin parcouru puisque les adresses des routeurs ayant détruit un paquet sont incluses dans les messages de retour A présent nous pouvons nous intéresser à 3 types différents d attaque : Un type d attaque : le SMURF L attaquant envoie un paquet à l adresse de broadcast du relais en se faisant passer pour la victime. Toutes les machines du relais vont donc répondre directement à la victime. Ce système permet d amplifier les réponses, imaginons que le relais soit une grosse entreprise ou une université disposant de plusieurs centaines de postes Pour éviter ceci, il ne faut absolument pas permettre les réponses de broadcast par Internet, il doit servir uniquement dans les réseaux Internet. Il suffit d ajouter une règle dans le routeur Paquet TCP/IP Attaquant Adr. Expéditeur : celle de la victime Adr. Destination : Broadcast du Relais Fig. 3 : Attaque par SMURF Victime Relais Créé le 11/02/02 08:30 Page 3 sur 6
Un type d attaque : le SYN FLOOD Ci-contre, la méthode normale pour se connecter à un serveur. A chaque demande le serveur répond en attribuant un SN (Sequence Number) à chaque demande de connexion. La connexion est validée par une réponse du client avec le bon SN. Chaque SN est stocké par le serveur jusqu à la validation finale par le client. Admettons que nous surchargions le serveur avec la première étape en changeant régulièrement notre IP. Il va stocker les SN jusqu à saturation et le crash du système. La solution consiste donc à ne plus stocker les SN en mémoire. A présent les SN sont le résultat d un calcul réversible qui permet de retrouver un SN en fonction du client. Client temps " Demande de connexion envoi de SYN # réponse du serveur : envoi de SYN, ACK, SN $ réponse du client : envoi de ACK, SN Fig. 4 : Méthode de connexion classique Il faut activer les SYN COOKIES, pour utiliser cette méthode et ne plus stocker les SN en mémoire. Serveur Un type d attaque : l IP SPOOFING Le but de cette attaque est d arriver à créer une connexion réelle en usurpant l IP d une autre personne. L attaquant se fait passer pour quelqu un d autre et demande une connexion, le serveur répond à l autre personne et l attaquant finalise la connexion pas le SN qu il à réussi à déterminer Pour déterminer à l avance ce que sera le SN il faut faire des essais avec une connexion dans les règles pour estimer quel pourrait être le SN. Attaquant (autre personne) $ SN calculé " SYN # SN Victime autre personne Fig. 5 : principe de l IP SPOOFING Egalement joint au présent document, les articles de loi relatifs à la fraude informatique. Un grand merci à Michel qui à fait les recherches et qui les a publiés sur le forum et encore un grand merci à Salim qui a bien voulu nous consacrer sa journée Créé le 11/02/02 08:30 Page 4 sur 6
Les risques du piratage Loi numéro 88-19 du 5 janvier 1988 relative à la fraude informatique ou loi GODFRAIN Suite à des agissements de certains étudiants en matière de piratage informatique et de dégradation du système, nous tenons à mettre en évidence et à informer l'ensemble des utilisateurs des machines de service du C.I.C.R.P. que cette situation nous conduit à prendre des mesures appropriées contre ce genre de situation. En l'occurrence, hormis les mesures techniques mises en œuvre, nous mettons à la disposition, et invitons tous nos utilisateurs à lire attentivement la loi GODFRAIN, loi du 5 janvier 1988 relative à la fraude informatique. Loi numéro 88-19 du 5 janvier 1988 relative à la fraude informatique La loi du 5 janvier 1988 ou loi GODFRAIN est constituée des articles suivants : - Art 462-2 alinéa 1er : délit d'intrusion dans le système d'autrui - Art 462-2 alinéa 2 : délit d'intrusion ayant entraîne des dégradations involontaires - Art 462-3 : délit d'entrave au système - Art 462-4 : délit d'atteinte aux données - Art 462-5 : faux informatique - Art 462-6 : usage de documents informatises falsifies - Art 462-7 : tentatives des délits - Art 462-8 : participation à une association délictueuse - Art 462-9 : confiscation des matériels 1) Art 462-2 alinéa 1er : délit d'intrusion dans le système d'autrui 1.1 Art 462-2 alinéa 1er "Quiconque, frauduleusement, aura accédé ou se sera maintenu dans tout ou partie d'un système de traitement automatise de données sera puni d'un emprisonnement de 2 mois à un an et d'une amende de 2 000 F à 50 000 F ou de l'une de ces 2 peines seulement." 1.2 système informatique L'accès indu et le maintien indu dans un système informatique sont incrimines. L'accès non autorise dans le système est donc réprimé, alors même qu'il n'en ait résulte aucun préjudice. Le seul fait d'entrer dans le système sans qu'il y ait lieu à considère le but poursuivi ou les conséquences possibles, est incriminable en temps que tel. Le maintien non autorise dans un système, même de manière parfaitement inoffensive est incriminable. La personne poursuivie doit avoir pénétré le système ou s'être maintenu dans celui-ci sans y avoir droit. Non respect des conditions d'accès au système ou de maintien dans celui-ci. 1.3 La personne ou élément moral Il s'agit d'un délit volontaire puisque l'accès et le maintien dans le système doivent avoir été accomplis frauduleusement. L'auteur ou les auteurs doivent avoir conscience de l'irrégularité de leur acte. Le maintien volontaire dans un système d'autrui est incriminable. 1.4 Exemples - Piratage d'un compte d'un autre utilisateur en utilisant un faux login - Tentative de connexion dans un système en utilisant toutes les combinaisons possibles de login et de mots de passe. - Recherche d'informations afin de contourner les mécanismes de sécurité (parcours d'une hiérarchie système ou utilisateur). 2) Art 462-2 alinéa 2 : délit d'intrusion ayant entraîne des dégradations involontaires 2.1 Art 462-2 alinéa 2 du code pénal "Lorsque il sera résulte (de l'intrusion ou du maintien non autorise dans le système) soit la suppression ou la modification de données contenues dans le système, soit une altération du fonctionnement de ce système, l'emprisonnement sera de 2 mois à 2 ans et l'amende de 10 000 F à 100 000 F." 2.2 Le système informatique La dégradation du système commise suite à l'accès non autorise ou au maintien indu dans le système constitue l'élément matériel de l'infraction. 2.3 Exemples Écriture de programmes, stockage de données ou modification de paramètres système ou réseau. 3) Art 462-3 : délit d'entrave au système 3.1 Art 462-3 "Quiconque aura, intentionnellement et au mépris des droits d'autrui, entrave ou fausse le fonctionnement d'un Créé le 11/02/02 08:30 Page 5 sur 6
système de traitement automatise de données sera puni d'un emprisonnement de 3 mois à3 ans et d'une amende de 10 000 F à 100 000 F ou de l'une de ces 2 peines." 3.2 Le système informatique - L'entrave, consiste à ralentir ou paralyser un système informatique. Saturer un système de fichiers volontairement. Outrepasser la convention d'utilisation du système. - Fausser, c'est ce qui fait produire au système un résultat autre que celui attendu. C'est le cas par exemple de virus, de bombes logiques, de fausses commandes... 4) Art 462-4 : délit d'atteinte aux données 4.1 Art 462-4 "Quiconque aura, intentionnellement et au mépris des droits d'autrui, directement ou indirectement introduit des données dans un système de traitement automatise ou supprimé ou modifié les données qu'il contient, ou leur mode de traitement ou de transmission, sera puni d'un emprisonnement de 3 mois à 3 ans et d'une amende de 2000 F à 500 000 F ou de l'une de ces 2 peines." 4.2 Le système informatique Il s'agit de l'introduction, de la modification ou de la suppression de données. 4.3 Exemples Tentative d'écriture, de modification ou de suppression de données, de fichiers, ou de répertoires dans un autre environnement que le votre... 5) Art 462-5 : faux informatique 5.1 Art 462-5 "Quiconque aura procède à la falsification de documents informatises, quelle que soit leur forme, de nature à causer un préjudice à autrui, sera puni d'un emprisonnement d'un an à 5 ans et d'une amende de 20 000 F à 2 000 000 F." 5.2 Le système informatique Altération de l'information traitée par le système (fausses commandes...) 6) Art 462-6 : usage de documents informatisés falsifies 6.1 Art 462-6 "Quiconque aura sciemment fait usage des documents informatisés visés à l'article 462-5 sera puni d'un emprisonnement d'un an à 5 ans et d'une amende de 20 000 F à 2 000 000 F ou de l'une de ces 2 peines seulement." 6.2 Le système informatique Utilisation de l'altération de l'information (utilisation de fausses commandes...) 7) Art 462-7 : tentatives des délits 7.1 Art 462-7 "La tentative des délits prévus par les articles 462-2 à 462-6 est puni des mêmes peines que le délit lui même." 8) Art 462-8 : participation à une association délictueuse 8.1 Art 462-8 "Quiconque aura participe à une association formée ou à une entente établie en vue de la préparation, concrétisée par un ou plusieurs faits matériels, d'une ou plusieurs infractions prévues par les articles 462-2 à 462-6 du code pénal sera puni des peines prévues pour l'infraction elle-même ou pour l'infraction la plus sévèrement réprimée" 8.2 Le système informatique Ce n'est pas forcement une association de la loi de 1901, il peut s'agir d'un groupement quelconque, voire une simple réunion dans le but de commettre des fraudes informatiques. 8.3 Exemple Se passer des noms de login et des mots de passe de comptes déjà pirates 9) Art 462-9 : confiscation des matériels 9.1 Art 462-9 "Le tribunal pourra prononcer la confiscation des matériels appartenant au condamné et ayant servi à commettre les infractions prévues au présent chapitre." Créé le 11/02/02 08:30 Page 6 sur 6