В статье «Что и почему ищут на сайтах «боты темной стороны силы»» Мы рассмотрели типичные примеры из журналов на различных сайтах.
Однако есть гораздо более интересная вариация на тему.
Что это такое и как его приготовить – расскажу дальше.
Перечислим основные положения.
Если вы с ними не согласны, то лучше не тратить время и не читать дальше.
Итак, основные моменты:
- вы интересуетесь информационной безопасностью, веб-администрированием или изучаете соответствующие специальности;
- у вас есть немного желания, времени и ресурсов, которые вы можете потратить, чтобы почувствовать себя исследователем;
- Вы не рассчитываете сразу стать супер-гуру, но, развивая конкретные решения, предложенные в статье, вы сможете с интересом изучить некоторые вопросы.
Информация о разновидностях, существующих решениях, в т.ч.
OpenSource легко найти в сети, поэтому мы не будем на них останавливаться.
Давайте перейдем к делу:
- берем хостинг;
- взять домен;
- заворачиваем все входящие запросы в наш скрипт;
- Мы анализируем входящие запросы и помимо сбора статистики участвуем в игре.
Берем хостинг
Нам нужно определиться с местом, где будет располагаться наш приманка.Чтобы снизить порог входа, мы выберем виртуальный хостинг, потому что.
это устраняет вопросы администрирования системы (установка, оптимальная настройка, защита и обновления), быстро и достаточно дешево.
Серверы (диапазоны IP веб-серверов) хостинговых компаний известны и никогда не жалуются на недостаточное внимание со стороны ботов.
Желающие могут сразу заняться VPS/VDS, главное не застрять на этапе настройки сервера.
Взять домен
Новый домен обычно сразу привлекает внимание ботов, хотя и «старые» домены тоже хороши.Если вы используете действующий домен (сайт), могут возникнуть побочные эффекты из-за возможных ошибок перенаправления или чрезмерной нагрузки.
По приблизительным подсчетам, в начале 2015 года новый домен и несколько месяцев хостинга будут стоить 1000 рублей.
Все входящие запросы заворачиваем в наш скрипт
Решений этой проблемы множество, в зависимости от используемого веб-сервера и степени влияния на настройки сервера.Предложенный простейший вариант подойдет для нового домена.
Это не мешает основной задаче и позволяет быстро перейти к тому, что, на наш взгляд, наиболее интересно.
самая простая версия .
htaccess
Все запросы заключены в index.php. Для тонкой настройки перенаправлений, особенно для существующего сайта, не стоит лениться и обращаться к документации или статьям, например, «Как на самом деле работает mod_rewrite. Пособие для продвинутых студентов» .RewriteEngine On RewriteRule .
* index.php [L]
Анализируем входящие запросы и накапливаем статистику
В скрипте, в который мы оборачиваем запросы, мы реализуем следующий функционал:- запись некоторых данных из $_SERVER накапливать статистику;
- возможность поиска шаблонов в данных, поступающих от $_SERVER;
- эффективный механизм подключения обработчиков для некоторых шаблонов (про эффективность можно посмотреть в Нестандартная оптимизация PHP-проектов );
- (на будущее) упрощенный и ресурсоемкий механизм сеансов на стороне сервера.
Давайте в игру
Наконец мы подошли к главному.Какой будет игра? После анализа статистики вы выбираете бота, которого хотите исследовать.
Вы можете попытаться идентифицировать бота по различным критериям (диапазоны IP, время сканирования, User-Agent, типичные URL-запросы и т. д.).
После этого вы маскируетесь под ожидания бота и, передавая ему ту информацию и файлы, которые он ожидает, полностью описываете его поведение от этапа сканирования до попыток использования эксплоитов, нестандартных вызовов, загрузки конкретных файлов и т.д. Например, бот ожидает определенный css-файл — получает его, затем пытается получить доступ к конкретному файлу — ищет в сети информацию о нем и выдает его, передает параметры — пытается подделать ответ и т. д. Вот тут-то облегченная сессия реализация пригодится.
Конечно, между первым запросом и построением всей цепочки ответов может пройти несколько итераций с элементами угадывания и ручного поиска информации.
Но это битва умов (вы <-> разработчик алгоритма бота), настоящие шахматы! небольшой намек Чтобы ботам было сложнее идентифицировать ваш анализ, желательно (в разумных пределах) использовать элемент случайности при выдаче результатов.
А именно ваш алгоритм еще не знает «правильный ответ» для бота или запрос ранее не встречался — с вероятностью ХХ% выдать сообщение, имитирующее ошибку сервера или пустой файл, попробовать SQL-инъекцию — выдать правдоподобное сообщение об ошибке СУБД или PHP и т.п.
Вместо заключения
Действуй! И пусть ваша работа будет во благо.Предупреждающие предложения сразу выложить готовый код (почему это не было сделано):
- чтобы не стеснять полет фантазии;
- чтобы студенты профильных специальностей/факультетов не «копипастили» (привет КБиММУ в Тверском государственном университете);
- чтобы не облегчать задачу ботам, которые тут же отсекут начинающих исследователей в процессе тестирования предложенного в статье кода (если он был).
-
Acer Приобретает Gateway
19 Oct, 24