
Un doggo que ayuda a buscar problemas de seguridad en tus repositorios.
Layne es una GitHub App autoalojada que centraliza el escaneo de seguridad en nuestros repositorios. Dado que no utilizamos herramientas comerciales de SAST/escaneo de secretos, ni tenemos acceso a GitHub Enterprise, puede resultar difícil mantener diferentes archivos de flujo de trabajo de GitHub Actions en distintos repositorios, especialmente a medida que dichos repositorios aumentan en número. En su lugar, instalamos Layne una vez y este escucha los eventos de pull request, ejecuta nuestras herramientas de seguridad del lado del servidor, publica los resultados como anotaciones nativas de GitHub Check Run y notifica al canal de notificaciones de seguridad de nuestro equipo de seguridad.
Esta herramienta se basó en la Implementación de Reddit.
┌─────────────────────────────────┐
│ GITHUB PULL REQUEST │◀────────────────────────┐
│ (OPEN, SYNC, REOPEN) │ │
└─────────────────────────────────┘ │
│ Check run │
HTTP Post /webhook │
│ │
┌──────────────────────────────────────────────────────────────────────────────────────────┐
│ EC2 Instance (Docker) │ │ │
│ ┌───────▼────────┐ │ │
│ │ NGINX + TLS │ │ │
│ └───────┬────────┘ │ │
│ │ │ │
│ ┌─────────────────────┘ │ │
│ │ │ │
│┌─────────────┐ │ Schedules job ┌────────────────┐ ┌────────────┐ │ │
││ LAYNE │◀─┘ ─────────────────▶│ REDIS │───▶│ TRUFFLEHOG │──┐ │ │
││ SERVER │ │ (BULLMQ) │ │ └────────────┘ │ │ │
│└─────────────┘ └────────────────┘ │ ┌────────────┐ │ │ │
│ │─▶│ SEMGREP │──┤ │ │
│ │ └────────────┘ │ │ │
│ │ ┌────────────┐ │ ┌──────────┐│
│ ├─▶│ CLAUDE │──┼─▶│ REPORTER ││
│ │ └────────────┘ │ └──────────┘│
│ │ ┌────────────┐ │ │
│ ├─▶│ SPECTRE │──┤ │
│ │ └────────────┘ │ │
│ │ ┌────────────┐ │ │
│ └─▶│ DEP DOCTOR │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Cuando se abre o actualiza un PR —o después de que se ejecuta un flujo de trabajo/trabajo, según el disparador configurado—, GitHub envía un webhook a Layne. El servidor encola inmediatamente un trabajo de escaneo y devuelve 200 OK a GitHub. Un worker toma el trabajo, clona exactamente el commit que desencadenó el evento, entrega los archivos modificados a cada escáner configurado (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), recopila sus hallazgos y publica los resultados como anotaciones en línea en el Check Run.
Solo los archivos modificados en el PR se pasan a cada escáner. Los hallazgos en archivos que no tocaste nunca se reportan.
Layne incluye cinco escáneres integrados. Puedes habilitar, deshabilitar o configurar cada uno por repositorio en config/layne.json.
| Escáner | Qué detecta | Notas |
|---|---|---|
| Semgrep | SAST: errores, vulnerabilidades, patrones inseguros | Ejecuta semgrep scan --config auto por defecto; totalmente configurable mediante extraArgs |
| Trufflehog | Secretos, claves de API y credenciales | Ejecuta trufflehog filesystem; usa --only-verified para reducir el ruido |
| Claude | Intención maliciosa, puertas traseras, payloads ofuscados, ataques a la cadena de suministro | Deshabilitado por defecto; se activa por repositorio; requiere ANTHROPIC_API_KEY |
| Spectre | Intención maliciosa a partir de diffs de PR tipados y acotados | Deshabilitado por defecto; análisis de todo el PR cuando es pequeño y por fragmentos (hunks) en caso contrario; compatible con Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVE, dependencias abandonadas y obsoletas | Deshabilitado por defecto; se activa por repositorio; requiere osv-scanner en PATH |
También puedes añadir tus propios escáneres. Consulta Extending Layne.
Una vez que todo está configurado correctamente, Layne añadirá una ejecución al pull request y ejecutará las herramientas de escaneo configuradas. Cuando un escaneo falla, se ve así.

Los hallazgos de Layne se escribirán en el PR como anotaciones en línea, indicando las líneas exactas donde se encontraron los problemas de seguridad.

También puedes ver los hallazgos de Layne y un resumen de ellos haciendo clic en el propio check.

Y puedes configurar Layne para enviar una notificación mediante webhook a un canal de Rocket.Chat; también puedes configurar Slack y es fácil añadir nuevos notificadores si usas otra plataforma de chat.

Ejecuta el sitio de documentación localmente:
npm run docs:dev
Luego abre http://localhost:3000.
La documentación completa cubre despliegue, configuración, escáneres, notificadores, comentarios en PR, supresión de hallazgos, métricas, arquitectura de seguridad y más.
Layne está licenciado bajo la Apache License 2.0 (Apache-2.0). Consulta LICENSE para el texto completo.
Copyright 2026 Rocket.Chat Technologies Corp.