Open-source и свой сервер 4 мин чтения

Shellfirm: как остановить ИИ-агента до удаления базы на сервере

Shellfirm с лицензией Apache-2.0 останавливает опасные команды в терминале и у ИИ-агента: удаление каталогов, force-push, DROP TABLE, kubectl delete. Разбираю, как он работает, что не ловит и какие пять слоёв защиты нужны владельцу, который выдал агенту или подрядчику доступ к серверу.

Shellfirmбезопасность ИИ-агентовопасные командыopen source
Коротко. Shellfirm это программа с открытым кодом под лицензией Apache-2.0, которая встаёт между терминалом и командой и останавливает опасные: удаление каталогов, force-push в git, DROP TABLE в базе, kubectl delete. Для ИИ-агента она работает как проверка перед выполнением, для человека как вопрос с проверочной задачей. Это один слой защиты, не гарантия: скрипты и обфускацию по тексту команды она не разберёт. Если агенту или подрядчику выдан доступ к серверу, рядом нужны бэкап, пользователь без root, песочница и журнал.
Нужен ИИ-агент для вашего бизнеса?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в 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 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх