WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

La sécurité informatique à  travers l'exemple d'IBM


par Ludovic Blin
Université Paris Dauphine - DESS 226 1999
  

précédent sommaire

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

IV - Les inconvénients de cette politique : Des règles pas toujours adaptées

La politique d'IBM entraîne le déploiement de défenses techniques souvent expansives. De plus, le recrutement des employés chargés d'administrer le système et sa sécurité doit être particulièrement surveillé. Mais surtout, il entraîne l'application de nombreuses règles, conçues par et pour des américains.

La plupart des règles, qu'elles soient d'origine étatique (on les appellera alors lois) ou bien d'origine privée (règlement intérieur...) sont destinées à organiser de la meilleure manière la vie de l'entité sociale qui les génèrent. Elles sont ainsi directement liées à l'environnement et à l'évolution socioculturelle des hommes et des femmes qui composent l'organisation. De plus, l'efficacité d'une règle est subordonnée à son application effective et donc à la compréhension et à l'adhésion des employés qui doivent l'appliquer.

Or, une entreprise multinationale, par définition, vise à employer des gens venant d'horizons très différents et donc ayant subi des évolutions socioculturelles différentes. Ainsi, par exemple, la France a une tradition de protection de la propriété intellectuelle, ce qui entraîne pour un Français une réaction a priori de défiance vis à vis du piratage. Les pays asiatiques, eux ne protègent traditionnellement pas la propriété intellectuelle et considèrent qu'une création de l'esprit appartient à la collectivité, ce qui entraîne une réaction totalement différente de celle d'un français.

Les règles mises au point par IBM pour assurer la prévention, si elle sont logiques et théoriquement très efficaces, sont aussi à l'évidence conçues par et pour des Américains.

En effet, leur effectivité peut être réduite lorsqu'elles sont appliquées dans un environnement culturel différent. Ce problème a des conséquences relativement réduites à l'échelle de l'Europe, bien que les pays latins soient moins réceptifs à ces réglementations que les pays nordiques ou anglo-saxons. Mais lorsque l'on évoque les pays moins développés, tels que les pays d'Afrique ou du Moyen-Orient, ces problèmes peuvent avoir des conséquences plus importantes, d'autant plus que le système d'information d'IBM a des composantes globales.

Ces pays ont en effet pour caractéristique générale la superposition (ou overlapping) d'un système occidentalisé et d'un système résultant des anciennes institutions (tribu, clan, clect...). Et, le plus souvent les groupes de pression occultes sont plus respectés que les institutions traditionnelles. Ainsi, le chef de la tribu sera plus respecté que le supérieur hiérarchique au sein de l'entreprise.

C'est pourquoi l'effectivité des règles de prévention dans les pays en voie de développement est soumise à caution et que de ce fait un renforcement des défenses techniques dans ces zones est recommandable.

Annexe : Les techniques de hacking

Le système de fichiers en réseau:

A chaque fois qu'un utilisateur fait une requête pour accéder à un fichier, le système d'exploitation décide si oui ou non l'utilisateur à le droit d'accéder au fichier en question.
Le système d'exploitation prend une décision basée sur qui est le propriétaire du fichier, qui demande à accéder au fichier et quelles permissions d'accès le propriétaire à mis. Les permissions d'accès déterminent qui aura accès au fichier.
 

Il y a deux principales raisons pour que l'on protège ses fichiers des autres utilisateurs. La première raison est que l'on peut souhaiter protéger le contenu de ses fichiers des autres utilisateurs. On peut considérer le contenu du fichier comme privé et on ne veut pas que les autres utilisateurs soit capable de lire ou de modifier le contenu du fichier. La seconde raison est que si des tierces personnes peuvent modifier des fichiers, elles peuvent aussi obtenir l'accès au compte. Par exemple, si un utilisateur malintentionné a l'accès «écriture» dans le répertoire racine, il peut alors créer ou modifier le fichier «.rhost« (sous UNIX) qui donne un accès illimité à n'importe qui au compte. Il va sans dire, comme l'utilisateur est responsable de son compte, que tous les «dégats« engendrés sont sous sa responsabilité directe.
 

