Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
UAP-protocol — A unified, security-first wire protocol for tool access and agent coordination. UAP eliminates CVE-2025-49596 and MCP tool-poisoning vulnerabilities using Ed25519-signed CapabilityCards, mandatory mTLS, Keycloak IdP authentication, and per-call ephemeral Docker sandboxing. | Kitploit
Tools/GitHubGitHub/rajsidwadkar/uap-protocol
Authentication & AuthorizationPenetration Testing FrameworksContainer SecurityEncryption/Decryption ToolsVulnerability AnalysisScripting & AutomationCloud SecurityDevSecOpsUtilities & FrameworksIdentity & Access Management (IAM)API Security
1vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubrajsidwadkar/uap-protocol

UAP-protocol

A unified, security-first wire protocol for tool access and agent coordination. UAP eliminates CVE-2025-49596 and MCP tool-poisoning vulnerabilities using Ed25519-signed CapabilityCards, mandatory mTLS, Keycloak IdP authentication, and per-call ephemeral Docker sandboxing.

Repository anzeigen
VECTOR — Der UAP Gateway Falcon

root@kitploit:~
 ██╗   ██╗ █████╗ ██████╗
 ██║   ██║██╔══██╗██╔══██╗
 ██║   ██║███████║██████╔╝
 ██║   ██║██╔══██║██╔═══╝
 ╚██████╔╝██║  ██║██║
  ╚═════╝ ╚═╝  ╚═╝╚═╝

Universal Agent Protocol

A unified, security-first wire protocol for tool access, agent coordination, and structured RPC. Built to close CVE-2025-49596 and the class of tool-poisoning and sandbox-escape vulnerabilities that MCP left structurally open.

License: Apache 2.0 TypeScript Node Python Status


30-Sekunden-Schnellstart

root@kitploit:~
git clone https://github.com/RajSidwadkar/UAP-protocol
cd UAP-protocol
npm install
npx tsx scripts/generate-keypair.ts
docker compose -f docker-compose.dev.yml up -d
root@kitploit:~
curl http://localhost:3000/health
# {"status":"ok","version":"1.0.0"}

Das startet Keycloak auf :8080 und das UAP Gateway auf :3000. Das Gateway erzwingt mTLS, verifiziert Ed25519-signierte CapabilityCards und führt jeden Tool-Aufruf in einem ephemeren Docker-Container aus. Es ist keine Konfiguration über das generierte Schlüsselpaar hinaus erforderlich.


Architektur

root@kitploit:~
graph TD
    A[Client / Agent SDK] -->|mTLS + JWT + card_sig| B[UAP Gateway<br/>Fastify · port 3000]

    B --> C{8-Stage Pipeline}

    C --> C1[1 · Frame parse<br/>UapMessageFactory]
    C1 --> C2[2 · Schema validate<br/>AJV against schema_ref]
    C2 --> C3[3 · Token verify<br/>Keycloak JWKS · max 15 min]
    C3 --> C4[4 · Scope enforce<br/>PermissionEnforcer]
    C4 --> C5[5 · Card verify<br/>Ed25519 signature check]
    C5 --> C6[6 · Sandbox execute<br/>Docker · CapDrop ALL · 128 MB]
    C6 --> C7[7 · Audit emit<br/>AuditEventBus · non-blocking]
    C7 --> C8[8 · Response<br/>UapResponseEnvelope]

    B --> R[(Service Registry<br/>InMemory · Redis)]
    B --> KC[(Keycloak IdP<br/>OAuth 2.1 · PKCE)]
    B --> OT[(OpenTelemetry<br/>W3C TraceContext)]
    B --> AU[(Audit Log<br/>append-only NDJSON)]

Hexagonale Schichten – die Domäne hat null I/O-Abhängigkeiten. Jedes Infrastruktur-Problem sitzt hinter einer typisierten Port-Schnittstelle. Tausche Docker gegen WASM, Keycloak gegen Auth0, Pino gegen einen SIEM-Exporter – null Auswirkungen auf die Domäne.


