Cet essai est destiné aux adminitrateurs réseau
soucieux d'améliorer la sécurité de leur réseau
vis-à-vis d'Internet. Ce document n'est en aucun cas destiné
aux hackers.
Ce document est copyright Xtream. Vous pouvez le copier mais si vous
voulez le distribuer, mailez
moi ! Egalement, si vous avez des commentaires, n'hésitez pas
à me mailer.
Vous pouvez egalement aller voir mon essai sur la securité en
version anglaise qui par ailleurs est plus
complet.
Si vous appreciez cette page, SVP signez mon guesbook: Le voir / Le signer |
|
PARTIE 1: Problemes liés à la sécurité.
1.3 L'INTÉGRITÉ DU COMMERCE 1.4 LA MISE HORS SERVICE DES SERVEURS
2.2 LE SOCIAL ENGINEERING 2.3 LE « CRACKAGE » DE MOT DE PASSE 2.4 LE « SNIFFING » DES MOTS DE PASSE ET DES PAQUETS 2.5 L’IP SPOOFING 2.6 LES CHEVAUX DE TROIE. 2.7 LES VERS 2.8 LES TRAPPES 2.9 LE TCP-SYN FLOODING 2.10 CONCLUSION PARTIE 3: Les solutions. |
3.2 LA PROTECTION DES MOTS DE PASSE ET LA CRÉATION DE MOTS DE PASSE SÛRS
Beaucoup d'organisations (au sens large) ouvrent un site web pour avoir une sorte de vitrine sur l'Internet où elles peuvent exposer leurs produits, activités, etc ... Une nouvelle sorte de piratage consiste à entrer illégalement sur le serveur web et à modifier les pages existantes. C'est un peu comme entrer dans un magasin et changer les choses exposées. Dans tous les cas, quand un site est piraté, la nouvelle page remplacée n'est pas pour promouvoir l'activité du propriétaire. Plusieurs exemples suivent pour illustrer ce nouveau problème.
1.1.1 Les administrations américaines
- Le 29 décembre 1996, un hacker a attaqué un site web de l'US Air Force et a remplacé la page principale par des images à caractère pornographique. Le résultat a été que le "DefenseLINK" du pentagone, qui inclue environ 80 homepages, a été débranché pendant plus de 24 heures pour que les officiels s'assurent qu'il n'y avait pas d'autres brêches de sécurité sur le système.
Cette attaque a abîmé l'image de l'US Air Force en montrant
que ses systèmes informatiques n'étaient pas vraiment sûrs.
De plus, cette administration a dépensé une somme d'argent
non négligeable pour vérifier l'intégrité de
ses fichiers.
- Une autre attaque de site web assez récente s'est produite
le 5 mars 1997 où la page principale de la NASA (National Aeronautics
and Space Administration) a été piratée et le contenu
changé. Les hackers l'ont remplacée par une nouvelle page
exprimant des critiques sur les institutions américaines. (Site
web de la NASA: http://www.hq.nasa.gov)
- Pendant l'été 1996, des hackers se sont introduits sur
le serveur web de l'US Justice Department en plaçant des croix gammées
et des images d'Adolf Hitler qu'ils considérait au même titre
que le département de la justice américaine. Ils voulaient
protester contre la position du gouvernement américain à
contrôler l'Internet.
Les principales attaques sont dirigées vers les institutions américaines dans lesquelles les pirates voient une proie intéressante pour discréditer le gouvernement américain.
Toutefois, il est important de signaler que les médias qui relaient
ce type d'information ne font pas suivre le message des pirates mais au
contraire les font passer pour des délinquants. La valeur de leur
message en est donc occulté contrairement aux exemples que nous
allons voir ci-dessous.
1.1.2 Les autres organisations:
- Le 10 février 1997 et encore le 14 février 1997, des
hackers portugais ont lancé une attaque politique sur la page web
du gouvernement indonésien en insistant que ce pays continuait une
oppression sur le Timor Est. Ils voulaient attirer l'attention sur la nécessité
de l'indépendance du peuple du Timor oppressé depuis des
décades par le gouvernement d'Indonésie.
- Le site des fourrures Kriegsman fut attaqué en novembre 1996
par un activiste anti-fourrure. La nouvelle page bien évidemment
ne promouvait pas cette entreprise.
Nous avons ici deux exemples de sites web piratés par des hackers
pour défendre une cause. Le geste est le même que pour les
exemples de la partie précédente mais la porté médiatique
en est multipliée. Ce qui montre que la sécurité d'un
site web n'est pas à prendre à la légère notamment
pour les entreprises.
1.2 L'espionnage industriel et militaire:
De nos jours, une grande majorité des serveurs Internet appartiennent
aux entreprises. Beaucoup de compagnies en profite pour utiliser l'Internet
comme réseau de transmission de données intra-entreprise.
Il y a un grand nombre d'exemples de serveurs Internet d'entreprise hackés.
Un bon exemple est le serveur de Boeing où il y a quelques années,
deux collégiens étaient rentrés en effraction dans
un des ordinateurs de la compagnie afin de rechercher des fichiers de mots
de passe. De plus, Boeing a trouver l'évidence que les hackers ont
obtenu l'accès "root" à la maison fédérale
de Seattle. Le département de justice américaine avait dit
que cela était une situation classique dans laquelle les pirates
peuvent influer sur les coûts de production. En effet, les pirates
ont très bien pu voler certains fichiers secrets et les distribuer
sur l’Internet ou à des compagnies rivales. Après que le
cas fut fini, il couta à Boeing 57.000 Dollars simplement pour vérifier
l'intégrité de ses données d'avioniques.
En réalité, le principal risque est le vol de données
confidentielles, mais il y a aussi un autre risque, c'est le risque de
données modifiées. En effet, le pirate peut très bien
changer les données actuelles par de fausses. Alors, l'entreprise
travaillerait avec des informations altérées et pourrait
produire des résultats erronés sans s'en rendre compte. C'est
pourquoi Boeing dépensa tant d'argent pour vérifier toute
l'intégrité de ses données.
Un autre exemple en 1987, une petite erreur comptable de 75 cents révella
qu'un intrus s'était ouvert lui-même un compte dans le système
informatique du laboratoire "Lawrence Berkeley". Les traces du compte provennait
d'un programmeur d'Allemagne de l'est qui avait copié des documents
des ordinateurs militaires attachés à MILNET (Le segment
Internet réservé pour les utilisations militaires). Les documents
furent vendus au KGB.
Le groupe Gartner William Malik (Célèbre groupe d'avocats
américains) affirme que un de ses clients, une très grande
compagnie de produits manufacturés, a perdu 900 millions de dollars
parce que un de ses concurrents avait pirater plusieurs ordinateurs de
l'entreprise et avait tout appris sur ses projets.
Les exemples de cette sorte sont abondants dans le monde de l'Internet.
Toutefois, un grand nombre d'attaques ne sont pas rapportées au
public parce qu'elles pourraient porter atteinte à la compagnie
ou bien parce qu'elles ne sont pas détectées par l'administrateur
réseau de l'entreprise.
La sécurité des cartes de crédit est un des principaux enjeux de la sécurité sur Internet à cause de l'énorme potentiel de ce nouveau commerce mondial qui se développe à une vitesse impressionnante. Tout cela laisse évidemment une grande place à la fraude des cartes de crédit.
Il y a un grand nombre de magasins virtuels sur l'Internet qui vendent
des livres, des composants d'ordinateurs, des vêtements, etc ...
Tous ces magasins virtuels utilisent la méthode de paiement par
carte de crédit. Ce qui signifie que le consommateur envoie son
numéro de carte de crédit au magasin virtuel qui alors débite
le montant du compte bancaire propriétaire de la carte de crédit.
Mais il y a deux problèmes. Premièrement, la transmission
du numéro de carte de crédit peut être interceptée
par une tierce personne sans l'accord, bien évidemment, ni du marchant
et ni du consommateur. Deuxièmement, une majorité de ces
sites commerciaux ne sont pas sécurisés. Même si la
transmission du numéro de carte de crédit à travers
l'Internet est sûr, les moyens de le stocker sur le serveur ne le
sont pas forcément. Les fichiers de numéros de cartes de
crédit dans la base de données d'une entreprise peuvent être
piratés. Plusieurs compagnies spécialisées dans le
commerce sur Internet ont déjà été hackées
à la recherche des fichiers clients de numéros de carte de
crédit.
Par exemple, le fournisseur d'accès Internet Netcom de San Jose
(Californie, USA) en a déjà subit les conséquences.
Et le célèbre hacker Kevin Mitnick avait volé environ
17.000 numéros de cartes de crédit avant de se faire capturer
par des détectives hi-tech.
Pendant que le commerce sur l'Internet devient un marché de plusieurs
centaines de millions de francs, cela devient aussi une grande problématique
en terme de sécurité pour les échanges commerciaux
entre les clients et les marchants.
1.4 La mise hors service des serveurs:
Les serveurs fournissants des services basés sur le protocole TCP (WWW, email, newsgroup, gopher, telnet, etc ...) à la communauté Internet peuvent devenir incapable de fournir ses services lorsqu'ils sont sous le coup d'une attaque et même pendant un certain temps après cette dernière. Le service en lui même n'est pas endommagé par l'attaque; généralement seulement la capacité à fournir ce service est mis hors service. Dans certains cas, le système va jusqu'à épuiser toutes ses ressources mémoire, crasher ou sinon devenir inopérant. Ces attaques bloquent le système temporairement, donc durant ce temps inutilisé, la compagnie propriétaire du système peut perdre de l'argent notamment si le service proposé est un service de vente par Internet.
Une description de ces types d'attaques se trouve dans le chapitre suivant.
Premièrement, il est interessant de se pencher sur le système
de fichiers réseau, tout particulièrement parce que c’est
par ce système de fichiers que sont gérés les accès
aux fichiers personnels ou communs et que c’est par lui que se joue la
sécurité d’un 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.
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.
2.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 « Crack4.1 » avec son dictionnaire
de 50 000 mots.
2.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. Les programmes de sniffing les plus connus sont
:
- Esniff.c (programme source pour un sniffer ethernet)
- TCPDump
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.
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.
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
lanca 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 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.
Les attaques de vers sont toutefois rare parce que les serveurs sur
Internet sont de plus en plus différents (bien que cela tend à
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.
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.
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 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à 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.
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 Sendmail par le port système du mail (port 25)
- attaque NIS et NFS
- attaque FTP par le port 21
- attaque Telnet par le port 23
- 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 qui restent secrètes.
Les firewalls sont souvent appelés les préservatifs pour
les réseaux des entreprises. Ils fournissent une protection digitale
associée à la rapide croissance des réseaux et de
la commercialisation de l’Internet. Comme les préservatifs, beaucoup
de gens ont entendu parler des firewalls mais peu de personnes les utilisent.
De plus, le nombre d’incidents de sécurité grandissant sur
Internet laisse suggérer très fortement que trop peu de personnes
les utilisent correctement.
3.1.1 Qu’est ce qu’un firewall ?
Un firewall est une sorte de technologie de contrôle d’accès
qui empêche les accès non-autorisés aux ressources
d’information en placant une barrière entre le réseau de
l’entreprise et le réseau non-sécurisé (Internet,
par exemple). Un firewall est aussi utilisé pour empêcher
les transferts d’information propriétaire du réseau de l’entreprise.
En d’autres mots, un firewall fonctionne comme une passerelle controlant
le traffic dans les deux directions.
Le firewall typique est un ordinateur bon marché fonctionnant
avec UNIX éloigné de toute donnée confidentielle qui
est placé entre Internet et le réseau de l’entreprise. Certains
firewalls ne permettent que le passage de l’email protégeant ainsi
tout le réseau contre toutes les attaques possibles autres que contre
le service email. D’autres firewalls fournissent moins de restrictions
et bloquent les services qui sont connus pour être une source de
problèmes.
Généralement, les firewalls sont configurés pour
protéger contre les connexions interactives (Telnet par exemple)
provenant du « monde extérieur ». Ceci, plus que toute
chose, aide à empêcher les agresseurs de se connecter sur
les machines du réseau intérieur. Les firewalls les plus
élaborés bloquent le traffic de l’extérieur vers l’intérieur
mais permettent aux utilisateurs de l’intérieur de communiquer librement
avec l’extérieur.
Les firewalls sont d’autant plus importants qu’ils fournissent un point de rencontre où la sécurité et la vérification peuvent être imposés. Dans une situation où un ordinateur est attaqué par quelqu’un, le firewall peut agir comme une cassette enregistrable et un outils de tracage.
3.1.2 Qu’est-ce qu’un firewall ne peut pas faire ?
Les firewalls ne peuvent pas protéger contre les attaques qui
ne passent pas par le firewall. Beaucoup d’entreprises qui se connectent
à l’Internet sont très concernées par les fuites de
données propriétaires qui passe par ce chemin. Malheureusement
pour ces concernées une disquette magnétique peut être
utilisée tout aussi efficacement pour transférer des données.
La politique du firewall doit être réaliste et refléter
le niveau de sécurité du réseau de l’entreprise. Par
exemple, un site avec des données top secrètes ne doit pas
avoir de firewall du tout : il ne doit tout simplement pas avoir sa place
sur l’Internet. Les systèmes avec des données confidentielles
et secrètes doivent être isolés du reste du réseau
dans l’entreprise.
Les firewalls ne peuvent pas vraiment protéger contre les choses
comme les virus. Il y a trop de sorte d’encoder des fichiers exécutable
pour les transférer à travers les réseaux. Il y a
également trop d’architectures différentes et de virus pour
essayer de les chercher. En d’autres mots, un firewall ne remplace pas
la sécurité et la conscience de la part des utilisateurs.
En général, un firewall ne protège pas contre les
attaques orientées données (attaques dans lesquelles quelque
chose est mailé ou copié vers un ordinateur interne où
il sera ensuite exécuté). Cette forme d’attaque s’est produite
dans les anciennes et nombreuses versions de « Sendmail ».
Il y a beaucoup de sortes de firewalls. Toutefois, la principale part
des firewalls sont des programmes installés sur le routeur de l’entreprise
ou sur un autre ordinateur. Il existe quand même des firewalls «
hardware » qui sont plus rares. Ce sont des cartes électroniques
qui sont branchées dans l’ordinateur.
Il peut y avoir plusieurs rôles pour un firewall : certains sont filtreurs de paquets, routeurs, passerelles, ordinateur bastion, etc ... Il y a aussi une large variété de firewalls pour chaque système d’exploitation : UNIX, Novell Netware, Windows NT, LINUX, etc...
De nos jours, les firewalls sont des remparts efficaces contre les agresseurs
de toutes sortes. Toutefois, si un firewall n’est pas proprement installé,
il peut se révéler pire que de ne pas en avoir à cause
du faux sentiment de sécurité qu’il procure.
3.2 La protection des mots de passe et la création de mots de passe sûrs :
La protection des mots de passe est un des principaux problèmes
de la sécurité sur Internet bien qu’il existe des solutions
pour lutter efficacement contre ce dernier :
- les mots de passe « shadow »
- la génération de mots de passe sûrs.
3.2.1 Les mots de passe « shadow »
Les mots de passe « shadow » sont un système où
le fichier de mots de passe cryptés est caché de tous les
utilisateurs excepté l’administrateur, en espérant empêcher
les tentatives de crackage de mots de passe à la source.
3.2.2 La création de mots de passe sûrs :
Premièrement, il serait intéressant de voir combien de
mots de passe possibles il existe. La plus part des gens sont inquiets
que des programmes comme « crack » vont éventuellement
gagner en puissance jusqu’à ce qu’ils soient capables d’effectuer
un recherche exhaustive de tous les mots de passe possibles pour rentrer
dans un compte utilisateur spécifique (généralement
administrateur).
Les mots de passe valides sont créés à partir de
62 charactères [A-Za-z0-9] et ils peuvent inclure encore plus de
charactères comme : « \}][{$££@ !%&(#/)=-:_.;,?"><
». Ils doivent également être de longueur comprise entre
5 et 8 charactères. En utilisant seulement les 62 charactères
communs, la taille de la série de mots de passe valides est : 625+626+627+628
= 2,2 E+14
Un nombre qui est bien trop grand pour entreprendre une recherche exhaustive
avec les technologies actuelles. De plus, si l’on peut utiliser les 95
charactères, qui ne sont pas des charactères de contrôle,
dans les mots de passe, cela réduit d’autant plus les chances du
cracker de mots de passe.
Par contre, n’importe quel mot de passe qui est dérivé d’un dictionnaire (ou d’information personnelle), même modifié constitue un mot de passe potentiellement crackable.
Par exemple les mots de passe basés sur les :
- noms de login : monlogin
- noms famille : dupond, durand
- prénoms : Raoul, Adrienne
- mots écris à l’envers : enneirda, dnopud
- mots d’un dictionnaire : ordinateur, livres
- mots en capitales : Ordinateur, OrDiNateuR
- mots des dictionnaires de cracking : porsche911, 123456789, azerty,
abcxyz, mr.spoke
- mots de langues étrangères : hello!, gutentag
Un bon mot de passe doit toutefois être facile à se souvenir mais difficile à cracker. Le meilleur moyen de créer un mot de passe incrackable est de le faire apparaitre comme défini au hasard. Il ne faut pas oublier d’insérer des chiffres et des signes de pontuation dans le mot de passe. La méthode favorite pour trouver un mot de passe incrackable mais facile à se souvenir est de :
1. Prendre une phrase ou une ligne d’un poême ou d’une chanson
qui doit être d’au moins long de 8 mots
2. Prendre la première lettre de chaque mot et l’utiliser dans
le mot de passe.
3. Utiliser les signes de pontuation
Par exemple, la phrase : « Un pour tous, et tous pour un »
donne un mot de passe relativement incrackable : « Upt,&tp1 »
Un bon moyen pour un administrateur réseau de savoir si les utilisateurs
ont des mots de passe sûrs est d’utiliser les programmes de crackage
de mots de passe sur son propre système comme le ferait un cracker.
« Crack » est un bon outil pour s’assurer que les utilisateurs
de système UNIX n’ont pas choisis des mots de passe facilement crackable
qui apparaissent dans les dictionnaires standards.
La cryptographie est la technologie qui permet d’envoyer des messages qui ne peuvent être compris (décryptés) que par le destinataire en améliorant les contrôles sur les messages routés par l’Internet, et en améliorant la qualité du système d’exploitation à abaisser les défauts des programmes et d’autres vulnérabilités de sécurité.
Il y a deux principaux types de cryptage : le cryptage asymétrique
(appelé aussi cryptage à clé publique) et le cryptage
symétrique.
3.3.1 Le cryptage asymétrique ou à clé publique :
C’est un système cryptographique qui utilise deux clés
: une clé publique connue de n’importe qui et une clé secrète
connue uniquement du destinataire du message.
Par exemple : Quand Jean veut envoyer un message sûr à
Paul, il utilise la clé publique de Paul pour crypter son message.
Ensuite Paul utilise sa clé privée pour le décrypter.
Un élément important au système de clé publique
est que les clés publique et privée sont en relation de telle
facon que seulement la clé publique peut être utilisée
pour crypter le message et seulement la clé privée correspondante
peut être utilisée pour le décrypter. Deplus, il est
virtuellement impossible de déduire la clé privée
si on ne connait pas la clé publique.
3.3.2 Le cryptage symétrique :
C’est un type de cryptage où la clé utilisée pour
crypter et décrypter le message est la même. Le cryptage de
type DES (Data Encryption Standard) est une des plus célèbre
forme de cryptage symétrique. Il est d’ailleurs toujours utilisé
par les administrations aux Etats-Unis pour envoyer des données
à travers un réseau. Toutefois, elles utilisent le système
de cryptage à clé publique pour envoyer la clé DES
au destinataire du fichier crypté !
3.4 IP spoofing et SYN flooding :
Avec la technologie actuelle du protocole IP, il est impossible d’éliminer
les paquets spoofés. Mais il existe quelques solutions pour réduire
le nombre de paquets spoofés entrant et sortant du réseau.
La meilleure méthode est d’installer un routeur-filtreur qui
limite les entrées à l’interface externe (connue sous le
nom de filtreur d’entrée) en n’accordant pas le droit d’entrée
à un paquet qui a une adresse source du réseau interne. Il
peut aussi être bon de filtrer les paquets sortants qui ont une adresse
source différente du réseau interne afin de prévenir
une attaque d’IP spoofing provenant du réseau interne.
La combinaison de ces deux routeurs-filtreurs doit empêcher les
agresseurs extérieurs d’envoyer des paquets prétendants venir
du réseau interne. Cela doit également empêcher les
paquets provenants du réseau interne de se prétendre venir
de l’extérieur du réseau. Ces filtreurs ne vont pas stopper
toutes les attaques de type TCP-SYN du moment que les agresseurs extérieurs
peuvent spoofer leurs paquets de facon qu’ils proviennent d’autres sites
extérieurs, et les agresseurs internes peuvent toujours envoyer
des attaques spoofing avec des adresses internes.
L’IP spoofing et le SYN-flooding sont actuellement les deux pricipaux
problèmes unsoluble de la sécurité sur l’Internet.
3.5 Les outils de vérification de la sécurité :
Il existe de nombreux ooutils disponible sur l’Internet pour tester
la sécurité d’un système. Certains outils scannent
les systèmes pour connaitre leurs vulnérabilités :
« SATAN » est le plus célèbre programme pour
UNIX, d’autres vérifient l’intégrité des fichiers
comme « Tripwire ». L’administrateur réseau est fortement
conseillé d’utiliser ces outils avant les agresseurs si il veut
éviter les problèmes les plus courants.
Voici une petite liste des outils de vérification les plus courants
: ISS, C2 security, COPS, Tiger (qui fait parti de TAMU security), MD5.
3.6 La sécurité à travers l’obscurité :
C’est une manière de considérer qu’un système ne
peut être sûr que aussi longtemps que personne, en dehors des
personnes qui l’ont créé, n’ait compris son fonctionnement
interne. La technique est de cacher les comptes utilisateurs, les mots
de passe dans des fichiers exécutables ou des programmes avec l’espoir
que personne ne les trouvera.
C’est une philosophie qui a la faveur des bureaucrates américains. La principale critique de cette technique est que ce n’est que de la pseudo-sécurité car elle ne résoud pas les vrais problèmes de sécurité mais à la place, les cache.
De plus, le responsable du petit groupe qui a créé ce
système doit faire confiance aux employés pendant toute leur
vie. Et si les employés ont une meilleure offre de salaire ailleurs,
les connaissances s’envont avec eux que les connaissance soient remplacables
ou non.
Toutefois, cette technique peut rentrer en complément d’autres
mesures de sécurité.
La restriction d’IP sert à limiter les utilisateurs à
se connecter à certaines parties du serveur. En accordant seulement
quelques adresses IP à se connecter au serveur, l’agresseur n’aura
pas l’accès aux domaines où il peut causer des dommages.
3.8 L’éducation et la prise de conscience.
Une des craintes majeures pour la sécurité d’un système
n’est pas les trous techniques de sécurité d’un système
mais le manque de conscience des utilisateurs ou de l’administrateur. Par
« manque de conscience », je veux dire que les utilisateurs
d’Internet ont souvent l’impression que le seul moyen par lequel un hacker
peut rentrer dans leur compte ou sur un système est en utilisant
trappe laissée ouverte par un administrateur non-conscencieux. Une
autre croyance est qu’il n’y a aucune valeur dans un simple compte
utilisateur et que personne ne va s’ennuyer à essayer de le pénétrer.
Aussi bizarrement qu’il puisse paraitre, ce qu’un agresseur trouve d’intéressant
dans un compte utilisateur est tout simplement l’accès au système.
Un simple accès permet à l’intrus de devenir super-utilisateur
après avoir exploité une faille dans le système d’exploitation
du système ou bien le compte peut être utilisé comme
passerelle pour attaquer d’autre sites. Bien évidemment, l’utilisateur
victime est responsable de se qui se produit sur son compte, d’où
l’intéret de le protéger correctement.
Un bon moyen pour faire prendre conscience aux utilisateurs de l’importance de leur compte (et donc de leur mot de passe) est de prendre des mesures strictes en les encourageant :
- à changer leur mot de passe après la premiere connexion,
- à ne pas partager leur compte avec qui que ce soit,
- à protéger leur mot de passe : être prudent des
regards indiscret au moment de taper le mot de passe,
- à changer leur mot de passe régulièrement et
tout spécialement après s’être connecté sur
une machine éloignée,
- à choisir des mots de passe sûrs
Un autre moyen d’impliquer les utilisateurs à respecter les mesures
de sécurité sur un système est de leur faire signer
une charte de responsabilité et de bonne conduite sur l’Internet.
La sécurité est l’affaire de tous sur un système
: l’administrateur aussi bien que les utilisateurs. Et le rôle de
l’administrateur est d’éduquer ses utilisateurs à la sécurité.
La meilleure solution pour l’Internet réside sans doute dans le cryptage des données. Mais beaucoup de gouvernements n’approuvent pas cette technique parce qu’elle représente un danger pour la sécurité de l’état car l’information ne peut plus être controlée. C’est pourquoi aux Etats-Unis le cryptage à clé publique est seulement permis avec des clés de 48 bits. Dans certains pays, le cryptage des données est même totalement interdit : Singapour, Chine, etc ... En France, par contre la cryptologie n’est pas interdite, mais l’utilisateur qui veut crypter des données doit remettre les clés de cryptage à un organisme. Pour plus d’information sur le sujet : http://www.telecom.gouv.fr/francais/activ/techno/techncom.htm#4.2.
De nos jours, les entreprises veulent choisir des options de haute sécurité dont elles ont besoin pour communiquer dans le commerce électronique, et la cryptographie semble être la meilleure solution pour ces dernières.
Comme il n’y a pas et il n’y aura sans doute jamais de réseaux sûrs à 100%, nous pouvons quand même nous protéger d’une majorité de problèmes associés à l’Internet en étant vigilant. Toutefois, l’Internet continue de grandir en popularité et les statistiques de fraudes et d’attaques risquent de continuer à augmenter si les utilisateurs ne prennent pas conscience que la sécurité est un enjeu capital pour l’Internet.
« Le seul système informatique qui est vraiment sûr
est un système éteint et débranché, enfermé
dans un blockhaus sous terre, entourré par des gaz mortels et des
guardiens hautement payés et armés. Même dans ces conditions,
je ne parierais pas ma vie dessus. » Gene Spafford.