Le principal but pour une personne qui cherche à s'introduire dans un système est d'obtenir l'accès administrateur (root). Cet accès permet à la personne de faire tout ce qu'elle désire sur un système, elle peut effacer, modifier ou ajouter de nouveaux fichiers. La plus part des intrusions où le hacker obtient l'accès administrateur commencent quand l'intrus pénètre dans un compte utilisateur normal. Une fois sur la machine en tant qu'utilisateur sans privilège particulier, le hacker peut alors lancer une attaque pour obtenir l'accès "super utilisateur" sur la machine en utilisant un trou de sécurité dans le système d'exploitation.
 

 
Le social engineering:

C'est un terme utilisé parmis les hackers pour une technique d'intrusion sur un système qui repose sur les points faibles des personnes qui sont en relation avec un système informatique plutôt que sur le logiciel. Le but est de piéger les gens en leur faisant révéler leur mot de passe ou toute autre information qui pourrait compromettre la sécurité du système informatique.
 

Le piège classique est de faire croire aux utilisateurs du système que leur mot de passe est demandé d'urgence par le ou les techniciens. Le hacker mentionnera qu'il a besoin du mot de passe pour d'importants travaux d'administration du système et il demandera à ce qu'on lui envoie le mot de passe par mail. Il faut savoir, comme nous le verrons plus loin, qu'il est possible pour le hacker de créer un e-mail faisant croire qu'il provient de quelqu'un que l'on croit être le légitime administrateur réseau. Souvent, le hacker enverra le message à tous les utilisateurs du système en espérant que plusieurs utilisateurs tomberont dans le piège. Bien évidemment si la ruse se déroule par téléphone, le hacker imitera la voix du technicien.
 

Une autre forme de social engineering va jusqu'à deviner le mot de passe d'un utilisateur. Les gens qui peuvent trouver des informations sur un utilisateur, peuvent utiliser ces informations pour deviner le mot de passe de ce dernier. Par exemple, le prénom de ses enfants, leur date de naissance ou bien encore la plaque d'immatriculation de sa voiture sont tout à fait candidat à être des mots de passe. Les hackers peuvent aller très loin pour deviner les mots de passe.
 

Le crackage de mot de passe :

Les mots de passe sont très important parce qu'ils sont la première ligne de défense contre les attaques sur un système. Ceci peut être établit simplement : si un hacker ne peut pas interagir sur un système distant et qu'il ne peut pas ni lire ni écrire dans le fichier des mots de passe alors il n'a quasiment aucune chance de développer une attaque couronnée de succès sur ce système. C'est également pourquoi, si un hacker peut au moins lire le fichier des mots de passe sur un ordinateur distant, il aura aussi la possibilité de cracker un des mots de passe contenu dans ce fichier. S'il y parvient, alors on peut penser qu'il pourra se connecter sur ce système et qu'il pourra s'introduire en tant qu'administrateur en passant par un trou de sécurité dans le système d'exploitation.
 

La manière la plus classique qu'un hacker va essayer d'obtenir un mot de passe est par l'intermédiaire d'une attaque avec un dictionnaire. Dans ce genre d'attaque, le hacker utilise un dictionnaire de mots et de noms propres, et il les essaie un à un pour vérifier si le mot de passe est valide. Bien évidemment, ces attaques ne se font pas à la main, mais avec des programmes qui peuvent deviner des centaines voire des milliers de mots de passe à la seconde. Ce procédé est d'autant plus facile, qu'il lui permet de tester des variations sur ces mots : mots écrits à l'envers, majuscules et minuscules dans le mot, ajout de chiffres à la fin du mot, etc. ... De plus la communauté des hackers a construit de gros dictionnaires spécialement conçus pour cracker les mots de passe. En utilisant des mots de langues étrangères, ou des noms de choses, de personnes ou encore de villes, ne sont d'aucun effet contre ces dictionnaires. Le plus connu des programmes utilisés pour cracker les mots de passe est Crack4.1 avec son dictionnaire de 50 000 mots.
 
 

Le sniffing des mots de passe et des paquets :

Si un hacker ne peut pas deviner un mot de passe, alors il a d'autres outils pour l'obtenir. Une façon qui est devenue assez populaire est le sniffing de mots de passe. La plus part des réseaux utilisent la technologie de broadcasting ce qui signifie que chaque message (ou paquet) qu'un ordinateur transmet sur un réseau peut être lu par n'importe quel ordinateur situé sur le réseau. En pratique, tous les ordinateurs sauf le destinataire du message vont s'apercevoir que le message n'est pas destiné pour eux et vont donc l'ignorer. Mais par contre, beaucoup d'ordinateurs peuvent être programmés pour regarder chaque message qui traverse le réseau. Si une personne mal intentionnée fait ceci, alors elle pourra regarder les messages qui ne lui sont pas destinés.
 

