В апреле я писал в телеграме, что новые модели найдут дыры почти во всём софте, а в айти-отделах начнутся разговоры «мы это обновление ставить не будем, у нас вся система рухнет». Тогда это звучало как паранойя. В октябре это случилось почти дословно, причём с языком, на котором работает большинство сайтов.
Ниже разбор: что произошло с PHP, почему это не история про один язык, как изменилась скорость атак и, самое практичное, минимальный набор шагов, чтобы проверить свой проект и закрыть очевидное.
01Что случилось
PHP - язык, на котором работает большинство сайтов, у которых вообще известен серверный язык. Вы его не видите, но он работает под капотом блога на WordPress, сайта салона на Битриксе, Википедии и тысяч интернет-магазинов. 21 октября команда PHP выпустила экстренные обновления: в самом ядре языка нашли две критические уязвимости, их назвали PHP2Shell.
Уязвимость удалённого выполнения кода (RCE) - дыра, через которую посторонний может запустить на вашем сервере свою программу. По сути, получить ключи от машины. Хуже класса уязвимостей почти не бывает.
Core-разработчик PHP при аудите находит ошибку, связанную с нехваткой памяти. Её не исправляют: команда не договорилась о фиксе, а способа её использовать никто не знал.
Исследователь компании Calif в рамках проекта OpenAI проверяет исходники PHP вместе с GPT-5.6 Sol и находит дыру. Независимо от него то же находит Wiz, используя GPT-5.6 Sol и Gemini.
Amazon видит в своих ханипотах (серверах-приманках для атак) первую попытку атаки, за четыре дня до раскрытия.
Новость утекает раньше срока, в сети появляется видео с рабочим эксплойтом.
Выходят исправленные версии PHP. ФБР и АНБ советуют обновиться или выключить сайт, пока не обновились. Cloudflare фиксирует миллионы попыток атак в первые часы.
Финляндия выключает все публичные госсервисы, Франция - сайты МВД, Нидерланды - госпортал. Временно ложатся часть сервисов Wikimedia и Internet Archive.
Главное тут другое. Ошибку под одной из дыр люди видели ещё в 2024 году. Её не починили, потому что не договорились, как чинить, и потому что никто не знал, как её использовать. ИИ нашёл, как.
Код с ошибкой старый, саму ошибку заметили в 2024-м. Claire Zau описывает это так:
«Баг сидел больше десяти лет, его считали слишком сложным для эксплуатации, пока ИИ-аудит его не вскрыл». Claire Zau, инвестор Lightspeed, ролик «Cyber Armageddon» (перевод наш)
02Это не история про PHP
Октябрь можно прочитать как «у PHP случилась беда». Мне кажется, правильнее читать иначе: поменялась экономика поиска дыр. Раньше найти серьёзную уязвимость и превратить её в рабочую атаку стоило недель работы сильных специалистов. Теперь это стоит часов и денег на API.
Вот в чём беда. Атакующему эксплойт обходится в часы, а компании, чтобы закрыть дыру, нужны месяцы. Пока идут согласования, окно открыто.
03Агенты уже атакуют сами
| Что | Что произошло |
|---|---|
| Один человек и 1200 сайтов (Reuters, 19 октября) | Оператор натравил ИИ-агентов на 1200+ сайтов и попал на сайты больше 100 компаний, среди них John Deere. Потратил несколько тысяч долларов. |
| Агент сбежал из песочницы (июль) | На внутреннем тесте OpenAI модели вышли из изолированной среды через дыру нулевого дня в прокси Artifactory и взломали серверы Hugging Face. |
| Агент и австралийский Medicare (июнь - сентябрь) | Агент OpenAI, которого отправили изучать госрасходы на лекарства, обошёл защиту портала и загрузил туда свои файлы. Австралию предупредили почти через три месяца. |
| ИИ-черви на дешёвых устройствах (Anthropic, 12 октября) | Небольшая модель запустилась на 15 ТВ-приставках по $55. Полного самораспространения пока нет, авторы считают, что до него месяцы. |
Я сам каждый день работаю с агентами: у меня открыто по 5–9 сессий Claude и Codex, каждая раздаёт подзадачи помощникам. Это огромная скорость. Но ровно ту же скорость теперь получил любой, кто хочет найти дыру в чужом сайте, в том числе в моём.
04Дыры в чужом коде, на котором вы стоите
Октябрь ударил не только по PHP. Сразу несколько историй про код, который вы не писали, но на который опираетесь.
- LiteLLM - популярная прослойка для работы с языковыми моделями, стоит во многих AI-проектах. В пакеты подложили вредонос, который крадёт облачные ключи, пароли и ключи от AI-сервисов.
- eMudhra - удостоверяющий центр, который выдаёт сайтам сертификаты (тот самый замочек в браузере). Ключи у восьми сертификатов оказались настолько слабыми, что их подбирали перебором из 256 вариантов. Браузеры заблокировали сертификаты за пару дней, а боты и скрипты на серверах, которые не проверяют отзыв, остаются уязвимыми.
- Node.js - закрыл четыре серьёзные дыры, одна даёт выполнить код на сервере.
Для вайбкодеров это самое важное: большую часть кода в наших проектах мы не писали. Её притащили зависимости, которые агент поставил за секунду.
05Сколько уязвимостей публикуют
Новые CVE в месяц, база NVD
январь 2024 - октябрь 2026, октябрь неполный (по 24.10)
Новые CVE в базе NVD по месяцам. Выгрузка heg.ai через NVD API, 25.10.2026. Октябрь неполный.
данные таблицей
| Месяц | Новых CVE |
|---|---|
| янв 2024 | 2 647 |
| фев 2024 | 2 906 |
| мар 2024 | 3 352 |
| апр 2024 | 3 735 |
| май 2024 | 5 103 |
| июн 2024 | 3 173 |
| июл 2024 | 3 174 |
| авг 2024 | 2 945 |
| сен 2024 | 2 540 |
| окт 2024 | 3 595 |
| ноя 2024 | 4 086 |
| дек 2024 | 3 448 |
| янв 2025 | 4 415 |
| фев 2025 | 3 831 |
| мар 2025 | 4 166 |
| апр 2025 | 4 142 |
| май 2025 | 4 264 |
| июн 2025 | 3 799 |
| июл 2025 | 3 933 |
| авг 2025 | 3 737 |
| сен 2025 | 4 537 |
| окт 2025 | 4 389 |
| ноя 2025 | 3 116 |
| дек 2025 | 5 643 |
| янв 2026 | 5 143 |
| фев 2026 | 4 808 |
| мар 2026 | 6 304 |
| апр 2026 | 5 885 |
| май 2026 | 6 985 |
| июн 2026 | 8 001 |
| июл 2026 | 9 919 |
| авг 2026 | 12 719 |
| сен 2026 | 15 074 |
| окт 2026 | 13 803 (за 24 дня) |
Весь 2024 и 2025 было стабильно 3–5 тысяч в месяц. С весны 2026 объём удваивается примерно за четыре месяца: в сентябре 2026 вышло 15 тысяч против 4,5 тысячи годом раньше.
Честная оговорка: это число показывает, сколько дыр ищут и регистрируют, а не насколько плох софт. Реально в атаках используют малую часть, по оценке Google около 0,23%. Но сам рост и есть сигнал: дыры теперь ищут машины, и найденное достаётся всем, включая атакующих.
06Что мы делаем у себя
У нас в HegAI каждый день десятки агентов пишут код, проверяют друг друга и выкатывают изменения. Поэтому безопасность мы строим не разовым аудитом, а набором правил, которые агент не может обойти. Ниже то, что реально работает, и почему каждое правило появилось.
Доступы и ключи
Узкий ключ на каждую задачу
Что делаемУ каждого сервиса и агента свой ключ, который умеет только своё. Генерация картинок получает токен только на картинки. Ключ для деплоя умеет одну команду и не даёт консоль сервера.
ПочемуЕсли такой ключ утечёт, через него можно сделать одну операцию, а не всё.
Ни одного секрета в git
Что делаемКлючи и пароли живут только в переменных окружения на серверах. Агентам прямо запрещено читать и выводить файлы с секретами.
ПочемуПравило появилось после ревью, которое нашло два ключа прямо в коде.
Живые логины не выставляем в сеть
Что делаемБраузер и телефон с личными аккаунтами доступны агентам только локально и только с правами администратора машины, без сетевого порта. Песочницам сотрудников туда нельзя.
ПочемуОткрытый порт отдал бы чужие залогиненные сессии любому пользователю машины.
Входящие запросы проверяем подписью
Что делаемВебхуки Telegram и Zoom и наши внутренние callback'и сверяются криптографически. Файлы скачиваем только с доверенных доменов.
ПочемуИначе любой, кто узнал адрес, может прислать поддельное событие.
Агенты и ревью
На прод только после зелёной проверки
Что делаемДеплой отказывает, пока коммит не прошёл автотесты и независимое ревью другой моделью. Если ревью не отработало, это «не проверено», а не «зелёный».
ПочемуОднажды проверки три недели молча не работали, и агенты всё это время выкатывали код без них.
Последнее слово за человеком
Что делаемРелиз платформы я выкатываю кнопкой. Бот присылает карточку: какие коммиты, какие изменения базы, что сказал ревьюер. Кнопка подписана и действует 15 минут.
ПочемуМежду пушем агента и продом нужен барьер, которым владеет человек.
Ревьюер в изоляции
Что делаемМодель, которая проверяет код, работает в отдельном контейнере без учётных данных и с минимальной сетью. Код она получает как недоверенные данные.
ПочемуКод из чужой ветки не должен уметь управлять тем, кто его проверяет.
Две модели из разных семей
Что делаемЗаметную правку проверяют параллельно Claude и Codex, находки сверяем с кодом.
ПочемуУ моделей разные слепые зоны, и то, что пропустила одна, часто ловит другая.
Бэкапы и мониторинг
Бэкапы со сторожем
Что делаемКаждый день база, файлы и зашифрованный архив почты уходят во внешнее хранилище, ключ шифрования лежит отдельно. Если успешного бэкапа нет больше 30 часов, приходит тревога.
ПочемуБэкап, который тихо перестал делаться, хуже никакого, потому что на него надеешься.
Откат одной командой
Что делаемСервер хранит предыдущую версию и сам возвращает её, если новая не поднялась.
ПочемуТогда обновляться не страшно, а значит, обновляемся быстро.
Сломанная проверка тоже тревога
Что делаемМониторинг каждые полчаса смотрит диск, память, базу, сертификаты и уязвимые зависимости. Если проверка сама не смогла отработать, это тоже алерт.
ПочемуСамые дорогие сбои у нас были тихими.
Без входа по паролю
Что делаемНа серверы заходим только по ключу, после нескольких неудачных попыток адрес банится.
ПочемуНа одной из наших машин за сутки было почти две тысячи попыток подобрать пароль.
07Минимальная настройка безопасности: чеклист
Ниже минимум, который я бы сделал в любом проекте, от лендинга на WordPress до бота с агентами. Аудит это не заменит, но самое очевидное закроет.
- 01
Составьте список всего, что у вас крутится
15 минутСайты, боты, серверы, домены, сервисы на хостингах. Нельзя обновить то, о чём забыл. Особенно старые проекты, которые «собрали и не трогали».
- 02
Проверьте версии PHP и обновитесь
10 минут на сайтЕсли у вас WordPress, Битрикс или любой сайт на PHP, нужны версии не ниже 8.2.35, 8.3.36, 8.4.27 или 8.5.12 в своей ветке, либо пакет дистрибутива, где в трекере безопасности закрыты CVE-2026-109618 и CVE-2026-109619 (Debian, Ubuntu и RHEL переносят исправления в старые номера версий). Смотрите версию, которая реально обслуживает сайт: php-fpm, модуль apache или настройка в панели хостинга, а не только
php -vв консоли, на одном сервере их бывает несколько. После обновления перезапустите php-fpm или apache. Перед переключением версии в панели сделайте бэкап: плагины и модули на новой ветке могут упасть. Для 7.4, 8.0 и 8.1 вышли только исходные патчи без официальных сборок: если обновиться прямо сейчас нельзя, закройте сайт правилом WAF или выключите его, как советовали ФБР и АНБ. - 03
Обновите зависимости в своих проектах
20 минутNode.js - до последнего патча своей ветки. Python и JS-пакеты - через
npm auditиpip-audit. Если в проекте есть LiteLLM, сверьте версию с бюллетенем проекта. Если стояла заражённая версия, считайте утёкшими все ключи, которые были на этой машине или в CI: облачные, от AI-сервисов, токены. Удалите пакет, поставьте чистую версию и проверьте lock-файлы. - 04
Вынесите и смените секреты
30 минутКлючи API, пароли от баз и токены ботов не должны лежать в коде и в git. Только переменные окружения или менеджер секретов. Если ключ когда-то попадал в репозиторий, считайте его утёкшим и выпустите новый.
- 05
Включите двухфакторную защиту везде, где есть деньги и доступы
15 минутХостинг, регистратор доменов, GitHub, почта, панели OpenAI и Anthropic, платёжки. Взлом почты и хостинга обходится дороже любой дыры в коде.
- 06
Закройте лишнее снаружи
20 минутНа сервере открыты только нужные порты (обычно 80, 443 и SSH по ключу). Базы данных наружу не открывайте вообще. Админки и панели - только с паролем, двухфакторкой и ограничением по IP.
- 07
Настройте автоматические обновления и бэкапы
30 минутАвтообновления безопасности для системы, ежедневный бэкап базы и файлов в другое место. Проверьте, что из бэкапа реально восстанавливается, хотя бы раз.
- 08
Поставьте агента дежурить
1 час один разРаз в неделю агент проверяет зависимости, версии и открытые порты и присылает отчёт. Сам по расписанию он не запустится: нужен cron на сервере или расписание в Claude Code или Codex. Промпт ниже.
08Проверить, что есть сейчас: промпты для агента
Самый быстрый способ провести аудит - отдать его тому же Claude Code или Codex. Важно: сначала только чтение и отчёт, правки - после того, как вы посмотрели план.
Проведи аудит безопасности этого сервера. Пока ничего не меняй, только читай и собирай отчёт. 1. Версии ОС, PHP, Node.js, Python, nginx/apache. Для PHP проверь версию, которая реально обслуживает сайт (php-fpm, модуль apache), а не только php -v в консоли. Для каждой: поддерживается ли ветка и есть ли свежие исправления безопасности. Отдельно проверь PHP на исправления PHP2Shell (CVE-2026-109618, CVE-2026-109619). 2. Какие порты слушают и какие сервисы за ними. Сверь с настройками файрвола (ufw, iptables или панель облака): что реально доступно из интернета и что не должно быть. 3. Как настроен вход по SSH: разрешён ли вход по паролю и под root. 4. Включены ли автоматические обновления безопасности. 5. Есть ли бэкапы, где они лежат и когда был последний. Выдай таблицу: что нашёл, насколько это опасно (критично / важно / можно позже), как исправить. Потом предложи план и спроси, что из него делать.
Проверь этот репозиторий на проблемы безопасности. Ничего не меняй, только отчёт. 1. Запусти проверку зависимостей (npm audit, pip-audit или аналог для этого стека; если инструмента нет, спроси, ставить ли его) и покажи уязвимые пакеты с версиями, где они исправлены. 2. Проверь, есть ли в проекте LiteLLM, и сравни версию с последним бюллетенем безопасности проекта. 3. Найди секреты в коде и в истории git: ключи API, пароли, токены. Не выводи их значения, только файл и тип секрета. 4. Проверь, что .env и файлы с секретами в .gitignore. 5. Найди места, где пользовательский ввод попадает в SQL, команды shell или файловые пути без проверки. Выдай таблицу по важности и план исправлений. Спроси перед тем, как что-то править.
Каждый понедельник (задача запускается по расписанию) проверяй мои проекты: версии рантаймов и зависимостей, новые уязвимости в них, открытые порты на серверах и дату последнего бэкапа. Если появилось что-то критичное, пиши сразу. Если всё спокойно, коротко отчитайся одной строкой. Ничего не обновляй без моего подтверждения.
Источники
- Wikipedia: PHP2Shell
- Wiz: PHP2Shell
- Rapid7: CVE-2026-109618 и CVE-2026-109619
- PBS / AP: AI discovered a software vulnerability that could impact 70% of websites
- TechCrunch: The internet is having a very bad cybersecurity day
- Reuters via BNN Bloomberg: How one hacker used AI agents
- The Next Web: XBOW and Chrome
- The Next Web: OpenAI sandbox escape and Hugging Face
- BleepingComputer: OpenAI agent and Medicare
- BleepingComputer: Anthropic on self-replicating AI
- BleepingComputer: eMudhra
- Help Net Security: Mythos Preview n-day exploits
- Cloud Security Alliance: Collapsing exploit window (PDF)
- Google Threat Intelligence: Vulnerability trends in the AI era
- ZAUEY: Cyber Armageddon
- NVD API 2.0
