Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Pyison — Pythonic AI-краулер-тарпит | Kitploit
Инструменты/GitHubGitHub/jonaslong/pyison
Оборонительные ИнструментыСкриптинг и автоматизацияВеб-безопасностьОбучение и ОбразованиеКраулерАнти-Бот
GitHubjonaslong/pyison

Pyison

Pythonic AI-краулер-тарпит

Репозиторий
12221511 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Pyison

Pyison — это «смоляная яма» для AI-веб-краулеров.

Введение

  • Как и все веб-краулеры, AI-боты запрашивают страницы с веб-серверов, а затем переходят по ссылкам на странице к другим страницам. Таким образом они могут построить индекс всего веб-сайта.
    • Однако в отличие от других веб-краулеров, AI-боты представляют некоторые уникальные проблемы:
      • Администраторы сервера могут настроить файл robots.txt, который указывает веб-краулерам, какие страницы они могут и не могут сканировать.
        • Было обнаружено, что некоторые AI-краулеры игнорируют этот файл. Существуют проблемы конфиденциальности и авторских прав, связанные с разрешением этим ботам использовать данные веб-сайта для обучения LLM, особенно когда пользователь явно отказался от сканирования.
        • Некоторые краулеры также игнорируют ограничение скорости. Когда они запрашивают страницы как можно быстрее, это может создать значительную нагрузку на веб-сервер.
    • Представляем Pyison. Как и другие «смоляные ямы» для AI-краулеров (Nepenthes, Iocane), Pyison подаёт веб-краулерам бесконечный список ссылок на другие страницы своего сайта. Это заманивает краулеров в ловушку на одном сайте, где они бесконечно блуждают по постоянно растущему морю ссылок.
      • Удержание AI-краулеров на одном месте предотвращает индексацию других частей сайта, которые владелец, возможно, не хочет передавать LLM.
      • В то же время эти страницы могут содержать тонны бесполезного текста. Когда LLM включают этот текст в свои модели, они могут постепенно «отравляться», поскольку случайный ввод делает их ответы менее связными.

Мотивация

  • Создание полезного программного обеспечения для противодействия росту кражи контента LLM
  • Решение проблем существующих «смоляных ям» для AI:
    • Генерация случайного текста без использования цепей Маркова, LLM или каких-либо существующих образцов письма
    • Отсутствие дискриминации AI-ботов по заголовку User-Agent, поскольку краулеры часто маскируются под обычных пользователей
    • Разработка реалистичного сайта в стиле блога для предотвращения обнаружения
      • Создание чрезвычайно настраиваемого фреймворка для дальнейшей конфигурации
    • Предоставление решения, которое легко интегрируется в существующий веб-сайт
      • Поддерживает, но не требует, обратные прокси/конкретные веб-серверы; предоставляет настройку подпути с корневым каталогом документов
    • Работа с малым потреблением ресурсов, а не с целой CMS или многофункциональным веб-сервером

Технические характеристики

  • Этот проект запускает динамический веб-сервер с использованием библиотеки Python HTTPServer
  • Предложения генерируются из смеси 50/50 случайных английских слов и «стоп-слов»
  • Pyison использует глобальную «соль», а также URL страницы для инициализации ГСЧ. Это гарантирует, что если краулеры когда-либо выполнят «проверку на вменяемость», перезагрузив страницу, она будет такой же, как в прошлый раз. В то же время разные серверы должны использовать разные глобальные зерна, чтобы сайты, использующие Pyison, не выглядели одинаково.
  • Можно сгенерировать неограниченное количество страниц, поскольку Pyison на самом деле не создаёт никаких постоянных файлов. Это динамический веб-сервер, поэтому он просто генерирует HTML и отправляет его клиенту.
  • Использование HTML-тегов контента, CSS-форматирования и изображений должно сделать сайт более реалистичным для краулера.
  • Можно настроить вывод Pyison без переписывания программы, изменив файлы конфигурации, статики и шаблонов.
  • Pyison отвечает на ошибочные POST и PUT-запросы 404 на случай, если краулеры проверят, настроены ли эти HTTP-методы.

