
Ein doggo, das hilft, nach Sicherheitsproblemen in Ihren Repositorys zu suchen.
Layne ist eine selbst gehostete GitHub App, die Sicherheitsscans über unsere Repositories hinweg zentralisiert. Da wir weder kommerzielle SAST-/Secret-Scanning-Tools noch Zugriff auf GitHub Enterprise haben, kann es schwierig werden, verschiedene GitHub Actions Workflow-Dateien über verschiedene Repositories hinweg zu pflegen – insbesondere, wenn die Anzahl solcher Repositories wächst. Stattdessen installieren wir Layne einmal, und es lauscht auf Pull-Request-Events, führt unsere Sicherheitstools serverseitig aus, schreibt die Ergebnisse als native GitHub Check Run Annotations zurück und benachrichtigt den Sicherheitsbenachrichtigungskanal unseres Sicherheitsteams.
Dieses Tool basiert auf Reddits Implementierung.
┌─────────────────────────────────┐
│ 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 │──┘ │
│ └────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────┘
Wenn ein PR geöffnet oder aktualisiert wird – oder nachdem ein Workflow/Job ausgeführt wurde, abhängig von Ihrem konfigurierten Trigger –, sendet GitHub einen Webhook an Layne. Der Server stellt sofort einen Scan-Job in die Warteschlange und gibt 200 OK an GitHub zurück. Ein Worker nimmt den Job auf, klont genau den Commit, der das Event ausgelöst hat, übergibt die geänderten Dateien an jeden konfigurierten Scanner (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), sammelt deren Ergebnisse und schreibt die Resultate als Inline-Annotationen in den Check Run.
Nur die im PR geänderten Dateien werden an jeden Scanner übergeben. Ergebnisse in Dateien, die Sie nicht angefasst haben, werden niemals gemeldet.
Layne wird mit fünf integrierten Scannern ausgeliefert. Sie können jeden einzelnen pro Repository in config/layne.json aktivieren, deaktivieren oder konfigurieren.
| Scanner | Was er erkennt | Hinweise |
|---|---|---|
| Semgrep | SAST – Bugs, Schwachstellen, unsichere Muster | Führt standardmäßig semgrep scan --config auto aus; vollständig konfigurierbar über extraArgs |
| Trufflehog | Secrets, API-Schlüssel und Anmeldedaten | Führt trufflehog filesystem aus; verwenden Sie --only-verified, um Rauschen zu reduzieren |
| Claude | Bösartige Absicht, Backdoors, obfuskierte Payloads, Supply-Chain-Angriffe | Standardmäßig deaktiviert; pro Repo aktivierbar; erfordert ANTHROPIC_API_KEY |
| Spectre | Bösartige Absicht aus begrenzten typisierten PR-Diffs | Standardmäßig deaktiviert; Ganz-PR-Analyse bei kleinen Diffs, andernfalls Hunk-Chunks; unterstützt Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVEs, aufgegebene und veraltete Abhängigkeiten | Standardmäßig deaktiviert; pro Repo aktivierbar; erfordert osv-scanner im PATH |
Sie können auch eigene Scanner hinzufügen. Siehe Layne erweitern.
Sobald alles ordnungsgemäß konfiguriert ist, fügt Layne dem Pull Request einen Run hinzu und führt die konfigurierten Scanning-Tools aus. Wenn ein Scan fehlschlägt, sieht das so aus.

Laynes Ergebnisse werden als Inline-Annotationen in den PR geschrieben und geben die genauen Zeilen an, in denen die Sicherheitsprobleme gefunden wurden.

Sie können Laynes Ergebnisse und eine Zusammenfassung davon auch sehen, indem Sie auf den Check selbst klicken.

Und Sie können Layne so konfigurieren, dass es eine Benachrichtigung per Webhook an einen Rocket.Chat-Kanal sendet – Sie können auch Slack konfigurieren, und es ist einfach, neue Notifier hinzuzufügen, wenn Sie eine andere Chat-Plattform verwenden.

Führen Sie die Dokumentationsseite lokal aus:
npm run docs:dev
Öffnen Sie dann http://localhost:3000.
Die vollständige Dokumentation behandelt Deployment, Konfiguration, Scanner, Notifier, PR-Kommentare, Finding-Unterdrückung, Metriken, Sicherheitsarchitektur und mehr.
Layne ist unter der Apache License 2.0 (Apache-2.0) lizenziert. Den vollständigen Text finden Sie in LICENSE.
Copyright 2026 Rocket.Chat Technologies Corp.