
Un doggo che aiuta a cercare problemi di sicurezza nei tuoi repository.
Layne è una GitHub App self-hosted che centralizza la scansione di sicurezza su tutti i nostri repository. Poiché non utilizziamo strumenti commerciali di SAST/scansione dei segreti, né abbiamo accesso a GitHub Enterprise, può diventare difficile mantenere diversi file di workflow di GitHub Actions su repository differenti - soprattutto man mano che tali repository aumentano di numero. Invece, installiamo Layne una volta sola e questo si mette in ascolto degli eventi di pull request, esegue i nostri strumenti di sicurezza lato server, pubblica i risultati come annotazioni native delle GitHub Check Run e notifica il canale delle notifiche di sicurezza del nostro team di sicurezza.
Questo strumento è basato sull'Implementazione di 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 │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Quando una PR viene aperta o aggiornata - o dopo l'esecuzione di un workflow/job, a seconda del trigger configurato -, GitHub invia un webhook a Layne. Il server accoda immediatamente un job di scansione e restituisce 200 OK a GitHub. Un worker preleva il job, clona esattamente il commit che ha generato l'evento, passa i file modificati a ciascuno scanner configurato (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), raccoglie i loro risultati e pubblica gli esiti come annotazioni inline sulla Check Run.
Solo i file modificati nella PR vengono passati a ciascuno scanner. I risultati nei file che non hai toccato non vengono mai segnalati.
Layne include cinque scanner integrati. Puoi abilitare, disabilitare o configurare ciascuno di essi per repository in config/layne.json.
| Scanner | Cosa rileva | Note |
|---|---|---|
| Semgrep | SAST - bug, vulnerabilità, pattern non sicuri | Esegue semgrep scan --config auto per impostazione predefinita; completamente configurabile tramite extraArgs |
| Trufflehog | Segreti, chiavi API e credenziali | Esegue trufflehog filesystem; usa --only-verified per ridurre i falsi positivi |
| Claude | Intenti malevoli, backdoor, payload offuscati, attacchi supply-chain | Disabilitato per impostazione predefinita; attivabile per repo; richiede ANTHROPIC_API_KEY |
| Spectre | Intenti malevoli da diff di PR tipizzati e delimitati | Disabilitato per impostazione predefinita; analisi dell'intera PR quando è piccola e a blocchi di hunk altrimenti; supporta Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVE, dipendenze abbandonate e deprecate | Disabilitato per impostazione predefinita; attivabile per repo; richiede osv-scanner nel PATH |
Puoi anche aggiungere i tuoi scanner. Vedi Estendere Layne.
Una volta che tutto è configurato correttamente, Layne aggiungerà una run alla pull request ed eseguirà gli strumenti di scansione configurati. Quando una scansione fallisce, appare così.

I risultati di Layne verranno scritti nella PR come annotazioni inline, indicando le righe esatte in cui sono stati trovati i problemi di sicurezza.

Puoi anche vedere i risultati di Layne e un loro riepilogo cliccando sulla check stessa.

E puoi configurare Layne per inviare una notifica tramite webhook a un canale Rocket.Chat - puoi anche configurare Slack ed è facile aggiungere nuovi notificatori se usi una piattaforma di chat diversa.

Esegui il sito della documentazione in locale:
npm run docs:dev
Poi apri http://localhost:3000.
La documentazione completa copre deployment, configurazione, scanner, notificatori, commenti sulle PR, soppressione dei risultati, metriche, architettura di sicurezza e altro ancora.
Layne è distribuito sotto la Apache License 2.0 (Apache-2.0). Vedi LICENSE per il testo completo.
Copyright 2026 Rocket.Chat Technologies Corp.