Cloudflare опубликовала в блоге пост о развёртывании защит против php2shell. Речь про дыры не в плагине, не в CMS и не в конкретном фреймворке, а в самом рантайме PHP. По описанию из повода, эксплуатация даёт атакующему выполнить вредоносный код на уязвимом сервере и добраться до данных, которые на нём лежат. Название «php2shell» читается как путь от PHP до полноценной оболочки на машине — это наша расшифровка, не цитата из источника.
Механика защиты такая: Cloudflare включила набор правил в своём веб-файрволе. WAF смотрит на HTTP-запрос до origin — заголовки, параметры, тело — и режет то, что похоже на попытку эксплуатации. Запрос до PHP-интерпретатора просто не доезжает. Включение занимает минуты в панели, без ssh, apt и перезапуска php-fpm. Обновление самого рантайма — совсем другая история.
PHP держит огромный кусок веба, и это главная причина, почему новость вообще важна. Дырка в рантайме означает, что патч — это не «поставить плагин», а поднять версию PHP на каждом хосте. На shared-хостинге с сотнями сайтов на одной машине такой апгрейд растягивается на недели: кто-то сломает старый код, кто-то просто не заметит. Наша оценка: именно поэтому защита на периметре выходит первой — она снимает давление здесь и сейчас, пока админы разбираются с версиями.
Что это меняет для конкретного человека. Если ваш домен идёт через Cloudflare, вы получили обходной фильтр бесплатно и почти без действий — но только как обходной. Если не идёт, у вас не изменилось ничего, и единственный путь — обновлять PHP. Вторая перемена тоньше: WAF становится страховкой от «пока патч не выйдет». Это удобно, и это же опасно, потому что привычка «включу правило и забуду» копится годами.
Кто выигрывает. Cloudflare — очередной аргумент в пользу «держите трафик у нас», и это, похоже, управляемые правила из стандартного набора. Хостинги, которым не придётся в панике обновлять всё за сутки. Проигрывают те, кто стоит на старом PHP без прокси и без ресурсов на миграцию, — а таких, по моему опыту, больше, чем хочется думать.
Повод — обрезанный снипет, и в нём нет самого нужного: ни CVE-идентификаторов, ни списка уязвимых версий PHP, ни данных о том, фиксируют ли эксплуатацию вживую. Непонятно, входят ли правила в бесплатный управляемый набор или это платная опция. Нет и оценки, насколько легко обойти фильтр обфускацией payload. Поэтому читайте сам пост Cloudflare и проверяйте свою версию PHP по официальным каналам проекта, а не по пересказу.
Прогноз: в течение квартала крупные shared-хостинги начнут принудительно переводить аккаунты с затронутых ветвей PHP на актуальные — если только не окажется, что эксплуатация требует экзотической конфигурации.
Источник: Cloudflare Blog
Источник: blog.cloudflare.com · пост в Telegram