UAP vs. MCP vs. A2A vs. JSON-RPC 2.0


Warum UAP existiert

  • CVE-2025-49596 (Tool-Poisoning durch unsignierte Metadaten). MCP-Toolbeschreibungen sind nach der Veröffentlichung veränderbar. Ein Angreifer kann nach der Bereitstellung bösartige Anweisungen in Tool-Namen oder -Beschreibungen einschleusen – der Client hat keine Möglichkeit, Manipulationen zu erkennen. UAP legt alle Tool-Metadaten in die Ed25519-signierte CapabilityCard-Nutzlast. Jede Mutation nach der Signatur macht die Signatur ungültig und das Gateway lehnt die Karte ab, bevor etwas ausgeführt wird.

  • CWE-284 / Sandbox-Escape-Klasse. MCP führt Tools auf Server-Prozessebene aus. Ein Path Traversal oder eine Prozessinjektion in einem beliebigen Tool erreicht das Host-Dateisystem und -Netzwerk. UAP erstellt pro Aufruf einen neuen Docker-Container – read-only rootfs, CapDrop: ALL, 128 MB RAM-Limit, Netzwerk standardmäßig deaktiviert. Der Container wird nach der Antwort zerstört. Es gibt keine persistente Angriffsfläche zwischen den Aufrufen.

  • CWE-287 / Confused-Deputy-Authentifizierung. MCP fungiert als eigener OAuth-Anbieter und ist sowohl Ressourcenserver als auch Autorisierungsserver. Dies ist das klassische Confused-Deputy-Muster. UAP trennt diese Rollen: Das Gateway ist ein reiner Ressourcenserver. Keycloak (oder ein beliebiger externer IdP) ist die alleinige Autorität. JWTs werden gegen einen entfernten JWKS-Endpunkt verifiziert und auf 15 Minuten hart begrenzt.


Drahtformat

Jede UAP-Nachricht verwendet denselben Envelope. Der auth-Block trägt ein begrenztes JWT und einen Verweis auf die signierte CapabilityCard des Agents. Das Gateway verifiziert beide, bevor die Anfrage den Anwendungscode erreicht.

root@kitploit:~
{
  "uap": {
    "version": "1.0",
    "type": "tool_call",
    "id": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
    "trace": {
      "traceparent": "00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01"
    },
    "auth": {
      "token": "eyJhbGciOiJSUzI1NiJ9...",
      "scope": ["tool:read"],
      "card_sig": "ed25519:a1b2c3d4..."
    }
  },
  "method": "tools/invoke",
  "schema_ref": "uap:tool.invoke/v1",
  "params": {
    "tool_id": "db:query",
    "input": { "sql": "SELECT 1" }
  },
  "ack": true
}

Pakete

root@kitploit:~
UAP-protocol/
├── packages/
│   ├── gateway/      @uap/gateway   — Fastify-basiertes UAP Gateway
│   ├── sdk-ts/       @uap/sdk-ts    — TypeScript-Client + Server-SDK
│   └── sdk-py/       uap-sdk        — Python-Async-SDK (httpx + FastAPI)
├── scripts/
│   ├── generate-keypair.ts          — Ed25519-Schlüsselpaar für lokale Entwicklung
│   └── keycloak-bootstrap.ts        — Idempotentes Keycloak-Realm-Setup
└── docker/
    └── sandbox/                     — Basis-Image für Zero-Trust-Tool-Ausführung

TypeScript-Client

root@kitploit:~
import { UapClient, ClientCredentialsTokenProvider } from "@uap/sdk-ts";

const client = new UapClient({
  gatewayUrl: "https://gateway.example.com",
  tokenProvider: new ClientCredentialsTokenProvider({
    tokenUrl: process.env.TOKEN_URL!,
    clientId: process.env.CLIENT_ID!,
    clientSecret: process.env.CLIENT_SECRET!,
  }),
});

