TrafficVeil
Боты 6 мин13 августа 2026 г.

Agent в логах: почему это не бот, а слово

Разбираем, почему токен «Agent» нельзя фильтровать как обычного бота — это подстрока, совпадающая с огромным числом легитимных UA-строк и других ботов. Показываем правильный способ расследовать конкретный всплеск через полные строки UA вместо шаблонного grep и robots.txt правила.

TV
TrafficVeil Team
Эксперты по защите веб-трафика
Содержание статьи
  1. 1. Что такое Agent — и почему это не обычный бот-токен
  2. 2. Зачем «Agent» встречается в access.log
  3. 3. Нагрузка и риски именно для «Agent»
  4. 4. Как на самом деле искать это в логах
  5. 5. robots.txt для «Agent» — почему стандартное правило не работает
  6. 6. Блокировка вручную и через TrafficVeil
  7. 7. Рекомендации: что делать с «Agent»
  8. 8. С кем не путать «Agent»
  9. 9. Стратегия allow/deny для «Agent»
DDoS L7

DDoS атака что это простыми словами и как защитить сайт

Разобрали виды атак, признаки DDoS, последствия, уровни защиты, L7 DDoS и схему подключения TrafficVeil через DNS/reverse proxy.

Читать про DDoS

Энциклопедия ботов TrafficVeil

618 ботов с описаниями, паттернами User-Agent и фильтром по категориям — открытый справочник для аудита логов и настройки защиты.

Открыть справочник

Если фильтровать access.log по agent, часто всплывает целый пласт машинных хитов — но здесь важнее всего не «кто это», а технический факт, который меняет весь подход: токен agent — это не различающее имя бота, а слово, которое буквально входит в название HTTP-заголовка User-Agent и встречается в подавляющем большинстве реальных строк UA (браузеров, ботов, приложений). Прежде чем применять любую политику allow/deny по этому токену, нужно понимать, что стандартный поиск и правило robots.txt для него работают не так, как для остальных ботов в этой энциклопедии.

1. Что такое Agent — и почему это не обычный бот-токен

«Agent» — не уникальный идентификатор конкретного оператора, а фрагмент, который естественным образом присутствует в огромном количестве строк User-Agent: в самом названии заголовка, в словах вроде «user agent», «HTTP agent», в названиях множества легитимных и вредоносных ботов (например, уже в соседнем списке «не путать» есть AgentReadinessScanner — и обычный grep -i "agent" совпадёт и с ним тоже). Это делает токен принципиально непригодным для точечной фильтрации: правило по нему либо ничего не поймает избирательно, либо, наоборот, случайно затронет огромный и разнородный пласт трафика, включая часть легитимных пользователей и ботов, к которым политика вообще не должна была применяться.

