SpyBara
Go Premium

security-guidance.md 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

1 added, 1 removed.

2026
Tue 30 23:02 Mon 29 23:02 Sat 27 01:01 Fri 26 23:00 Thu 25 23:58 Wed 24 22:02 Tue 23 22:00 Mon 22 23:59 Fri 19 22:58 Thu 18 22:00 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

Detectar problemas de seguridad mientras Claude escribe código

Instale el plugin security-guidance para que Claude revise sus propios cambios de código en busca de vulnerabilidades y las corrija en la misma sesión.

El plugin security guidance hace que Claude revise sus propios cambios de código en busca de vulnerabilidades comunes mientras trabaja y corrija lo que encuentra en la misma sesión. El plugin detecta problemas como inyección, deserialización insegura y APIs DOM inseguras antes de que el código llegue a una solicitud de extracción, reduciendo cuánta revisión de seguridad recae en los revisores humanos posteriores.

Una vez instalado, el plugin se ejecuta automáticamente. No hay nada que invocar y ningún comando separado que recordar.

El plugin es el compañero en sesión de Code Review, que se ejecuta en solicitudes de extracción. Este plugin reduce lo que llega al PR. Code Review atrapa lo que hace. Para ver cómo el plugin se superpone con revisión bajo demanda y escaneo de CI, consulte Cómo se ajusta esto con otras herramientas de seguridad.

Requisitos previos

  • Claude Code CLI versión 2.1.144 o posterior
  • Python 3.8 o posterior en su PATH. El plugin intenta python3, python y py -3 en ese orden
  • Un repositorio git para el directorio en el que trabaja. Las revisiones de fin de turno y confirmación se comparan con el estado de git y se omiten silenciosamente fuera de un repositorio. La verificación de patrón por edición funciona en cualquier lugar

En la primera ejecución, el plugin crea un entorno virtual bajo ~/.claude/security/ e instala el Claude Agent SDK en él, lo que requiere pip y acceso a la red. Si esa instalación falla, la revisión de confirmación vuelve a una revisión de un solo disparo en lugar de la agéntica. En Windows, se omite el paso del entorno virtual, por lo que la revisión de confirmación agéntica se ejecuta solo si claude-agent-sdk ya es importable y de lo contrario vuelve de la misma manera.

Instalar el plugin

En una sesión de Claude Code, instale desde el marketplace oficial de Anthropic:

/plugin install security-guidance@claude-plugins-official

La instalación solicita un alcance. Elija alcance de usuario para escribir el plugin en su configuración de usuario, de modo que se cargue en cada nueva sesión local que inicie en esta máquina. Si Claude Code informa que el marketplace no se encuentra, ejecute /plugin marketplace add anthropics/claude-plugins-official primero, luego reintente la instalación.

Luego actívelo en la sesión actual con /reload-plugins, que aplica cambios de plugin pendientes sin un reinicio:

/reload-plugins

Habilitar en sesiones en la nube y repositorios compartidos

Los plugins con alcance de usuario no se transfieren a Claude Code en la web, porque esas sesiones se ejecutan en la infraestructura de Anthropic en lugar de su máquina. Para habilitar el plugin allí, o para activarlo para todos los que clonan un repositorio, declárelo en la configuración del proyecto registrada:

{
  "enabledPlugins": {
    "security-guidance@claude-plugins-official": true
  }
}

Los administradores pueden habilitar el plugin en toda la organización configurando enabledPlugins en configuración administrada.

Qué verifica el plugin

El plugin revisa el trabajo de Claude en tres puntos, cada uno a una profundidad diferente:

Puede extender cada capa agregando sus propias reglas. Las verificaciones integradas no se pueden eliminar individualmente, pero puede deshabilitar cada capa de forma independiente.

En cada edición de archivo

Cuando Claude escribe en un archivo, el plugin escanea el nuevo contenido en busca de patrones conocidos riesgosos. Esta es una coincidencia de patrón sin llamada de modelo, por lo que no agrega costo de uso.

