Безопасность и серверы
После взлома Полигона (31.08) и Хвостов (07–28.09): закрыть дыры на всех 5 серверах, каждый проект — закрытая система (не root, свои сети, .env 600, порты только через nginx), сторож взлома, бэкапы вне сервера; сократить серверы с 5 до 3.
В РАБОТЕS1 · С0 · Срочное после аудита 03.103/6
Цель: Закрыть активные дыры: Хвосты, DirectPilot, вход по паролю на aitodo, сторож взлома
планS2 · Проверки по сроку0/3
Цель: Отложенные проверки: сработало ли
Ворклог (места остановки)
28.10 разбор 4 NL-серверов под сокращение. farm = личный VPN владельца (никому не раздаём). aitodo НЕ раздавать: 44 проекта на cfru ходят через его прокси :8888, блок IP положит их. contentfactory: VPN пустые 4 недели, Family Life не менялся с 19.07, pulse-analytics = старая копия. Перенесено на cfru: 3 крона планировщика боевого Контент-завода (первый запуск с cfru 12:40 UTC прошёл, 27 фабрик, без ошибок; на contentfactory последний запуск 12:35) и архивы в /opt/backups/contentfactory-20261028/ (суммы и базы проверены). Владелец выключает contentfactory сам.
→ 30.10 проверка ee2bcc29: планировщик идёт с cfru, жалоб нет → владелец удаляет contentfactory в Timeweb. amnezia (72.56.81.222): на AmneziaWG сидит один друг (~30 ГБ/мес), ждём решения владельца: оставить ему сервер / снять / всё же aitodo. После снятия NL: апгрейд cfru (RAM 20/23, swap 8/8 забит, диск 93%), цену согласовать.
Дыра Next через сжатие картинок закрыта временной мерой на Хвостах, проде КЗ и стенде КЗ: images.unoptimized=true, /_next/image отвечает 404 снаружи (до: 400/500). Хвосты: коммит 83d91b7, docker build с --env-file. Прод КЗ: dcfb0193, сборка в сторону, простой секунды, вход/главная/блог/студия 200. Стенд КЗ: 6d7c278a. Записки в docs обоих проектов.
→ Настоящее лечение: Next 15.5.24+ на Хвостах и DirectPilot, КЗ 14→15 через стенд; потом вернуть сжатие. Убрать prev-сборки КЗ от 03.10 по согласию. DirectPilot и cz-core временной мерой не трогали.
Разбор дыры Next через сжатие картинок (GHSA-2xp9-vwfh-vxw4, исправлено в 15.5.24/16.3.3), только чтение. Задеты по-настоящему двое: Хвосты 15.1.12 и прод КЗ 14.0.4 (sharp 0.32.6). DirectPilot снаружи закрыт; cz-core без sharp (squoosh), этой дырой скорее всего не задет. Подложить свой AVIF ни на Хвостах, ни на КЗ пути не найдено: чужие домены не разрешены, загрузки идут в /storage мимо Next. «Убрать avif из formats» признано ненадёжным, верная временная мера images.unoptimized=true. Разбор дописан в задачу e30dba7a.
→ Ждём «да» владельца на images.unoptimized=true: Хвосты сегодня (вид сайта не меняется), прод КЗ в тихий час (сборка, потом рестарт; картинки в 4 местах без сжатия). DirectPilot и cz-core не трогать. Потом настоящее лечение: Next 15.5.24, для КЗ переход 14→15 через стенд.
Аудит всех 5 серверов. Найдено: Хвосты взломаны (тот же React2Shell, что Полигон), DirectPilot уязвим под root, на aitodo/farm/contentfactory/amnezia вход по паролю, взаимный root cfru<->aitodo, бэкапы только локальные. Сделано: Хвосты и DirectPilot закрыты, сторож взлома в cron на cfru (cfru+aitodo, тревога в Лию).
→ SSH только по ключу на 4 серверах (команду запускает владелец, автофильтр не пустил). Ждёт «ок» план спринтов С1-С5: периметр, связи между серверами, бэкапы вне сервера, сокращение 5->3, изоляция процессов.