Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
wardn — عزل بيانات الاعتماد لوكلاء AI. لا يرى الوكلاء أبدًا مفاتيح API الحقيقية - ضمان هيكلي، وليس سياسة. | Kitploit
أدوات/GitHubGitHub/rohansx/wardn
المصادقة والترخيصأدوات التشفير/فك التشفيرأمن السحابةDevSecOpsالأدوات والمكوناتكشف الأسرارإدارة الهوية والوصول (IAM)أمن سلسلة التوريدأمن واجهات برمجة التطبيقات
GitHubrohansx/wardn

wardn

عزل بيانات الاعتماد لوكلاء AI. لا يرى الوكلاء أبدًا مفاتيح API الحقيقية - ضمان هيكلي، وليس سياسة.

363منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع

wardn

جدار ناري للبيانات الاعتمادية للوكلاء الذكاء الاصطناعي.

الادعاء الرئيسي هو هيكلي وليس سياسيًا: يتلقى الوكلاء رموزًا موضعية (placeholder tokens)، وليس مفاتيح 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)

root@kitploit:~
هذا هو الادعاء الأساسي وهو قابل للدفاع اليوم ضد اختراق الوكيل، وحقن المطالبات، وسرقة السجلات، وتسريب المهارات.
اقرأ [docs/THREAT-MODEL.md](https://github.com/rohansx/wardn/blob/HEAD/docs/THREAT-MODEL.md) للتقسيم الصادق بين ما هو مغطى وما هو غير مغطى — بما في ذلك المستوى الذي يصبح فيه الادعاء الأقوى 'اختراق المضيف لا يسرب شيئًا' قابلاً للتحقيق.

الخزانة نفسها (مشفرة في وضع السكون، ومفتاح مشتق من عبارة المرور) هي مكون حقيقي وسبب قدرة الجدار الناري على العمل على جهاز واحد.
المستوى القادم [docs/HOSTED-TIER.md](https://github.com/rohansx/wardn/blob/HEAD/docs/HOSTED-TIER.md) يغلف الوكيل أيضًا في بيئة حوسبة سرية بحيث حتى الخادم الافتراضي الخاص المخترق بالكامل لا يمكنه قراءة المفتاح.

[![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)

## المشكلة

كل إطار وكيل ذكاء اصطناعي اليوم يخزن مفاتيح 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)

root@kitploit:~
## الهندسة المعمارية```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)

root@kitploit:~
## عرض توضيحي

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/12823/1fa6109ffd855ec98c173c5edd2d7ee77f6b0c918a3cdecb1ea5fbfe8326161d.gif" alt="عرض توضيحي لـ wardn" width="800">
</p>

## مستويات الثقة، بصراحة

| المستوى | المكان | المضمون |
|---|---|---|
| **الاستضافة الذاتية (حاليًا)** | حاسوبك المحمول، خادمك الخاص، CI | خزنة مشفرة عند الراحة، ادعاء جدار حماية ضد الوكلاء. **لا** يدافع ضد صلاحية الجذر على المضيف. |
| **مستضافة (قادمة)** | مُدارة بواسطة wardn أو سحابتك الخاصة | بيئة حوسبة سرية (Nitro / SEV-SNP) + شهادة عن بُعد + تدفق التشفير إلى الوكيل. ادعاء حقيقي "اختراق المضيف لا يُسرب شيئًا". |

مستوى الاستضافة الذاتية هو الادعاء الأساسي ويتم إطلاقه اليوم. المستوى المستضاف هو مسار الترقية الصارم: يتطلب تكاليف مالية وتعقيد تشغيلي، وتصميمه موجود في [docs/HOSTED-TIER.md](https://github.com/rohansx/wardn/blob/HEAD/docs/HOSTED-TIER.md). جرد كامل وصادق لما يتم تغطيته وما لا يتم تغطيته:

👉 **[docs/THREAT-MODEL.md](https://github.com/rohansx/wardn/blob/HEAD/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

root@kitploit:~
هذا كل شيء. يستخدم Claude Code الآن خادم MCP الخاص بـ wardn للحصول على رموز نائبة بدلاً من قراءة المفاتيح الحقيقية من بيئتك.

### ماذا يحدث بعد ذلك

1. يقوم Claude Code باستدعاء `get_credential_ref` → يحصل على `wdn_placeholder_a1b2...` (وليس المفتاح الحقيقي)
2. يرسل الوكيل الطلب مع الرمز النائب عبر وكيل wardn
3. يقوم الوكيل باستبدال الرمز النائب بالمفتاح الحقيقي، ويعيد توجيهه إلى واجهة API
4. يقوم الوكيل بإزالة المفتاح الحقيقي من الاستجابة قبل إعادتها إلى الوكيل

لا يدخل المفتاح الحقيقي أبدًا إلى ذاكرة الوكيل أو سجلاته أو نافذة سياق LLM.

## لوحة التحكم المحلية

بمجرد تشغيل البرنامج الخفي (`wardn serve`، أو يتم تشغيله بواسطة `wardn run`)، افتح
**http://127.0.0.1:7777/ui** في متصفح. عرض محلي للقراءة فقط:

- **بيانات الاعتماد** — كل بيانات اعتماد مخزنة مع قوائم التحكم بالوصول الخاصة بها (الوكلاء المسموح لهم، النطاقات المسموح بها، حد المعدل + شارات الميزانية).
- **النشاط الأخير** — آخر 50 حدثًا للوكيل مع الطريقة، النطاق، المسار، الحالة، الوكيل، معرف الطلب، والتكلفة المسجلة (`request_completed`، `credential_injected`، `rate_limit`، `budget_exceeded`، `loop_detected`، `request_error`).
- **الميزانيات** — ميزانية كل بيانات اعتماد مُهيأة (الحد الأقصى، المُستهلك، المتبقي، النافذة، الوضع) مع شريط تقدم يتحول من تحذيري إلى سيئ عند تجاوز 50% / 80%.

يتم الاستقصاء تلقائيًا كل 2 ثانية. لا توجد نقاط نهاية للتعديل — الطريقة الوحيدة للخروج من لوحة التحكم هي واجهة API نفسها (`/api/summary`، `/api/credentials`، `/api/audit?limit=N`، `/api/budgets`).```bash
# Static, anonymous, never sees real keys
curl http://127.0.0.1:7777/api/summary | jq

الإعداد اليدوي```bash

Get a placeholder token (never the real key)

wardn vault get OPENAI_KEY

→ wdn_placeholder_a1b2c3d4e5f6g7h8

List stored credentials (names only, no values)

wardn vault list

Start the proxy

wardn serve

Start proxy + MCP server for Claude Code / Cursor

wardn serve --mcp --agent my-agent

root@kitploit:~
## مرجع CLI

### إدارة Vault```bash
wardn vault create                        # create encrypted vault
wardn vault set OPENAI_KEY                # store credential (prompts for value, no echo)
wardn vault get OPENAI_KEY                # get placeholder token (never the real value)
wardn vault get OPENAI_KEY --agent bot    # get placeholder for specific agent
wardn vault list                          # list all credentials
wardn vault rotate OPENAI_KEY             # rotate value, placeholders unchanged
wardn vault remove OPENAI_KEY             # remove credential

# Custom vault path
wardn --vault /path/to/vault.enc vault list

خادم بروكسي```bash

wardn serve # HTTP proxy on 127.0.0.1:7777 wardn serve --host 0.0.0.0 --port 8080 # custom bind address wardn serve --config wardn.toml # load config with rate limits + ACLs wardn serve --mcp --agent my-agent # proxy + MCP server (stdio)

root@kitploit:~
### Claude Code / Cursor Integration```bash
wardn setup claude-code                   # register wardn as MCP server in Claude Code
wardn setup cursor                        # register wardn as MCP server in Cursor

# Or manually:
claude mcp add --transport stdio --scope user wardn -- wardn serve --mcp --agent claude-code

ما الذي يفعله wardn setup

  1. يطلب عبارة مرور الخزنة ويتحقق من قدرته على فتح الخزنة
  2. يجد مسار الثنائي wardn على نظامك
  3. يسجل wardn كخادم MCP:
    • Claude Code: يقوم بتشغيل claude mcp add مع WARDN_PASSPHRASE في إعدادات env
    • Cursor: يكتب إلى ~/.cursor/mcp.json مع عبارة المرور في env
  4. عند التشغيل التالي، يقوم IDE بتشغيل wardn serve --mcp كعملية فرعية

التحقق من أنه يعمل

بعد تشغيل الإعداد، أعد تشغيل IDE وجرب هذه الأوامر:``` "List my wardn credentials" → Claude calls list_credentials, shows credential names (never values)

"Get me a reference to OPENAI_KEY" → Claude calls get_credential_ref, gets wdn_placeholder_... (not the real key)

"Check my rate limit for OPENAI_KEY" → Claude calls check_rate_limit, shows remaining quota

root@kitploit:~
#### أدوات MCP المتاحة

| الأداة | ما ترجعه | الأمان |
|------|----------------|----------|
| `get_credential_ref` | رمز مؤقت (`wdn_placeholder_...`) | ليس القيمة الحقيقية أبدًا |
| `list_credentials` | أسماء بيانات الاعتماد + البيانات الوصفية | مصفاة حسب وصول الوكيل |
| `check_rate_limit` | الحصة المتبقية، معلومات إعادة المحاولة | للقراءة فقط |

### ترحيل بيانات الاعتماد```bash
wardn migrate --dry-run                             # audit Claude Code dir for exposed keys
wardn migrate --source claude-code                  # scan + migrate to vault
wardn migrate --source open-claw                    # scan OpenClaw config
wardn migrate --source directory --path ./my-proj   # scan any directory

استيراد بيانات الاعتماد```bash

Classic .env file (KEY=value, comments, optional export, quoted values

with backslash escapes honored)

wardn import dotenv ./.env

JSON or YAML file. Format inferred from extension; either a flat map

or a structured {credentials: [{name, value}, ...]} shape.

wardn import file ./creds.json wardn import file ./creds.yaml

1Password CLI — reuses your signed-in op session. Default name is

derived from the ref's last segment; override with --name.

wardn import one-password op://Personal/openai/api_key wardn import one-password op://Work/anthropic/token --name ANTHROPIC_KEY

stdin — read .env-format lines. Useful for piping.

echo 'OPENAI_KEY=sk-...' | wardn import stdin

root@kitploit:~
يطلب كل أداة استيراد عبارة مرور الخزنة عند الاستخدام الأول (أو يقرأها من `WARDN_PASSPHRASE` / سلسلة المفاتيح الخاصة بنظام التشغيل). يتم الكتابة فوق القيم الموجودة بصمت — تقوم أداة الاستيراد باستيراد القيم فقط، ويتم الحفاظ على البيانات الوصفية (العوامل المسموح بها / النطاقات / حد المعدل / الميزانية).

### الأتمتة

بالنسبة لـ CI/النصوص، قم بتعيين متغيرات البيئة `WARDN_PASSPHRASE` و `WARDN_VALUE` لتخطي المطالبات التفاعلية:```bash
WARDN_PASSPHRASE=my-pass wardn vault list
WARDN_PASSPHRASE=my-pass WARDN_VALUE=sk-proj-xxx wardn vault set OPENAI_KEY

API المكتبة

أضف إلى ملف Cargo.toml الخاص بك:```toml [dependencies] wardn = "0.4"

root@kitploit:~
### عمليات الخزنة```rust
use wardn::{Vault, config::CredentialConfig};

// Create an encrypted vault
let vault = Vault::create("vault.enc", "my-passphrase")?;

// Store a credential
vault.set_with_config("OPENAI_KEY", "sk-proj-real-key-123", &CredentialConfig {
    allowed_agents: vec!["researcher".into(), "writer".into()],
    allowed_domains: vec!["api.openai.com".into()],
    rate_limit: Some(RateLimitConfig { max_calls: 200, per: TimePeriod::Hour }),
})?;

// Agent gets a placeholder (not the real key)
let placeholder = vault.get_placeholder("OPENAI_KEY", "researcher")?;
// → "wdn_placeholder_a1b2c3d4e5f6g7h8"

// Rotate the real key — all placeholders keep working
vault.rotate("OPENAI_KEY", "sk-proj-new-key-456")?;

بروكسي HTTP```rust

use wardn::daemon::{Daemon, DaemonConfig};

let daemon = Daemon::new(vault, DaemonConfig::default()); daemon.serve_proxy().await?;

root@kitploit:~
### MCP Server```rust
use wardn::mcp::WardenMcpServer;

// Serve over stdio (for Claude Code, Cursor, etc.)
WardenMcpServer::serve_stdio(vault, rate_limiter, "agent-id".into()).await?;

MCP tools exposed (read-only, no credential values ever returned):

الأداةالوصف
get_credential_refاحصل على رمزك النائب لبيانات الاعتماد
list_credentialsسرد بيانات الاعتماد المصرح لك بالوصول إليها
check_rate_limitالتحقق من الحصة المتبقية

خصائص الأمان

ما يهزمه هذا

كيف يختلف هذا عن...

للحصول على مقارنة أعمق مع أقرب المنافسين المباشرين لـ wardn (Infisical Agent Vault, 1Password for Agents, LiteLLM virtual keys) وكيف تتوافق ضمانات wardn مع OWASP's Agentic Top 10 وتوجيهات أمان مواصفات MCP، راجع docs/comparison.md.

حدود الثقة

يركز Wardn الثقة في عملية محلية واحدة (الوكيل) بدلاً من توزيعها عبر كل إضافة وأداة ونافذة سياق LLM. هذا سطح هجوم أصغر، وليس سطح هجوم صفري:

  • يعمل الوكيل محليًا كعملية فرعية يتم إنشاؤها بواسطة IDE أو shell الخاص بك — نفس مستوى الثقة مثل نواتك
  • الخزانة مشفرة في حالة السكون ويتم فك تشفيرها فقط في الذاكرة بكلمة مرورك
  • إذا تم اختراق جهازك المحلي بالكامل، لا يمكن لـ wardn المساعدة (لا شيء يمكنه)
  • الرمز النائب هو رمز حامل للوكيل — لكنه يعمل فقط عبر localhost:7777، وليس ضد APIs الحقيقية، ويمكن تحديد معدله وإلغاؤه لكل وكيل

تسجيل التدقيق

يتم تسجيل كل وصول إلى بيانات الاعتماد باستخدام معرف طلب فريد للتتبع:``` INFO request_id=a1b2c3 agent=claude-code method=POST domain=api.openai.com path=/v1/chat/completions proxy request received INFO request_id=a1b2c3 agent=claude-code credential=OPENAI_KEY domain=api.openai.com credential injected INFO request_id=a1b2c3 agent=claude-code upstream_status=200 credentials_injected=1 credentials_stripped=0 proxy request completed

root@kitploit:~
اضبط `RUST_LOG=wardn=info` (أو `debug`/`trace`) للتحكم في مستوى التفاصيل. تذهب السجلات إلى stderr، وليس stdout.

## الإعدادات```toml
[warden]
vault_path = "~/.vibeguard/vault.enc"

[warden.credentials.OPENAI_KEY]
rate_limit = { max_calls = 200, per = "hour" }
allowed_agents = ["researcher", "writer"]
allowed_domains = ["api.openai.com"]

[warden.credentials.ANTHROPIC_KEY]
rate_limit = { max_calls = 100, per = "hour" }
allowed_agents = ["researcher"]
allowed_domains = ["api.anthropic.com"]

هيكل المشروع```

wardn/ ├── src/ │ ├── main.rs # CLI entry point (clap + tokio) │ ├── cli/ │ │ ├── mod.rs # Clap argument definitions │ │ ├── vault_cmd.rs # Vault subcommand handlers │ │ ├── serve_cmd.rs # Serve subcommand handler │ │ ├── run_cmd.rs # wardn run — lazy-starts the daemon, wires │ │ │ # agent env vars, execs the child │ │ ├── setup_cmd.rs # Claude Code / Cursor MCP setup (+ shell alias) │ │ └── migrate_cmd.rs # Migrate subcommand handler │ ├── lib.rs # Public API, WardenError │ ├── config.rs # TOML configuration parsing, [upstreams] map │ ├── vault/ │ │ ├── mod.rs # Vault CRUD operations │ │ ├── encryption.rs # AES-256-GCM + Argon2id + zeroize types │ │ ├── storage.rs # On-disk format (WDNV), atomic writes │ │ ├── placeholder.rs # Token generation, per-agent isolation │ │ └── keyring_store.rs # OS keychain passphrase storage │ ├── proxy/ │ │ ├── mod.rs # HTTP proxy server (axum) │ │ ├── route.rs # Provider-prefix vs Host-header upstream routing │ │ ├── inject.rs # Credential injection into requests │ │ ├── strip.rs # Credential stripping (shared pair-building) │ │ ├── stream.rs # Streaming (SSE/chunked) credential stripper │ │ └── rate_limit.rs # Token bucket rate limiter │ ├── mcp/ │ │ ├── mod.rs # MCP server (rmcp, stdio transport) │ │ └── tools.rs # Tool parameter/response types │ ├── migrate/ │ │ ├── mod.rs # Migration orchestrator + risk scoring │ │ └── scanners/ │ │ └── credentials.rs # API key pattern scanner │ └── daemon/ │ └── mod.rs # Daemon (proxy + MCP in single process) └── tests/ ├── cli_tests.rs # CLI integration tests ├── vault_tests.rs # Vault integration tests ├── proxy_tests.rs # Proxy tests without a real upstream ├── proxy_e2e_tests.rs # Real upstream via wiremock (header/body/SSE) └── run_cmd_tests.rs # Real end-to-end wardn run

root@kitploit:~
## التطوير```bash
# Integration tests use a fast (insecure) KDF so the suite runs in
# milliseconds instead of paying the real Argon2id cost per test —
# always pass this feature flag when running tests locally or in CI:
cargo test --features test-fast-kdf

cargo build
cargo clippy --all-targets --features test-fast-kdf

تشفير الخزنة```mermaid

flowchart LR subgraph Input Pass["Passphrase"] Salt["Random Salt\n(16 bytes)"] Creds["Credentials\n(JSON)"] end

root@kitploit:~
subgraph KDF["Key Derivation"]
    Argon["Argon2id\nm=19456 t=2 p=1"]
end

subgraph Encrypt["Encryption"]
    AES["AES-256-GCM"]
    Nonce["Random Nonce\n(12 bytes)"]
end

subgraph Output["WDNV File"]
    direction TB
    Magic["WDNV (4B)"]
    Ver["Version (2B)"]
    SaltOut["Salt (16B)"]
    Payload["Nonce ‖ Ciphertext ‖ Tag"]
end

Pass --> Argon
Salt --> Argon
Argon -- "256-bit key" --> AES
Creds --> AES
Nonce --> AES
AES --> Payload

style Input fill:#1a1a2e,stroke:#e94560,color:#fff
style KDF fill:#16213e,stroke:#00d2ff,color:#fff
style Encrypt fill:#16213e,stroke:#00d2ff,color:#fff
style Output fill:#0f3460,stroke:#533483,color:#fff
root@kitploit:~
### تنسيق الملف```
Bytes 0-3:   Magic "WDNV"
Bytes 4-5:   Version (u16 LE)
Bytes 6-21:  Argon2id salt (16 bytes)
Bytes 22+:   AES-256-GCM encrypted payload (nonce ‖ ciphertext ‖ tag)

جزء من VibeGuard

Wardn هو طبقة عزل بيانات الاعتماد في VibeGuard — خفي أمان للوكلاء الذكاء الاصطناعي. الوحدات الأخرى المخطط لها:

  • Sentinel — جدار حماية حقن الأوامر
  • CloakPipe — وسيطة إخفاء البيانات الشخصية
  • Watcher — سجل التدقيق + لوحة القيادة

الترخيص

MIT

تنزيل الأداة
الخاصيةالضمان
لا توجد بيانات اعتماد في ذاكرة الوكيلعملية الوكيل تحتوي فقط على سلاسل نائبة
لا توجد بيانات اعتماد على القرص بنص واضحخزانة مشفرة بـ AES-256-GCM مع KDF Argon2id
لا توجد بيانات اعتماد في السجلاتتظهر النائبات فقط في أي مخرجات سجل
لا توجد بيانات اعتماد في سياق LLMيتم حقن النائب في البيئة، المفتاح الحقيقي في طبقة الشبكة
تعرض التكلفة المحدودحدود معدل دلو الرمز لكل بيانات اعتماد لكل وكيل
حماية صدى بيانات الاعتماديتم تجريد المفاتيح الحقيقية من استجابات API قبل وصولها إلى الوكيل
أمان الذاكرةيتم تصفير SensitiveString/SensitiveBytes عند الإسقاط
الثبات الذريالكتابة المؤقتة ثم إعادة التسمية تمنع تلف الخزانة
الهجومكيف يوقفه wardn
سرقة بيانات اعتماد .envلا توجد ملفات .env. المفاتيح فقط في خزانة مشفرة
مهارة ضارة تقرأ $OPENAI_KEYتحصل على wdn_placeholder_... — غير مفيد
برنامج سرقة يستهدف تكوين الوكيليجد فقط رموزًا نائبة
حقن المطالبة يسرب المفتاحالمفتاح لا يكون أبدًا في نافذة سياق الوكيل
سجلات الوكيل تحتوي على بيانات اعتمادالسجلات تحتوي فقط على سلاسل نائبة
اختراق كامل للوكيللدى المهاجم نائب عديم الفائدة
هروب التكلفة من وكيل متكررحد معدل لكل بيانات اعتماد لكل وكيل
الأداةما تفعلهكيف يختلف wardn
مديري الأسرار (Vault, AWS SM, 1Password)تخزين آمن + استرجاعالوكيل لا يزال يحصل على المفتاح الحقيقي في وقت التشغيل. يضمن Wardn أن الوكيل لا يلمسه أبدًا.
Varlockالتحقق من .env القائم على المخطط + تكوين آمن للذكاء الاصطناعييركز على إدارة التكوين وفحص التسريبات. يقوم Wardn بحقن بيانات الاعتماد في وقت التشغيل — لا يدخل المفتاح أبدًا في عملية الوكيل.
OpenRouterتوجيه API + إدارة المفاتيحيثق في العميل بمفتاح API. Wardn لا يفعل — الوكيل يحمل نائبًا عديم الفائدة.
dotenv + .gitignoreإبقاء الأسرار خارج gitالمفاتيح لا تزال في الذاكرة، ومتغيرات البيئة، والسجلات. يزيلها Wardn من الثلاثة.
شبكات الخدمات (Istio, Linkerd)المصادقة بين الخدماتتحل mTLS على مستوى البنية التحتية. يحل Wardn مصادقة الوكيل إلى API حيث الوكيل نفسه غير موثوق.