Vous êtes sur la page 1sur 11

Case-Study1-ForensicProxy

Exfiltration d’information

Diagramme de réseau virtuel de l’atelier

1. Machines Virtuelles:
Les images virtuelles pour cet exercice peuvent être téléchargées à partir de :
https://www.enisa.europa.eu/ftp/ENISA_INF_Squid_Server_5.2.ova
et
https://www.enisa.europa.eu/ftp/ENISA_INF_Squid_Client_5.2.ova

Squid_server - console uniquement avec tous les outils nécessaires installés, serveur
Apache. La machine virtuelle dispose d'une connectivité Internet via l'interface réseau NAT
(enp0s3) et d'un accès au réseau interne via l'interface enp0s8.

Squid_client - machine virtuelle avec environnement de bureau XFCE léger et interface


réseau interne unique. La connectivité Internet se fait via la passerelle Squid_server
agissant également en tant que serveur proxy.

Les deux machines virtuelles exécutent des distributions Linux Debian 9 et sont
préconfigurées pour communiquer entre elles via les interfaces réseau internes.

Les informations de connexion sont les mêmes pour les deux machines :

utilisateur : root
passe : squid

utilisateur: squid
passe : squid

Il est conseillé de se connecter au serveur Squid via SSH à partir de la machine locale plutôt que
d'utiliser le terminal VMs.

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
1/11
Case-Study1-ForensicProxy

2. Introduction - serveur proxy

Les serveurs proxy fournissent non seulement l'historique de navigation Web de l'ensemble
de l'organisation, stockent des copies d'une page Web (pour un temps limité), mais ils
peuvent également déchiffrer le trafic https. Bien que ces fonctionnalités puissent être
extrêmement utiles dans un environnement commercial, elles doivent également être
considérées d'un point de vue éthique. Https a été conçu pour donner aux utilisateurs un
sentiment de confidentialité et de sécurité. Le déchiffrement du trafic sans préavis ni
consentement de l'utilisateur peut être considéré comme une violation des normes éthiques
et être illégal dans certaines juridictions. La responsabilité devrait être clairement comprise
avant de décider de mettre en œuvre de telles solutions.

Dans cette partie de l'exercice, le logiciel proxy Web open source - Squid 184 sera installé et
configuré.

3. Compilation de Squid à partir des sources :


Squid peut être installé à partir de la plupart des référentiels de logiciels ; cependant, pour
avoir accès à des options plus avancées, comme l'interception du trafic SSL/TLS, il doit
être compilé à partir de la source. La dernière version officiellement prise en charge
disponible lors de la création de ce document était la version 3.5.27 de Squid et a été
préchargée sur la machine virtuelle Squid Server.

Connectez-vous au serveur squid en utilisant les informations d'identification ci-dessous :

utilisateur: root
passe : squid

Accédez au répertoire source de squid :

cd squid-3.5.27

Configurez la source en utilisant :

./configure --enable-ssl-crtd --with-openssl

Une fois la configuration terminée, installez le logiciel :

sudo make
sudo make install
Et changez la propriété du répertoire :

sudo chown squid:squid -R /usr/local/squid

4. Configuration de SSL/TLS :

Il est possible d'inspecter le contenu du trafic chiffré TLS/SSL à l'aide d'un proxy. Lorsqu'un
client souhaite se connecter à un site https via un proxy, toutes les requêtes TLS/SSL sont
dupliquées par le proxy et transmises au serveur demandé via un tunnel chiffré séparé
entre le proxy et le serveur demandé. En même temps, le proxy génère un nouveau
certificat et emprunte l'identité du serveur demandé, établissant un tunnel entre le proxy et
le client. Cela permet au proxy d'inspecter le trafic chiffré. Pour que cela réussisse, le
certificat SSL/TLS d'un serveur proxy doit être présent dans la liste des autorités de
185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
2/11
Case-Study1-ForensicProxy

certification (CA) de confiance du navigateur Web du client. Ceci est réalisable dans un
environnement informatique géré de manière centralisée.

Interception SSL

Création du certificat :

Le dossier de stockage des certificats doit être créé :

mkdir /usr/local/squid/ssl_cert
cd /usr/local/squid/ssl_cert

création de certificat (sur une seule ligne) :

openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout
squid.pem -out squid.pem

L'invite de commande apparaîtra pour vous demander des informations détaillées. Ceux-ci peuvent
être laissés vides.

Génération du certificat SSL/TLS.


Le fichier de certificat doit également être créé. Il sera ensuite utilisé sur la machine cliente.

openssl x509 -in squid.pem -outform DER -out squid.der

Editez le fichier de configuration /usr/local/squid/etc/squid.conf.


Les éditeurs de texte Nano ou Vim peuvent être utilisés pour cela.
sudo nano /usr/local/squid/etc/squid.conf

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
3/11
Case-Study1-ForensicProxy

La ligne 59 doit être commentée en ajoutant le signe '#' :

#http_port 3128

Et les lignes suivantes doivent être ajoutées à la fin du fichier :

http_port 0.0.0.0:3128 ssl-bump cert=/usr/local/squid/ssl_cert/squid.pem


generate-host-certificates=on dynamic_cert_mem_cache_size=4MB

sslcrtd_program /usr/local/squid/libexec/ssl_crtd -s /var/lib/ssl_db -M 4MB


acl step1 at_step SslBump1
acl exceptions ssl:server_name .10.1.1.1 ssl_bump splice exceptions
ssl_bump peek step1
ssl_bump bump all

La dernière étape consiste à créer et à initialiser le répertoire de cache des certificats TLS :

