
Um doggo que ajuda a procurar problemas de segurança nos seus repositórios.
Layne é um aplicativo GitHub auto-hospedado que centraliza a varredura de segurança em nossos repositórios. Como não usamos ferramentas comerciais de SAST/varredura de segredos, nem temos acesso ao GitHub Enterprise, pode ser difícil manter diferentes arquivos de workflow do GitHub Actions entre diferentes repositórios — especialmente quando esses repositórios crescem em número. Em vez disso, instalamos o Layne uma vez e ele escuta eventos de pull request, executa nossas ferramentas de segurança no lado do servidor, publica os resultados como anotações nativas do GitHub Check Run e notifica o canal de notificações de segurança da nossa equipe.
Esta ferramenta foi baseada na Implementação do 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 um PR é aberto ou atualizado — ou após a execução de um workflow/job, dependendo do gatilho configurado —, o GitHub envia um webhook para o Layne. O servidor enfileira imediatamente um job de varredura e retorna 200 OK para o GitHub. Um worker pega o job, clona exatamente o commit que disparou o evento, entrega os arquivos modificados para cada scanner configurado (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), coleta os achados e publica os resultados como anotações inline no Check Run.
Apenas os arquivos modificados no PR são passados para cada scanner. Achados em arquivos que você não tocou nunca são reportados.
O Layne vem com cinco scanners integrados. Você pode ativar, desativar ou configurar cada um por repositório em config/layne.json.
Você também pode adicionar seus próprios scanners. Veja Estendendo o Layne.
Uma vez que tudo está configurado corretamente, o Layne adicionará uma execução ao pull request e executará as ferramentas de varredura configuradas. Quando uma varredura falha, fica assim.

Os achados do Layne serão escritos no PR como anotações inline, indicando as linhas exatas onde os problemas de segurança foram encontrados.

Você também pode ver os achados do Layne e um resumo deles clicando na própria verificação.

E você pode configurar o Layne para enviar uma notificação via webhook para um canal do Rocket.Chat — você também pode configurar o Slack e é fácil adicionar novos notificadores se você usar uma plataforma de chat diferente.

Execute o site de documentação localmente:
npm run docs:dev
Em seguida, abra http://localhost:3000.
A documentação completa cobre implantação, configuração, scanners, notificadores, comentários de PR, supressão de achados, métricas, arquitetura de segurança e muito mais.
O Layne é licenciado sob a Licença Apache 2.0 (Apache-2.0). Consulte LICENSE para o texto completo.
Copyright 2026 Rocket.Chat Technologies Corp.
| Scanner | O que detecta | Observações |
|---|
| Semgrep | SAST - bugs, vulnerabilidades, padrões inseguros | Executa semgrep scan --config auto por padrão; totalmente configurável via extraArgs |
| Trufflehog | Segredos, chaves de API e credenciais | Executa trufflehog filesystem; use --only-verified para reduzir ruído |
| Claude | Intenção maliciosa, backdoors, payloads ofuscados, ataques à cadeia de suprimentos | Desativado por padrão; opt-in por repositório; requer ANTHROPIC_API_KEY |
| Spectre | Intenção maliciosa via única chamada LLM por arquivo | Desativado por padrão; opt-in por repositório; suporta Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVEs, dependências abandonadas e obsoletas | Desativado por padrão; opt-in por repositório; requer osv-scanner no PATH |