Wikileaks - Comment assurer son anonymat?

Hérbergement des données

Introduction

Il y a un an, Wikileaks disposait deux hébergeurs Bahnof, un hébergeur suédois, et Amazon.

Wikileaks, s'est rendu compte que lorsqu'il publiait des documents, il subissait de nombreuses attaques DDoS (déni de service). C'est pour cela qu'il a choisi d'être hébergé par Amazon, qui propose un service d'hébergement "cloud". Le cloud computing a la particularité de bien résister aux attaques DDoS (déni de service) grâce aux nombreux serveurs. Mais Amazon a décidé de mettre fin à leur partenariat en raison de pression politique et parce que le site violait ses conditions de service en publiant des contenus dont il ne détient pas les droits.

Wikileaks s'est donc retrouvé avec un seul hébergeur et a été obligé d'en trouver d'autres pour pouvoir héberger leurs données.

Suisse

Wikileaks possède des serveurs en suisse parce que c'est un pays politiquement neutre et elle protège aussi les données et les personnes.

France

En France, OVH a proposé à Wikileaks d'héberger leurs données. OVH a été critiqué pour cette action mais cette société a répondu en précisant qu'elle n'était que prestataire technique et n'était ni pour ni contre Wikileaks.

Suède

Wikileaks dispose de serveurs, hébergé par Bahnof. Cet hébergeur, quasiment inconnu en France, est notamment partenaire de The Pirate Bay. Les serveurs sont installés dans un abri anti-atomique ce qui garantit une grande sécurité contre les intrusions physiques. L’abri se situe sous une trentaine de mètres de roche dans le centre de Stockholm. La cavité avait été creusée en 1943 pour se protéger des bombardements et aménagée pendant la guerre froide.

Datacenter de Bahnof
Serveurs de Bahnof dans l'abri anti-atomique de Stockholm

Site miroir

Wikileaks étant toujours sensible aux attaques DDoS malgré leurs hébergeurs. Wikileaks a lancé un appel aux volontaires, afin d'héberger sur leurs serveurs personnels une copie de Wikileaks. Plus il y a de sites miroirs, plus il est difficile de supprimer un site web car il en existe des dizaines, voir des centaines de copies. Un site miroir est une copie exacte d'un autre site web. La création d’un site miroir est assez simple. Il faut obligatoirement avoir un serveur, un serveur DNS (qui peut être sur la même machine) et un nom de domaine. Deux méthodes sont ensuite possibles pour permettre à Wikileaks ou à un des sites miroirs de vous envoyer les données:

FTP

Pour créer un site miroir grâce à un FTP, il faut :
- créer un dossier /Wikileaks dans votre espace web
- créer un sous-domaine (par exemple Wikileaks.mondomaine.fr) qui pointe sur ce dossier
- créer un compte FTP (par exemple Wikileaks) associé à un mot de passe qui pointe sur le dossier /Wikileaks
- remplisser le formulaire trouvé http://46.59.1.2/mass-mirror.html ou http://213.251.145.96/mass-mirror.html
(Ces formulaires ne sont plus actifs au moment de la rédaction de ce site web)

Et l'un des sites Wikileaks se chargera de vous envoyer les données.


SSH

Cette partie est inspiré du site http://geekfault.org/2010/12/05/devenez-miroir-de-wikileaks-sans-risque/

En ssh, pour éviter que les personnes qui se connectent sur votre serveur exécute n'importe quelles commmandes, il faut créer un utilisateur et bloquer toutes les commandes à part "Rsync".

Sécuriser SSH

A la fin du fichier /etc/ssh/sshd_config, on rajoute les lignes ci-dessous elles permettent rediriger l'utilisateur dans son home.

Match user Wikileaks
ChrootDirectory /home/Wikileaks
X11Forwarding no
AllowTcpForwarding no

Créer un utilisateur
Il faut créer un répertoire et l'associer au nouvel utilisateur:

# mkdir /home/Wikileaks
# useradd -d /home/Wikileaks -s /bin/bash Wikileaks
# chown Wikileaks:Wikileaks /home/Wikileaks

Puis autoriser la connexion des administrateurs de Wikileaks:

# su - Wikileaks
$ mkdir ~/.ssh
$ wget http://Wikileaks.fr/id_rsa.pub -O ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

Créer l’environnement chroot
Pour créer un environnement CHROOT, il faut que la racine appartienne à root.

# chown root:root /home/Wikileaks
# mkdir /home/Wikileaks/bin
# mkdir /home/Wikileaks/lib

Ensuite nous copions les binaires nécessaires pour faire un Rsync :

# cp `which bash` /home/Wikileaks/bin/bash
# cp `which rsync` /home/Wikileaks/bin/rsync

Pour que les binaires fonctionnent, il faut copier les librairies. La commande ldd permet de les lister, ensuite il faut les copier.

# ldd `which bash` `which rsync`
# cp /lib/libncurses.so.5 /home/Wikileaks/lib/

Un simple shell
Si vous trouvez que l'utilisateur peut exécuter beaucoup de commandes grâce bash. Il suffit de créer un shell qui ne permette que de lancer la commande Rsync. Il faut créer un fichier /home/Wikileaks/bin/simpleshell.

#!/bin/bash
if (( $# == 0 )); then
printf "%s\n" "shell access is disabled. sorry."
exit 1
elif (( $# == 2 )) && [[ $1 == "-c" && $2 == "rsync --server"* ]]; then
exec $2
fi

Ensuite il faut rendre exécutable ce shell et le rendre par défaut pour notre utilisateur:

# chmod +x /home/Wikileaks/bin/simpleshell
# ln -s /home/Wikileaks/bin/simpleshell /bin/simpleshell
# usermod -s /bin/simpleshell Wikileaks

Maintenant que votre accès ssh est correctement configuré, vous pouvez donner l'adresse de votre serveur, le login et le mot de passe. Wikileaks se chargera de vous envoyer les données.