Peter Titov

Aperçu de la surveillance des nœuds de sortie TOR

Comment détecter l'activité de TOR au sein de votre réseau

6 minutes de lectureMise en œuvre
Aperçu de la surveillance des nœuds de sortie TOR

Pourquoi la surveillance de l'activité des nœuds de sortie TOR est-elle importante ?

Dans le paysage complexe de la cybersécurité d'aujourd'hui, l'un des éléments les plus négligés et pourtant essentiels à la détection proactive des menaces est la surveillance de l'activité des nœuds de sortie TOR (The Onion Router). TOR permet de communiquer de manière anonyme et, bien qu'il serve des intérêts légitimes en matière de protection de la vie privée, il sert également de couverture aux cybercriminels, aux campagnes de logiciels malveillants et à l'exfiltration de données.

Que sont les nœuds de sortie TOR ?

Les nœuds de sortie TOR sont les derniers points de relais du réseau TOR où le trafic crypté sort vers l'internet ouvert. Si un utilisateur navigue sur le web de manière anonyme via TOR, le site web ou le service auquel il accède verra l'adresse IP du nœud de sortie, et non l'adresse IP réelle de l'utilisateur.

En d'autres termes, tout trafic réseau provenant d'un nœud de sortie TOR est intraçable jusqu'à sa source sans la coopération du réseau TOR, ce qui est peu probable de par sa conception.

Pourquoi vous en préoccuper ?

Bien que toute l'activité de TOR ne soit pas malveillante, une part importante du trafic malveillant utilise TOR pour masquer son origine. Voici pourquoi c'est important :

  1. Reconnaissance anonyme : Les attaquants effectuent souvent des analyses et des sondages à partir de nœuds de sortie TOR. Si quelqu'un cartographie votre infrastructure à l'aide de TOR, il peut se préparer à une tentative d'intrusion tout en restant anonyme.

  2. Canaux de commande et de contrôle (C2) : De nombreuses familles de logiciels malveillants utilisent TOR pour les communications C2, ce qui rend difficile la remontée du point de terminaison infecté jusqu'à son contrôleur.

  3. Exfiltration de données : TOR est un moyen courant d'exfiltrer des données sensibles hors d'une organisation. Si des fichiers sensibles sont téléchargés vers des points de terminaison externes via TOR, il se peut que vous soyez déjà compromis.

  4. Risques liés à la conformité : Certains secteurs (par exemple, les soins de santé, la finance) exigent un traitement des données et des contrôles d'accès stricts. Le fait d'autoriser ou d'ignorer le trafic provenant de TOR pourrait constituer une violation de ces politiques ou des réglementations sectorielles.

Vous devez rechercher toute interaction entre les nœuds de sortie TOR et :

  • host.ip
  • server.ip
  • destination.ip
  • source.ip
  • client.ip

Cela peut se produire dans les journaux des pare-feux, des DNS, des proxies, des agents de points finaux, des journaux d'accès au nuage, etc.

Comment surveiller les nœuds de sortie TOR

Afin de collecter, de surveiller, d'alerter et de rendre compte de l'activité du nœud de sortie TOR, nous devons d'abord créer quelques composants, à savoir un modèle d'index et un pipeline d'ingestion. Nous allons ensuite interroger le point de terminaison de l'API TOR toutes les 1 heures pour demander les informations détaillées les plus récentes.

Si vous souhaitez en savoir plus sur les options de surveillance de TOR, vous pouvez les consulter ici. Si vous souhaitez en savoir plus sur le projet TOR en général, vous pouvez le consulter ici.

Pipeline d’ingestion

Tout d'abord, créons un pipeline d'ingestion qui effectuera la dernière étape de l'analyse de nos données avant qu'elles ne soient écrites dans un index. Dans DevTools, appliquez simplement ce qui suit : il existe des descriptions pour chaque processeur ; si vous souhaitez en savoir plus sur ce que fait chaque processeur et sur la condition qui lui est associée, le cas échéant.

Voici à quoi peut ressembler votre écran :

