AgentKeeper - защити свой ИИ 🦾
https://agentkeep-g2twscat.manus.space
Собственный Opensource Ai защитник, в процессе доработки, сайт сделал за 20мин кстати ☝️
🛡️ Сам Проект: Ограничивает ИИ-агента тем, что ему действительно нужно, используя песочницу, которая уже встроена в вашу операционную систему. Без Docker, без контейнеров, без облачного сервиса, без телеметрии — и без изменений в привычной работе: вы по-прежнему печатаете claude, gemini, codex. Защита работает в обе стороны: от того, что скомпрометированный или проинъецированный агент может сделать(прочитать ~/.ssh, собрать .envфайлы, вынести данные), и от того, _с кем_агент разговаривает — включая «бесплатных прокси-провайдеров», чья бизнес-модель — раздавать доступ к новым моделям, пока ваши разговоры, ваш ключ и секреты рабочей директории текут через их сервер. npm i -g agentkeeper agentkeeper activate Один раз. Дальше продолжаете печатать claude, codex, gemini, opencode как обычно. Идея Правила должны угадывать, что плохо. Песочница просто не предоставляет такой возможности. Промпт-инъекция управляет _намерением_агента, но не тем, до чего агент может физически дотянуться. Отравленный CLAUDE.md может приказать агенту прочитать ~/.ssh/id_rsa — агент попробует, а файла в его мире не существует. Атака сработала, ничего не произошло, никого не отвлекли. Поэтому здесь изоляция на первом месте, а детекция — подстраховка для мест, куда изоляция не достаёт. agentkeeper ограничивает то, что агент может сделать, и записывает то, что он сделал. Это слабее полной контейнерной изоляции и сильнее любого набора правил. Что он на самом деле делает Два слоя, которые не дублируют друг друга. Слой 1 — песочница. Агент запускается внутри профиля изоляции ОС: sandbox-exec (Seatbelt) на macOS, bubblewrap на Linux, AppContainer на Windows. Это решает, что вообще существует. Исходящий трафик идёт через брокер назначений, который разрешает перечисленные хосты и отказывает всем остальным. Слой 2 — правила. Хук PreToolUse, глобальный git-хук и небольшой резидентный наблюдатель следят за тем, что происходит внутри этой границы — за вещами, которые изоляция не видит, потому что они касаются ресурсов, к которым агенту доступ разрешён. Покрытие угроз Приведено без смягчений. «Нет» значит нет. ВекторСлойПредотвращеноОбнаруженоV1–V3 (артефакты автозапуска в репозитории)2ДаДаV4 (конфигурация окружения, CVE-2026-21852)1 + 2ДаДаV5 (эксфильтрация по стороннему каналу)1Частично (allowlist назначений)НетV6 (недоверенный ввод в CI)2ДаДаV7 (rug-pull)2ДаДаV8 (подмена MCP-сервера)1 + 2ДаДаV9 (закрепление вне репозитория)1ДаДаV10 (сбор учётных данных)1ДаЧастичноV11 (необратимые действия)1 + 2ДаДаV12 (уход из-под наблюдения)1ДаНет Жирные ячейки стали возможны только со слоем 1. Инструмент «только правила» отвечает «нет» в каждой из них, потому что субпроцесс одобренной команды, MCP-сервер или второй агент вообще не проходят через хук вызова инструментов. Про эксфильтрацию — прямо. Обещать обнаружение утечки в исходящем трафике этот проект честно не может. CVE-2026-54316 утёк API-ключ по одному символу через счётчик загрузок Hugging Face; в трафике не было ничего узнаваемого. Позиция здесь такая: ограничивать, какие назначения существуют, а не обещать детектировать то, что уходит через разрешённое. Два уровня доступа Именно эта часть решает, имеет ли модель разрешений смысл. Если разрешение можно запросить в момент атаки — всё рушится: инъекция ждёт отвлечённого момента и спрашивает. Поэтому ресурсы разделены, и две половины выдаются принципиально разными способами. Уровень 1 — повседневный. Спрашивается, пока агент работает.Соседняя директория проекта, ~/.gitconfig (чтение), кэши пакетных менеджеров, конфигурация редактора. Ошибочное «да» стоит немного. Уровень 2 — опасный. Не спрашивается никогда. Вообще. ~/.ssh, ~/.aws, ~/.config/gcloud, ~/.kube, ~/.docker, ~/.netrc, ~/.npmrc, ~/.config/gh, связка ключей macOS, профили браузеров, история шелла, все поверхности закрепления и все файлы настроек агентов.