
Wir möchten alle Mitwirkenden bitten, seit der Wartung am 21. September einen *neuen Klon* dieses Repositorys zu erstellen.
Salus (Security Automation as a Lightweight Universal Scanner), benannt nach der römischen Schutzgöttin, ist ein Werkzeug zur Koordination der Ausführung von Sicherheitsscannern. Sie können Salus über den Docker-Daemon in einem Repository ausführen, und es wird ermittelt, welche Scanner relevant sind, diese ausführen und die Ausgabe bereitstellen. Die meisten Scanner sind andere ausgereifte Open-Source-Projekte, die wir direkt in den Container einbinden.
Salus ist besonders nützlich für CI/CD-Pipelines, da es einen zentralen Ort zur Koordinierung des Scannens über eine große Anzahl von Repositorys hinweg bietet. Normalerweise werden Scanner auf Repository-Ebene für jedes Projekt konfiguriert. Das bedeutet, dass bei organisationsweiten Änderungen der Ausführung der Scanner jedes Repository aktualisiert werden muss. Stattdessen können Sie Salus aktualisieren, und alle Builds übernehmen die Änderung sofort.
Salus unterstützt eine leistungsstarke Konfiguration, die globale Standardeinstellungen und lokale Anpassungen ermöglicht. Schließlich kann Salus Metriken zu jedem Repository melden, z. B. welche Pakete enthalten sind oder welche Bedenken bestehen. Diese Berichte können in Ihrer Infrastruktur zentral ausgewertet werden, um eine skalierbare Sicherheitsverfolgung zu ermöglichen.
# Navigate to the root directory of the project you want to run Salus on
cd /path/to/repo
# Run the following line while in the root directory (No edits necessary)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0, das nach semantischen und syntaktischen Mustern im Code auf AST-Ebene sucht.npm audit 6.14.8, sucht nach CVEs in Node-Modul-Abhängigkeiten.yarn audit 1.22.0, sucht nach CVEs in Node-Modul-Abhängigkeiten.sift 0.9.0, sucht nach bestimmten Zeichenfolgen in einem Projekt, die gefährlich sein könnten oder erfordern könnten, dass bestimmte Zeichenfolgen vorhanden sind.Salus parst auch Abhängigkeitsdateien und meldet, welche Bibliotheken und Versionen verwendet werden. Dies kann nützlich sein, um Abhängigkeiten in Ihrer gesamten Flotte zu verfolgen.
Derzeit unterstützte Sprachen sind:
Salus ist so konzipiert, dass es hochgradig konfigurierbar ist, damit es in vielen verschiedenen Arten von Umgebungen und mit vielen verschiedenen Scannern funktioniert. Es unterstützt Umgebungsvariablen-Interpolation und kaskadierende Konfigurationen und kann Konfigurationen lesen und Berichte über HTTP senden.
Manchmal ist es notwendig, bestimmte CVEs, Regeln, Tests, Gruppen, Verzeichnisse zu ignorieren oder anderweitig die Standardkonfiguration für einen Scanner zu ändern. Das docs/scanners-Verzeichnis erklärt, wie dies für jeden von Salus unterstützten Scanner zu tun ist.
Wenn Sie benutzerdefinierte Scanner erstellen oder weitere Sprachen unterstützen möchten, die derzeit nicht unterstützt werden, können Sie diese Methode zum Erstellen benutzerdefinierter Salus-Images verwenden.
Salus kann durch die Verwendung eines öffentlichen Orbs in CircleCI integriert werden. Alle Salus-Konfigurationsoptionen werden unterstützt, und die Standardeinstellungen sind die gleichen wie für Salus selbst.
Beispiel für CircleCI config.yml:
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Salus kann auch mit GitHub Actions verwendet werden.
Beispiel .github/workflows/main.yml:
on: [push]
jobs:
salus_scan_job:
runs-on: ubuntu-latest
name: Salus Security Scan Example
steps:
- uses: actions/checkout@v1
- name: Salus Scan
id: salus_scan
uses: federacy/[email protected]
Aktualisieren Sie für Ihr jeweiliges CI die Konfigurationsdatei, um Salus auszuführen. In CircleCI sieht das so aus:
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus zieht das Docker-Image
Beiträge zu diesem Projekt sind äußerst willkommen, und es ist unsere aufrichtige Hoffnung, dass die bisher geleistete Arbeit nur als Grundlage dafür dient, dass die gesamte Sicherheits-/Entwicklungsgemeinschaft zusammenkommt, um die Sicherheit der Infrastruktur aller zu verbessern.
Sie können mehr über die Einrichtung Ihrer Entwicklungsumgebung oder die Architektur von Salus lesen.
Sie finden auch Schritte zum Hinzufügen eines neuen Scanners zu Salus
Dieses Projekt ist als Open Source unter den Bedingungen der Apache 2.0 License verfügbar.
TruffleHog 3.19.0, sucht nach durchgesickerten Anmeldeinformationen.