Categorías de patrones de ejemplo:

  • Ejecución de código dinámico: eval(, new Function, os.system, child_process.exec
  • Deserialización insegura: pickle
  • Inyección DOM: dangerouslySetInnerHTML, .innerHTML =, document.write
  • Archivos de flujo de trabajo: ediciones bajo .github/workflows/, que pueden otorgar permisos a nivel de repositorio

La verificación se ejecuta después de que la edición se realiza y agrega la advertencia al contexto de Claude para el siguiente paso. Cada advertencia se activa una vez por patrón por archivo por sesión, por lo que las coincidencias repetidas en el mismo archivo no inundan la conversación.

Puede agregar sus propios patrones a esta capa con un archivo security-patterns.yaml.

Al final de cada turno

Un turno es una ronda de respuesta de Claude: usted envía un mensaje, Claude trabaja y responde, y el turno termina. Después de cada turno, el plugin calcula un diff de git de todo lo que cambió en el árbol de trabajo durante el turno, incluidos los cambios de las herramientas de edición de Claude, comandos Bash y subagentos, y lo envía a una revisión de Claude separada enfocada en seguridad. La revisión se ejecuta en segundo plano, por lo que la respuesta de Claude no se retrasa. Si la revisión encuentra problemas, Claude se vuelve a solicitar con los hallazgos y los aborda como seguimiento.

Esto detecta problemas que una coincidencia de cadena no puede, como:

  • Omisión de autorización
  • Referencias directas a objetos inseguras
  • Inyección
  • Falsificación de solicitud del lado del servidor
  • Criptografía débil

Usted ve tanto el hallazgo como la resolución de Claude directamente en su sesión. La revisión cubre hasta 30 archivos modificados por turno y se activa como máximo tres veces seguidas antes de ceder el control a usted.

En cada confirmación o inserción que Claude realiza

Cuando Claude ejecuta git commit o git push a través de su herramienta Bash, el plugin ejecuta una revisión agéntica más profunda del cambio en segundo plano. Esta revisión lee el código circundante, incluidos los llamadores, sanitizadores y archivos relacionados, para decidir si un hallazgo es real antes de informarlo. El contexto adicional mantiene los falsos positivos bajos en patrones que se ven peligrosos en aislamiento pero son seguros en su base de código.

Esta capa se activa solo en confirmaciones e inserciones que Claude realiza a través de su herramienta Bash. Las confirmaciones que ejecuta desde su propio shell, incluido el escape de shell ! dentro de una sesión, no se revisan. Las revisiones de confirmación e inserción se limitan a 20 por hora móvil. Si los hallazgos de la revisión de confirmación duplican lo que la revisión de fin de turno ya informó, Claude no se vuelve a solicitar, por lo que una confirmación limpia no produce salida visible de esta capa.

Independencia de revisión y límites

El plugin no le pide a la misma instancia de Claude que escribió el código que se califique a sí misma. La verificación por edición es una coincidencia de cadena determinista sin modelo involucrado. Las revisiones de fin de turno y confirmación se ejecutan como una llamada de Claude separada con un contexto nuevo y un mensaje enfocado en seguridad: el revisor comienza desde el diff, no tiene inversión en el enfoque original y solo se le instruye para encontrar problemas.

Ninguna de las capas bloquea escrituras o confirmaciones. Los hallazgos llegan a Claude que escribe como instrucciones, Claude los aborda en la conversación, y el modelo de revisión puede perder problemas. Trate el plugin como una capa de defensa en profundidad, no como una solución de seguridad completa. Consulte Cómo se ajusta esto con otras herramientas de seguridad.

Agregue sus propias reglas

El plugin tiene dos puntos de extensión: un archivo de orientación Markdown para las revisiones respaldadas por modelo, y un archivo de patrones YAML o JSON para la coincidencia de cadena por edición. Ambos son aditivos. Puede agregar verificaciones pero no puede deshabilitar las integradas desde estos archivos.

Agregue orientación para las revisiones respaldadas por modelo

Cree .claude/claude-security-guidance.md en su proyecto y describa su modelo de amenaza y lista de verificación de revisión en lenguaje simple. Las revisiones respaldadas por modelo lo cargan como contexto adicional junto con la lista de verificación de vulnerabilidades integrada.

El siguiente ejemplo es para un servicio web con rutas de administrador con puerta de rol y una política de registro de datos de cliente:

# Security guidance for this repo

- Do not log `customer_id` or `account_number` at INFO level or above.
- All routes under `/admin` must call `require_role("admin")` before any database read.
- Use `crypto.timingSafeEqual` for token comparison instead of `===`.

Estas reglas son orientación para el revisor, no guardrails deterministas. El plugin expone las violaciones como hallazgos para que Claude las corrija, pero no bloquea escrituras ni garantiza que se detecte cada violación. La orientación es solo aditiva: una regla que dice ignorar una clase de vulnerabilidad no suprime esos hallazgos. Para aplicación estricta, empareje el plugin con un hook que bloquee la edición o una verificación de CI.

Agregue patrones personalizados por edición

Cree .claude/security-patterns.yaml para agregar reglas de regex o subcadena a la verificación de patrón por edición. Estos se ejecutan como coincidencias de cadena deterministas junto con los patrones integrados:

patterns:
  - rule_name: internal_api_key
    substrings: ["sk_live_", "AKIA"]
    reminder: "Hardcoded API key prefix. Load credentials from the secret manager."
  - rule_name: tenant_unfiltered_query
    regex: "\\.objects\\.all\\(\\)"
    paths: ["**/src/tenants/**"]
    reminder: "Multi-tenant code must filter by org_id."
Campo Tipo Descripción
rule_name string Identificador mostrado en la advertencia
reminder string Texto de advertencia agregado al contexto de Claude, limitado a 1 KB
regex string Regex de Python coincidido contra el contenido editado
substrings list Subcadenas literales; proporcione esto o regex
paths list Patrones glob opcionales; la regla se aplica solo a archivos coincidentes. Los globs coinciden contra la ruta completa del archivo, por lo que prefije patrones relativos al proyecto con **/
exclude_paths list Patrones glob opcionales para omitir; la coincidencia es la misma que paths

El plugin también lee .claude/security-patterns.yml y .claude/security-patterns.json con el mismo esquema. JSON funciona en cualquier instalación de Python. Los formularios YAML requieren que PyYAML sea importable, que el plugin no instala para usted. El plugin carga hasta 50 reglas personalizadas y omite regexes que parecen propensas a retroceso catastrófico.

Ubicaciones de búsqueda de archivos de reglas

El plugin busca claude-security-guidance.md y security-patterns.yaml en las mismas ubicaciones, independientemente de cómo se habilitó el plugin:

Alcance Ruta Notas
Usuario ~/.claude/claude-security-guidance.md Se aplica a cada proyecto en su máquina
Proyecto .claude/claude-security-guidance.md Registrado con el repositorio
Proyecto local .claude/claude-security-guidance.local.md Ignorado por Git, para anulaciones personales

El plugin carga todas las ubicaciones que existen y las concatena, con un límite combinado de 8 KB para el archivo de orientación. Los administradores pueden distribuir reglas en toda la organización empujando el archivo de alcance de usuario a ~/.claude/ a través de la administración de dispositivos. Las mismas rutas se aplican a security-patterns.yaml.

Costo de uso

La verificación de patrón por edición no realiza llamada de modelo y no agrega costo. Las revisiones de fin de turno y confirmación cada una gasta uso de modelo adicional que cuenta hacia su uso como cualquier otra solicitud de Claude. La revisión de confirmación es agéntica y puede tomar varios turnos de modelo por confirmación, limitada a 20 revisiones por hora móvil. Espere aproximadamente una llamada de revisión por turno que cambie archivos y una revisión más profunda por confirmación, ambas sujetas a los límites anteriores.

Ambas revisiones respaldadas por modelo usan Claude Opus 4.7 de forma predeterminada. Configure SECURITY_REVIEW_MODEL para elegir un modelo diferente para la revisión de fin de turno y SG_AGENTIC_MODEL para la revisión de confirmación.

El plugin está disponible en todos los planes.

Deshabilitar o desinstalar

Para desactivar capas individuales mientras mantiene el resto, configure la variable de entorno coincidente:

Variable Efecto
ENABLE_PATTERN_RULES=0 Deshabilitar la verificación de patrón por edición
ENABLE_STOP_REVIEW=0 Deshabilitar la revisión de diff de fin de turno
ENABLE_COMMIT_REVIEW=0 Deshabilitar la revisión de confirmación e inserción
ENABLE_CODE_SECURITY_REVIEW=0 Deshabilitar todas las revisiones respaldadas por modelo a la vez
SECURITY_GUIDANCE_DISABLE=1 Deshabilitar el plugin completamente sin desinstalar

Para pausar el plugin en su alcance de usuario:

/plugin disable security-guidance@claude-plugins-official

Para eliminarlo de su alcance de usuario:

/plugin uninstall security-guidance@claude-plugins-official

Si el plugin se habilitó a través del .claude/settings.json de un proyecto, deshabilitarlo desde /plugin escribe una anulación a su .claude/settings.local.json en lugar de editar el archivo registrado, por lo que el plugin permanece desactivado para usted mientras que los compañeros de equipo no se ven afectados. Si se habilitó a través de configuración administrada, solo un administrador puede deshabilitarlo.

Cómo se integra el plugin con Claude Code

El plugin se construye completamente en hooks, el mecanismo para ejecutar su propio código en puntos específicos del bucle de Claude. Se registra:

Evento de hook Propósito
SessionStart Inicializar el entorno de Python del plugin
UserPromptSubmit Capturar la línea de base del árbol de trabajo contra la que el diff de revisión de fin de turno se compara
PostToolUse en Edit, Write y NotebookEdit Coincidencia de patrón por edición
Stop Revisión de diff de fin de turno, ejecutada en segundo plano
PostToolUse en Bash, filtrado a git commit y git push Revisión de confirmación e inserción, ejecutada en segundo plano

Si construye sus propios hooks, el código fuente del plugin es un ejemplo funcional de ejecutar una llamada de modelo separada desde un hook y alimentar el resultado de vuelta a la sesión.

Cómo se ajusta esto con otras herramientas de seguridad

El plugin es una capa en un enfoque de defensa en profundidad. Detecta problemas lo antes posible, mientras el código aún está en el editor, pero no es una garantía y no reemplaza verificaciones posteriores. Una pila típica:

Etapa Herramienta Qué cubre
En sesión Plugin de orientación de seguridad Vulnerabilidades comunes en código que Claude escribe, corregidas en la misma sesión
Bajo demanda /security-review Paso de seguridad único en la rama actual, ejecutado cuando lo solicita
En solicitud de extracción Code Review, planes de equipo y empresa Revisión de corrección y seguridad multiagente con contexto completo de base de código
En CI Sus analizadores estáticos existentes y escáneres de dependencias Reglas específicas del idioma, verificaciones de cadena de suministro y aplicación de políticas que el plugin no intenta

Cada etapa posterior atrapa lo que las anteriores pierden. El valor del plugin es reducir el volumen que llega a ellas, no eliminar la necesidad de ellas.

Solución de problemas

El plugin escribe diagnósticos de tiempo de ejecución en ~/.claude/security/log.txt. Verifique allí primero si las revisiones no aparecen.

Razones comunes por las que una capa de revisión se omite sin un mensaje en la conversación:

  • El directorio no es un repositorio git: las revisiones de fin de turno y confirmación requieren estado de git y se omiten fuera de un repositorio
  • La sesión no tiene autenticación de Anthropic: las revisiones respaldadas por modelo se omiten y solo se ejecuta la verificación de patrón por edición
  • Un archivo security-patterns.yaml está presente pero PyYAML no es importable: el archivo se ignora. Use security-patterns.json en su lugar

Para profundizar en los temas que toca esta página: