опубликован: 2024-08-08 15:54
последняя редакция: 2024-08-09 09:31
Замедляем сканеры уязвимостей сайтов
Идея очень простая и реализуемая средствами nginx - ставим "ловушки" на наиболее часто сканируемые урлы, а именно: при запросе определённого url, отдаём вместо ошибки 404/403 какой-нибудь большой файл на маленькой скорости. Я обычно использую для этих целей какой-нибудь "забойный" mp3-файл и ограничиваю скорость в 1 кбит/сек. Опыт показывает, что только 10-20% сканеров, секунде на 15, начинают подозревать что-то неладное и рвут соединение. Оставшиеся часами выкачивают весёлую музыку, иногда по нескольку раз.Смысл этого мероприятия не в моей личной неприязни к "хакерам" прости господи, а в том, что сканирование сайтов слишком лёгкий и малозатратный для них процесс. Если бы подобные замедляющие заглушки стояли на значительном количестве ресурсов - массовое сканирование стало бы экономически не очень оправданным. Интернет бы немного очистился. Профит!
Итак, переименовываем какой-нибудь музыкальный mp3-файл в trash.bin и кладём его в какую-нибудь директорию на своём сервере. Пусть он будет расположен по такому пути:
/path_to_trash_dir/trash.bin
В nginx-конфигурацию нашего сайта добавляем строки примерно следующего содержания:
rewrite ^/scripts/WPnBr\.dll$ /fakedata/trash.bin last;
rewrite /wp-.+$ /fakedata/trash.bin last;
rewrite /xleet-shell\.php$ /fakedata/trash.bin last;
rewrite /Deadcode1975xxxxxxxxxxxxxxxxxxxxxxxxxxxx.php$ /fakedata/trash.bin last;
rewrite /\.git.*$ /fakedata/trash.bin last;
rewrite /\.env.*$ /fakedata/trash.bin last;
rewrite /adm.+$ /fakedata/trash.bin last;
rewrite /Portal.+$ /fakedata/trash.bin last;
rewrite /phpinfo.*$ /fakedata/trash.bin last;
rewrite /backup.*$ /fakedata/trash.bin last;
rewrite /bitrix.*$ /fakedata/trash.bin last;
rewrite ^/.+\.php$ /fakedata/trash.bin last;
rewrite ^/.+\.asp$ /fakedata/trash.bin last;
location /fakedata/ {
internal;
limit_rate_after 1;
limit_rate 1K;
limit_conn_status 503;
limit_conn addr 5;
root /path_to_trash_dir/;
}
В общем-то это и всё, вам только следует подправить реврайты в соответствии с вашими потребностями. Улучшение этого кода приветствуется!