Разработка 4 мин чтения

Shellfirm: стоп-кран для rm -rf и других команд ИИ-агента

Shellfirm перехватывает опасные команды терминала и просит подтверждение, а для Claude Code умеет сам отклонять рискованные команды агента. Разбираю по репозиторию, как это подключается, какие оболочки и агенты поддерживаются и почему это страховка от ошибки, а не от злоумышленника.

ИИ-агентыбезопасностьтерминаладминистрирование
Коротко. Shellfirm перехватывает опасные команды терминала (удаление каталога, git push --force, DROP DATABASE, удаление ресурсов в Kubernetes) и просит подтверждение. Для Claude Code есть хук, который сам отклоняет рискованные команды агента. Это страховка от случайной ошибки. От злого умысла и обхода она не защищает, права доступа, бэкапы и песочницу не заменяет.
Нужен ИИ-агент для вашего бизнеса?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Обсудить защиту серверов и доступов для ИИ-агентов

Одна лишняя звёздочка под root

Вы сидите на боевом сервере под root. Надо почистить старые логи, и в команде с rm -rf оказывается лишний пробел или не тот путь. Нажали Enter, и поздно. Тот же сценарий с ИИ-агентом: вы выдали ему доступ к серверу, он решил «прибраться» и запустил команду, которую вы сами бы не набрали. Агент делает такие ошибки быстрее человека и не чувствует, что команда необратима.

Для этого есть Shellfirm: программа встаёт между вами (или агентом) и оболочкой и на опасной команде говорит «стоп». Про то, как далеко вообще пускать агента, я писал в статье про границу автономности ИИ-агента. Здесь следующий слой: доступ к командной строке уже выдан.

Сам Shellfirm я не запускал. Всё ниже взято из README, документации и исходников репозитория kaplanelad/shellfirm.

Что это за проект

Программа написана на Rust, лицензия Apache-2.0 (так в файле LICENSE). Репозиторий создан в декабре 2021 года, в нём 940 звёзд и 34 форка. Автор по сути один: из всех коммитов с привязкой к аккаунтам почти все сделал владелец репозитория, остальные внесли по одной-две правки. Последняя версия 0.3.10 вышла 7 мая 2026, последний коммит от 15 мая. Версия нулевая, формат настроек может поменяться.

Есть неувязка: в описании пакета на Rust указана лицензия MIT, а в файле LICENSE и в README Apache-2.0. Для корпоративного использования уточните у автора.

Ставится через npm (@shellfirm/cli), Homebrew, cargo install shellfirm или готовым бинарником. В релизах есть сборки под Linux x86_64, macOS (Intel и Apple Silicon) и Windows x64. Сборки под Linux на ARM нет, там остаётся cargo. Статистику на сторону программа, судя по исходникам, не отправляет: я искал и не нашёл.

Как она работает в терминале

Команда shellfirm init определяет оболочку и подключает хук. Поддерживаются восемь оболочек: Zsh, Bash, Fish, Nushell, PowerShell, Elvish, Xonsh и Oils. Хук ловит Enter и до запуска сверяет строку с правилами. Правила это регулярные выражения по тексту команды. По README их больше сотни: файловая система, git, Kubernetes, Terraform, Docker, AWS, GCP, Azure, базы данных (DROP, TRUNCATE, DELETE без условия). У каждого правила есть уровень от Info до Critical.

При срабатывании на экран выводятся уровень, описание, оценка масштаба и безопасная замена. Пример из README: для git push --force предлагается --force-with-lease. Дальше вопрос, его вид задаётся в настройках: сложить два числа от 0 до 9, набрать yes или нажать Enter. По README вопрос становится строже, если вы зашли по SSH, работаете под root или стоите на защищённой ветке.

Свои правила пишутся в YAML-файлах в папке checks каталога настроек: регулярное выражение, описание, id. Файл .shellfirm.yaml в репозитории проекта добавляет запреты для всей команды, и он только усиливает защиту, ослабить её нельзя. Каждое срабатывание по умолчанию пишется в журнал audit.log построчно в JSON, смотреть можно командой shellfirm audit show.

Как подключают ИИ-агентов