Название Agent
User-Agent / паттерн agent — подстрока, которая совпадает с огромным числом различных реальных UA-строк, а не уникальный идентификатор
Оператор Не установлен и не может быть установлен по одному токену — под «agent» может скрываться кто угодно
Роль Неопределима по токену — не путайте наличие подстроки «agent» в UA с наличием конкретного, названного в честь неё сервиса
Документация / ориентир Отсутствует по определению — нет компании или продукта с названием ровно «Agent», к которому можно было бы адресовать вопрос
Список IP ❌ Не может существовать для такого общего токена
robots.txt Правило User-agent: agent в robots.txt не соответствует ни одному стандарту именования реальных ботов — таких токенов не бывает, поэтому эффект от подобного правила непредсказуем и, вероятно, никем не будет распознан как адресованный именно ему
Пометка TrafficVeil По сводке — 156 срабатываний за март–июнь 2026 (около #145 по объёму в общем бот-трафике), с пиком в мае (~122) и нулями в марте и июне; но это, вероятнее всего, сумма множества разных, никак не связанных друг с другом совпадений подстроки, а не активность одного «бота Agent»

2. Зачем «Agent» встречается в access.log

Правильный вопрос — не «зачем бот Agent приходит на сайт», а «что именно совпало с этой подстрокой». Кандидаты: часть строки настоящего браузера или мобильного приложения (многие корректно оформленные UA содержат слово user agent целиком или частично в комментариях), реальные боты с более длинным именем, включающим «agent» (AgentReadinessScanner и подобные), скрипты на базе HTTP-библиотек с UA по умолчанию вроде «Java/1.8 (agent)» или похожих, и, наконец, действительно узкоспециализированные клиенты, которые по какой-то причине идентифицируют себя буквально одним этим словом — что само по себе большая редкость и повод для отдельной проверки, а не типовой случай.

  • Какие зоны чаще трогает: зависит от того, что именно совпало — обобщать по одному токену бессмысленно;
  • Что ищет: неопределимо без разбора полной строки UA каждого конкретного хита;
  • Чем отличается от браузерного пользователя: не всегда отличается вообще — часть совпадений может быть обычными пользователями с нестандартным, но легитимным UA.

Приведённая в исходных данных динамика (0 в марте, 34 в апреле, 122 в мае, 0 в июне) сама по себе подсказывает, что это не стабильно работающий сервис с постоянным паттерном, а, вероятнее всего, разовый всплеск от одного конкретного источника в мае — возможно, вообще не связанного с остальными редкими совпадениями в другие месяцы.

3. Нагрузка и риски именно для «Agent»

156 срабатываний за четыре месяца (#145 по объёму в сводке) — само по себе немного, и это ожидаемо для токена, который скорее собирает редкие случайные совпадения, чем отражает активность одного постоянного источника. Главный риск здесь не нагрузка, а неправильное управленческое решение: если применить широкое правило по слову agent, велик шанс случайно задеть легитимный трафик, который к маю никак не относится и с майским всплеском не связан.

4. Как на самом деле искать это в логах

Не применяйте здесь тот же шаблон grep, что и для остальных ботов в этой энциклопедии — общий поиск по подстроке agent даст практически бесполезную по объёму и разнородную выдачу. Правильный подход — сузить именно до майского всплеска и посмотреть полные строки UA целиком.

# НЕ используйте одиночный grep -i "agent" — он совпадёт с огромным числом посторонних строк.
# Вместо этого выгрузите полные UA-строки и оцените, что реально совпадает:
awk -F'"' '{print $6}' /var/log/nginx/access.log | grep -i "agent" | sort | uniq -c | sort -rn | head -50

# Сфокусируйтесь на майском окне, где зафиксирован основной всплеск (~122 хита)
awk -v start="01/May/2026" -v end="31/May/2026" '$4 >= "["start && $4 <= "["end"]"' /var/log/nginx/access.log | grep -i "agent" | awk -F'"' '{print $6}' | sort | uniq -c | sort -rn

# После того как выделите конкретную полную строку UA — ищите уже по ней, не по голому слову agent
grep -F "ТОЧНАЯ_СТРОКА_UA_ИЗ_ПРЕДЫДУЩЕГО_ШАГА" /var/log/nginx/access.log

Верификация. Для этого токена верификация — не про IP или ASN, а про то, чтобы вообще выяснить, с какой конкретно полной строкой UA вы имеете дело. Только после того как вы вычленили точную, длинную, специфическую строку (а не голое слово agent), к ней уже можно применять обычные методы: whois по IP, обратный DNS, сопоставление с известными семействами ботов.

IP="1.2.3.4"
whois -h whois.cymru.com " -v $IP"
dig +short -x "$IP"

5. robots.txt для «Agent» — почему стандартное правило не работает

# Такое правило технически валидно, но практически бессмысленно:
# ни один настоящий бот не называет себя в robots.txt ровно "agent"
User-agent: agent
Disallow: /

Важно: не тратьте время на универсальное правило по этому токену. Вместо этого сначала выясните через полную строку UA (см. раздел 4), с чем вы реально имеете дело, и уже тогда пишите точное правило под конкретное, длинное имя реального бота или клиента.

6. Блокировка вручную и через TrafficVeil

Nginx

# Регулярное выражение по одному слову "agent" крайне рискованно —
# оно способно случайно заблокировать легитимных пользователей и полезные боты.
# Сузьте правило до конкретной, найденной в разделе 4 полной строки UA:
if ($http_user_agent ~* "ТОЧНАЯ_СТРОКА_UA") {
    return 403;
}

TrafficVeil

  • Не создавайте в TrafficVeil правило по голому токену agent — сначала откройте карточку конкретных хитов за май 2026 года и посмотрите полные UA;
  • Заведите правило под ту конкретную строку, которая реально стоит за всплеском, а не под общее слово;
  • После изменения обязательно сверьте, что легитимные посетители и известные боты (включая соседей вроде AgentReadinessScanner) не попали под блокировку случайно.

7. Рекомендации: что делать с «Agent»

  • Не применяйте политику allow/deny к голому слову agent — это не идентификатор конкретного оператора;
  • Сначала расследуйте майский всплеск (~122 хита) через полные строки UA — вероятно, за ним стоит один конкретный, куда более длинный и специфический UA;
  • Заведите отдельную, точную запись под найденный реальный токен, если он окажется отдельным ботом, достойным собственной статьи;
  • Категорически не используйте User-agent: * с широкими намерениями «заблокировать всё похожее на agent» — так можно случайно закрыть доступ Googlebot, YandexBot и любому боту, чьё полное имя содержит это слово;
  • Что будет при неверном широком блоке: непредсказуемая потеря легитимного трафika, включая часть настоящих пользователей и полезных ботов.

8. С кем не путать «Agent»

Бот / сосед Кластер UA Комментарий
AgentReadinessScanner Прочие краулеры и сервисы agentreadinessscanner реальный, отдельно именованный бот — содержит подстроку agent, но это другой, самостоятельный токен
2ip Bot Прочие краулеры и сервисы 2ip bot легитимный, отдельный токен
AccessStatus Прочие краулеры и сервисы accessstatus легитимный
AddThis.com Прочие краулеры и сервисы addthis.com легитимный
AlertSite Прочие краулеры и сервисы alertsite легитимный

9. Стратегия allow/deny для «Agent»

Ситуация Действие
Токен встретился в сводке как «agent» Не применять правило напрямую — сначала выявить полную строку UA
После разбора нашёлся конкретный реальный бот Завести отдельное точное правило под его настоящее имя, не под слово agent
После разбора оказался легитимный браузер/приложение Не блокировать вовсе — это не бот-трафик
Нужно не задеть соседей вроде AgentReadinessScanner Всегда использовать точное совпадение по полному токену, никогда — по голому «agent»
Соблазн использовать широкое regex-правило Избегать — риск случайно заблокировать легитимный трафик выше пользы от блокировки

Частые вопросы

Почему нельзя просто заблокировать всё с «agent» в User-Agent?

Потому что это слово естественно входит в название самого заголовка User-Agent и в огромное число легитимных строк браузеров, приложений и других ботов — широкое правило заблокирует много лишнего.

Значит ли пик в 122 запроса в мае, что появился новый бот?

Не обязательно один бот — вероятнее, это разрозненные совпадения подстроки от разных источников, и точную картину даст только разбор полных строк UA за этот период.

Как тогда правильно исследовать такой всплеск?

Выгрузить полные строки User-Agent за период всплеска, сгруппировать их и найти конкретную, длинную и специфическую строку, которая реально стоит за ростом трафика.

Сработает ли правило User-agent: agent в robots.txt?

Нет, ни один реальный бот не называет себя ровно «agent» в robots.txt, поэтому такое правило почти наверняка не будет распознано ни одним настоящим краулером.

Что делать после того, как нашлась конкретная полная строка UA?

Заводить точное правило именно под неё — в robots.txt, nginx или TrafficVeil — а не под голое слово agent.

Может ли AgentReadinessScanner случайно попасть под блокировку по слову agent?

Да, именно поэтому в статье это подчёркнуто отдельно — это реальный самостоятельный бот, чьё имя тоже содержит подстроку agent, и widespread-правило неизбежно заденет и его.

#Agent#ложные срабатывания#анализ логов#User-Agent#robots.txt#TrafficVeil
TV
TrafficVeil Team

Команда TrafficVeil разрабатывает инструменты защиты сайтов от ботов, DDoS и веб-атак.

Похожие статьи

Skype (общий токен): не один бот, а минимум три разных

Общий поиск по слову «skype» в логах цепляет сразу несколько разных, исторически связанных механизмов Microsoft — от закрытого в мае 2025 года превью-бота до активной внутренней инфраструктуры Teams, унаследовавшей кодовое имя SkypeSpaces. Разбираемся, почему общее правило блокировки по этому слову рискованно, и как разделить разные варианты в своих логах.

7 мин

Fedicabot: превью-fetcher Fedica, а не краулер Fediverse

Fedicabot принадлежит Fedica — крупной платформе публикации и аналитики соцсетей, а не имеет отношения к Fediverse, несмотря на созвучное название. Официальная страница оператора прямо заявляет: бот не обходит сайты целиком, а читает только страницу, которую указал конкретный пользователь при планировании публикации, — это меняет всю логику оценки риска.

6 мин

Amazon Kendra: возможно, ваш корпоративный поиск

Amazon Kendra — реальный сервис корпоративного поиска AWS, и его коннектор Web Crawler обходит только те конкретные URL, которые явно указал клиент AWS при настройке источника данных — то есть это не свободный обход, а целевая индексация по чьему-то заданию. Разбираемся, почему первый шаг здесь — проверить, не настроен ли на вашем сайте (или у партнёра) такой поисковый индекс, прежде чем блокировать бота как постороннего.

6 мин

Проверьте защиту своего сайта

Подключение занимает несколько минут. Начните с анализа трафика и включайте блокировки после проверки логов.