← Về thư mục
📄 / / proc / 774 / root / usr / local / lib / hermes-agent / SECURITY.es.md

Política de Seguridad de Hermes Agent

Este documento describe el modelo de confianza de Hermes Agent, identifica el único límite de seguridad que el proyecto trata como estructural y define el alcance para los informes de vulnerabilidades.

1. Reportar una Vulnerabilidad

Reporta de forma privada a través de GitHub Security Advisories o security@nousresearch.com. No abras issues públicos para vulnerabilidades de seguridad. Hermes Agent no opera un programa de recompensas por errores.

Un informe útil incluye:

Por favor lee el §2 y el §3 antes de enviar. Los informes que demuestren límites de una heurística en proceso que esta política no trate como un límite serán cerrados como fuera de alcance bajo el §3 — pero consulta el §3.2: siguen siendo bienvenidos como issues o pull requests regulares, simplemente no a través del canal de seguridad privado.


2. Modelo de Confianza

Hermes Agent es un agente personal de un solo inquilino. Su postura es por capas, y las capas no tienen el mismo peso. Los reportadores y operadores deben razonar sobre ellas en los mismos términos.

2.1 Definiciones

2.2 El Límite: Aislamiento a Nivel de SO

El único límite de seguridad contra un LLM adversario es el sistema operativo. Nada dentro del proceso del agente constituye contención — ni la puerta de aprobación, ni la redacción de salida, ni ningún escáner de patrones, ni ninguna lista de herramientas permitidas. Cualquier componente dentro del proceso que filtre la salida del LLM es una heurística operando sobre una cadena influenciada por el atacante, y esta política lo trata como tal.

Hermes Agent admite dos posturas de aislamiento a nivel de SO. Abordan diferentes amenazas y un operador debe elegir deliberadamente.

Aislamiento del backend de terminal

Un backend de terminal no predeterminado ejecuta comandos de shell emitidos por el LLM dentro de un contenedor, host remoto o sandbox en la nube. Las herramientas de archivos (read_file, write_file, patch) también se ejecutan a través de este backend, ya que están implementadas sobre el contrato del shell — no pueden alcanzar rutas que el backend no exponga.

Lo que confina: todo lo que el agente hace emitiendo operaciones de shell o de archivos. Lo que no confina: todo lo que el agente hace en su propio proceso Python. Eso incluye la herramienta de ejecución de código (lanzada como subproceso del host), subprocesos MCP (lanzados desde el entorno del agente), carga de plugins, despacho de hooks y carga de habilidades (todos importados en el intérprete del agente).

El aislamiento del backend de terminal es la postura correcta cuando la preocupación es que el LLM emita comandos de shell destructivos o escrituras de herramientas de archivo no deseadas, y el operador es de confianza.

Envoltura del proceso completo

La envoltura del proceso completo ejecuta todo el árbol de procesos del agente dentro de un sandbox. Cada ruta de código — shell, ejecución de código, MCP, herramientas de archivos, plugins, hooks, carga de habilidades — está sujeta a la misma política de sistema de archivos, red, proceso e (donde sea aplicable) inferencia.

Hermes Agent admite esto de dos maneras:

Bajo una envoltura de proceso completo, las heurísticas en proceso de Hermes Agent (§2.4) funcionan como prevención de accidentes en capas sobre un límite real. Esta es la postura soportada cuando el agente ingiere contenido de superficies que el operador no controla — la web abierta, email entrante, canales de múltiples usuarios, servidores MCP no confiables — y para despliegues en producción o compartidos.

Los operadores que ejecuten el backend local predeterminado con superficies de entrada no confiables, o que ejecuten un sandbox de backend de terminal esperando que contenga rutas de código que no pasan por el shell, están operando fuera de la postura de seguridad soportada.

2.3 Alcance de Credenciales

Hermes Agent filtra el entorno que pasa a sus componentes en proceso de menor confianza: subprocesos de shell, subprocesos MCP y el proceso hijo de ejecución de código. Las credenciales como las claves API del proveedor y los tokens del gateway se eliminan por defecto; las variables declaradas explícitamente por el operador o por una habilidad cargada se pasan.

