Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Pyison — Tarpit Pythonic para crawlers de IA | Kitploit
Herramientas/GitHubGitHub/jonaslong/pyison
Herramientas DefensivasScripting y AutomatizaciónSeguridad WebAprendizaje y EducaciónCrawlerAnti-Bot
GitHubjonaslong/pyison

Pyison

Tarpit Pythonic para crawlers de IA

Ver Repositorio
122215hace 11 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Pyison

Pyison es un tarpit para rastreadores web de IA

Introducción

  • Como todos los rastreadores web, los bots de IA solicitan páginas a los servidores web y luego siguen los enlaces de la página a otras páginas. Al hacer esto, pueden construir un índice de todo un sitio web.
    • Sin embargo, a diferencia de otros rastreadores web, los bots de IA presentan algunos problemas particulares
      • Los administradores de servidores pueden configurar un archivo robots.txt, que indica a los rastreadores web qué páginas deben y no deben rastrear.
        • Se ha descubierto que algunos rastreadores de IA ignoran este archivo. Existen preocupaciones de privacidad y derechos de autor al permitir que estos bots utilicen los datos de un sitio web para entrenar LLMs, especialmente cuando el usuario ha optado explícitamente por excluirse del rastreo.
        • Algunos rastreadores también ignoran la limitación de velocidad. Cuando solicitan páginas lo más rápido posible, pueden generar una carga significativa en un servidor web.
    • Aquí entra Pyison. Al igual que otros tarpits para rastreadores de IA (Nepenthes, Iocane), Pyison alimenta a los rastreadores web con una lista interminable de enlaces a otras páginas de su sitio. Esto atrapa a los rastreadores en un único sitio, donde navegarán sin fin por un mar de enlaces en constante crecimiento.
      • Mantener a los rastreadores de IA atrapados en un solo lugar evita que indexen otras partes del sitio que el propietario podría no querer alimentar a los LLMs.
      • Al mismo tiempo, estas páginas pueden contener toneladas de texto inútil. Cuando los LLMs incorporan este texto a sus modelos, pueden ser gradualmente "envenenados", ya que la entrada aleatoria hará que sus respuestas sean menos coherentes.

Motivaciones

  • Crear software útil para hacer frente al aumento del robo de contenido por parte de los LLMs
  • Resolver problemas en los tarpits de IA existentes:
    • Generar texto aleatorio sin usar una cadena de Markov, LLMs ni muestras de escritura existentes
    • No distinguir a los bots de IA por la cabecera User-Agent, ya que los rastreadores suelen disfrazarse de usuarios normales
    • Diseñar un sitio realista parecido a un blog para evitar ser detectado
      • Crear un framework extremadamente personalizable que permita una configuración adicional
    • Proporcionar una solución que pueda integrarse fácilmente en un sitio web existente
      • Compatible con proxies inversos/servidores web específicos pero no los requiere; ofrece configuración de sub-ruta con un ajuste de document root
    • Ejecutarse con una huella pequeña en lugar de un CMS completo o un servidor web repleto de funciones

Especificaciones técnicas

  • Este proyecto ejecuta un servidor web dinámico utilizando la biblioteca HTTPServer de Python
  • Las frases se generan con una mezcla 50/50 entre palabras inglesas aleatorias y "palabras vacías"
  • Pyison utiliza una sal global junto con la URL de la página para alimentar su RNG. Esto garantiza que, si los rastreadores realizan una "comprobación de cordura" recargando una página, esta será la misma que la última vez que la comprobaron. Al mismo tiempo, diferentes servidores deben usar diferentes semillas globales para que no todos los sitios que usan Pyison tengan el mismo aspecto.
  • Es posible generar un número ilimitado de páginas, ya que Pyison no crea realmente ningún archivo permanente. Es un servidor web dinámico, por lo que solo genera html y lo envía al cliente.
  • El uso de etiquetas de contenido HTML, formato CSS e imágenes debería hacer que el sitio parezca un poco más realista para un rastreador.
  • Es posible configurar la salida de Pyison sin reescribir el programa, modificando los archivos de configuración, estáticos y de plantilla.
  • Pyison responde a solicitudes POST y PUT errantes con un 404 en caso de que los rastreadores comprueben si esos verbos HTTP están configurados.

