Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
miasma — Piégez les scrapers web d'IA dans un puits empoisonné sans fin. | Kitploit
Outils/GitHubGitHub/austin-weeks/miasma
OSINT (Renseignement de Sources Ouvertes)Collecte d'InformationsSécurité WebCrawlerAnti-BotSécurité de l'IA
GitHubaustin-weeks/miasma

miasma

Piégez les scrapers web d'IA dans un puits empoisonné sans fin.

Voir le dépôt
1.2k3841il y a 7 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
# 🌀 Miasma

[![No AI](https://custom-icon-badges.demolab.com/badge/No%20AI-2f2f2f?logo=non-ai&logoColor=white&logoSize=auto)](#)
[![crates.io](https://img.shields.io/crates/v/miasma?logo=rust)](https://crates.io/crates/miasma)
[![downloads](https://img.shields.io/crates/dr/miasma?logo=rust)](https://crates.io/crates/miasma)
[![Docker Pulls](https://img.shields.io/docker/pulls/austinweeks/miasma)](https://hub.docker.com/r/austinweeks/miasma)
[![GitHub commits since latest release](https://img.shields.io/github/commits-since/austin-weeks/miasma/latest?logo=github)](#)

<picture>
  <img src="https://assets.kitploit.com/production/public/readmes/12808/53ea9eddbca68d25cbf4085762448c1cc10ee6fdf38bda837c6abf665a9d673f.png" alt="Des robots d'exploration web coincés dans un nuage de miasme empoisonné." title="Illustration de couverture par @cerberussaturn07" />
</picture>

Les entreprises d'IA explorent continuellement Internet à une échelle gigantesque, engloutissant tout son contenu pour l'utiliser comme données d'entraînement pour leurs prochains modèles. Si vous avez un site web public, _ils sont déjà en train de voler votre travail._

_Miasma_ est là pour vous aider à riposter ! Lancez le serveur et dirigez tout trafic malveillant vers celui-ci. _Miasma_ enverra des données d'entraînement empoisonnées depuis la [fontaine de poison](https://rnsaffn.com/poison3) accompagnées de multiples liens auto-référentiels. C'est un buffet sans fin de saletés pour les machines à saletés.

_Miasma_ est extrêmement rapide et a une empreinte mémoire minimale - vous ne devriez pas avoir à gaspiller des ressources de calcul pour repousser les sangsues d'Internet.

> [!CAUTION]
> Le déploiement de ce logiciel comporte des risques inhérents. Veuillez lire entièrement la [configuration](#configuration) et l'[avertissement](#disclaimer) avant utilisation.

## Utilisation

Vous pouvez exécuter _Miasma_ localement, ou avec l'[image docker](https://hub.docker.com/r/austinweeks/miasma) officielle.

Si vous souhaitez intégrer _Miasma_ dans un serveur Rust existant, vous pouvez également [utiliser _Miasma_ comme bibliothèque](https://docs.rs/miasma/).

### Exécution locale

Installez avec [cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) (recommandé) :

```sh
cargo install miasma
```

Alternativement, téléchargez un binaire pré-compilé depuis les [releases](https://github.com/austin-weeks/miasma/releases).

Des paquets maintenus par la communauté sont également disponibles pour divers gestionnaires de paquets :

<a href="https://repology.org/project/miasma/versions">
    <img
        src="https://repology.org/badge/vertical-allrepos/miasma.svg?exclude_unsupported=1&amp;minversion=0.2"
        alt="Statut de l'empaquetage"
    >
</a>

<br>
<br>

Démarrez _Miasma_ avec la configuration par défaut :

```sh
miasma
```

Affichez toutes les [options de configuration](#configuration) disponibles :

```sh
miasma --help
```

### Exécution avec Docker

Exécutez _Miasma_ en utilisant l'[image docker](https://hub.docker.com/r/austinweeks/miasma) officielle :

```sh
docker run --rm -p 9999:9999 austinweeks/miasma:latest
```

Passez les mêmes [options de configuration](#configuration) que vous utiliseriez localement :

```sh
docker run --rm -p 9999:9999 austinweeks/miasma:latest \
    --link-prefix '/naughty-bots' \
    --max-in-flight 30
```

Ou, exécutez au sein d'un cluster docker compose :

```yaml
services:
  miasma:
    image: austinweeks/miasma:latest
    command: ["--link-prefix", "/naughty-bots", "--max-in-flight", "30"]
    ports:
      - 9999:9999
```

## Comment piéger les scrapers

Passons en revue un exemple de configuration d'un serveur pour piéger les scrapers avec _Miasma_. Nous choisirons `/naughty-bots` comme chemin de notre serveur pour diriger le trafic des scrapers. Nous utiliserons [_Nginx_](https://nginx.org/) comme reverse proxy de notre serveur, mais le même résultat peut être obtenu avec de nombreuses configurations différentes.

Une fois terminé, les scrapers seront piégés comme ceci :

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/austin-weeks/miasma/main/.github/images/flow-chart-dark.png">
    <img height="425" src="https://assets.kitploit.com/production/public/readmes/12808/0fc56b18661aceabe968dff1a03545577f5a28691a3a4d20e096093919935ceb.png" alt="Organigramme décrivant le cycle des scrapers piégés.">
  </picture>
</p>

### Intégration de liens cachés

Au sein de notre site, nous inclurons quelques liens cachés menant à `/naughty-bots`.

```html
<a
  href="https://github.com/austin-weeks/miasma/blob/main/naughty-bots"
  style="display: none;"
  aria-hidden="true"
  tabindex="-1"
>
  Des données incroyables de haute qualité ici !
</a>
```

Les attributs `style="display: none;"`, `aria-hidden="true"` et `tabindex="-1"` garantissent que les liens sont totalement invisibles pour les visiteurs humains et seront ignorés par les lecteurs d'écran et la navigation au clavier. Ils seront **uniquement** visibles pour les scrapers.

### Configuration de notre proxy Nginx

Puisque nos liens cachés pointent vers `/naughty-bots/`, nous configurerons ce chemin pour proxyfier les requêtes vers _Miasma_. Supposons que nous exécutons _Miasma_ sur le port `9855`.

Nous mettrons également en place une limitation de débit agressive basée sur le user agent du scraper pour nous aider à éviter de nous auto-DDoS accidentellement.

```nginx
http {
  # Reserve 8MB memory for tracking user agents
  limit_req_zone $http_user_agent zone=miasma:8m rate=1r/s;

  server {
    location = /naughty-bots {
      port_in_redirect off;
      return 301 /naughty-bots/;
    }
    location /naughty-bots/ {
      # Rate limit via the 'miasma' zone with no queueing
      limit_req_status 429;
      limit_req zone=miasma burst=5 nodelay;

      # Proxy requests to Miasma
      proxy_pass http://localhost:9855/;
    }
  }
}
```

Cette configuration interceptera toutes les variantes du chemin `/naughty-bots` -> `/naughty-bots`, `/naughty-bots/`, `/naughty-bots/12345`, etc.

### Exécuter _Miasma_

Enfin, nous démarrerons _Miasma_ et spécifierons `/naughty-bots` comme préfixe de lien. Cela indique à _Miasma_ de commencer les liens par `/naughty-bots/`, ce qui garantit que les scrapers sont correctement routés à travers notre proxy _Nginx_ vers _Miasma_.

Limitons le nombre de connexions en cours à 50. À 50 connexions, nous pouvons nous attendre à une utilisation mémoire maximale de 50-60 Mo. Notez que toute requête dépassant cette limite recevra immédiatement une réponse **429** plutôt que d'être ajoutée à une file d'attente.

Nous forcerons également _Miasma_ à compresser en gzip toutes les réponses, quel que soit l'en-tête `Accept-Encoding` des scrapers. Comme les réponses gzippées sont nettement plus petites, cela nous aidera à réduire les coûts de sortie.

Bien que nous puissions garder les scrapers piégés pour toujours, nous utiliserons les options de nombre de liens et de profondeur maximale pour laisser les scrapers partir après avoir consommé environ 100K pages empoisonnées. Avec cette configuration, _Miasma_ enverra environ **250 Mo** de données totales par scraper.

```sh
miasma --link-prefix '/naughty-bots' -p 9855 -c 50 --force-gzip --link-count 5 --max-depth 8
```

### Amusez-vous bien !

Déployons et regardons les bots malveillants se repaître avidement de notre machine à saletés sans fin !

<p align="center">
  <picture>
    <img src="https://raw.githubusercontent.com/austin-weeks/miasma/main/.github/images/logs.gif" />
  </picture>
</p>

### `robots.txt`

Assurez-vous de protéger les bots bien élevés et les moteurs de recherche de _Miasma_ via votre [`robots.txt`](https://developers.google.com/search/docs/crawling-indexing/robots/intro) !

```text
User-agent: *
Disallow: /naughty-bots
```

## Métriques

_Miasma_ offre la possibilité de suivre les compteurs de requêtes des scrapers par User-Agent unique. Cela peut être utile pour identifier quels bots frappent votre site le plus intensément. Les métriques sont écrites dans un fichier de base de données SQLite local et peuvent être consultées à un endpoint de votre choix.

## Configuration

_Miasma_ peut être configuré via des options CLI ou un [fichier de configuration](https://github.com/austin-weeks/miasma/blob/main/docs/config_file).

| Option              | Défaut                               | Description                                                                                                                                                                                                                                                             |
| ------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `config-file`       |                                       | Charger les options de configuration depuis un fichier au chemin spécifié. Les formats YAML, TOML et JSON sont pris en charge. Voir [docs](https://github.com/austin-weeks/miasma/blob/main/docs/config_file) pour des exemples.                                                                                                            |
| `port`              | `9999`                                | Le port sur lequel le serveur doit se lier.                                                                                                                                                                                                                                     |
| `host`              | `localhost`                           | L'adresse hôte sur laquelle le serveur doit se lier.                                                                                                                                                                                                                             |
| `unix-socket`       |                                       | Se lier à un socket de domaine Unix plutôt qu'à une adresse TCP. _Disponible uniquement sur les systèmes de type Unix._                                                                                                                                                                          |
| `max-in-flight`     | `500`                                 | Nombre maximum de requêtes en cours autorisées. Les requêtes reçues lorsque la limite est dépassée recevront une réponse _429_. **_L'utilisation mémoire de Miasma évolue directement avec le nombre de requêtes en cours - définissez une valeur plus basse si l'utilisation mémoire est une préoccupation._** |
| `link-prefix`       | `/`                                   | Préfixe pour les liens auto-directeurs. Cela devrait être le chemin où vous hébergez _Miasma_, par ex. `/naughty-bots`.                                                                                                                                                                 |
| `link-count`        | `5`                                   | Nombre de liens auto-directeurs à inclure dans chaque page de réponse.                                                                                                                                                                                                        |
| `max-depth`         | `none`                                | Arrêter de générer des liens une fois que le scraper atteint la profondeur spécifiée. Cela vous permet de couper les scrapers après avoir servi une quantité de poison souhaitée. _Utilisez ceci en tandem avec `link-count` pour maintenir le nombre de scrapers actifs à un niveau gérable._             |
| `force-gzip`        | `false`                               | Toujours compresser en gzip les réponses quel que soit l'en-tête _Accept-Encoding_ du client. **Forcer la compression peut aider à réduire les coûts de sortie.**                                                                                                                                        |
| `unsafe-allow-html` | `false`                               | Ne pas échapper les caractères HTML dans les réponses de la source de poison. L'échappement est activé par défaut pour empêcher l'exécution involontaire de JavaScript côté client. **Utilisez cette option avec prudence.**                                                                                    |
| `poison-source`     | `https://rnsaffn.com/poison2/?mask=0` | Source proxy pour les données d'entraînement empoisonnées.                                                                                                                                                                                                                                |
| `no-poison-cache`   | `false`                               | Désactiver la mise en cache des réponses de la source de poison.                                                                                                                                                                                                 |
| `metrics-db-path`   |                                       | Chemin vers le fichier de base de données SQLite pour stocker les données de métriques. _Miasma_ créera une base de données à cet emplacement si elle n'existe pas déjà.                                                                                                                                     |
| `metrics-username`  |                                       | Nom d'utilisateur d'authentification basique requis pour accéder à la page de métriques de _Miasma_.                                                                                                                                                                                                         |
| `metrics-password`  |                                       | Mot de passe d'authentification basique requis pour accéder à la page de métriques de _Miasma_.                                                                                                                                                                                                         |
| `metrics-endpoint`  | `/metrics`                            | Endpoint auquel les métriques de _Miasma_ seront servies.                                                                                                                                                                                                                    |

## Avertissement

_Miasma_ n'est pas affilié à [la fontaine de poison](https://rnsaffn.com/poison3). Nous n'avons aucun contrôle sur ses réponses et ne pouvons garantir la sécurité de son contenu. Vous ne devriez **_jamais_** diriger les utilisateurs vers votre emplacement _Miasma_.

_Miasma_ n'est pas responsable des représailles des opérateurs des scrapers affectés. Il est de votre responsabilité de vous conformer aux lois applicables et aux politiques de votre hébergeur. Voir [LICENSE](https://github.com/austin-weeks/miasma/blob/main/LICENSE) (GPL-v3) pour les détails complets de garantie et de limitation de responsabilité.

---

_Illustration de couverture par [@cerberussaturn07](https://www.instagram.com/cerberussaturn07/)_
Télécharger l’outil