Shellfirm: как остановить ИИ-агента до удаления базы на сервере
Shellfirm с лицензией Apache-2.0 останавливает опасные команды в терминале и у ИИ-агента: удаление каталогов, force-push, DROP TABLE, kubectl delete. Разбираю, как он работает, что не ловит и какие пять слоёв защиты нужны владельцу, который выдал агенту или подрядчику доступ к серверу.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Безопасность: права агента и подрядчика на сервере, бэкапы, журналЧто может пойти не так, когда у агента есть терминал
Вы дали ИИ-агенту или подрядчику доступ к серверу, чтобы он поправил сайт или разобрал логи. Для агента терминал означает право выполнить любую команду от имени пользователя, под которым он зашёл. Одна ошибочно собранная строка, и каталог проекта исчез, ветка в репозитории перезаписана, таблица заказов удалена.
Условный пример с моими допущениями: у интернет-магазина резервная копия делается раз в сутки в 03:00. В 15:00 агент по ошибке удаляет таблицу заказов. Копия есть, но заказы за 12 часов в ней отсутствуют. Масштаб потерь зависит от потока заказов, считать его надо до выдачи доступа.
Общую границу между тем, что агенту можно, и тем, что нельзя, я разбирал в материале про границу автономности ИИ-агента. Здесь узкая тема: опасные команды в терминале и что с ними делает слой подтверждения.
Что такое Shellfirm и что я проверил
Репозиторий: github.com/kaplanelad/shellfirm, автор kaplanelad, язык Rust. Описание в репозитории: защитные механизмы для ИИ-агентов программирования и команд, которые человек вводит в терминале. Данные на 12 октября 2026 года:
- Лицензия по файлу LICENSE: Apache 2.0, свободная, использовать в коммерческой работе можно.
- Звёзд 940, форков 34, открытых обращений 3. Репозиторий создан в декабре 2021 года, не архивирован.
- Последний релиз v0.3.10 от 7 мая 2026 года, последний коммит от 15 мая 2026 года. Пять месяцев без правок.
- Ставится через npm (пакет @shellfirm/cli), Homebrew, cargo или готовый бинарник из релиза для Linux, macOS и Windows.
Независимого аудита Shellfirm я не нашёл, исходники целиком не разбирал и на живом сервере не запускал. Ниже то, что написано в README, документации и коде.
Как он работает и как подключается
Правила это набор шаблонов, записанных регулярными выражениями в файлах YAML. В README заявлено больше 100 шаблонов в девяти группах: файловая система, git, Kubernetes, Terraform, Docker, AWS, GCP и Azure, Heroku, базы данных. В файлах проверок я нашёл DROP TABLE, DROP DATABASE и TRUNCATE, git reset и force-push, kubectl delete для пространств имён и с флагом --all. Сложные команды с &&, || и | делятся на части, и проверяется каждая.
Когда команда совпала, человеку показывают степень опасности, оценку масштаба и безопасную альтернативу. Например, вместо git push --force предлагается --force-with-lease. Чтобы продолжить, нужно пройти проверку. По умолчанию это арифметическая задача, есть режимы «нажать Enter» и «ввести yes». Проверка строже в опасном контексте: по SSH минимум Enter, под root минимум yes, то же на защищённых ветках git (main, master, production, release/*) и в контексте Kubernetes, где в имени есть prod, production, prd или live. Отдельные шаблоны можно запретить совсем, без возможности пройти проверку. Каждое срабатывание пишется в журнал формата JSON-lines, смотреть его можно командой shellfirm audit show.
Оболочек восемь: Zsh, Bash, Fish, Nushell, PowerShell, Elvish, Xonsh, Oils. Хук ставится командой shellfirm init. Правила команды можно положить в файл .shellfirm.yaml в проекте, и он может только ужесточать общие настройки.
С агентами устроено так. Для Claude Code команда shellfirm connect claude-code по коду добавляет в настройки Claude Code хук перед выполнением команд Bash и MCP-сервер. Агент не может ответить на вопрос в консоли, поэтому по документации команды выше порога опасности отклоняются автоматически. Порог по умолчанию High, настраивается параметром agent.auto_deny_severity. Отказ записывается в журнал, агент получает безопасную альтернативу. Для Cursor, Windsurf, Zed и Cline в коде подключается только MCP-сервер, без хука. Там агент сам решает, спросить ли Shellfirm перед командой.
Сеть нужна для установки. Сама проверка идёт локально. Опциональный разбор команд через языковую модель включается только настройкой и ключом, тогда текст команды уходит на адрес провайдера. Трафик я не измерял.
Чего Shellfirm не ловит
Проверка работает по тексту команды. Дальше мои выводы из устройства, на практике я их не проверял, в README такого списка нет.
- Команда, спрятанная в скрипте:
bash cleanup.shвыглядит безобидно, а внутри файла может быть что угодно. - Обфускация и обходные пути: закодированная строка, которую потом исполняют, или вызов удаления из кода на Python, а не командой.
- Хук Claude Code привязан к инструменту Bash. Правка и запись файлов самим агентом идут другими инструментами.
- Если агенту разрешено менять свои настройки, он может убрать хук.
- Параметр agent.require_human_approval в документации помечен как зарезервированный на будущее, готового процесса одобрения человеком там нет.
Ещё один момент для подрядчика. Shellfirm ставится в оболочку конкретного пользователя на конкретной машине. Он помогает от ошибки, но не удержит человека, который работает у себя и просто не поставил его.
Что можно сделать уже сейчас
Список для владельца до выдачи доступа к серверу. Shellfirm в нём один пункт из пяти.
- Бэкап до доступа. Сделайте копию базы и файлов, отдельно проверьте, что она восстанавливается, и храните вне того сервера, куда пускаете.
- Отдельный пользователь без root. Агенту и подрядчику заводится свой аккаунт с правами на нужный каталог. Права на запись в базу выдавайте только там, где без них нельзя, как в материале про безопасный доступ агента к базе.
- Песочница для кода агента. То, что агент сам пишет и запускает, лучше крутить в изолированной среде, как в разборе Microsandbox.
- Журнал команд. Включите запись в историю и аудит и раз в неделю просматривайте. Журнал Shellfirm покрывает только перехваченные команды.
- Правила подтверждения. Как это устроено в самом агенте, показано на примере Mensarium. Shellfirm добавляет такой слой к существующей консоли.
Настройку прав, бэкапов и контура наблюдения я собираю в рамках услуги по кибербезопасности, серверную часть веду как DevOps и сопровождение.
Частые вопросы
Защитит ли Shellfirm, если подрядчик злонамеренный?
Нет. Он ставится в оболочку и рассчитан на ошибки и на агентов. Человек с доступом может работать без него. От такого риска защищают отдельные права, журнал на стороне сервера и договор.
Можно ли поставить его на сервер за пять минут?
Установка простая, но правила надо подобрать под ваши процессы и проверить на тестовой машине. Часть обычных команд будет вызывать лишние вопросы.
Нужен ли доступ к зарубежной модели?
Для самой проверки нет, она локальная. Ключ нужен только для необязательного разбора через языковую модель.
Коротко о главном
Shellfirm с лицензией Apache-2.0 останавливает опасные команды в терминале и у ИИ-агента, с 940 звёздами и последним коммитом в мае 2026 года. Он ловит текст известных опасных команд, скрипты и обходы остаются за его границей.
Если хотите, чтобы я проверил, какие права у вашего агента и подрядчика на сервере, и собрал для вас чек-лист с бэкапом, журналом и правилами подтверждения, напишите мне в Telegram кодовое слово «ТОРМОЗ».
Ещё open-source для бизнеса
Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


