
Ein doggo, das hilft, nach Sicherheitsproblemen in Ihren Repositorys zu suchen.
Layne ist eine selbst gehostete GitHub-App, die die Sicherheitsüberprüfung in all unseren Repositories zentralisiert. Da wir keine kommerziellen SAST/Secrets-Scanning-Tools verwenden und keinen Zugang zu GitHub Enterprise haben, kann es schwierig sein, verschiedene GitHub Actions-Workflow-Dateien in verschiedenen Repositories zu pflegen – insbesondere wenn die Anzahl der Repositories wächst. Stattdessen installieren wir Layne einmal, es lauscht auf Pull-Request-Ereignisse, führt unsere Sicherheitstools serverseitig aus, postet die Ergebnisse als native GitHub Check Run-Anmerkungen 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, je nach konfiguriertem Trigger), sendet GitHub einen Webhook an Layne. Der Server stellt sofort einen Scan-Job in die Warteschlange und antwortet GitHub mit 200 OK. Ein Worker nimmt den Job auf, klont genau den Commit, der das Ereignis ausgelöst hat, übergibt die geänderten Dateien an jeden konfigurierten Scanner (Semgrep, Trufflehog, Claude, Spectre, Dep Doctor), sammelt deren Ergebnisse und postet die Ergebnisse als Inline-Kommentare in den Check Run.
Nur die im PR geänderten Dateien werden an jeden Scanner übergeben. Funde in Dateien, die Sie nicht berührt haben, werden niemals gemeldet.
Layne wird mit fünf integrierten Scannern ausgeliefert. Sie können jeden Scanner pro Repository in config/layne.json aktivieren, deaktivieren oder konfigurieren.
Sie können auch eigene Scanner hinzufügen. Siehe Erweiterung von Layne.
Sobald alles richtig konfiguriert ist, fügt Layne einen Run zum Pull Request hinzu und führt die konfigurierten Scan-Tools aus. Wenn ein Scan fehlschlägt, sieht das so aus:

Laynes Ergebnisse werden als Inline-Anmerkungen im PR hinterlegt, die die genauen Zeilen angeben, 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 deckt Bereitstellung, Konfiguration, Scanner, Notifier, PR-Kommentare, Unterdrückung von Funden, Metriken, Sicherheitsarchitektur und mehr ab.
Layne ist unter der Apache License 2.0 (Apache-2.0) lizenziert. Den vollständigen Text finden Sie in der LICENSE.
Copyright 2026 Rocket.Chat Technologies Corp.
| Scanner | Was er erkennt | Anmerkungen |
|---|
| Semgrep | SAST – Bugs, Schwachstellen, unsichere Muster | Führt standardmäßig semgrep scan --config auto aus; vollständig über extraArgs konfigurierbar |
| Trufflehog | Secrets, API-Schlüssel und Anmeldedaten | Führt trufflehog filesystem aus; verwenden Sie --only-verified, um Rauschen zu reduzieren |
| Claude | Bösartige Absichten, Hintertüren, verschleierte Payloads, Supply-Chain-Angriffe | Standardmäßig deaktiviert; pro Repository opt-in; erfordert ANTHROPIC_API_KEY |
| Spectre | Bösartige Absichten durch einen einzigen LLM-Aufruf pro Datei | Standardmäßig deaktiviert; pro Repository opt-in; unterstützt Anthropic, OpenAI, Google, Mistral, Bedrock |
| Dep Doctor | CVEs, verwaiste und veraltete Abhängigkeiten | Standardmäßig deaktiviert; pro Repository opt-in; erfordert osv-scanner im PATH |