const result = await client.invokeTool(
  "db:query",
  { sql: "SELECT * FROM users LIMIT 10" },
  ["tool:read"]
);

const task = await client.delegateTask(
  "summarizer",
  { text: "..." },
  ["task:submit"]
);

Python-Client

root@kitploit:~
from uap_sdk.client import UapClient, UapClientOptions
from uap_sdk.token import ClientCredentialsTokenProvider

async with UapClient(UapClientOptions(
    gateway_url="https://gateway.example.com",
    token_provider=ClientCredentialsTokenProvider(
        token_url=os.environ["TOKEN_URL"],
        client_id=os.environ["CLIENT_ID"],
        client_secret=os.environ["CLIENT_SECRET"],
    )
)) as client:
    result = await client.invoke_tool("db:query", {"sql": "SELECT 1"}, ["tool:read"])

FastAPI-Middleware

root@kitploit:~
from uap_sdk.middleware import uap_auth

@app.post("/summarize")
@uap_auth(scope=["task:submit"])
async def summarize(request: Request):
    claims = request.state.uap_claims  # typed AuthClaims
    ...

Einen bestehenden MCP-Server migrieren

Die CLI uap-migrate kapselt jeden MCP-Server in unter 5 Minuten als signierte UAP-CapabilityCard. Idempotent – eine erneute Ausführung auf einem bereits migrierten Server ist ein No-Op.

root@kitploit:~
node dist/cli/migrate.js mcp http://localhost:3001 \
  --issuer did:uap:my-org \
  --key config/dev.privkey.hex \
  --out ./uap-cards

# → ./uap-cards/did:uap:my-org.card.json

CapabilityCard-Signierung

Tool-Namen, -Beschreibungen und Parameterschemata sind Teil der Ed25519-signierten Nutzlast. Das Mutieren eines Feldes nach der Signatur macht die Signatur ungültig – was Tool-Poisoning strukturell verhindert.

root@kitploit:~
const signed = await signer.sign({
  issuer: "did:uap:my-agent",
  version: "1.0.0",
  tools: [{
    id: "db:query",
    description: "Run a read-only SQL query",
    inputSchema: { type: "object", required: ["sql"] },
    scopes: ["tool:read"]
  }],
  scopes: ["tool:read"],
  issuedAt: Date.now(),
  expiresAt: Date.now() + 86_400_000 * 30
});
// signed.signature === "ed25519:a1b2c3..."

Umgebungsvariablen


Kernabhängigkeiten


Mitwirken

Branch-Benennung: feat/<sprint>-<task>-<slug> – z.B. feat/s2-2.1-mtls-keycloak

Jede Änderung folgt: Branch → npx tsc --noEmit + npx vitest run lokal → Commit → PR → Squash-Merge → Branch löschen. Keine CI-Abhängigkeit für lokale Entwicklung.

root@kitploit:~
# Alle Tests vor dem Commit ausführen
cd packages/gateway && npx vitest run
cd packages/sdk-ts  && npx vitest run
cd packages/sdk-py  && python -m pytest tests/ -v

Roadmap: Sprint 0 (Grundgerüst) → Sprint 1 (Schema + Signierung + RPC) → Sprint 2 (Sicherheitskern) → Sprint 3 (Gateway + Registry) → Sprint 4 (Bridge-Adapter) → Sprint 5 (SDKs + Docker-Image).


VECTOR

UAP · Universal Agent Protocol · 2026

SPDX-License-Identifier: Apache-2.0

