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

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

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

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

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

Категории

Все категории
Loading categories
wardn — изоляция учетных данных для AI-агентов. Агенты никогда не видят реальные ключи API — структурная гарантия, а не политика. | Kitploit
Инструменты/GitHubGitHub/rohansx/wardn
Аутентификация и авторизацияИнструменты шифрования/дешифрованияБезопасность облачных средDevSecOpsУтилиты и фреймворкиОбнаружение СекретовУправление идентификацией и доступом (IAM)Безопасность Цепочки ПоставокБезопасность API
GitHubrohansx/wardn

wardn

363132 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

изоляция учетных данных для AI-агентов. Агенты никогда не видят реальные ключи API — структурная гарантия, а не политика.

Репозиторий

wardn

Креденциальный брандмауэр для AI-агентов.

Основное утверждение — структурное, а не политическое: агенты получают только токены-заполнители, никогда — настоящие ключи API. Настоящий ключ пересекает только один сетевой шов — внутри прокси wardn, на пути к вышестоящему API — и удаляется из ответов до того, как они достигают агента. Логи, окружение, контекстные окна LLM, временные файлы и история команд оболочки содержат только плейсхолдеры.```text agent process OPENAI_KEY=wdn_placeholder_a1b2c3d4e5f6g7h8 (useless) agent logs Authorization: Bearer wdn_placeholder_a1b2... (useless) LLM context wdn_placeholder_a1b2c3d4e5f6g7h8 (useless) wardn proxy injects the real key in-flight, single seam (deleted on response) ~/.vibeguard/vault.enc AES-256-GCM(Argon2id(passphrase)) (encrypted at rest)

Это основное утверждение, которое сегодня защищает от компрометации агента, инъекции подсказок, кражи логов и эксфильтрации навыков. Прочитайте [docs/THREAT-MODEL.md](https://github.com/rohansx/wardn/blob/main/docs/THREAT-MODEL.md) для честного разграничения того, что покрывается, а что нет — включая уровень, на котором становится достижимым более сильное утверждение «компрометация хоста не раскрывает ничего».

Само хранилище (зашифровано в состоянии покоя, ключ, полученный из парольной фразы) является реальным компонентом и причиной того, что брандмауэр может работать на одной машине. Будущий уровень [docs/HOSTED-TIER.md](https://github.com/rohansx/wardn/blob/main/docs/HOSTED-TIER.md) дополнительно помещает прокси в конфиденциальное вычислительное окружение, так что даже полностью скомпрометированный VPS не сможет прочитать ключ.

[![Crates.io](https://img.shields.io/crates/v/wardn.svg)](https://crates.io/crates/wardn)
[![License](https://img.shields.io/crates/l/wardn.svg)](LICENSE)

## Проблема

Каждый современный фреймворк AI-агентов хранит API-ключи в переменных окружения или файлах `.env`. Скомпрометированный агент, вредоносный навык, обычный стилер или инъекция подсказок, извлекающие `Authorization: Bearer sk-...` из лога LLM, получают полный доступ к вашим учетным данным.```
~/.env              → OPENAI_KEY=sk-proj-real-key      # plaintext, readable by anyone
agent context       → "Use OPENAI_KEY=sk-proj-real-key" # leaked into LLM context window
agent logs          → Authorization: Bearer sk-proj-... # sitting in log files

Исправление: Брандмауэр учетных данных

