
Ім'я краулера в логах ще не доказ: 38% запитів з однієї мережі Google Cloud просили файли .env
Аналіз 82-годинного логу одного невеликого сайту: з 1 395 запитів, які називали відомого бота та надійшли з однієї мережі Google Cloud (AS396982), 533 просили файли з паролями чи налаштуваннями.
Аналіз 82-годинного логу одного невеликого сайту показує, що ім'я краулера в рядку user agent не доводить, хто насправді надіслав запит. У звіті на dev.to власник сайту Reese Calder порівнює бота, названого в запиті, з мережею, з якої запит реально надійшов.
Що саме вимірювали
Сайт маленький: один Cloudflare Worker, який обслуговує два хостнейми. Від 23 вересня Worker також зберігає ASN, який Cloudflare передає в request.cf.asn. Вікно спостереження охоплює період від 03:02 UTC 23 вересня до 13:00 UTC 26 вересня: 82 години та 18 846 запитів.
Для кожного запиту зберігали три речі: ім'я краулера в user agent (22 імені відомих краулерів і фетчерів), мережу та те, чи просив запит файл з паролями або конфігурацією (.env, .git, id_rsa, wp-config тощо). Жоден задокументований краулер таких файлів не просить.
Що виявилося
Серед 18 846 запитів 5 180 (27,5%) припали на одну мережу, AS396982, тобто Google Cloud. З них 2 696 (52%) просили саме такий файл, тоді як усі інші мережі разом надіслали лише 296 таких запитів із 13 666. 1 395 запитів мали ім'я краулера і надійшли з цієї мережі Google Cloud, і 533 з них (38,2%) просили файл з паролями чи налаштуваннями.
Серед 867 запитів з іменем краулера з інших мереж таких не було жодного, причому 754 з них (87%) надійшли з мережі, що збігається з оператором краулера: Applebot від Apple, bingbot від Microsoft, ClaudeBot від Anthropic. Сім імен, серед них Google-Extended (56 запитів), з'являлися лише з цієї однієї мережі.
Чому це важливо
Google-Extended це найчистіший приклад. За документацією Google, цей токен не має окремого рядка HTTP user agent і використовується лише в robots.txt, тому запит із Google-Extended у user agent це чиясь заява.
22 вересня в лозі автора п'ять різних імен краулерів дали по 40-45 звернень, що виглядало як один клієнт, який перебирає імена. Звіт про ботів, побудований лише на user agent, рахує такі запити як візити краулерів, а правило фаєрвола, що збігається тільки з рядком user agent, діє на того, хто цей рядок надіслав.
Після публікації автор змінив Worker: від 13:27 UTC 26 вересня запит, який називає краулера і просить такий файл, позначається як «other bot», а запит з іменем Google-Extended як «spoofed crawler name».
Обмеження
Автор наголошує, що дані охоплюють один маленький сайт і 82 години. Лог не зберігає IP клієнта, тому порівняння з опублікованими діапазонами операторів не робилося, а колонка оператора це власне припущення автора. Тест на файли ловить лише ті запити, які самі себе видають, тому 533 це нижня межа. У Google Cloud працюють і чесні боти (наприклад, AgenstryBot і ProwlBot), тож 862 запити з тієї самої мережі, які не просили таких файлів, поки ні про що не свідчать.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.