Pour
vous éclairer peut-être un peu plus sur cette notion
d'anonymat en dehors du fait que l'on peut déjà à
la base refuser le javascript et les cookies, je reprend volontairement
un très bon écrit de "Nitronec"
paru sur le site Madchat / http://hell.unixlover.com. Celui-ci
a le mérite d'exposer des méthodes linux pertinentes
pour éviter de laisser à quiconque des traces pouvant
être utilisées à votre encontre : ATTENTION :
Passer par des passerelles/pont ( socks, wingate etc..) présupose
que l'on peut remonter à vous par ces mêmes passerelles.
Pour trouver ces proxies, il éxiste de nombreux sites qui proposent
des listes comme cyberarmy.com. De plus lorsque l'on parle de "socks
serveurs", il faut comprendre "redirecteurs". Un utilitaire
tel que "Wingate" en utilise le port 1080. Il est techniquement
réalisable de se connecter sur un autre serveur en partant
de ce ces socks pour effectuer un portscan. L'inconvénient
est que ce type de scan est tracé par un wingate par le biais
des fichiers logs. Mais pour l'instant lisez ce très bon article
:
INTRODUCTION
:
"Vous
aimez l'exploration des réseaux et systèmes informatiques
mais la chose qui vous embête est que vous laissez des traces,
à savoir votre adresse IP ? Vous souhaiteriez donc changer
cette adresse IP, afin que cela soit plus difficile de remonter jusqu'à
vous ? Vous connaissez sûrement la méthode qui consiste
à passer par un ou plusieurs proxies. Ce document traite des
proxies de type SOCKS.
"
Qu'est-ce que SOCKS ? C'est un protocole conçu pour mettre
en place un serveur proxy entre deux réseaux :
Réseau A | | Serveur SOCKS | | Réseau
B
` --<--|_______________|--<--'
Pour
accéder à une machine du réseau B, une machine
du réseau A effectue une requête auprès du serveur
SOCKS. Si cette machine A est autorisée à se connecter,
le proxy va relayer les échanges entre les deux machines A
et B. Comme vous l'avez sûrement deviné, un serveur SOCKS
sert souvent de firewall entre un LAN et Internet :
LAN | | Firewall (SOCKS) | | Internet
` --<--|__________________|--<--'
(SOCKS
est très souple et permet de définir des architectures
bien plus complexes).
La grande
qualité du protocole SOCKS est qu'il se situe entre la couche
Application et la couche Transport. Par conséquent, toutes
les applications TCP et UDP passeront par le serveur SOCKS, contrairement
à d'autres types de proxies qui ne fonctionnent que pour certaines
applications. Attention, les applications ICMP (comme ping et traceroute)
ne seront pas relayées par le serveur, car ICMP est situé
dans la couche Réseau... Cependant, il existe des techniques
pour utiliser ces outils à travers un serveur SOCKS.
Une petite
précision à propos de SOCKS : la version 5 du protocole
supporte UDP et IPv6, et inclus un système d'authentification.
Alors,
comment masquer mon adresse IP ? En passant par un ou plusieurs proxies
SOCKS mal configurés (qui vous laissent les traverser sans
authentification ) :
vous
--> proxy 1 --> proxy 2 --> ... --> proxy x --> serveur
Le serveur
"voit" l'adresse IP du proxy x, qui lui-même "voit"
l'adresse IP du proxy x - 1, etc,
n'oubliez surtout pas qu'il est toujours possible de remonter jusqu'à
vous...
II.
TROUVER UNE BELLE MONTAGNE...
Trouver
des proxies SOCKS n'est pas très difficile : il suffit d'aller
sur CyberArmy pour y trouver une liste mise à jour très
souvent. Oui, certes. Mais :
- je
ne pense pas que vous soyez le seul à connaître CyberArmy.
Ces proxies sont utilisés par beaucoup de monde (y compris
par des enfants qui font des bêtises sur IRC et ailleurs), et
bien souvent, leur durée de vie est très courte.
- ces
proxies sont utilisés par beaucoup de monde, comme je viens
de le dire, et donc ce n'est pas la plus discrète des solutions
(à moins qu'au contraire vous ne préfériez utiliser
des proxies très utilisés, pour être caché
par tout le monde --> dans ce cas, je pense que la sécurité
à travers l'obscurité est une meilleure solution, mais
je me trompe peut-être).
La solution
est donc de trouver soi-même ses propres proxies. Pour m'amuser,
et pour répondre à mes besoins, j'ai créé
un petit scanner de proxies SOCKS. Vous le trouverez sur notre site
(http://hell.unixlover.com).
Cela vous intéressera peut-être (je vous préviens
tout de suite que ce n'est pas un superbe programme..). Ainsi,
vous serez le seul à connaître leur existence... en théorie,
et sans oublier leur propriétaire bien sûr ! Quelques
précautions à prendre :
- n'utilisez
pas de proxies situés dans votre pays --> le but est ainsi
de rendre la tâche plus difficile à quelqu'un qui souhaitera
remonter jusqu'à vous (ainsi, un proxy situé en Alaska
est une bonne solution, mais pensez aussi au fait que le proxy doit
avoir un bon ping, surtout si vous en utilisez plusieurs...).
Note
: vous trouverez parfois ce genre de proxies sur CyberArmy (ou ailleurs).
Regardez à quel réseau ils appartiennent et scannez
ce réseau : vous aurez parfois de très bonnes surprises....
A vous d'avoir de l'imagination pour tout le reste... Et réflechissez
en choisissant vos proxies (Où est-il situé ? A qui
appartient-il ? Est-il rapide ? etc.). N'accordez pas une confiance
aveuble aux proxies
!!! dnsquery, nslookup, whois, ping, traceroute, sockscanner, etc.
sont vos amis, ne les oubliez pas !
III. ...ET SE CACHER
DERRIERE...
Certains
programmes (clients IRC, clients web, etc.) supportent SOCKS, et vous
permettent donc de spécifier un proxy à traverser. Le
problème est que rien n'est centralisé : si vous désirez
changer de proxy (ce qui arrive en principe très souvent),
vous devez reconfigurer un à un tous vos programmes. Le mieux
est d'avoir un seul fichier de configuration pour tous les programmes
du système. De plus, peu de programmes supportent SOCKS.
L'implémentation
de référence de SOCKS, développée par
Nec (et basée sur la version originale créée
par David Koblas), est disponible sur le site www.socks.nec.com (notez
que ce n'est pas exactement un logiciel libre; mais, étant
donné que les restrictions imposées par la licence ne
concernent qu'une utilisation commerciale du package, cela ne nous
gênera pas). Ce package contient quelques programmes "socksifiés"
(comme ftp, telnet, finger, etc.) : en effet, il est nécessaire
de modifier et de recompiler tous les programmes que l'on souhaite
utiliser à travers un proxy SOCKS !
Cependant,
il existe une bien meilleure méthode, qui fonctionne avec tous
les programmes du système et qui ne nécessite aucune
modification/recompilation. Cette méthode consiste à
linker dynamiquement aux programmes une bibliothèque partagée
qui se place avant la bibliothèque C standard (la libc), et
qui intercepte les appels-système comme connect(), bind(),
etc. afin de "socksifier" les programmes lorsqu'ils sont
exécutés.
Il en
existe une autre encore: téléchargez le petit programme
bouncer.c sur le site www.hackers-pt.org (vous y trouverez également
d'autres programmes intéressants) et compilez-le (n'oubliez
pas de lire les indications placées en haut du fichier source).
En principe le programme fonctionne sous Linux et *BSD (et sous d'autres
Unix). Après compilation, vous obtenez une bibliothèque
(bouncer.so).
Enfin, une règle d'or à ne jamais oublier : vérifiez
*TOUJOURS* que vous passez bien par les proxies !!! ( voir encadrès
sur cette page ) Le programme sockstat vous sera lui aussi utile pour
vérifier la bonne connexion à un proxy (ce programme
est disponible si vous utilisez FreeBSD, sinon je pense /j'espère-
que votre système dispose d'un programme plus ou moins similaire).
IV.
EN SAVOR PLUS SUR SOCKS
Le package
de Nec contient quelques documents/RFC relatifs au protocole SOCKS,
une FAQ, des manpages, des exemples de fichiers de configuration,
de programmes, etc. Leur site (www.socks.nec.com)
contient lui aussi quelques ressources intéressantes.
V. CONCLUSION
Les proxies
SOCKS sont une méthode de protection assez efficace si elle
est utilisée correctement, et désastreuse sinon (car
elle vous donnera une fausse sensation de sécurité).
"