wardn передает агентам бесполезную строку-заполнитель и удаляет настоящий ключ с каждой поверхности, до которой может добраться. Настоящие ключи внедряются на сетевом уровне — единый стык — и удаляются из ответов до того, как они достигнут агента.``` agent environment → OPENAI_KEY=wdn_placeholder_a1b2c3d4e5f6g7h8 (useless) wardn vault → OPENAI_KEY=sk-proj-real-key (encrypted at rest) upstream request → Authorization: Bearer sk-proj-real-key (network transit only) upstream response → ...real keys stripped, placeholders returned... (re-injected on the way back) agent logs → Authorization: Bearer wdn_placeholder_a1b2... (useless) LLM context window → wdn_placeholder_a1b2c3d4e5f6g7h8 (useless)

## Архитектура```mermaid
flowchart TB
    subgraph Agent["AI Agent Process"]
        A1["Agent Code"]
        A2["ENV: OPENAI_KEY=wdn_placeholder_a1b2..."]
    end

    subgraph Wardn["wardn daemon · localhost:7777"]
        direction TB
        P["HTTP Proxy"]
        MCP["MCP Server\n(stdio)"]

        subgraph Pipeline["Request Pipeline"]
            direction LR
            S1["Identify\nAgent"] --> S2["Resolve\nPlaceholder"] --> S3["Check\nAuth"] --> S4["Rate\nLimit"] --> S5["Inject\nReal Key"]
        end

        subgraph ResponsePipeline["Response Pipeline"]
            direction RL
            R1["Strip Real\nKeys"] --> R2["Replace with\nPlaceholders"]
        end

        subgraph Vault["Encrypted Vault"]
            V1["AES-256-GCM"]
            V2["Argon2id KDF"]
            V3["Placeholder Map\nper agent × credential"]
        end
    end

    subgraph External["External APIs"]
        E1["api.openai.com"]
        E2["api.anthropic.com"]
        E3["..."]
    end

    A1 -- "placeholder token\nin headers/body" --> P
    A1 -. "MCP: get_credential_ref\nlist_credentials\ncheck_rate_limit" .-> MCP
    MCP -. "placeholder token\n(never real keys)" .-> A1
    P --> Pipeline
    Pipeline --> External
    External --> ResponsePipeline
    ResponsePipeline -- "response with\nplaceholders only" --> A1
    Pipeline <--> Vault
    ResponsePipeline <--> Vault

    style Agent fill:#1a1a2e,stroke:#e94560,color:#fff
    style Wardn fill:#0f3460,stroke:#16213e,color:#fff
    style Pipeline fill:#16213e,stroke:#e94560,color:#fff
    style ResponsePipeline fill:#16213e,stroke:#e94560,color:#fff
    style Vault fill:#1a1a2e,stroke:#00d2ff,color:#fff
    style External fill:#0a0a0a,stroke:#533483,color:#fff

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

Agent sends request with placeholder in Authorization header │ ▼ ┌─────────────────────────┐ │ wardn proxy │ │ localhost:7777 │ │ │ │ 1. Identify agent │ │ 2. Resolve placeholder │ │ 3. Check authorization │ │ 4. Check rate limit │ │ 5. Inject real key │ │ 6. Forward request │ │ 7. Strip key from resp │ │ 8. Return to agent │ └─────────────────────────┘ │ ▼ External API (only place real key exists in transit)

## Демо

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/12823/1fa6109ffd855ec98c173c5edd2d7ee77f6b0c918a3cdecb1ea5fbfe8326161d.gif" alt="демонстрация wardn" width="800">
</p>

## Уровни доверия, честно

| Уровень | Где | Что держит |
|---|---|---|
| **Самостоятельный хостинг (сейчас)** | ваш ноутбук, ваш VPS, CI | Хранилище с шифрованием в покое, заявление межсетевого экрана против агентов. **Не** защищает от root на хосте. |
| **Хостинг (в разработке)** | управляемый wardn или BYO-cloud | Конфиденциальная вычислительная анклав (Nitro / SEV-SNP) + удаленная аттестация + поток шифрования к прокси. Реальное заявление «компрометация хоста ничего не раскрывает». |

Уровень самостоятельного хостинга является основным заявлением и доступен сегодня. Уровень хостинга — это строгий путь обновления: он требует денег и операционной сложности, и его дизайн описан в [docs/HOSTED-TIER.md](https://github.com/rohansx/wardn/blob/main/docs/HOSTED-TIER.md). Полная честная инвентаризация того, что покрывается и не покрывается:

👉 **[docs/THREAT-MODEL.md](https://github.com/rohansx/wardn/blob/main/docs/THREAT-MODEL.md)** — таблица покрытия/непокрытия, явно указано, что «ни одно программное хранилище не устраняет компрометацию хоста», и путь обновления.

## Установка```bash
# Prebuilt binary (Linux/macOS, amd64/arm64), checksum-verified
curl -sSf https://raw.githubusercontent.com/rohansx/wardn/main/install.sh | sh

# or from crates.io
cargo install wardn

# or Homebrew, once the tap is published (see Formula/wardn.rb)
brew install rohansx/wardn/wardn

Быстрый старт```bash

Create an encrypted vault and store your keys

wardn vault create wardn vault set OPENAI_KEY wardn vault set ANTHROPIC_KEY

Set up Claude Code integration (one command)

wardn setup claude-code

Вот и всё. Теперь Claude Code использует MCP-сервер wardn для получения токенов-заполнителей вместо чтения реальных ключей из вашего окружения.

### Что происходит дальше

1. Claude Code вызывает `get_credential_ref` → получает `wdn_placeholder_a1b2...` (не настоящий ключ)
2. Агент отправляет запрос с заполнителем через прокси wardn
3. Прокси заменяет заполнитель на настоящий ключ, пересылает в API
4. Прокси удаляет настоящий ключ из ответа перед возвратом агенту

Настоящий ключ никогда не попадает в память агента, логи или контекстное окно LLM.

## Локальная панель управления
Скачать инструмент