Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
UAP-protocol — Un protocole filaire unifié, axé sur la sécurité, pour l'accès aux outils et la coordination des agents. UAP élimine la CVE-2025-49596 et les vulnérabilités d'empoisonnement des outils MCP grâce à des CapabilityCards signées Ed25519, au mTLS obligatoire, à l'authentification IdP Keycloak et à un sandboxing Docker éphémère par appel. | Kitploit
Outils/GitHubGitHub/rajsidwadkar/uap-protocol
Authentification et AutorisationFrameworks de Tests d'IntrusionSécurité des ConteneursOutils de Chiffrement/DéchiffrementAnalyse des VulnérabilitésScripting et AutomatisationSécurité CloudDevSecOps

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Utilitaires et Frameworks
Gestion des Identités et des Accès (IAM)
Sécurité des API
GitHubrajsidwadkar/uap-protocol

UAP-protocol

Voir le dépôt
122il y a 3 moisPas encore vérifié

À propos

Un protocole filaire unifié, axé sur la sécurité, pour l'accès aux outils et la coordination des agents. UAP élimine la CVE-2025-49596 et les vulnérabilités d'empoisonnement des outils MCP grâce à des CapabilityCards signées Ed25519, au mTLS obligatoire, à l'authentification IdP Keycloak et à un sandboxing Docker éphémère par appel.

Partager
VECTOR — Le faucon de la passerelle UAP

 ██╗   ██╗ █████╗ ██████╗
 ██║   ██║██╔══██╗██╔══██╗
 ██║   ██║███████║██████╔╝
 ██║   ██║██╔══██║██╔═══╝
 ╚██████╔╝██║  ██║██║
  ╚═════╝ ╚═╝  ╚═╝╚═╝

Universal Agent Protocol

Un protocole de transmission unifié, orienté sécurité, pour l'accès aux outils, la coordination des agents et les RPC structurés. Conçu pour combler CVE-2025-49596 et la classe de vulnérabilités d'empoisonnement d'outils et d'évasion de sandbox que MCP a laissées structurellement ouvertes.

License: Apache 2.0 TypeScript Node Python Status


Démarrage rapide en 30 secondes

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
curl http://localhost:3000/health
# {"status":"ok","version":"1.0.0"}

Cela démarre Keycloak sur :8080 et la passerelle UAP sur :3000. La passerelle applique le mTLS, vérifie les CapabilityCards signées en Ed25519 et exécute chaque appel d'outil dans un conteneur Docker éphémère. Aucune configuration requise au-delà de la paire de clés générée.


Architecture

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)]

Couches hexagonales — le domaine n'a aucune dépendance d'E/S. Chaque préoccupation d'infrastructure se trouve derrière une interface de port typée. Remplacez Docker par WASM, Keycloak par Auth0, Pino par un exportateur SIEM — aucun impact sur le domaine.

CoucheContenuDépendances
DomaineUapEnvelope, CapabilityCard, AuditEvent, TaskAucune — stdlib uniquement
ApplicationInvokeToolUseCase, DelegateTaskUseCase, ValidateCardUseCasePorts du domaine uniquement
InfrastructureKeycloakAuthAdapter, DockerSandboxAdapter, Ed25519SignerAdapter, PinoAuditAdapterPorts applicatifs + bibliothèques externes
TransportAnalyseur de trames UAP-RPC, passerelle Fastify, gestionnaires SSE/WebSocketInfrastructure + sérialiseurs du domaine

UAP vs MCP vs A2A vs JSON-RPC 2.0

FonctionnalitéUAPMCPA2AJSON-RPC 2.0
Authentification obligatoire✅ mTLS + JWT toujours❌ Optionnel⚠️ Clé API uniquement❌ Aucune
Intégrité des métadonnées d'outil✅ Charge utile signée Ed25519❌ Mutation possible après publication❌ Aucune signature❌ Aucune signature
Modèle de sandbox✅ Docker éphémère par appel⚠️ Niveau serveur uniquement❌ Aucun❌ Aucun
Découverte d'agents✅ Hub-and-spoke · N connexions❌ HTTP direct en N²⚠️ Basée sur DNS❌ Aucune
Piste d'audit✅ Journal d'ajout natif au protocole❌ Aucune❌ Aucune❌ Aucune
Traçage distribué✅ W3C TraceContext obligatoire❌ Aucun❌ Aucun❌ Aucun
Validation de schéma✅ AJV au niveau transport⚠️ Zod optionnel❌ Aucune❌ Aucune
Plafond de durée de vie du jeton✅ 15 min imposées❌ Non imposé❌ Non imposé❌ N/A
Sémantique de lot✅ séquentiel · parallèle · transactionnel❌ Non défini❌ Aucune⚠️ Ambiguë
Charges utiles binaires✅ Trames natives❌ Base64 uniquement❌ Base64 uniquement❌ Base64 uniquement
Modèle IdP✅ IdP externe uniquement❌ Le serveur est son propre fournisseur OAuth⚠️ Variable❌ Aucun
Adaptateurs de pont✅ Ponts MCP + A2A livrés en phase 2❌ Aucun pont❌ Aucun pont❌ Aucun pont
Mise à l'échelle horizontale✅ Sans état · n'importe quel répartiteur de charge❌ Sessions sticky⚠️ Variable❌ Aucune

Pourquoi UAP existe

  • CVE-2025-49596 (empoisonnement d'outils via des métadonnées non signées). Les descriptions d'outils MCP sont modifiables après publication. Un attaquant peut injecter des instructions malveillantes dans les noms ou descriptions d'outils après le déploiement — le client n'a aucun moyen de détecter la falsification. UAP place toutes les métadonnées d'outils dans la charge utile de la CapabilityCard signée en Ed25519. Toute mutation après signature invalide la signature et la passerelle rejette la carte avant d'exécuter quoi que ce soit.

  • CWE-284 / classe des évasions de sandbox. MCP exécute les outils au niveau du processus serveur. Une traversée de chemin ou une injection de processus dans un outil atteint le système de fichiers et le réseau de l'hôte. UAP crée un conteneur Docker neuf par appel — rootfs en lecture seule, CapDrop: ALL, plafond de 128 Mo de RAM, réseau désactivé par défaut. Le conteneur est détruit après la réponse. Aucune surface d'attaque persistante entre les appels.

  • CWE-287 / authentification par député confus. MCP agit comme son propre fournisseur OAuth, ce qui en fait à la fois le serveur de ressources et le serveur d'autorisation. C'est le schéma classique du député confus. UAP sépare ces rôles : la passerelle est un pur serveur de ressources. Keycloak (ou tout IdP externe) est l'unique autorité. Les JWT sont vérifiés auprès d'un point de terminaison JWKS distant et strictement plafonnés à 15 minutes.


Format de trame

Chaque message UAP utilise la même enveloppe. Le bloc auth transporte un JWT à portée limitée et une référence à la CapabilityCard signée de l'agent. La passerelle vérifie les deux avant que la requête n'atteigne le moindre code applicatif.

{
  "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
}

Paquets

UAP-protocol/
├── packages/
│   ├── gateway/      @uap/gateway   — Fastify-based 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 keypair for local dev
│   └── keycloak-bootstrap.ts        — Idempotent Keycloak realm setup
└── docker/
    └── sandbox/                     — Base image for zero-trust tool execution

Client TypeScript

import { UapClient, ClientCredentialsTokenProvider } from "@uap/sdk-ts";
Télécharger l’outil