Les hackers ont des programmes qui utilisent ce procédé et qui scannent tous les messages qui circulent sur le réseau en repérant les mots de passe. Si quelqu'un se connecte sur un ordinateur à travers un réseau et que des ordinateurs ont été compromis par le procédé de sniffing, alors cette personne risque contre son gré de donner son mot de passe. C'est pourquoi il existe une menace sérieuse pour les personnes qui se connectent sur des ordinateurs distants (par exemple en utilisant Telnet). Toutefois, si quelqu'un se connecte sur la console d'un système (et non pas sur un terminal), son mot de passe ne circulera pas sur le réseau ou il pourrait faire l'objet d'un sniffing. Mais si une personne se connecte sur un autre réseau ou à partir d'un prestataire de service Internet, alors dans ce cas elle sera dépendante de la sécurité de ces réseaux. Les programmes de sniffing les plus connus sont :
- Esniff.c (programme source pour un sniffer ethernet)
- TCPDump
 

L'IP spoofing :

L'adresse IP d'un ordinateur est l'adresse qui est utilisée pour reconnaître un ordinateur sur Internet. Elle est présumée valide lorsqu'elle est certifiée par les services TCP et UDP. Un des principaux problèmes est qu'en utilisant le routage source d'IP, l'ordinateur du hacker peut se faire croire comme étant un ordinateur connu. Brièvement, le routage source d'IP est une option qui peut être utilisée pour spécifier une route directe à une destination et renvoyer le chemin de retour à l'expéditeur. La route peut inclure l'utilisation d'autres routeurs ou de server qui n'auraient normalement pas été utilisés pour faire suivre les paquets à la destination finale. Voici un exemple qui montre comment  ceci peut être utilisé de telle façon que l'ordinateur de l'intrus apparaisse comme étant l'ordinateur certifié par le serveur :

- L'agresseur change l'adresse IP de son ordinateur pour faire croire qu'il est un client certifié par le serveur
- Il va ensuite construire une route source jusqu'au serveur qui spécifiera le chemin de retour direct que les paquets IP devront prendre pour aller au serveur et qu'ils devront prendre pour retourner à l'ordinateur de l'agresseur en utilisant le client certifié comme dernière étape dans la route vers le serveur.
- L'agresseur envoie une requête client au serveur en utilisant la route source.
- Le serveur accepte la requête du client comme si elle provenait directement du client certifié et retourne une réponse au client.
- Le client, utilisant la route source, fait suivre le paquet à l'ordinateur de l'agresseur.
 

Beaucoup de machine de type UNIX accepte les paquets de route source et les redirigent comme la route source l'indique. Beaucoup de routeurs acceptent également les paquets de route source bien que certains d'entre eux puissent être configurés pour bloquer ces paquets.
 

Une autre manière encore plus simple pour spoofer un client est d'attendre que le système client ait éteint sa machine et de se faire passer ensuite passer pour ce dernier. Dans beaucoup d'entreprises, les employés utilisent des PCs et des réseaux TCP/IP pour se connecter sur des serveurs locaux UNIX. Les PCs utilisent souvent NFS pour obtenir un accès aux répertoires et aux fichiers du serveur (NFS utilise les adresses IP uniquement pour authentifier les clients). Un intrus pourrait configurer un PC avec le même nom et la même adresse IP qu'un autre ordinateur, et alors essayer de lancer des connexions au serveur UNIX comme s'il était le vrai client. Ceci est très simple à réaliser et ressemblerait à une attaque de l'intérieur.

