Сканер выдал простыню: половину Ubuntu уже закрыла бэкпортами, а уязвимость из KEV в публичной службе потерялась в середине. Платный мониторинг PatchFirst собирает очередь P0–P3. Бесплатная проверка показывает рейтинг и подсвеченный стек без детализации.
Разовая проверка одного сервера — рейтинг, стек с подсветкой и общие слепые зоны. Мониторинг — платный. Годовая подписка дешевле на 20%: один сервер на год — $28,80 вместо $36,00. Первые 5 серверов — $3,00 за каждый в месяц; с 6-го сервера — $2,00; с 26-го сервера — $1,50.
Что проверяем
Сейчас — пакеты, точные версии зависимостей и распознанные продукты. Охват зависит от прав агента и доступных данных.
Node.js: npm (package-lock.json), Yarn v1 и Berry (yarn.lock), pnpm (pnpm-lock.yaml).
Python: poetry.lock, Pipfile.lock, uv.lock, requirements*.txt с точными версиями ==; установленные пакеты в найденных venv/site-packages.
Версии рантаймов и служб, распознанных по каталогу продуктов.
Образы контейнеров — по имени и тегу; содержимое образов не проверяется и остаётся слепой зоной. Неизвестные образы и плавающие теги требуют ручной проверки.
Прямые и транзитивные зависимости; dev-зависимости помечаются. Поиск ограничен правами доступа, временем и числом файлов и пакетов. Неточные версии и сработавшие ограничения отражаются в слепых зонах.
Скоро
Ruby: Gemfile.lock.
Go: go.sum и сведения о сборке бинарников.
Rust: Cargo.lock.
Java: lock-файлы Maven/Gradle и манифесты jar.
Эти экосистемы пока не проверяются.
Старая версия — ещё не ответ.
Один пакет уже исправлен дистрибутивом. Другой пришёл из PPA и выпал из проверки. Для них нужны разные правила.
Не чинить уже исправленное
Ubuntu может перенести исправление в старую ветку без смены основной версии. PatchFirst проверяет пакеты дистрибутива через OSV по исходному пакету и версии, а не сравнивает их только с диапазонами апстрима.
Это помогает уменьшить шум от бэкпортов и оставить время на реальные обновления.
Не потерять сторонний пакет
PatchFirst распознаёт признаки сторонних репозиториев в версии, исключает такие пакеты из OSV-проверки дистрибутива и сопоставляет их с CVE.org как апстрим.
Реальный случай из разработки PatchFirst: RCE в PHP 8.3.35 из PPA sury, OSV эту уязвимость не показывал. Поэтому для PPA нельзя полагаться только на данные дистрибутива.
Для свежих CVE PatchFirst отдельно отмечает случаи, когда у дистрибутива ещё нет записи OSV с нужным пакетом.
В мониторинге — очередь работ вместо счётчика CVE.
Риск = тяжесть (0–10: приоритет дистрибутива, иначе CVSS) × эксплуатируемость (KEV ×2, эксплойт ×1,4…) × доступность (наружу 1,0; возможно наружу 0,8; внутри сети 0,6; локально 0,45). Например, CVSS 7 + KEV на публичном сервисе = 7 × 2 × 1,0 = 14 → P0, чинить сегодня.
P0 и P1 — в начало очереди
P0 — риск ≥14 или KEV на публичном компоненте; ориентир исправления — сутки. P1 — следующая очередь, ориентир — неделя. Если есть P0, итоговый рейтинг не выше 49.
P2 и P3 — в план работ
P2 — ориентир на месяц, P3 — остальные находки. Отчёт сохраняет детали: приоритет помогает выбрать порядок, но решение об обновлении остаётся у инженера.
Мониторинг видит больше, чем пакеты.
Установить обновление недостаточно, если работает старое ядро. А образ с плавающим тегом не даёт надёжной версии для проверки.
Ядро обновили. Перезагрузили?
PatchFirst анализирует запущенное ядро. Если установлено более новое, в отчёте будет отдельная находка о необходимости перезагрузки.
База не должна торчать наружу
Доступные снаружи БД, Redis и Docker API попадают в отдельные находки. Номера портов остаются на сервере владельца. Агент оценивает доступность по bind и публичному адресу, без внешней пробы.
Слепые зоны не спрятаны
Нераспознанные образы и плавающие теги вроде latest или 17 отмечаются как слепые зоны.
Зависимости приложения тоже входят в проверку.
PatchFirst проверяет composer.lock, npm/Yarn/pnpm и Python pip/poetry по точным версиям, включая транзитивные и dev-зависимости. Метки lock-файлов показывают проект; ограничения сбора попадают в слепые зоны. Ruby, Go, Rust и Java пока не поддерживаются.
Без root. С контролем отправки.
Агент — один файл: автономный бинарник или zipapp для Python. Для мониторинга установщик добавляет пользовательский cron раз в 6 часов.
Сначала посмотрите payload
Режим dry-run показывает, что отправит агент. Для бесплатной проверки можно получить обезличенный JSON, просмотреть его и вставить на странице вручную.
Python не обязателен: бинарник содержит всё для шифрования имён. Для шифрования имён в варианте на Python нужен python3-cryptography. Агент собирает технический инвентарь без доступа к содержимому ваших баз данных.
Обезличивание — до отправки
Хосты заменяются на UUID, IP — на признак публичного адреса. Пути и частные названия скрываются HMAC-метками. При включённом шифровании имён словарь зашифрован отдельным ключом, которого у сервиса нет. Без шифрования агент словарь не отправляет.
Обезличенные инвентари и отчёты хранятся в PostgreSQL в читаемом для сервиса виде. Бэкапы шифруются отдельным ключом получателя. Подробнее о данных →
Имена можно не задавать: в кабинете останется «Сервер 01». Для удобства можно указать условное имя, например web-1: оно хранится открыто. Не пишите домен, IP-адрес, название компании или клиента. Если нужна защита, включите шифрование имён в разделе «Аккаунт»: браузер перенесёт заданные имена в зашифрованный словарь, а открытые копии удалятся с сервиса.
Ограничения
Приоритет — оценка модели, не вероятность взлома. Источники могут ошибаться или запаздывать.
Проверьте находки, файрвол и доступ извне: агент не делает внешнюю пробу.
Нераспознанное ПО — слепая зона. PatchFirst не заменяет аудит и пентест.
При анализе видны версии и технические признаки. IP соединения используется только в памяти для защиты от перебора и не сохраняется.
Отчёты — в кабинете, без внешних уведомлений. Оплата вручную через контакт в кабинете.
Начните с одного хоста
Посмотрите, каким компонентам нужно внимание.
Разовая проверка бесплатна: команда возвращает ссылку на отчёт, или вы загружаете обезличенный JSON. В отчёте — рейтинг, названия и установленные версии компонентов с подсветкой, общие слепые зоны. Что именно уязвимо и что обновить первым — в платном мониторинге. Регулярный контроль — в платном мониторинге. Годовая подписка дешевле на 20%: один сервер на год — $28,80 вместо $36,00. Первые 5 серверов — $3,00 за каждый в месяц; с 6-го сервера — $2,00; с 26-го сервера — $1,50.