В последние годы всё больше ресурсов «читают» сайты, чтобы заполнять гигантские языковые модели (LLM). Иногда это полезно (улучшение поиска, индексация), но нередко администраторы недовольны тем, что их контент без спроса утягивается для обучения сомнительных нейросетей. Проект Nepenthes предлагает весьма радикальное решение: создать «тропическую ловушку» для всех без разбора сканеров, бесконечно кормить их «липовым» контентом и, возможно, перегрузить их ресурсы.
Что такое Nepenthes и почему оно «злое»?
Авторы недвусмысленно предупреждают: это ПО носит злонамеренный характер. По аналогии с растением-насекомоядкой (непентес), которое заманивает жертву в ловушку, Nepenthes генерирует бесконечные страницы, каждая из которых содержит множество ссылок, которые ссылаются на другие виртуальные страницы.
Ключевые особенности:
- 🧩 Бесконечный лабиринт: Каждая страница ссылается на десятки других «виртуальных» страниц, и так до бесконечности. Веб-сканер, решивший всё это проиндексировать, может «увязнуть» навсегда.
- ⏱️ Преднамеренная задержка: Чтобы пауки не перегружали ваш сервер, Nepenthes «отдает» ответ по чуть-чуть. Это с одной стороны экономит ресурсы хоста, а с другой — вынуждает сканеры тратить время (и деньги).
- 💬 Опциональный «марковский бубнёж»: Страницы могут содержать случайный текст, сгенерированный на основе цепи Маркова (Markov chain). Цель — «закормить» нейросети совершенно бессмысленной болтовнёй, способствуя деградации качества «model collapse» моделей.
Автор подчёркивает, что проекты, использующие такой подход, рискуют вылететь из обычных поисковых систем — ведь Google и другие индексы тоже могут попасть в ловушку, не умея отличить «вредонос» от легитимного контента.
Как и зачем это разворачивают?
Понятно, что не стоит просто так брать и кидать Nepenthes на основной домен, если вы не хотите превратить весь свой сайт в «могильник для ботов». Но возможны два сценария:
🔒 Оборонительный (Defensive)
- Вы размещаете «приманку» в подпапке (например, /nepenthes-demo), а настоящие страницы в адекватных папках.
- Настраиваете Nepenthes так, чтобы он медленно откликался (увеличенные max_wait/min_wait) и не генерировал слишком много шума (выключаете Markov).
- Получаете статистику (/stats) о том, какие боты попались, и при желании блокируете их IP-адреса или по User-Agent.
🔥 Наступательный (Offensive)
- Вам не жалко процессор и трафик. Ускоряете отдачу контента (уменьшая задержки) и включаете «большие» объёмы Markov-текста.
- Пусть недобросовестные сканеры поглощают гигабайты бесполезного бреда и забивают свои базы данных «мусором».
- Игнорируете риск вылета из поисковых индексов (или вам это не важно).
Оба подхода описаны в документации Nepenthes, причём авторы отмечают, что вы должны полностью осознавать последствия. Инструмент намеренно создан с целью ввести в заблуждение и вызвать лишние траты у «чёрных» и «серых» сканеров.
Технические детали и примечания
🤖 Веб-сервер: Рекомендуется спрятать Nepenthes за прокси (nginx, Apache). При этом:
- В заголовке X-Prefix указывается путь, по которому доступна ловушка.
- proxy_buffering off нужен, чтобы отдавать ответ малыми порциями (в противном случае nginx «соберёт» ответ целиком и пошлёт его разом, что лишит нас эффекта «медленной отдачи»).
🔒 Корпус Маркова (Markov Corpus): Если хотите включить генерацию псевдотекста, нужно обучить Markov-модель своим «корпусом» данных. Порядок действий:
- Собрать тексты (любые: Википедия, книги, мануалы).
- Отправить их POST-запросом на /train.
- Процесс может занять часы, зато после этого каждая страница будет «говорить от вашего лица» рандомным (и бессмысленным) текстом.
⚙️ Статистика:
- GET /stats вернёт JSON со всеми «жертвами»: IP, User-Agent и т. д.
- GET /stats/ips или /stats/agents даст более узкую выборку.
- Можно фильтровать результаты по числу обращений (например, /stats/ips/100).
Мои личные комментарии и мысли
- «Нечестная игра»? Некоторые могут назвать это «экологическим террором» против интернета. Ведь не только сомнительные скрейперы, но и легитимные поисковики (Googlebot, Bing) могут попасть в ловушку. Так что, если ваш сайт внезапно исчезнет из выдачи, винить придётся себя.
- Смогут ли боты распознать ловушку? Вероятно, да. Если Nepenthes станет массово использоваться, алгоритмы научатся различать характерные шаблоны ссылок или поведение. Однако автор явно рассчитывает на «гонку вооружений», когда каждый будет «кастомизировать» свой Markov-корпус, чтобы усложнить детект.
- Когда это оправдано? Если вы твёрдо уверены, что ваш контент воруют для «сомнительных» AI-моделей, и вас не волнует SEO и прочие «побочные эффекты», тогда да — «оружие» готово. Это больше похоже на политический жест, чем на стандартный приём кибербезопасности.
- Альтернативные методы: Некоторые предпочитают ставить банальные robots.txt или закрывать сайт авторизацией. Но это не защитит, если скрейперы намерены игнорировать правила. Nepenthes — более радикальный шаг, заставляющий «вредный» бот тратить уйму ресурсов.
Ссылки и источники
Предупреждение: это ПО намеренно вредоносно для сканеров. Устанавливать его на продакшн (особенно без фильтрации «правильных» ботов) означает полный отказ от поисковой видимости и возможную нагрузку на сервер. Будьте готовы к последствиям.
Заключение
«Непентес» — не просто техническая «фишка», а скорее манифест против несанкционированного использования контента. Вместо привычного robots.txt или CAPTCHA, авторы предлагают заставить ботов утонуть в бесконечных псевдостраницах.
Да, это может аукнуться: дополнительная нагрузка на CPU, риск потерять органический трафик и гнев легальных поисковиков. Но если задача — избавиться от нежелательных AI-скрейперов (или хотя бы сильно им навредить) — у вас появился мощный инструмент. Просто помните, что, как любая «хищная» ловушка, Nepenthes надо применять аккуратно, осознавая все побочные эффекты.