
Nous demandons à tous les contributeurs de bien vouloir cloner une *copie fraîche* de ce dépôt depuis la maintenance du 21 septembre.
Salus (Security Automation as a Lightweight Universal Scanner - Automatisation de la Sécurité en tant que Scanner Universel Léger), nommé d'après la déesse romaine de la protection, est un outil pour coordonner l'exécution de scanners de sécurité. Vous pouvez exécuter Salus sur un dépôt via le démon Docker et il déterminera quels scanners sont pertinents, les exécutera et fournira la sortie. La plupart des scanners sont d'autres projets open source matures que nous incluons directement dans le conteneur.
Salus est particulièrement utile pour les pipelines CI/CD car il devient un point centralisé pour coordonner l'analyse sur une grande flotte de dépôts. En général, les scanners sont configurés au niveau du dépôt pour chaque projet. Cela signifie que lors de modifications à l'échelle de l'organisation sur la façon dont les scanners sont exécutés, chaque dépôt doit être mis à jour. Au lieu de cela, vous pouvez mettre à jour Salus et toutes les builds hériteront instantanément du changement.
Salus supporte une configuration puissante qui permet des valeurs par défaut globales et des ajustements locaux. Enfin, Salus peut rapporter des métriques sur chaque dépôt, comme les paquets inclus ou les préoccupations existantes. Ces rapports peuvent être évalués de manière centralisée dans votre infrastructure pour permettre un suivi de sécurité évolutif.
# Naviguez vers le répertoire racine du projet sur lequel vous voulez exécuter Salus
cd /path/to/repo
# Exécutez la ligne suivante dans le répertoire racine (Aucune modification nécessaire)
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
semgrep 1.0.0, qui recherche des motifs sémantiques et syntaxiques dans le code au niveau AST.npm audit 6.14.8 qui recherche les CVE dans les dépendances de modules Node.yarn audit 1.22.0 qui recherche les CVE dans les dépendances de modules Node.Salus analyse également les fichiers de dépendances et rapporte quelles bibliothèques et versions sont utilisées. Cela peut être utile pour suivre les dépendances sur l'ensemble de votre flotte.
Les langages actuellement supportés sont :
Salus est conçu pour être hautement configurable afin de fonctionner dans de nombreux types d'environnements et avec de nombreux scanners différents. Il supporte l'interpolation de variables d'environnement et les configurations en cascade, et peut lire la configuration et publier des rapports via HTTP.
Il est parfois nécessaire d'ignorer certains CVE, règles, tests, groupes, répertoires, ou de modifier la configuration par défaut d'un scanner. Le répertoire docs/scanners explique comment faire pour chaque scanner supporté par Salus.
Si vous souhaitez construire des scanners personnalisés ou supporter plus de langages qui ne sont pas actuellement supportés, vous pouvez utiliser cette méthode pour construire des images Salus personnalisées.
Salus peut être intégré avec CircleCI en utilisant un Orb public. Toutes les options de configuration de Salus sont supportées, et les valeurs par défaut sont les mêmes que pour Salus lui-même.
Exemple de config.yml CircleCI :
version: 2.1
orbs:
salus: federacy/[email protected]
workflows:
main:
jobs:
- salus/scan
Salus peut également être utilisé avec Github Actions.
Exemple de .github/workflows/main.yml :
on: [push]
jobs:
salus_scan_job:
runs-on: ubuntu-latest
name: Exemple d'Analyse de Sécurité Salus
steps:
- uses: actions/checkout@v1
- name: Analyse Salus
id: salus_scan
uses: federacy/[email protected]
Documentation de l'Action Github
Pour votre CI donné, mettez à jour le fichier de configuration pour exécuter salus. Dans Circle, cela ressemblera à ceci :
docker run --rm -t -v $(pwd):/home/repo coinbase/salus
coinbase/salus récupère l'image Docker
La contribution à ce projet est extrêmement bienvenue et nous espérons sincèrement que le travail que nous avons accompli jusqu'à présent ne sert que de base pour permettre aux communautés de sécurité/développement dans leur ensemble de se réunir pour améliorer la sécurité de tout le monde infrastructure.
Vous pouvez en savoir plus sur la mise en place de votre environnement de développement, ou l'architecture de Salus.
Vous pouvez également trouver les étapes pour ajouter un nouveau scanner à Salus
Ce projet est disponible en open source selon les termes de la Licence Apache 2.0.
siftTruffleHog 3.19.0, recherche les credentials divulgués.