Saltar al contenido principal
Los agentes modernos instalan capacidades al vuelo: una skill desde un registro, un servidor MCP de la comunidad, un plugin desde una URL. Cada uno envía un manifiesto, un conjunto de herramientas y un conjunto de permisos solicitados — y cada uno es un riesgo de cadena de suministro en el momento en que un agente lo carga. Una skill que silenciosamente pide shell.exec y un alcance de red externo es exactamente el tipo de cosa que debería revisarse antes de que se ejecute, no descubrirse en un incidente. La gobernanza de Skills del Firewall es esa revisión. Cada capacidad instalable se registra como un registro con alcance de espacio de trabajo, es escaneada por un motor de riesgo determinista, se le asigna una banda de riesgo y un modo de aplicación, y — en tiempo de ejecución — ese modo cabalga encima de los veredictos de regla del firewall.

1. Qué es una “skill” aquí

Un registro de skill es una capacidad de agente instalable. Un único modelo generaliza tres tipos para que un solo plano de escaneo, puntuación y aprobación gobierne todo lo que un agente autoinstala:
TipoQué es
skillUna capacidad empaquetada — un manifiesto más un conjunto de herramientas y un fragmento de prompt de sistema.
mcp_serverUn servidor MCP bring-your-own registrado como un artefacto gobernado.
pluginUna extensión estilo plugin.
Cada registro también tiene una sourcebuiltin, registry, private, byo_mcp o auto_detected — que alimenta la evaluación de confianza.

2. El escáner

En el registro (y bajo demanda), el escáner ejecuta un conjunto de pasadas deterministas y sin dependencias sobre el manifiesto y los alcances declarados. Cada pasada emite hallazgos con una severidad de info, warn o error:
PasadaMarcaSeveridad
prompt_injectionTexto del manifiesto que intenta anular instrucciones (ignore previous instructions, you are now, un system: al inicio…).warn
tool_creepNombres de herramienta que el manifiesto usa pero no declaró en allowed_tools.error
network_egressHosts HTTP(S) en el manifiesto que no están aprobados en los alcances de red de la skill.warn
fs_write_unsafeUn alcance de sistema de archivos en modo escritura sobre un path fuera de /tmp (seguro contra traversal).error
data_scopeAlcances de datos sensibles (pii, financial, customer).info
unsignedUna skill de registry sin firma.warn
Los hallazgos se agregan en un veredicto de escaneo: cualquier errorblocked; en caso contrario cualquier warnflagged; en caso contrario clean.

3. Puntuación de riesgo y bandas

Los mismos hallazgos alimentan una puntuación de riesgo determinista (0–100, aditiva con topes por categoría). Los contribuyentes más pesados son las capacidades peligrosas:
CapacidadPeso
Ejecución de shell+30
Eval de código arbitrario+30
Escritura de sistema de archivos fuera de /tmp+25
Lectura de secretos+25
Egress de red externo+20
Los hallazgos de tool-creep, prompt-injection, egress y data-scope suman encima (cada uno con tope), una skill de registro sin firma suma +15, y las mitigaciones restan — una skill firmada es −10, un manifiesto sin hallazgos de error −5. La puntuación se mapea a una banda:
BandaPuntuación
low0–25
medium26–50
high51–75
critical76–100
Estos pesos están fijados por un test de guarda contra drift — no se mueven sin un cambio deliberado de la especificación, así que una banda significa lo mismo en cada espacio de trabajo.

4. Modo de aplicación

La banda y el veredicto juntos derivan un modo de aplicación — lo que el firewall realmente hace cuando se llama a una herramienta propiedad de esta skill:
ModoEfecto en tiempo de ejecución
allowLa skill no impone nada propio; los veredictos de regla deciden.
quarantineEscala cualquier cosa por debajo de un deny a pending_approval — las herramientas de la skill se ejecutan solo después de que un humano aprueba.
blockFuerza un deny sobre las herramientas de la skill.
La derivación toma el más estricto de dos señales: la banda (low/medium → allow, high → quarantine, critical → block) y el veredicto de escaneo (blocked → block, flagged → quarantine). Un solo hallazgo error que hace el veredicto blocked pondrá en cuarentena-o-bloqueará incluso cuando la banda numérica sea low — la dirección cautelosa. Un operador puede establecer el modo explícitamente; en un reescaneo el modo solo se ajusta más estricto, nunca relajando un block o quarantine que estableciste.

5. Señales de confianza

Dos señales más allá del escaneo estático informan cómo se trata una skill:
  • Publicadores firmados. Una skill que lleva una firma de un publicador de confianza se trata como más confiable (la mitigación de firma baja su puntuación de riesgo); una skill de registro sin firma se penaliza. Tú gestionas qué publicadores confía tu espacio de trabajo.
  • Reputación de recurso. El estatus de una skill puede ajustarse por su comportamiento en vivo a lo largo del tiempo — las denegaciones y anomalías elevan su riesgo, las rachas limpias lo bajan — así que un artefacto que se porta mal en producción deriva hacia la cuarentena incluso si su manifiesto escaneó limpio.

6. Capacidades auto-detectadas

