ИИ оживил дыры PHP, которые два года не патчили

В понедельник CISA подтвердила, что две критические дыры PHP уже используют в реальных атаках. Через них злоумышленник проникает на сервер из интернета без пароля. Фонд PHP два года считал эти ошибки неэксплуатируемыми на практике, пока исследователи с помощью ИИ не нашли рабочий способ атаки.
Коротко
- CISA подтвердила атаки на две критические уязвимости PHP (PHP2Shell) и дала федеральным ведомствам США три дня на исправление.
- Ошибки нашли около двух лет назад, но не закрыли: фонд PHP не видел практического способа атаки, пока в этом году его не нашли с помощью ИИ.
- Обновлять нужно сам интерпретатор и проверять рантайм, который обслуживает веб-запросы; обновление CMS проблему не решает.
Что известно о PHP2Shell и чего в новости нет
CISA подтвердила атаки на две критические уязвимости PHP и дала гражданским федеральным ведомствам США три дня на исправление. Пару называют PHP2Shell. Разработчики PHP выпустили патчи менее чем за неделю до заявления агентства. Незадолго до него независимые исследователи сообщили, что обнаружили следы атак. Кто атакует, CISA не сказала.
Трёхдневный срок обязателен только для федеральных ведомств США, российских компаний он не касается. Но если регулятор подтверждает атаки, ждать собственного инцидента бессмысленно. По распространённым оценкам, PHP работает примерно на 70 % серверов, открытых в интернет, так что круг потенциальных целей огромный.
В исходной публикации нет номеров CVE, оценок CVSS, списка уязвимых версий и индикаторов компрометации. Исправленные версии ищите в бюллетене проекта PHP и в трекере безопасности своего дистрибутива. Отдельно мы разбирали, что проверять на mod_php после PHP2Shell.
Почему дыры PHP два года лежали без патча?
Ошибки нашли около двух лет назад, а до этого они годами сидели в коде незамеченными. Фонд, который сопровождает PHP, решил, что практического способа атаки нет, и исправление выпускать не стал. Исследователи тоже считали создание рабочего эксплойта сложной, хотя и выполнимой задачей.
В этом году специалисты исследовательской компании Calif нашли способ эксплуатации с помощью ИИ-модели. Какой именно модели, не сообщается. Затем вышли патчи, а через несколько дней появились следы атак и заявление CISA.
PHP относится к старым технологиям, на которых держится веб, но которым годами не хватает денег. Оплатить аудит безопасности, способный найти такие ошибки раньше, open source проекту трудно.
Вывод для команды: вердикт «эксплуатировать нельзя» стареет, а ИИ-модели, которые всё лучше находят уязвимости и связывают их в цепочки, ускоряют этот процесс. Использовалась ли цепочка в PHP2Shell, источник не уточняет.
Кто обновляет PHP, если сайт уже в проде?
Обновлять нужно сам интерпретатор, а продуктовая команда этим обычно не занимается. Обновление WordPress, Laravel или Bitrix ошибку языка не закрывает. На собственном сервере PHP обновляет тот, кто администрирует ОС и образы контейнеров. На виртуальном хостинге это делает хостер, и подтверждение установки патча запросите у его поддержки.
Пока нет списка версий, честно сказать «нас не касается» нельзя. Уязвимость интерпретатора может срабатывать не на любой конфигурации, но условия для PHP2Shell пока не опубликованы.
Заметка практика. На аудитах мы регулярно видим одну картину: php -v в консоли показывает свежую версию, а веб-запросы обслуживает отдельный PHP-FPM, старый образ контейнера или PHP из панели управления. Проверяйте рантайм, который реально отвечает на запросы.
Учитывайте и бэкпорты: Debian, Ubuntu и RHEL переносят исправления, но оставляют старый номер версии. Сверяйтесь с трекером дистрибутива, а не с цифрой в выводе. Если у интерпретатора нет ответственного, передайте его технической поддержке сайта или команде, которая ведёт разработку и сопровождение на PHP.
Глушить сайт или патчить на лету?
Если открытый в интернет PHP не удаётся обновить в ближайшие часы, временное отключение надёжнее работы с открытой дырой. Так поступили некоторые правительства и крупные компании: они сняли сайты до установки исправления. Источник не называет ни их, ни длительность простоя.
Простой оборачивается потерянной выручкой, взлом обходится дороже. Злоумышленник получает права веб-сервера, а с ними базу, ключи API и секреты из конфигов. Если в базе лежат персональные данные, к ущербу добавится обязанность уведомить Роскомнадзор по 152-ФЗ.
Обновление не равно лечению: сервер мог стоять без исправления, пока по нему уже шли атаки. После патча проверьте его на веб-шеллы, новые учётные записи и подозрительные задания cron, смените пароли к базе и ключи API. Публичные эксплойты против боевого сервера не запускайте, индикаторы ищите в бюллетенях PHP и CISA.
Частые вопросы
PHP2Shell это вирус или название уязвимостей?
Это прозвище пары критических уязвимостей в интерпретаторе PHP, а не вредоносная программа. Номера CVE в исходной публикации не приводятся.
Обновление WordPress или другого движка закрывает эти дыры?
Нет. Уязвим не движок, а сам язык, поэтому обновлять нужно пакет PHP или образ контейнера и затем перезапускать PHP-FPM или веб-сервер.
Нужно ли срочно обновлять PHP, если номера CVE ещё не назвали?
Да. Атаки подтверждены, патчи уже вышли. Ставьте исправленную версию по бюллетеню проекта PHP или пакет из репозитория дистрибутива и проверяйте, какой рантайм реально обслуживает сайт.
Кто патчит PHP, если сайт на виртуальном хостинге?
Хостер, потому что интерпретатор принадлежит ему. Напишите в поддержку и запросите подтверждение, что исправление установлено; если ответа нет, рассмотрите временное отключение сайта.
Если нужно быстро выяснить, какие PHP-рантаймы у вас смотрят в интернет и не взломан ли уже сервер, HirexTech поможет с защитой сайта от взлома и разбором инцидента.