Tool herunterladen
SchichtInhaltAbhängigkeiten
DomäneUapEnvelope, CapabilityCard, AuditEvent, TaskKeine – nur Stdlib
AnwendungInvokeToolUseCase, DelegateTaskUseCase, ValidateCardUseCaseNur Domänen-Ports
InfrastrukturKeycloakAuthAdapter, DockerSandboxAdapter, Ed25519SignerAdapter, PinoAuditAdapterApp-Ports + externe Bibliotheken
TransportUAP-RPC frame parser, Fastify gateway, SSE/WebSocket handlersInfrastruktur + Domänen-Serialisierer
MerkmalUAPMCPA2AJSON-RPC 2.0
Erforderliche Authentifizierung✅ mTLS + JWT immer❌ Optional⚠️ Nur API-Schlüssel❌ Keine
Metadatenintegrität von Tools✅ Ed25519-signierte Nutzlast❌ Post-Publish-Mutation möglich❌ Keine Signatur❌ Keine Signatur
Sandbox-Modell✅ Pro Aufruf ephemerer Docker⚠️ Nur Server-Ebene❌ Keine❌ Keine
Agentenerkennung✅ Hub-and-Spoke · N Verbindungen❌ N² direkt HTTP⚠️ DNS-basiert❌ Keine
Prüfpfad✅ Protokoll-eigener Nur-Anhängen-Log❌ Keine❌ Keine❌ Keine
Verteilte Ablaufverfolgung✅ W3C TraceContext verpflichtend❌ Keine❌ Keine❌ Keine
Schema-Validierung✅ AJV auf Transportebene⚠️ Optionales Zod❌ Keine❌ Keine
Token-Lebensdauerbegrenzung✅ 15 Min. erzwungen❌ Nicht erzwungen❌ Nicht erzwungen❌ N/A
Batch-Semantik✅ seriell · parallel · transaktional�️ Nicht definiert❌ Keine⚠️ Mehrdeutig
Binäre Nutzlasten✅ Native Frames❌ Nur Base64❌ Nur Base64❌ Nur Base64
IdP-Modell✅ Nur externer IdP❌ Server ist eigener OAuth-Anbieter⚠️ Variiert❌ Keine
Bridge-Adapter✅ MCP + A2A Bridges in Phase 2❌ Keine Bridge❌ Keine Bridge❌ Keine Bridge
Horizontale Skalierung✅ Zustandslos · jeder Load Balancer❌ Sticky Sessions⚠️ Variiert❌ Keine
VariableBeschreibungStandard
KEYCLOAK_URLKeycloak-Basis-URLhttp://localhost:8080
KEYCLOAK_REALMRealm-Nameuap
UAP_AUDIENCEJWT-Audience-Anspruchuap-gateway
UAP_SIGNING_KEY_PATHPfad zum Ed25519-privaten Schlüssel (Hex)config/dev.privkey.hex
UAP_DOCKER_SOCKETDocker-Socket-Pfad/var/run/docker.sock
UAP_AUDIT_LOG_DIRNur-Anhängen-Audit-NDJSON-Log-Verzeichnis/var/log/uap
UAP_GATEWAY_PORTGateway-Listening-Port3000
UAP_MTLS_CERTServer-TLS-Zertifikat (PEM)certs/server.crt
UAP_MTLS_KEYServer-TLS-privater Schlüssel (PEM)certs/server.key
UAP_MTLS_CACA-Zertifikat für Client-Zertifikatsverifikationcerts/ca.crt
OTEL_EXPORTER_OTLP_ENDPOINTOpenTelemetry-Collector-Endpunkthttp://localhost:4318
REDIS_URLRedis für Multi-Instanz-Registry (optional)—
PackageVersionZweck
fastify^4.27Gateway-HTTP-Server
zod^3.23Envelope-Schema und Typinferenz
@noble/curves^1.4Ed25519-Signierung
jose^5.4JWT-Verifikation, JWKS-Client
ajv^8.16Transportebenen-Parametervalidierung
dockerode^4.0Zero-Trust-Sandbox-Adapter
pino^9.2Nur-Anhängen-strukturiertes Audit-Log
ulid^2.3Sortierbare eindeutige IDs
@opentelemetry/sdk-node^0.52Verteilte Ablaufverfolgung
ioredis^5.3Multi-Instanz-Service-Registry
@modelcontextprotocol/sdk^1.0MCP-Bridge-Adapter
httpx (Python)^0.27Asynchroner HTTP-Client für das Python-SDK
pydantic (Python)^2.7Python-Typvalidierung