El escáner no solo se ejecuta cuando registras algo a mano. Cuando un agente autoinstala una capacidad y sus herramientas cruzan el gateway por primera vez, el Firewall la auto-detecta (fuera de la ruta caliente, de forma asíncrona), sintetiza un manifiesto a partir de lo que observó, y ejecuta el mismo escaneo, puntuación y derivación de modo — con source = auto_detected.
Las capacidades auto-detectadas quedan en cuarentena hasta que se revisen. Cualquier cosa auto-detectada que de otro modo resolvería a allow se fija en quarantine (y critical se queda en block) hasta que un humano la revise. Una capacidad que nadie aprobó no obtiene un pase libre solo porque escaneó benigna — se ejecuta solo después de que la hayas mirado.

7. Aplicación en tiempo de ejecución

Cuando una llamada a herramienta llega al motor del firewall, se atribuye a una skill propietaria, luego el modo de la skill se aplica encima del veredicto de la regla:
  1. Atribución. La llamada se empareja con una skill por sus allowed_tools declarados, luego por el prefijo de espacio de nombres mcp_server, luego por un fallback de aplicación más restrictivo a nivel de todo el espacio de trabajo.
  2. Veredicto de regla. Las reglas de la política se ejecutan como de costumbre — y el skill_name_glob de una regla te permite acotar una regla a skills específicas.
  3. Sobrescritura de modo. Una skill block fuerza un deny; una skill quarantine escala cualquier cosa por debajo de deny a pending_approval; allow deja el veredicto intacto.
La atribución de skill falla cerrado. Si una herramienta no se puede atribuir (un error de DB sin caché, o una herramienta no declarada bajo una source curada), la llamada se retiene para revisión en vez de permitirse. Y el modo de skill es independiente del modo shadow — una skill en cuarentena o bloqueada se sigue aplicando incluso mientras una política está en lanzamiento shadow.

8. Ciclo de vida

  • RegisterPOST /skills valida y escanea de forma síncrona, devolviendo la skill más sus hallazgos y veredicto. El modo se deriva (o se honra tu modo explícito).
  • Update — reescanea el nuevo manifiesto; el modo se ajusta más estricto ante un escaneo empeorado pero nunca relaja tu block/quarantine almacenado.
  • RescanPOST /skills/:id/rescan reejecuta el escaneo; si el veredicto degrada de nuevo a flagged o blocked emite un evento del firewall para que el drift aparezca en tu feed.
  • Delete — elimina de forma suave y libera el espacio del nombre para reregistro.

API reference

Con alcance de espacio de trabajo; las lecturas de lista están abiertas a cualquier miembro (y redactan los campos que portan secretos), todo lo demás requiere Developer+.
Método y rutaRolPropósito
GET /api/workspace/firewall/skillsMemberLista skills (redactadas; filtra por ?kind= y ?source=).
GET /api/workspace/firewall/skills/:idDeveloper+Registro completo de la skill.
POST /api/workspace/firewall/skillsDeveloper+Registrar + escanear (409 en nombre duplicado).
PUT /api/workspace/firewall/skills/:idDeveloper+Actualizar + reescanear.
POST /api/workspace/firewall/skills/:id/rescanDeveloper+Reescanear; emite un evento ante degradación.
DELETE /api/workspace/firewall/skills/:idDeveloper+Eliminación suave.
Un register/update/rescan devuelve:
{
  "skill": { "id": 7, "name": "creepy", "risk_band": "high", "mode": "quarantine", "...": "..." },
  "findings": [
    { "kind": "tool_creep", "target": "shell.exec", "severity": "error" }
  ],
  "scan_verdict": "blocked"
}
Los nombres son únicos por espacio de trabajo a través de los tipos — una skill llamada github y un mcp_server llamado github colisionan en el mismo espacio de trabajo. Elige nombres distintos por artefacto.

FAQ

Las Reglas gatean llamadas a herramienta por nombre y argumentos. Las Skills gatean las capacidades que un agente carga — el paquete, su manifiesto y sus permisos solicitados — antes de que ninguna de sus herramientas se ejecute. El modo de la skill luego cabalga encima de lo que decidan las reglas, así que ambos se componen: una regla puede hacer allow de http.fetch en general mientras una skill en cuarentena que lo posee igual queda retenida.
Varias cosas. La detección de tool-creep marca las herramientas usadas pero no declaradas; la auto-detección reescanea a partir de lo que realmente cruzó el gateway, no solo el manifiesto declarado; el modo se ajusta más estricto (no más laxo) en el reescaneo; la reputación de recurso deriva un artefacto que se porta mal hacia la cuarentena con el tiempo; y la atribución falla cerrado cuando una herramienta no se puede atar a una skill declarada.
No. Registra las que quieras preaprobar; el resto se auto-detectan en el primer uso y quedan en cuarentena hasta que las revises. Activa el modo observe para sacar a la luz todo lo que un agente instala sin bloquear, luego endurece a partir de datos reales.

Véase también

¿Quieres profundizar en la seguridad de agentes? Las guías de Protege tus agentes (Zero Trust) sitúan esta función dentro de un flujo de trabajo de confianza cero.

Línea base de Agentes Seguros

Aplica una postura de confianza cero a cada capacidad de agente con un solo interruptor.

Guardrails agénticos

Guardrails diseñados para agentes autónomos que usan herramientas.