Skip to content

Cómo elegir niveles de clasificación

Cada canal, servidor MCP, integración y plugin en Triggerfish debe tener un nivel de clasificación. Esta página te ayuda a elegir el correcto.

Los cuatro niveles

NivelQué significaLos datos fluyen hacia...
PUBLICSeguro para que cualquiera lo veaCualquier lugar
INTERNALSolo para tus ojos — nada sensible, pero no es públicoINTERNAL, CONFIDENTIAL, RESTRICTED
CONFIDENTIALContiene datos sensibles que nunca querrías que se filtraranCONFIDENTIAL, RESTRICTED
RESTRICTEDLo más sensible — legal, médico, financiero, PIISolo RESTRICTED

Los datos solo pueden fluir hacia arriba o lateralmente, nunca hacia abajo. Esta es la regla de no write-down y no se puede anular.

Dos preguntas que debes hacer

Para cualquier integración que estés configurando, pregunta:

1. ¿Cuáles son los datos más sensibles que esta fuente podría devolver?

Esto determina el nivel de clasificación mínimo. Si un servidor MCP podría devolver datos financieros, debe ser al menos CONFIDENTIAL — incluso si la mayoría de sus herramientas devuelven metadatos inofensivos.

2. ¿Me sentiría cómodo si los datos de la sesión fluyeran hacia este destino?

Esto determina el nivel de clasificación máximo que querrías asignar. Una clasificación más alta significa que el taint de la sesión se escala cuando lo usas, lo que restringe hacia dónde pueden fluir los datos después.

Clasificación por tipo de datos

Tipo de datosNivel recomendadoPor qué
Clima, páginas web públicas, zonas horariasPUBLICDisponible libremente para cualquiera
Tus notas personales, marcadores, listas de tareasINTERNALPrivado pero no dañino si se expone
Wikis internos, documentos de equipo, tableros de proyectoINTERNALInformación interna de la organización
Email, eventos de calendario, contactosCONFIDENTIALContiene nombres, horarios, relaciones
Datos de CRM, pipeline de ventas, registros de clientesCONFIDENTIALDatos sensibles de negocio, datos de clientes
Registros financieros, cuentas bancarias, facturasCONFIDENTIALInformación monetaria
Repositorios de código fuente (privados)CONFIDENTIALPropiedad intelectual
Registros médicos o de saludRESTRICTEDProtegidos legalmente (HIPAA, etc.)
Números de identificación gubernamental, SSN, pasaportesRESTRICTEDRiesgo de robo de identidad
Documentos legales, contratos bajo NDARESTRICTEDExposición legal
Claves de cifrado, credenciales, secretsRESTRICTEDRiesgo de compromiso del sistema

Servidores MCP

Al agregar un servidor MCP a triggerfish.yaml, la clasificación determina dos cosas:

  1. Taint de sesión — llamar a cualquier herramienta en este servidor escala la sesión a este nivel
  2. Prevención de write-down — una sesión ya contaminada por encima de este nivel no puede enviar datos hacia este servidor
yaml
mcp_servers:
  # PUBLIC — datos abiertos, sin sensibilidad
  weather:
    command: npx
    args: ["-y", "@mcp/server-weather"]
    classification: PUBLIC

  # INTERNAL — tu propio sistema de archivos, privado pero sin secrets
  filesystem:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/you/docs"]
    classification: INTERNAL

  # CONFIDENTIAL — accede a repos privados, issues de clientes
  github:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "keychain:github-pat"
    classification: CONFIDENTIAL

  # RESTRICTED — base de datos con PII, registros médicos, documentos legales
  postgres:
    command: npx
    args: ["-y", "@mcp/server-postgres"]
    env:
      DATABASE_URL: "keychain:prod-db-url"
    classification: RESTRICTED

DENEGACIÓN POR DEFECTO Si omites classification, el servidor se registra

como UNTRUSTED y el gateway rechaza todas las llamadas a herramientas. Debes elegir explícitamente un nivel. :::

Clasificaciones comunes de servidores MCP

Servidor MCPNivel sugeridoRazonamiento
Sistema de archivos (docs públicos)PUBLICSolo expone archivos disponibles públicamente
Sistema de archivos (directorio home)INTERNALArchivos personales, nada secreto
Sistema de archivos (proyectos de trabajo)CONFIDENTIALPuede contener código o datos propietarios
GitHub (solo repos públicos)INTERNALEl código es público pero los patrones de uso son privados
GitHub (repos privados)CONFIDENTIALCódigo fuente propietario
SlackCONFIDENTIALConversaciones del trabajo, posiblemente sensibles
Base de datos (analítica/reportes)CONFIDENTIALDatos de negocio agregados
Base de datos (producción con PII)RESTRICTEDContiene información de identificación personal
Clima / hora / calculadoraPUBLICSin datos sensibles
Búsqueda webPUBLICDevuelve información disponible públicamente
EmailCONFIDENTIALNombres, conversaciones, archivos adjuntos
Google DriveCONFIDENTIALLos documentos pueden contener datos sensibles de negocio

