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:| Tipo | Qué es |
|---|---|
skill | Una capacidad empaquetada — un manifiesto más un conjunto de herramientas y un fragmento de prompt de sistema. |
mcp_server | Un servidor MCP bring-your-own registrado como un artefacto gobernado. |
plugin | Una extensión estilo plugin. |
builtin, 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 deinfo,
warn o error:
| Pasada | Marca | Severidad |
|---|---|---|
| prompt_injection | Texto del manifiesto que intenta anular instrucciones (ignore previous instructions, you are now, un system: al inicio…). | warn |
| tool_creep | Nombres de herramienta que el manifiesto usa pero no declaró en allowed_tools. | error |
| network_egress | Hosts HTTP(S) en el manifiesto que no están aprobados en los alcances de red de la skill. | warn |
| fs_write_unsafe | Un alcance de sistema de archivos en modo escritura sobre un path fuera de /tmp (seguro contra traversal). | error |
| data_scope | Alcances de datos sensibles (pii, financial, customer). | info |
| unsigned | Una skill de registry sin firma. | warn |
error →
blocked; en caso contrario cualquier warn → flagged; 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:| Capacidad | Peso |
|---|---|
| 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 |
| Banda | Puntuación |
|---|---|
low | 0–25 |
medium | 26–50 |
high | 51–75 |
critical | 76–100 |
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:| Modo | Efecto en tiempo de ejecución |
|---|---|
allow | La skill no impone nada propio; los veredictos de regla deciden. |
quarantine | Escala 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. |
block | Fuerza un deny sobre las herramientas de la skill. |
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 — consource = 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:- Atribución. La llamada se empareja con una skill por sus
allowed_toolsdeclarados, luego por el prefijo de espacio de nombresmcp_server, luego por un fallback de aplicación más restrictivo a nivel de todo el espacio de trabajo. - Veredicto de regla. Las reglas de la política se ejecutan como de
costumbre — y el
skill_name_globde una regla te permite acotar una regla a skills específicas. - Sobrescritura de modo. Una skill
blockfuerza un deny; una skillquarantineescala cualquier cosa por debajo de deny apending_approval;allowdeja 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
- Register —
POST /skillsvalida 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.
- Rescan —
POST /skills/:id/rescanreejecuta 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 ruta | Rol | Propósito |
|---|---|---|
GET /api/workspace/firewall/skills | Member | Lista skills (redactadas; filtra por ?kind= y ?source=). |
GET /api/workspace/firewall/skills/:id | Developer+ | Registro completo de la skill. |
POST /api/workspace/firewall/skills | Developer+ | Registrar + escanear (409 en nombre duplicado). |
PUT /api/workspace/firewall/skills/:id | Developer+ | Actualizar + reescanear. |
POST /api/workspace/firewall/skills/:id/rescan | Developer+ | Reescanear; emite un evento ante degradación. |
DELETE /api/workspace/firewall/skills/:id | Developer+ | Eliminación suave. |
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
¿En qué se diferencia esto del DSL de reglas?
¿En qué se diferencia esto del DSL de reglas?
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.¿Qué impide que una skill maliciosa declare un manifiesto limpio?
¿Qué impide que una skill maliciosa declare un manifiesto limpio?
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.
¿Tengo que registrar cada skill manualmente?
¿Tengo que registrar cada skill manualmente?
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.
