Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mcpguard-dynamic — Sandbox eBPF a nivel de kernel para asegurar las llamadas a herramientas de agentes LLM realizadas a través del Protocolo de Contexto de Modelo (MCP) | Kitploit
Herramientas/GitHubGitHub/facebook/mcpguard-dynamic
Herramientas DefensivasSeguridad de ContenedoresAnálisis Dinámico (Sandboxing)Análisis de CódigoVirtualización de SeguridadDetección de IntrusionesPapers e InvestigaciónMala ConfiguraciónAprendizaje y EducaciónRespuesta a IncidentesSeguridad de IA
68982hace 15 díasRevisado por Kitploit
GitHubfacebook/mcpguard-dynamic

mcpguard-dynamic

Sandbox eBPF a nivel de kernel para asegurar las llamadas a herramientas de agentes LLM realizadas a través del Protocolo de Contexto de Modelo (MCP)

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

MCPGuard-Dynamic

Aislamiento a nivel de kernel para llamadas a herramientas de agentes LLM realizadas a través del Model Context Protocol (MCP).

MCPGuard actúa como un proxy transparente entre un cliente MCP (el agente / runner) y un subproceso de servidor MCP, aplicando tres capas de defensa a cada invocación de herramienta. La capa más baja está implementada en eBPF y aplica políticas de capacidades en el límite de llamadas al sistema, de modo que un servidor MCP malicioso no puede eludir la política codificando comportamientos sensibles directamente en su propia implementación.

Este repositorio contiene el proxy, los programas eBPF, el benchmark de 14 servidores / 82 casos y el arnés de evaluación utilizados en el artículo adjunto Kernel-Level Sandboxing for LLM Agent Tool Calls via eBPF.

Arquitectura