sudo /usr/local/squid/libexec/ssl_crtd -c -s /var/lib/ssl_db -M 4 Mo

Changer le propriétaire pour éviter les erreurs d'accès : sudo chown squid:squid /var/lib/ssl_db

fichier squid.conf

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
4/11
Case-Study1-ForensicProxy

Extrait du fichier journal access.log avec TLS/SSL activé

5. Démarrer le serveur squid


Le logiciel Squid peut être lancé en émettant la commande :

/usr/local/squid/sbin/squid

Pour vérifier si le squid s'exécute sur le port par défaut 3128 :

netstat -plnt

Netstat montrant le proxy Squid à l'écoute sur le port 3128

À ce stade , l'aperçu du fichier access.log peut être lancé et il affichera le journal en cours
de remplissage au fur et à mesure que la machine cliente est configurée.

tail -f /usr/local/squid/var/logs/access.log

6. Paramétrage du client
Le certificat client généré précédemment doit être importé dans le navigateur client. Après
avoir lancé la machine virtuelle Squid_client et s'être connecté à l'aide des informations
d'identification squid:squid, le fichier de certificat peut être téléchargé à partir du serveur
Squid, en exécutant la commande suivante :

scp squid@10.1.1.1:/usr/local/squid/ssl_cert/squid.der ~

Et s'authentifier avec les identifiants du client squid.

Configuration du navigateur Web :


Lancer Firefox puis Édition => Préférences , l'onglet des paramètres généraux de Firefox
s'ouvrira. Dans la section Confidentialité et sécurité , tout en bas se trouve une section
Certificats :

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
5/11
Case-Study1-ForensicProxy

Paramètres de confidentialité et de sécurité de Firefox

L' option Afficher les certificats ouvrira une nouvelle fenêtre dans laquelle, dans l' onglet
Autorités , le certificat racine de l'autorité de certification peut être importé :

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
6/11
Case-Study1-ForensicProxy

Firefox - importation du certificat.

Après avoir cliqué sur le bouton Importer , le fichier squid.der doit être sélectionné :

Sélection du certificat

En cliquant sur OK, une autre fenêtre apparaîtra, demandant la portée de cette confiance
de certificat.

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
7/11
Case-Study1-ForensicProxy

Étendue de l'approbation de l'autorité de certification

Le bouton OK importera l'autorité de certification racine. L'adresse du serveur proxy doit


maintenant être configurée. Tout en bas de la
Onglet Général , il y a une section proxy :

Paramètres proxy de Firefox

Dans Paramètres => Proxy manuel, l'adresse IP du serveur 10.1.1.1 et le port 3128 doivent être
fournis. Également
utiliser ce serveur proxy pour tous les protocoles doit être sélectionnée.

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
8/11
Case-Study1-ForensicProxy

Paramètre de proxy dans Firefox

Après avoir cliqué sur OK, l'utilisateur peut commencer à naviguer sur le Web. Au fur et
à mesure que les adresses sont saisies, le serveur qui ne présentait aucune activité lors
de l'exécution de la commande tail -f , indique maintenant que le fichier journal est rempli
de données.

7. Les entrées du fichier access.log de Squid


Le fichier Access.log est l'un des fichiers journaux Squid les plus utiles. Le fichier est stocké dans le
/usr/local/squid/var/logs . Par défaut, il affiche dix colonnes de données :

Extrait du fichier Squid access.log

Heure : horodatage de l'époque UNIX exprimé en millisecondes. Il marque le moment où la


transaction a commencé ;

Durée : durée de la transaction donnée ;

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
9/11
Case-Study1-ForensicProxy

Adresse client : adresse de la machine client qui a effectué la transaction ;

Codes de résultat : encodent le résultat des transactions exprimé sous la forme de deux
entrées séparées par une barre oblique. La première entrée est spécifique à Squid et est
décrite en détail en ligne. La deuxième entrée utilise les codes d'erreur définis par RFC
pour HTTP . Dans l'exemple ci-dessus, TCP_MISS représente les données extraites du
serveur et non du cache proxy ;

Octets : quantité de données téléchargées par le client ;

Méthode de requête : méthodes de requête HTTP telles que décrites dans RFC 1945 ;

URL : URL demandée ;

Utilisateur : peut contenir des informations identifiant l'utilisateur, si aucune identité d'utilisateur
n'est disponible, le signe "-" est enregistré ;

Hierarchy Code : composé de trois parties, cette colonne fournit des informations sur
la façon dont la demande a été traitée et affiche l'adresse IP du nom d'hôte qui a traité
la demande ;

Type : stocke des informations sur le type d'objet en fonction de la réponse HTTP dans un en-tête.

8. Générateur de rapport d'analyse de squid (SARG) - Le serveur squid

SARG est un outil d'analyse Squid basé sur le Web qui vous permet de parcourir des
rapports visuels sur l'activité des utilisateurs en fonction du fichier access.log . C'est un
outil utile lorsqu'un aperçu rapide de l'activité de l'utilisateur est nécessaire. Il est
disponible dans les référentiels de logiciels et peut être installé avec la commande :

sudo apt install sarg


Afin de générer un rapport, SARG nécessite un chemin vers access.log dans son fichier de
configuration :

sudo vim /etc/sarg/sarg.conf


Et à la ligne 7, changez le chemin access_log en :

/usr/local/squid/var/logs/access.log
Les rapports sont générés en exécutant la commande :

sudo sarg-x

Dans la machine client squid : accéder à Firefox et tapez sarg.local

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
10/11
Case-Study1-ForensicProxy

Panneau Web SARG

185
Squid-cache.org (2018), https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
11/11

Vous aimerez peut-être aussi