Агент не ответит на вопрос «сколько будет 3 + 5», поэтому для него режим без вопросов. Команда оценивается по порогу: от High и выше отклоняется, ниже пропускается. По документации порог по умолчанию High, он меняется в настройках. Отдельный список запрещённых правил, например git:force_push, отклоняется при любом уровне.

Подключение зависит от агента. Для Claude Code команда shellfirm connect claude-code прописывает в ~/.claude/settings.json хук PreToolUse на инструмент Bash плюс MCP-сервер. Хук проверяет каждую команду до запуска и возвращает разрешение или отказ с причиной. Для Cursor, Windsurf, Zed и Cline подключается только MCP-сервер, хука для них в коде нет. MCP даёт агенту инструменты проверки, но вызвать их он должен сам. Если он не вызовет проверку, она не сработает. Других агентов в списке нет.

У хука Claude Code есть и узость: он стоит на инструменте Bash. Файлы, которые агент меняет другими инструментами, он не проверяет.

Что важно учесть

Shellfirm страхует от ошибки. Человек с умыслом или агент, которого увели чужим текстом (как это бывает, я разбирал в статье про атаки через письмо и поиск), запустит команду иначе: через другую оболочку, скрипт на диске или программу, которая вызывает команды сама. Хук живёт в вашей интерактивной оболочке и смотрит на текст строки, скрипты и задачи cron через него не проходят. Это вывод из устройства, на практике обход я не проверял. Регулярка может не узнать и необычно записанную команду.

Вопрос с суммой двух цифр это пауза на секунду. Она остановит палец, который нажал Enter на автомате. Человека, который решил идти до конца, она не остановит.

Shellfirm не заменяет остальное. Нужен отдельный пользователь без лишних прав, вместо работы под root. Нужны резервные копии, проверенные на восстановлении. Для кода от агента нужна песочница.

Ещё две оговорки. Проект маленький: один автор, версия 0.x, пять месяцев без релиза. А документация расходится сама с собой: страница про агентов описывает один инструмент и не упоминает хуки, README и код перечисляют четыре инструмента и хук. Я опираюсь на код.

Что можно сделать уже сейчас

Сначала основа. Отдельный пользователь с sudo вместо root, свежий бэкап, проверка, что из него разворачивается рабочая копия. Shellfirm ставится поверх этого.

Пробная установка. На тестовой машине выполните shellfirm init, перезапустите оболочку и наберите git reset --hard в пустом репозитории. Проверить команду без запуска: shellfirm check -c "команда".

Для агента. У shellfirm connect claude-code есть ключ --dry-run для пробного прогона. Дальше внесите в список запрещённых правила, которые агенту нельзя ни при каких условиях: git:force_push, fs:recursively_delete, database:drop_database.

Для команды и журнала. Положите .shellfirm.yaml в репозиторий и раз в неделю смотрите shellfirm audit show: что срабатывало, что агент пытался запустить.

Частые вопросы

Защитит ли Shellfirm от агента, который хочет обойти защиту?

Нет, такой гарантии я не даю. Он закрывает типовые опасные команды в интерактивной оболочке и в инструменте Bash у Claude Code. Скрипт, другая оболочка или другой инструмент агента проходят мимо него.

Работает ли он на Windows?

Заявлено: PowerShell входит в восемь оболочек, в релизах есть сборка Windows x64. На Windows я не запускал, поэтому проверьте на тестовой машине.

Чем он отличается от песочницы?

Песочница ограничивает, что код вообще может сделать, как в microsandbox. Shellfirm смотрит на текст команды до запуска и спрашивает подтверждение.

Коротко о главном

Shellfirm полезен там, где есть root и живой сервер, или где ИИ-агенту выдан доступ к командной строке. Атаки он не ловит, права доступа, бэкапы и песочницу не отменяет.

Даёте ИИ-агенту доступ к серверу или работаете под root сами, и хочется убедиться, что одна команда не положит проект? Напишите мне в Telegram слово «СТРАЖ». Посмотрим, как устроены доступы, копии и права, и решим, где хватит Shellfirm, а где нужны другие меры по кибербезопасности.

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в 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查看目录Каталог үзэх