Взлом публичного сайта: ботнет, майнер и редирект на чужой домен

Ссылка на работу
Владелец заметил, что сайт иногда перекидывает посетителей на посторонний домен, а в поисковых консолях появились чужие страницы про азартные игры. Проверка с сервера подтвердила худшее: приложение само отдавало редирект, а процессор одного контейнера был занят почти на целое ядро - внутри работал майнер. Ключевая деталь, которая всё решила: вредоносные файлы появлялись через 7–56 минут после запуска контейнера. Значит, в образе их не было и пересборка бы не помогла - атака шла в рантайме через публичный POST-запрос. Блокировать адреса по одному было бессмысленно: работал ботнет из двух десятков адресов, слал запросы каждые пять минут. Что сделал: заблокировал управляющие адреса на межсетевом экране и на входном контроллере, закрыл контейнерам исходящий трафик наружу сетевой политикой, перевёл файловую систему контейнера в режим только для чтения, запретил запуск от root и отобрал привилегии, вынес временные каталоги в отдельные разделы с лимитами. Всё изменения через Git с автоматической выкаткой, чтобы защита не потерялась при следующем деплое. Результат: ответ сервера вернулся к норме, нагрузка упала, повторное заражение прекратилось. Дальше - обновление фреймворка до версии с закрытой уязвимостью и раскатка той же защиты на остальные окружения. Отдельно отмечу: первую версию блокировки запросов пришлось откатить, она ломала легитимный функционал сайта. Не сломать бизнес, пока чинишь безопасность - это часть работы, а не мелочь.