Primeros pasos

  • Clona este proyecto en una carpeta local

  • Cambia los ajustes en el archivo config/config.json

    • ¡Establece el random-seed a un número aleatorio!
    • Establece el número de port que usará el servidor
    • Consulta la sección Configuración para más información
  • (Opcional pero recomendado) Actualiza la plantilla HTML, el CSS, las imágenes y el robots.txt a tu gusto

    • Este proyecto es más efectivo si las páginas se ven diferentes, lo que se puede lograr variando la estructura HTML y CSS. Reordena y renombra algunas cosas, o reescríbelo por completo.
  • (Opcional) Edita el robots.txt si quieres cambiar qué bots se ven afectados

  • Configura el entorno del servidor con cualquiera de los métodos siguientes

  • Coloca el servidor detrás de un proxy inverso

    Ejecución local

    • Instala nltk
      • pip install nltk
    • Ejecuta Pyison
      • python3 src/server.py
    • Comprueba que se está ejecutando
      • Abre http://localhost:<your port number> en un navegador

    Docker

    Con docker compose

    • Crea un archivo docker-compose.yml mínimo que contenga
      services:
        pyison:
          image: "ghcr.io/jonaslong/pyison:main"
          container_name: pyison
          tty: true
          ports:
            - 80:80
      
    • docker compose up
      • (Opcional) Usa la bandera -d para separarte del contenedor
    • Para que los cambios en los archivos locales tengan efecto, clona este repositorio y usa un bind mount. Consulta el archivo compose completo.

    Con docker run

    • docker run --tty --name pyison -p "127.0.0.1:80:80" --rm ghcr.io/jonaslong/pyison:main
      • (Opcional) Elimina la bandera --rm para conservar el contenedor

    Compilar desde el código fuente

    • Clona el repositorio localmente
    • docker build -t pyison:latest .
    • Ejecuta el contenedor con docker run --tty --name pyison -p "127.0.0.1:80:80" --rm pyison:latest

Proxy Inverso

Es muy recomendable que uses un proxy inverso para servir este contenido. Puede reducir la carga del servidor al almacenar páginas en caché e introducir límites de velocidad, además de servir el contenido a través de https y proteger contra algunos exploits básicos de servidores web.

Consideraciones

  • Estos ejemplos usan Nginx Proxy Manager, pero cualquier software de proxy inverso debería funcionar
  • Pyison es compatible con los ajustes SSL más estrictos de NPM
  • NPM debería pasar la cabecera http User-Agent de NPM al servidor Pyison sin ninguna configuración especial. Usa proxy_pass_header User-Agent; si es necesario.

Configuración de subdominio independiente

  • Selecciona los siguientes ajustes en la interfaz, o introduce los ajustes equivalentes en el archivo de configuración:

    La interfaz del proxy inverso NGINX. El diálogo "Editar Proxy Host" está abierto.
    • Nombres de dominio: un dominio o subdominio que controles, como tarpit.example.com
    • Esquema: http
    • Hostname / IP de reenvío: localhost, o el nombre del contenedor docker si usas una red docker
    • Puerto de reenvío: el puerto definido en docker-compose/el comando run/config.json (por defecto es 80)
    • Activa Cache Assets y Block Common Exploits, pero no Websockets Support

Configuración de sub-ruta

  • Para usar Pyison en una sub-ruta, usa la siguiente configuración de ubicación

    # Handles the root page ("example.com/tarpit")
    location /tarpit {
        proxy_pass http://localhost:80;
    }
    
Descargar herramienta