HaCkInG WoRlD
  Types d'attaques
 
1. 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.

2. 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 mentionera qu'il a besoin du mot de passe pour d'importants travaux d'administration du système et il demandera à se 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 à tout 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.

3. Le " crackage " de mot de passe

Les mots de passe sont très important parce qu'ils sont la première ligne de défence 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. Si il en 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, n'est d'aucun effet contre ces dictionnaires. Le plus connu des programmes utilisé pour cracker les mots de passe est " Brutus " avec son dictionnaire de 50 000 mots.

4. 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 pluspart 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 ciculera 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.

5. L'IP spoofing

L'adresse IP d'un ordinateur est l'adresse qui est utilisée pour reconnaitre 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 que 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 facon que l'ordinateur de l'intru 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 acceptent 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 peuvent être configurer 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 PC's et des réseaux TCP/IP pour se connecter sur des serveurs locaux UNIX. Les PC's utilisent souvent NFS pour obtenir un accès aux répertoires et aux fichiers du serveur (NFS utilise les adresses IP uniquement pour autentifier les clients). Un intru 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 si 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 sujet 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 protocol 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 peut 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 ausi ê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.

6. Les chevaux de Troie ou Trojans

Un cheval de Troie est un programme qui se cache lui même dans un autre programme apparemment au dessus de tout soupcon. 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.

7. 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 est bien sûre celle du virus I LOVE YOU. 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 trouvait 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 mechanismes qui lui permettaient de camoufler sa présence sur une machine. C'est 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.

8. Les trappes

Une trappe est un point d'entrée dans un système informatique qui passe au-dessu 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éret 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évela 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 tout 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 facon, 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.

9. 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 échange 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 reception 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 reception du SYN (ACK-SYN) au client mais n'a pas recu 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épacement de capacité (overflow) en créant intentionellement 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 plupart 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à existentes 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.

10. Conclusion

Il y a encore une grande variété d'autres méthode d'attaques mais elle sont d'un niveau relativement élevé pour un utilisateur normal d'UNIX. Voici une courte liste de quelques une d'entre elles :

- attaque NIS et NFS

- attaque rlogin et remote shell

- attaque par interception de processus administrateurs.

Ce n'est absolument pas une liste exhaustive car il existe probablement beaucoup de type d'attaques beaucoup plus poussées.
 
  Aujourd'hui sont déjà 2 visiteurs (3 hits) Ici! je rappele que ce site est a titre indicatif !! en aucun cas je ne pourai etre tenu(e) responsable de vos acte(s) Copyright : 2008 se site est la propriété intellectuel de donsuv@hotmail.fr  
 
Ce site web a été créé gratuitement avec Ma-page.fr. Tu veux aussi ton propre site web ?
S'inscrire gratuitement