Vous pouvez trouver le pipeline d'ingestion sur GitHub.

Modèle d'index

Ensuite, nous devons créer notre modèle d'index pour nous assurer que nos champs sont correctement mappés.

Toujours dans DevTools, soumettez la demande suivante, comme vous l'avez fait pour le pipeline d'acquisition. Vous pouvez trouver le modèle d'index via ce lien sur GitHub.

Remarquez la priorité du modèle d'index ; nous lui donnons une valeur beaucoup plus élevée afin qu'il ait la priorité sur le modèle par défaut logs-*-*. Bien que vous remarquerez dans les étapes suivantes que nous définissons le pipeline d'ingestion dans notre configuration pour la collecte de données, nous pouvons également l'appliquer ici comme une sauvegarde pour s'assurer que les données sont écrites à travers ce pipeline.

Politique de l'agent élastique

Une fois ces deux éléments chargés, nous pouvons maintenant naviguer vers Fleet et sélectionner la "police d'agent" sur laquelle nous voulons installer notre intégration.

Sur la politique dans laquelle vous souhaitez installer la collection TOR, cliquez simplement sur "Ajouter l'intégration".

Sélectionnez "Custom" dans la liste de catégories de gauche, puis cliquez sur "Custom API".

Cliquez sur le bouton bleu "Ajouter une API personnalisée" en haut à droite.

Vous pouvez donner à votre intégration le titre que vous souhaitez ; cependant, j'utiliserai "Activité du nœud TOR" dans cet exemple.

Remplissez les champs suivants :

Nom de l'ensemble de données :
ti_tor.node_activity

Pipeline d'ingestion :
logs-ti_tor.node_activity

URL de la demande :
https://onionoo.torproject.org/details?fields=exit_addresses,nickname,fingerprint,running,as_name,verified_host_names,unverified_host_names,or_addresses,last_seen,last_changed_address_or_port,first_seen,hibernating,last_restarted,bandwidth_rate,bandwidth_burst,observed_bandwidth,flags,version,version_status,advertised_bandwidth,platform,recommended_version,contact

Intervalle de demande :
60m

Demande Méthode HTTP :
GET

Réponse fractionnée :
target: body.relays

Vous devrez ensuite cliquer pour développer les "> Advanced options " et faire défiler un peu plus vers le bas.

Vous pouvez trouver l'extrait de processeur nécessaire à copier sur GitHub ici.

Vous pouvez maintenant cliquer sur le bouton "Enregistrer et continuer" et dans quelques minutes vous aurez l'activité du nœud TOR disponible dans votre index logs-* !

Option d'installation de Filebeat

Si vous n'utilisez pas Elastic-Agent et que vous souhaitez ingérer des données via Filebeat, c'est également possible ! Au lieu d'utiliser les étapes ci-dessus, il suffit d'utiliser le "filebeat.inputs :" suivant qui utilisera exactement le même pipeline d'ingestion et le même modèle d'index que ci-dessus ! Copiez et collez simplement la section input dans votre fichier filebeat.yml, vous aurez toujours besoin d'ajouter une section output.

Examiner vos données

Maintenant que vous avez terminé la configuration du pipeline d'ingestion et de l'intégration des agents, vous pouvez voir les nœuds TOR dans la vue Découvrir. À partir de là, vous pouvez créer des règles, des visualisations, des tableaux de bord, etc., pour vous aider à garder un œil sur la façon dont TOR est utilisé sur votre réseau.

Que pouvez-vous faire ensuite ?

L'avantage de la convention d'appellation de cet index est qu'il fonctionnera automatiquement avec votre règle Threat Intel IP Address Indicator Match disponible dans Elastic SIEM.

Toutefois, il se peut que vous souhaitiez établir votre propre règle en utilisant certaines des nombreuses informations fournies avec cette intégration, en particulier en fonction du type d'environnement observé pour le nœud. Étant donné que cet index a permis d'enrichir une quantité considérable de données géographiques, c'est le moment idéal pour découvrir certaines des fonctionnalités cartographiques de Kibana.

Partager cet article