Безопасность
WarpFleet работает с root-доступом к вашим серверам — поэтому модель безопасности построена от худшего случая: агент физически не может исполнить то, чего нет в подписанном плейбуке, а всё рискованное требует человека.
Что агент может исполнить — и что никогда
- Только команды из allowlist плейбука. Каждый плейбук объявляет разрешённые бинари; проверка выполняется дважды — до и после подстановки переменных.
- Без shell. Команды исполняются напрямую (argv), а не через
sh -c— классу инъекций «дописать ; rm -rf» просто негде жить. - Переменные валидируются. Значения с shell-метасимволами
(
; | $ ` >…) или похожие на подстановку флагов отклоняются — плейбук откажется рендериться. - Жёсткий таймаут — ни один шаг не живёт дольше 5 минут, что бы ни запросил плейбук.
Рискованное — только через человека
У каждого плейбука есть уровень риска. Низкий чинится автоматически, средний — по вашей политике, высокий (рестарт критичных служб, доменные операции) — только после явного подтверждения оператора в консоли. До подтверждения можно посмотреть dry-run: что именно будет исполнено.
Проверка результата и откат
После починки агент верифицирует, что проблема ушла. Не ушла — исполняет описанные в плейбуке шаги отката; как последняя линия — восстановление из бэкапа, снятого до вмешательства. Необратимые операции откат не имитируют: такие плейбуки честно помечены «ручной разбор» и эскалируются.
Цепочка доверия: всё подписано
- Бинарь агента и архив плейбуков распространяются с Ed25519-подписанным манифестом.
- Не совпала контрольная сумма или подпись — обновление отклоняется, текущая версия продолжает работать, в консоли открывается инцидент целостности.
- Подмена плейбука по пути «сервер → нода» невозможна без ключа подписи.
Изоляция самого агента
- Systemd-юнит с жёсткими лимитами: память — hard-cap 1 ГБ (обычно кратно меньше), watchdog перезапускает зависший процесс.
- Ограниченный набор Linux capabilities — без CAP_SYS_MODULE и прочего, что агенту не нужно.
- Сеть: только исходящий HTTPS с Bearer-токеном. Ни одного открытого порта, ни входящего SSH.
Аудит и роли
- Каждое действие — решение политики, исполненные команды, их вывод — в аудит-журнале. Секреты в командах и выводе маскируются до записи.
- Экспорт журнала (ndjson/csv) для вашего SIEM — на плане Business+.
- RBAC: viewer / operator / approver / admin — смотреть, действовать и подтверждать рискованное могут разные люди (Business+).
Данные
Облако размещено в РФ (152-ФЗ соблюдён, уведомление РКН подано). Состояние ноды хранится локально на ней (SQLite), в облако уходят снимки метрик и инцидентов. Self-hosted-вариант не отправляет наружу ничего.
Полное удаление
Удаление агента штатное и полное: служба останавливается и удаляется, стираются бинарь
(/opt/warpfleet/bin), база и рантайм-файлы (/var/lib/warpfleet).
Сервер возвращается ровно в исходное состояние.