Esto reduce la exfiltración casual. No es contención. Cualquier componente que se ejecute dentro del proceso del agente (habilidades, plugins, manejadores de hooks) puede leer lo que el agente mismo puede leer, incluidas las credenciales en memoria. La mitigación contra un componente en proceso comprometido es la revisión del operador antes de instalar (§2.4, §2.5), no el saneamiento del entorno.

2.4 Heurísticas en Proceso

Los siguientes componentes filtran o advierten sobre el comportamiento del LLM. Son útiles. No son límites.

2.5 Modelo de Confianza de Plugins

Los plugins se cargan en el proceso del agente y se ejecutan con todos los privilegios del agente: pueden leer las mismas credenciales, llamar a las mismas herramientas, registrar los mismos hooks e importar los mismos módulos que cualquier cosa incluida en el árbol. El límite para los plugins de terceros es la revisión del operador antes de instalar — la misma regla que las habilidades (§2.4), mencionado por separado porque los plugins son arquitectónicamente más pesados y a menudo incluyen sus propios servicios en segundo plano, oyentes de red y dependencias.

Un plugin malicioso o con errores no es una vulnerabilidad en Hermes Agent en sí mismo. Los errores en la ruta de instalación o descubrimiento de plugins de Hermes Agent que impidan al operador ver lo que está instalando están en alcance bajo el §3.1.

2.6 Superficies Externas

Una superficie externa es cualquier canal fuera del proceso del agente local a través del cual un llamador puede despachar trabajo del agente, resolver aprobaciones o recibir salida del agente. Cada superficie tiene su propio modelo de autorización, pero las reglas a continuación se aplican uniformemente.

Superficies en Hermes Agent:

Reglas uniformes:

  1. Se requiere autorización en cada superficie que cruce un límite de confianza. Para superficies de mensajería y HTTP en red, el límite es la red: la autorización significa una lista de llamadores permitidos configurada por el operador. Para superficies de editor e IPC local (ACP, gateway TUI), el límite es la cuenta de usuario del host: la autorización significa depender del control de acceso a nivel de SO (permisos de archivos, vinculaciones solo a loopback) y no exponer la superficie más allá del usuario local sin una capa de autenticación de red explícita.
  2. Se requiere una lista de permitidos para cada adaptador de red habilitado. Los adaptadores deben rechazar despachar trabajo del agente, resolver aprobaciones o transmitir salida hasta que se establezca una lista de permitidos. Las rutas de código que fallan de forma abierta cuando no hay lista de permitidos configurada son errores de código en alcance bajo el §3.1.
  3. Los identificadores de sesión son manejadores de enrutamiento, no límites de autorización. Conocer el ID de sesión de otro llamador no otorga acceso a sus aprobaciones o salida; la autorización siempre se vuelve a verificar contra la lista de permitidos (o equivalente a nivel de SO).
  4. Dentro del conjunto autorizado, todos los llamadores tienen la misma confianza. Hermes Agent no modela capacidades por llamador dentro de un único adaptador. Los operadores que necesiten separación de capacidades deben ejecutar instancias de agente separadas con listas de permitidos separadas.
  5. Vincular una superficie solo local a una interfaz no-loopback es una decisión de operador de emergencia (§3.2). El dashboard y otros servidores HTTP de plugins son predeterminados a loopback; exponerlos a través de --host 0.0.0.0 o equivalente hace que el fortalecimiento de exposición pública (§4) sea responsabilidad del operador.

3. Alcance

3.1 En Alcance

3.2 Fuera de Alcance

"Fuera de alcance" aquí significa "no es una vulnerabilidad de seguridad bajo esta política." No significa "no vale la pena reportarlo." Las mejoras a las heurísticas en proceso, ideas de fortalecimiento y correcciones de UX son bienvenidas como issues o pull requests regulares — la puerta de aprobación siempre puede detectar más patrones, la redacción puede volverse más inteligente, el comportamiento del adaptador puede apretarse siempre. Estos elementos simplemente no van a través del canal de divulgación privada y no reciben avisos.


4. Fortalecimiento del Despliegue

La decisión de fortalecimiento más importante es hacer coincidir el aislamiento (§2.2) con la confianza del contenido que el agente ingerirá. Más allá de eso:


5. Divulgación