
Un chien qui aide à rechercher des problèmes de sécurité dans vos dépôts.
Layne est une application GitHub auto-hébergée qui centralise l'analyse de sécurité sur nos dépôts. Comme nous n'utilisons pas d'outils commerciaux de SAST/détection de secrets, et que nous n'avons pas accès à GitHub Enterprise, il peut devenir difficile de maintenir différents fichiers de workflows GitHub Actions sur différents dépôts – surtout lorsque ces dépôts augmentent en nombre. Au lieu de cela, nous installons Layne une fois et il écoute les événements de pull request, exécute nos outils de sécurité côté serveur, publie les résultats sous forme d'annotations natives de Check Run GitHub, et notifie le canal de notifications de sécurité de notre équipe.
Cet outil est basé sur l'implémentation 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 │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Lorsqu'une PR est ouverte ou mise à jour – ou après l'exécution d'un workflow/job, selon le déclencheur configuré – GitHub envoie un webhook à Layne. Le serveur met immédiatement en file d'attente un job d'analyse et renvoie 200 OK à GitHub. Un worker récupère le job, clone exactement le commit qui a déclenché l'événement, transmet les fichiers modifiés à chaque analyseur configuré (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), collecte leurs résultats, et publie les résultats sous forme d'annotations en ligne dans le Check Run.
Seuls les fichiers modifiés dans la PR sont passés à chaque analyseur. Les résultats dans des fichiers que vous n'avez pas touchés ne sont jamais signalés.
Layne est livré avec cinq analyseurs intégrés. Vous pouvez activer, désactiver ou configurer chacun d'eux par dépôt dans config/layne.json.
Vous pouvez également ajouter vos propres analyseurs. Voir Extension de Layne.
Une fois tout correctement configuré, Layne ajoutera une exécution à la pull request et exécutera les outils d'analyse configurés. Lorsqu'une analyse échoue, cela ressemble à ceci.

Les résultats de Layne seront écrits dans la PR sous forme d'annotations en ligne, indiquant les lignes exactes où les problèmes de sécurité ont été trouvés.

Vous pouvez également voir les résultats de Layne ainsi qu'un résumé en cliquant sur la vérification elle-même.

Et vous pouvez configurer Layne pour envoyer une notification via webhook vers un canal Rocket.Chat – vous pouvez également configurer Slack et il est facile d'ajouter de nouveaux notificateurs si vous utilisez une autre plateforme de chat.

Exécutez le site de documentation localement :
npm run docs:dev
Ouvrez ensuite http://localhost:3000.
La documentation complète couvre le déploiement, la configuration, les analyseurs, les notificateurs, les commentaires sur les PR, la suppression de résultats, les métriques, l'architecture de sécurité, et plus encore.
Layne est sous licence Apache License 2.0 (Apache-2.0). Voir LICENSE pour le texte intégral.
Copyright 2026 Rocket.Chat Technologies Corp.
| Analyseur | Ce qu'il détecte | Notes |
|---|
| Semgrep | SAST - bogues, vulnérabilités, motifs non sécurisés | Exécute semgrep scan --config auto par défaut ; entièrement configurable via extraArgs |
| Trufflehog | Secrets, clés API et identifiants | Exécute trufflehog filesystem ; utilisez --only-verified pour réduire le bruit |
| Claude | Intention malveillante, portes dérobées, charges utiles obscurcies, attaques de la chaîne d'approvisionnement | Désactivé par défaut ; opt-in par dépôt ; nécessite ANTHROPIC_API_KEY |
| Spectre | Intention malveillante via un appel LLM unique par fichier | Désactivé par défaut ; opt-in par dépôt ; prend en charge Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVEs, dépendances abandonnées et dépréciées | Désactivé par défaut ; opt-in par dépôt ; nécessite osv-scanner dans le PATH |