Les courriers électroniques sur Internet sont particulièrement sujets au spoofing car très facile à réaliser. Les courriers électroniques sans l'ajout d'une signature digitale ne peuvent pas être d'origine fiable. Par exemple, considérons que l'échange prenne place quand des serveurs Internet échange un courrier électronique. Cet échange a lieu en utilisant un simple protocole consistant en une série de commandes en caractères ASCII. Une personne maligne pourrait facilement entrer ces commandes à la main en utilisant Telnet pour se connecter directement au port SMTP (Simple Mail Transfer Protocol) du système (port 25 sur les systèmes UNIX). Le serveur recevant ces commandes fait confiance à cette personne en disant qui elle est. D'où le fait que le courrier électronique puisse lui aussi être spoofé facilement en entrant une adresse d'expéditeur différente de l'adresse réelle. Comme quoi, sans aucun privilège, on peut sans problème falsifier ou spoofer le courrier électronique.
 

D'autres services comme le Domain Name Service peuvent aussi être spoofés mais avec toutefois plus de difficultés que le courrier électronique. Ces services représentent une crainte qui mérite d'être considérée quand on les utilise.
 

Les chevaux de Troie.

Un cheval de Troie est un programme qui se cache lui-même dans un autre programme apparemment au-dessus de tout soupçon. Quand la victime (l'utilisateur normal) lance ce programme, elle lance par la même le cheval de Troie caché.
 

Il y a des exemples de chevaux de Troie UNIX sur l'Internet. Par exemple, en 1995, un serveur FTP bien connu a été pénétré et les agresseurs ont modifié un programme très populaire disponible sur ce site. Le cheval de Troie installé à l'intérieur du programme permettait quand il était exécuté d'ouvrir l'accès au système UNIX à n'importe qui.
 
 

Les vers :

Un ver est un agent autonome capable de se propager sans l'utilisation d'un programme quelconque ni d'une action par une personne. La plus célèbre attaque de vers s'est produite en novembre 1988 quand un étudiant lança un programme sur l'Internet qui était capable de se développer par lui-même à travers le réseau de serveurs. Dans les 8 heures après le lancement de ce programme, entre 2000 et 3000 ordinateurs étaient déjà infestés. Les ordinateurs commencèrent à tomber en panne parce que le programme du ver réapparaissait plus rapidement que les connexions réseaux pouvaient l'effacer.
 

Que s'est-il exactement passé ? Le ver infestait seulement les ordinateurs fonctionnant sur un système UNIX particulier. Chaque ver créait une liste de machines distantes cibles qui se trouvaient sur l'ordinateur où le ver agissait.

En parallèle, le ver :
- essayait de trouver les mots de passe des comptes utilisateurs en essayant des permutations à partir des noms de comptes et en vérifiant une liste de 432 mots de passe courants.
- essayait d'entrer dans chaque machine cible en se faisant passer pour un utilisateur de la machine attaquante (après avoir cracké le mot de passe utilisateur) et en utilisant un bug dans le protocole finger .
 

Quand une attaque fonctionnait, le ver créait un petit programme et les commandes pour compiler et exécuter sur la machine distante. Ce ver avait aussi des mécanismes qui lui permettaient de camoufler sa présence sur une machine.
 

Les attaques de vers sont toutefois rares parce que les serveurs sur Internet sont de plus en plus différents (bien que cela tende à changer : Windows NT serveur), mais c'est toujours une méthode utilisée par les hackers quand un nouveau bug est découvert dans un système d'exploitation. Cela a l'avantage pour l'agresseur de pouvoir attaquer un maximum de sites en peu de temps.
 
 

Les trappes :

Une trappe est un point d'entrée dans un système informatique qui passe au-dessus des mesures de sécurité normales. C'est généralement un programme caché ou un composant électronique qui permet au système de protection d'être inefficace. De plus, la trappe est souvent activée par un évènement ou une action normale
 

Une trappe peut aussi être un trou de sécurité dans un système qui a été délibérément mis en place par les créateurs ou les personnes chargées de la maintenance. Le principal intérêt de ces trappes n'est pas toujours néfaste : certains systèmes d'exploitations, par exemple, ont des comptes utilisateurs avec de hauts privilèges destinés pour faciliter le travail des techniciens de maintenance.
 

En 1983, Ken Thompson (un des auteurs de UNIX) révéla l'existence d'une trappe dans les premières versions de UNIX qui pourrait être identifié comme l'un des plus malins pièges informatiques de tous les temps. Le compilateur C contenait du code qui reconnaissait quand la commande login était recompilée et insérait du code qui reconnaissait un certain mot de passe que Thompson avait choisi. Ce mot de passe lui ouvrait l'entrée du système qu'un compte utilisateur ou non ait été créé pour lui. Normalement ce genre de trappes peut être éliminé en la supprimant du code source du compilateur et en le recompilant. Mais pour recompiler le compilateur, il faut utiliser le compilateur. Donc, Thompson s'était aussi arrangé pour que le compilateur reconnaisse quand il compilait une version de lui-même et insérait dans le compilateur recompilé le code qui reconnaissait la procédure de compilation de la commande login ! De cette façon, le piège pouvait se perpétuer indéfiniment et laisser une trappe en place sans aucune trace dans les programmes sources.
 

Presque à chaque fois qu'un hacker quitte un système, il laisse derrière lui une ou plusieurs trappes pour être capable de revenir quand il veut. C'est pourquoi, quand un système a été attaqué, il est plus prudent de vérifier tout le système de fichiers ou bien de réinstaller le système d'exploitation.
 
 

Le TCP-SYN flooding :

Quand un système client essaie d'établir une connexion TCP à un système fournissant un service (le serveur), le client et le serveur échangent une séquence de messages. Cette connexion technique s'applique à toutes les connexions TCP-IP (Telnet, Web, email, etc. ...)
 

Le système client commence par envoyer un message SYN (pour synchronisation) au serveur. Le serveur renvoie alors un accusé de réception du SYN: SYN-ACK (pour synchronisation-aknowledgment) au client. Le client finit alors par établir la connexion en répondant par un ACK. La connexion entre le client et le serveur est donc ouverte et le service d'échange de données peut s'exécuter entre les deux partenaires de la connexion.
 

Voici un petit récapitulatif de ce qui se produit pour l'établissement d'une connexion :

Client  Serveur
-------  ---------
SYN --------------
<--------------- SYN-ACK
ACK --------------
Le serveur et le client peuvent donc commencer à s'échanger des données.
 

Les abus viennent au moment où le serveur a renvoyé un accusé de réception du SYN (ACK-SYN) au client mais n'a pas reçu le ACK du client. C'est alors une connexion à demi-ouverte. Le serveur construit dans sa mémoire système une structure de données décrivant toutes les connexions courantes. Cette structure de données est de taille finie, ce qui veut dire qu'il peut se créer un dépassement de capacité (overflow) en créant intentionnellement trop de connexions partiellement ouvertes.
 

Le fait de créer ces demi connexions sans se faire repérer est facilement réalisable avec l'IP spoofing. L'ordinateur de l'agresseur envoie des messages SYN à la machine victime ; ceux-ci paraissent provenir d'un ordinateur bien défini mais qui en fait, fait référence à un système client qui n'est pas capable de répondre au message SYN-ACK. Ce qui veut dire que le message ACK final ne sera jamais renvoyé au serveur victime.
 

Ces demi-connexions dans la structure de données du serveur victime vont éventuellement créer un débordement dans cette structure et le serveur sera incapable d'accepter d'autres connexions tant que la table ne sera pas vidée. Normalement, il y a un système de time-out associé à chaque connexion ouverte, donc les demi-connexions devraient expirer et le serveur victime récupérer de la place libre dans sa mémoire pour d'autres connexions. Toutefois, le système agresseur peut simplement continuer à envoyer des paquets dont l'IP est spoofée plus vite que le serveur victime puisse expirer les demi-connexions.
 

Dans la plus part des cas, la victime d'une telle attaque aura des difficultés à accepter toute nouvelle connexion. Dans ces cas, l'attaque n'affectera pas les connexions déjà existantes ou la capacité à créer des connexions de l'intérieur vers l'extérieur. Par contre, dans certains cas, le serveur peut épuiser toutes ses ressources mémoires, tomber en panne ou être rendu inopérant.
 

La localisation de l'attaque est très souvent obscure parce que les adresses des paquets SYN envoyés ne sont très souvent pas plausibles. Quand le paquet arrive au serveur victime, il n'y a pas de moyens de déterminer sa véritable source. Comme Internet fait suivre les paquets basés sur une adresse de destination, le seul moyen de valider la source d'un paquet est d'utiliser le filtrage.

Bibliographie :

- Pages web du C.R.U.

- Divers ouvrages français et américains sur la sécurité informatique, l'audit de sécurité, et les pirates informatiques. 

précédent sommaire






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Ceux qui vivent sont ceux qui luttent"   Victor Hugo