Canales

La clasificación del canal determina el techo — la sensibilidad máxima de los datos que se pueden entregar a ese canal.

yaml
channels:
  cli:
    classification: INTERNAL # Tu terminal local — seguro para datos internos
  telegram:
    classification: INTERNAL # Tu bot privado — igual que CLI para el propietario
  webchat:
    classification: PUBLIC # Visitantes anónimos — solo datos públicos
  email:
    classification: CONFIDENTIAL # El email es privado pero podría ser reenviado

PROPIETARIO vs. NO PROPIETARIO Para el propietario, todos los canales tienen el mismo nivel

de confianza — eres tú, sin importar qué aplicación uses. La clasificación del canal importa más para usuarios no propietarios (visitantes en webchat, miembros en un canal de Slack, etc.) donde controla qué datos pueden fluir hacia ellos. :::

Cómo elegir la clasificación del canal

PreguntaSi sí...Si no...
¿Podría un desconocido ver los mensajes en este canal?PUBLICSigue leyendo
¿Este canal es solo para ti personalmente?INTERNAL o superiorSigue leyendo
¿Los mensajes podrían ser reenviados, capturados o registrados por terceros?Limitar a CONFIDENTIALPodría ser RESTRICTED
¿El canal tiene cifrado de extremo a extremo y está bajo tu control total?Podría ser RESTRICTEDLimitar a CONFIDENTIAL

Qué pasa cuando te equivocas

Demasiado bajo (ej., servidor CONFIDENTIAL marcado como PUBLIC):

  • Los datos de este servidor no escalarán el taint de sesión
  • La sesión podría enviar datos clasificados a canales públicos — riesgo de filtración de datos
  • Esta es la dirección peligrosa

Demasiado alto (ej., servidor PUBLIC marcado como CONFIDENTIAL):

  • El taint de sesión se escala innecesariamente al usar este servidor
  • Se te bloqueará el envío a canales de menor clasificación después
  • Molesto pero seguro — es mejor errar hacia lo alto

Ante la duda, clasifica más alto. Siempre puedes bajarlo después

de revisar qué datos devuelve realmente el servidor. Sub-clasificar es un riesgo de seguridad; sobre-clasificar es solo una inconveniencia. :::

La cascada de taint

Entender el impacto práctico te ayuda a elegir sabiamente. Esto es lo que pasa en una sesión:

1. La sesión inicia en PUBLIC
2. Preguntas sobre el clima (servidor PUBLIC)       → el taint se mantiene en PUBLIC
3. Revisas tus notas (sistema de archivos INTERNAL) → el taint escala a INTERNAL
4. Consultas issues de GitHub (CONFIDENTIAL)        → el taint escala a CONFIDENTIAL
5. Intentas publicar en webchat (canal PUBLIC)      → BLOQUEADO (violación de write-down)
6. Reinicias la sesión                              → el taint vuelve a PUBLIC
7. Publicas en webchat                              → permitido

Si frecuentemente usas una herramienta CONFIDENTIAL seguida de un canal PUBLIC, estarás reiniciando seguido. Considera si la herramienta realmente necesita ser CONFIDENTIAL, o si el canal podría reclasificarse.

Rutas del sistema de archivos

También puedes clasificar rutas individuales del sistema de archivos, lo cual es útil cuando tu agente tiene acceso a directorios con sensibilidad mixta:

yaml
filesystem:
  default: INTERNAL
  paths:
    "/home/you/public": PUBLIC
    "/home/you/work/clients": CONFIDENTIAL
    "/home/you/legal": RESTRICTED

Lista de verificación

Antes de poner en producción una nueva integración:

  • [ ] ¿Cuáles son los peores datos que esta fuente podría devolver? Clasifica a ese nivel.
  • [ ] ¿La clasificación es al menos tan alta como la tabla de tipos de datos sugiere?
  • [ ] Si es un canal, ¿la clasificación es apropiada para todos los posibles destinatarios?
  • [ ] ¿Has probado que la cascada de taint funciona para tu flujo de trabajo típico?
  • [ ] Ante la duda, ¿clasificaste más alto en lugar de más bajo?

Páginas relacionadas