
Есть решение, которое мы приняли в начале, записали в архитектуру как инвариант и с тех пор отказываемся пересматривать: наш агент не принимает команд. Не «мы пока не пользуемся этой возможностью» — у хаба физически нет способа заставить установленный агент что-либо сделать. Ни удалённого запуска, ни самообновления, ни «а соберите-ка нам вот это прямо сейчас». Он шлёт данные наружу, и это вся его поверхность.
Это не ограничение, которое мы когда-нибудь обойдём. Это и есть продукт. И оно стоит нам функций, которые у нас просят, — поэтому объяснить его стоит честно.
Любой инструмент, который умеет обновить плагин на пятидесяти сайтах клиентов, по построению умеет исполнять код на пятидесяти сайтах клиентов. Любая панель, которая умеет перезапустить сервис на вашем сервере, где-то хранит доступ, позволяющий на него войти. Это не изъян таких продуктов — это их назначение: нельзя автоматизировать починку, не имея власти чинить.
Но у этой власти есть владелец, у владельца — учётная запись, у учётной записи — сотрудники поддержки, а где-то в этой цепочке есть версия софта с ошибкой. Когда ломают инструмент, радиус поражения — не инструмент. Это все машины, до которых инструмент дотягивался.
Отрасль уже поставила этот эксперимент в промышленном масштабе. В июле 2021 года атакующие воспользовались уязвимостью в широко распространённой платформе удалённого управления. Они не взломали одну компанию — они взломали то, у чего был доступ к компаниям. Пострадали около шестидесяти подрядчиков, а через них за одни выходные оказались зашифрованы, по оценкам, от 800 до 1500 их клиентов; выкуп требовали в 70 миллионов долларов.
Присмотритесь к форме события, потому что в ней весь аргумент: жертвы не сделали ничего неправильного. Они купили известный продукт у серьёзного поставщика и установили его ровно по инструкции. Компрометация пришла через дверь, которую они сами — осознанно, разумно, по договору — оставили открытой: ту самую, через которую подрядчик им помогал.
Инструмент с удалённым управлением тысячей серверов — это не удобство с оговоркой про безопасность. Это одна дверь в тысячу серверов, и всё остальное про него — детали.
Мы задали вопрос уже, чем принято его задавать. Не «что мы могли бы сделать для клиента, будь у нас доступ» — ответ на него всегда «больше», — а «какого минимального доступа хватает, чтобы честно сказать, работают его сайты или нет».
Ответ оказался: никакого. Во входящую сторону — вообще.
Свойство, которое из этого следует, формулируется одной фразой — и в этом весь смысл: если завтра взломают нас, до вашей машины через нас всё равно не добраться. Не потому, что дверь заперта и хорошо охраняется. Потому что двери нет.
Мониторинг, который не умеет действовать, — это мониторинг, который не спасёт вас в три часа ночи. Мы не делаем ничего из этого и делать не будем:
| Чего люди справедливо хотят | Почему мы этого не делаем |
|---|---|
| Массово обновлять плагины на всех сайтах клиентов | Требует исполнения кода на каждом сайте. Это и есть та самая дверь. |
| Делать и разворачивать бэкапы удалённо | Требует доступа к файлам и базе с нашей стороны. |
| Снимать вирусы, откатывать неудачный деплой | Требует права записи на машину, за которой мы должны просто наблюдать. |
| Перезапускать сервис, когда проверка упала | Требует командного канала — ровно того, что мы убрали. |
Это по-настоящему полезные вещи. Нужны — берите платформу обслуживания, которая их даёт, просто отдавайте себе отчёт: вы меняете реальный объём риска на реальный объём удобства. Такой обмен законен. Он лишь не должен совершаться за вас молча.
Мы делаем вторую половину — ту, которой дверь не нужна: смотрим на сайт снаружи сразу из нескольких регионов и на бизнес-пути изнутри CMS. Принимает ли магазин заказ. Доходит ли письмо из формы до почты. Не истекает ли сертификат. Не заканчивается ли тихо домен. И говорим в тот момент, когда что-то из этого перестаёт быть правдой. Самые дорогие поломки — тихие, и ни одна из них не требует, чтобы у нас был ключ от вашего сервера.
Острее всех это чувствуют студии — потому что решение принимается не за себя. Ставя инструмент на сервер клиента, вы молча распространяете доверие клиента на третью сторону, о которой он никогда не слышал и которую не может проверить. Если что-то пойдёт не так, фраза «у вендора была уязвимость» не переживёт встречи с клиентом. Отвечать будете вы — и репутацией, и деньгами, и, скорее всего, договором.
Поэтому честная версия нашего предложения звучит не как «мы безопаснее остальных». Она звучит так: мы убрали категорию риска вместо того, чтобы ею управлять. В нашей модели доступа нечего аудировать, потому что доступа нет. Это обещание меньше, чем «мы сохраним ваши серверы в безопасности», — и его мы можем сдержать даже в свой худший день.
Доступность из нескольких регионов, сроки SSL и домена, здоровье WordPress и приём заказов изнутри CMS — и агент, которому нельзя отдать команду: ни нам, ни тому, кто нас взломает. Бесплатно до 5 сайтов.
Начать бесплатноНет, и не сможет. Мы сообщаем — чините вы. Это весь контракт, и именно он делает возможным свойство, описанное выше.
Только если он слушает. Наш не слушает: ни REST-маршрутов, ни AJAX-обработчиков, ни одного входящего пути с наших серверов на ваш сайт. Он собирает и отправляет наружу. Взлом нашей стороны не превращается во взлом вашей.
Берите её — у платформы обслуживания, которая для этого сделана. А независимый мониторинг пусть потом проверит результат: один инструмент меняет систему, другой убеждается, что изменение не сломало тихо приём заказов. Это две разные работы, и есть хороший довод не отдавать обе одному поставщику.
Читайте дальше: Магазин отдаёт 200 OK, а заказов нет и Форма говорит «спасибо», письмо не дошло.