---
title: Мониторинг, который не заходит на сервер клиента
description: Инструмент с удалённым управлением тысячей серверов — это одна дверь в тысячу серверов. Почему наш агент не принимает команд, чего мы из-за этого не умеем и почему студии это важнее, чем нам.
source: https://pingvera.ru/blog/monitoring-bez-dostupa-k-serveru.html
---
# Мониторинг, который не заходит на сервер клиента

Есть решение, которое мы приняли в начале, записали в архитектуру как инвариант и с тех пор отказываемся пересматривать: **наш агент не принимает команд**. Не «мы пока не пользуемся этой возможностью» — у хаба физически нет способа заставить установленный агент что-либо сделать. Ни удалённого запуска, ни самообновления, ни «а соберите-ка нам вот это прямо сейчас». Он шлёт данные наружу, и это вся его поверхность.

Это не ограничение, которое мы когда-нибудь обойдём. Это и есть продукт. И оно стоит нам функций, которые у нас просят, — поэтому объяснить его стоит честно.

## Неудобная арифметика удалённого управления

Любой инструмент, который умеет обновить плагин на пятидесяти сайтах клиентов, по построению умеет **исполнять код** на пятидесяти сайтах клиентов. Любая панель, которая умеет перезапустить сервис на вашем сервере, где-то хранит доступ, позволяющий на него войти. Это не изъян таких продуктов — это их назначение: нельзя автоматизировать починку, не имея власти чинить.

Но у этой власти есть владелец, у владельца — учётная запись, у учётной записи — сотрудники поддержки, а где-то в этой цепочке есть версия софта с ошибкой. Когда ломают инструмент, радиус поражения — не инструмент. Это все машины, до которых инструмент дотягивался.

Отрасль уже поставила этот эксперимент в промышленном масштабе. В июле 2021 года атакующие воспользовались уязвимостью в широко распространённой платформе удалённого управления. Они не взломали одну компанию — они взломали то, у чего был доступ к компаниям. Пострадали около шестидесяти подрядчиков, а через них за одни выходные оказались зашифрованы, по оценкам, **от 800 до 1500 их клиентов**; выкуп требовали в 70 миллионов долларов.

Присмотритесь к форме события, потому что в ней весь аргумент: _жертвы не сделали ничего неправильного_. Они купили известный продукт у серьёзного поставщика и установили его ровно по инструкции. Компрометация пришла через дверь, которую они сами — осознанно, разумно, по договору — оставили открытой: ту самую, через которую подрядчик им помогал.

> Инструмент с удалённым управлением тысячей серверов — это не удобство с оговоркой про безопасность. Это одна дверь в тысячу серверов, и всё остальное про него — детали.

## Что мы решили вместо этого

Мы задали вопрос уже, чем принято его задавать. Не «что мы могли бы сделать для клиента, будь у нас доступ» — ответ на него всегда «больше», — а **«какого минимального доступа хватает, чтобы честно сказать, работают его сайты или нет»**.

Ответ оказался: никакого. Во входящую сторону — вообще.

- **Агент на хосте односторонний.** Он открывает исходящее соединение, отдаёт метрики и кладёт трубку. Командного канала нет. Типы сообщений для удалённых инструкций остались в протоколе мёртвым кодом от раннего черновика — заморожены, никогда не отправляются, игнорируются агентом; мы не удалили их только потому, что это сломало бы совместимость протокола без всякой пользы.
- **У плагина WordPress нет входящих эндпоинтов.** Он не регистрирует ни REST-маршрутов, ни AJAX-обработчиков. Он собирает диагностику — версию ядра, состояние плагинов, жив ли конвейер заказов, уходит ли почта на самом деле — и отправляет её наружу. На вашем сайте нет адреса, по которому наши серверы могли бы постучаться.
- **Обновление агента — ваше действие, не наше.** Никакого самообновления и тихой подмены. Вышла новая версия — мы можем сказать, что ваш агент устарел: строчкой в логе, бейджем в панели. На этом наше участие заканчивается. Переустанавливаете вы, сверяя контрольную сумму, тогда, когда сочтёте нужным.

Свойство, которое из этого следует, формулируется одной фразой — и в этом весь смысл: **если завтра взломают нас, до вашей машины через нас всё равно не добраться**. Не потому, что дверь заперта и хорошо охраняется. Потому что двери нет.

## Чего это стоит — и мы не будем делать вид, что ничего

Мониторинг, который не умеет действовать, — это мониторинг, который не спасёт вас в три часа ночи. Мы не делаем ничего из этого и делать не будем:

Это по-настоящему полезные вещи. Нужны — берите платформу обслуживания, которая их даёт, просто отдавайте себе отчёт: вы меняете реальный объём риска на реальный объём удобства. Такой обмен законен. Он лишь не должен совершаться за вас молча.

Мы делаем вторую половину — ту, которой дверь не нужна: смотрим на сайт снаружи сразу из нескольких регионов и на бизнес-пути изнутри CMS. Принимает ли магазин заказ. Доходит ли письмо из формы до почты. Не истекает ли сертификат. Не заканчивается ли тихо домен. И говорим в тот момент, когда что-то из этого перестаёт быть правдой. [Самые дорогие поломки — тихие](https://pingvera.ru/blog/magazin-rabotaet-a-zakazov-net.html), и ни одна из них не требует, чтобы у нас был ключ от вашего сервера.

## Для студии это не про технику, а про ответственность

Острее всех это чувствуют студии — потому что решение принимается не за себя. Ставя инструмент на сервер клиента, вы молча распространяете доверие клиента на третью сторону, о которой он никогда не слышал и которую не может проверить. Если что-то пойдёт не так, фраза «у вендора была уязвимость» не переживёт встречи с клиентом. Отвечать будете вы — и репутацией, и деньгами, и, скорее всего, договором.

Поэтому честная версия нашего предложения звучит не как «мы безопаснее остальных». Она звучит так: **мы убрали категорию риска вместо того, чтобы ею управлять**. В нашей модели доступа нечего аудировать, потому что доступа нет. Это обещание меньше, чем «мы сохраним ваши серверы в безопасности», — и его мы можем сдержать даже в свой худший день.

## Что спрашивают

**Pingvera может сам починить то, что нашёл?**

Нет, и не сможет. Мы сообщаем — чините вы. Это весь контракт, и именно он делает возможным свойство, описанное выше.

**Плагин внутри WordPress — разве это не тот же доступ?**

Только если он слушает. Наш не слушает: ни REST-маршрутов, ни AJAX-обработчиков, ни одного входящего пути с наших серверов на ваш сайт. Он собирает и отправляет наружу. Взлом нашей стороны не превращается во взлом вашей.

**А если мне нужна автоматизация?**

Берите её — у платформы обслуживания, которая для этого сделана. А независимый мониторинг пусть потом проверит результат: один инструмент меняет систему, другой убеждается, что изменение не сломало тихо приём заказов. Это две разные работы, и есть хороший довод не отдавать обе одному поставщику.

Читайте дальше:
 [Магазин отдаёт 200 OK, а заказов нет](https://pingvera.ru/blog/magazin-rabotaet-a-zakazov-net.html) и
 [Форма говорит «спасибо», письмо не дошло](https://pingvera.ru/blog/ne-prihodyat-zayavki-s-sayta.html).
