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.
|