CapaComponentePropósito
L1proxy/policy_engine.pyPolítica de capacidades por servidor derivada del esquema MCP de cada herramienta; listas de permitidos para rutas, destinos de red, procesos, variables de entorno.
L2proxy/argument_validator.pyInspección a nivel de aplicación de los argumentos de llamadas a herramientas: canonicalización de rutas, validación de URL, detección de inyección de prompts, detección de fuga de entorno / inyección de comandos, escaneo de claves sensibles, sanitización de respuestas.
L3ebpf/*.bpf.c + proxy/ebpf_sandbox.pyAplicación a nivel de SO: tres programas BPF LSM (file_guard, net_guard, proc_guard) interceptan open() / connect() / execve(), y un programa tracepoint (fork_guard) rastrea procesos hijos mediante sched_process_fork para que la política se propague a través de los forks.

Seis configuraciones de defensa conmutables (proxy/proxy_base.py) cubren el espacio de ablación utilizado en el artículo: C0 (passthrough), C-AB (línea base AgentBound), C-app (L1 + L2), C-ebpf (solo L3), C-full (L1 + L2 + L3), C-AB+ebpf (AgentBound + L3).

Estructura del repositorio

.
├── proxy/        Motor de políticas L1, validador de argumentos L2, controlador eBPF L3, línea base AgentBound
├── ebpf/         Fuentes C de BPF para los guardas de file/net/proc/fork + Makefile + vmlinux.h
├── policies/     Políticas de capacidades JSON por servidor (valores por defecto + anulaciones)
├── servers/      14 servidores MCP: 11 en Python (filesystem, notes, weather, shell, sqlite, git, env + variantes maliciosas/troyanizadas) + 3 en JavaScript (servers/js/)
├── test_cases/   82 escenarios de benchmark en 7 categorías (file_read, exfiltration, env_leak, sandbox_escape, priv_escalation, cross_language, benign)
├── notes_data/   170 fixtures JSON de notas sintéticas válidas utilizadas por notes_server
├── runner/       evaluate.py, aggregate.py, agentbound_check.py, ebpf_edge_tests.py, latency_benchmark.py, override_workflow.py, smoke_test.py
└── EXECUTION_PLAN.md   Instrucciones de reproducción fase por fase

Requisitos

  • Kernel de Linux 6.x con BPF LSM habilitado (CONFIG_BPF_LSM=y, lsm=bpf en la línea de comandos del kernel)
  • clang 21 o superior con soporte para BPF
  • bpftool para cargar programas y mapas BPF
  • Python 3.12 (solo biblioteca estándar — sin dependencias de terceros)
  • Node.js 16+ (solo para los servidores MCP en JavaScript bajo servers/js/)

Inicio rápido

# Build the eBPF programs
cd ebpf && make && cd ..

# Smoke test (one server, a handful of cases)
python3 runner/smoke_test.py

# Full benchmark for one configuration
python3 runner/evaluate.py --config C-full --run-id trial

# Aggregate a reproduced run
python3 runner/aggregate.py --run-id trial

# Reproduce the steady-state latency table after installing eBPF
sudo python3 runner/latency_benchmark.py --run-id codex_20260523_latency --iterations 100 --warmup 20

# Reproduce the audit/override workflow
python3 runner/override_workflow.py --run-id codex_20260523_override

# Run focused eBPF edge tests after installing eBPF
sudo python3 runner/ebpf_edge_tests.py --run-id codex_20260523_ebpf_edges

# Run AgentBound-style baseline conformance checks
python3 runner/agentbound_check.py --run-id codex_20260523_agentbound

C-ebpf, C-full y C-AB+ebpf ahora fallan de forma segura (fail closed) si los programas BPF LSM y los mapas fijados (pinned maps) no están disponibles. Ejecútalos solo después de instalar la capa eBPF con privilegios de root.

Resultados destacados

Tasa de Prevención de Ataques (APR), APR de ataques viables (V-APR) y Tasa de Falsos Positivos (FPR) para la ejecución única fijada codex_20260523_full (benchmark de 14 servidores, 82 casos; este es el perfil por categoría fx_r — la Tabla 1 del artículo reporta medias de N=5, por lo que C-app aquí se lee 13/48 frente a la media de 12/48):

ConfigAPRV-APRViables bloqueadosFPR
C021.3%0.0%0/480/21
C-AB37.7%20.8%10/480/21
C-app42.6%27.1%13/480/21
C-ebpf60.7%50.0%24/480/21
C-full68.9%60.4%29/480/21
C-AB+ebpf67.2%58.3%28/480/21

APR incluye ataques que fallan intrínsecamente bajo C0. V-APR utiliza solo ataques que tienen éxito bajo C0 como denominador, lo cual es la medida más conservadora de cobertura de defensa.

El benchmark de latencia de llamadas benignas repetidas se almacena en el espacio de trabajo interno del artículo como results/latency/codex_20260523_latency.md. Mide BN-01 (filesystem_server.read_file) con 20 llamadas de calentamiento y 100 llamadas medidas por configuración; C-full añade +0.488 ms de latencia mediana respecto a C0 y se mantiene en 1.141 ms de p95 para esta llamada benigna fija. El árbol público de CodeSync excluye results/, por lo que los usuarios externos regeneran este artefacto con el comando anterior.

El flujo de trabajo de auditoría/anulación se almacena internamente como results/audit/codex_20260523_override.md. Demuestra cómo una denegación benigna se registra como un evento de auditoría estructurado y se resuelve añadiendo una anulación de operador con alcance limitado bajo un diseño compatible con policies/overrides.

Las pruebas de borde focalizadas de eBPF se almacenan internamente como results/ebpf_edges/codex_20260523_ebpf_edges.md. Cubren la disponibilidad de mapas con fallo seguro (fail-closed), el comportamiento de permitir escritura en el espacio de trabajo, la denegación en el límite de prefijo de directorio, la denegación de staging en /tmp y la denegación de exfiltración a localhost.

La verificación de línea base estilo AgentBound se almacena internamente como results/agentbound/codex_20260523_agentbound.md. Documenta que C-AB es una reproducción a nivel de aplicación por servidor y verifica la cobertura esperada visible en argumentos y el punto ciego oculto en la implementación.

Modelo de amenazas

El servidor MCP se trata como no confiable. Puede ser benigno pero mal configurado, intencionalmente malicioso o un fork troyanizado de un servidor legítimo. El agente / runner y el SO anfitrión son confiables. La capa eBPF asume que el kernel no está comprometido; las escaladas de privilegios dentro del kernel (CWE-269 en módulos del kernel) quedan fuera del alcance.

Citación

Se añadirá aquí una entrada BibTeX una vez que se publique el artículo.

Contribuciones

Consulte CONTRIBUTING.md. Todos los contribuyentes deben firmar el CLA de Meta.

Seguridad

Para reportar un problema de seguridad, consulte SECURITY.md. Por favor, no abra issues públicos en GitHub para informes de seguridad.

Descargar herramienta