Начало работы

  • Клонируйте этот проект в локальную папку

  • Измените настройки в файле config/config.json

    • Установите random-seed на случайное число!
    • Установите номер port для сервера
    • Для получения дополнительной информации смотрите раздел Конфигурация
  • (Опционально, но рекомендуется) Обновите HTML-шаблон, CSS, изображения и robots.txt по своему вкусу

    • Этот проект более эффективен, если страницы выглядят по-разному, что можно сделать, варьируя структуру HTML и CSS. Переставьте и переименуйте некоторые элементы или перепишите всё полностью.
  • (Опционально) Отредактируйте robots.txt, если хотите изменить, какие боты будут затронуты

  • Настройте среду сервера любым из методов ниже

  • Поместите сервер за обратным прокси

    Локальный запуск

    • Установите nltk
      • pip install nltk
    • Запустите Pyison
      • python3 src/server.py
    • Проверьте, что он работает
      • Откройте http://localhost:<ваш номер порта> в браузере

    Docker

    С помощью docker compose

    • Создайте минимальный файл docker-compose.yml, содержащий
      services:
        pyison:
          image: "ghcr.io/jonaslong/pyison:main"
          container_name: pyison
          tty: true
          ports:
            - 80:80
      
    • docker compose up
      • (Опционально) Используйте флаг -d для отсоединения от контейнера
    • Чтобы изменения локальных файлов вступили в силу, клонируйте этот репозиторий и используйте bind mount. Смотрите полный файл compose.

    С помощью docker run

    • docker run --tty --name pyison -p "127.0.0.1:80:80" --rm ghcr.io/jonaslong/pyison:main
      • (Опционально) Удалите флаг --rm, чтобы сохранить контейнер

    Сборка из исходного кода

    • Клонируйте репозиторий локально
    • docker build -t pyison:latest .
    • Запустите контейнер с помощью docker run --tty --name pyison -p "127.0.0.1:80:80" --rm pyison:latest

Обратный прокси

Настоятельно рекомендуется использовать обратный прокси для отдачи этого контента. Это может снизить нагрузку на сервер за счёт кэширования страниц и введения ограничения скорости, а также отдавать контент через https и защищать от некоторых базовых эксплойтов веб-сервера.

Соображения

  • В этих примерах используется Nginx Proxy Manager, но должно работать любое программное обеспечение обратного прокси
  • Pyison поддерживает самые строгие настройки SSL NPM
  • NPM должен передавать HTTP-заголовок User-Agent от NPM к серверу Pyison без специальной настройки. При необходимости используйте proxy_pass_header User-Agent;.

Независимая конфигурация поддомена

  • Выберите следующие настройки в пользовательском интерфейсе или введите эквивалентные настройки в файле конфигурации:

    Интерфейс NGINX Reverse Proxy. Открыто диалоговое окно "Edit Proxy Host".
    • Domain Names: Домен или поддомен, которым вы управляете, например tarpit.example.com
    • Scheme: http
    • Forward Hostname / IP: localhost или имя контейнера Docker, если используется сеть Docker
    • Forward Port: Порт, определённый в docker-compose/run command/config.json (по умолчанию 80)
    • Включите Cache Assets и Block Common Exploits, но не Websockets Support

Конфигурация подпути

  • Чтобы использовать Pyison в подпути, используйте следующую конфигурацию location

    # Обрабатывает корневую страницу ("example.com/tarpit")
    location /tarpit {
        proxy_pass http://localhost:80;
    }
    
    # Обрабатывает все подстраницы ("example.com/tarpit/a" и "example.com/tarpit/a/b")
    location /tarpit/ {
        proxy_pass http://localhost:80;
    }
    
Скачать инструмент