
Détectez et corrigez les mauvaises configurations et les risques de sécurité sur l'ensemble de vos actifs GitHub et GitLab.
Renforcez la posture de sécurité de votre gestion de code source !
Détectez et corrigez les mauvaises configurations, les problèmes de sécurité et de conformité sur tous vos actifs GitHub et GitLab avec facilité 🔥
par Legit Security.
Legit Security est une solution de gestion de la posture de sécurité des applications (ASPM) et de sécurité de la chaîne d'approvisionnement logicielle.
Pour plus d'informations, consultez le tableau comparatif
L'installation est possible de plusieurs manières :
brew install legitify
Vous pouvez télécharger la dernière version de legitify depuis https://github.com/Legit-Labs/legitify/releases, chaque archive contient :
Depuis les sources avec les étapes suivantes :
git clone [email protected]:Legit-Labs/legitify.git
go run main.go analyze ...
gh extension install legit-labs/gh-legitify
gh legitify
Vous pouvez exécuter legitify dans le cadre d'un processus CI avec les actions GitHub personnalisées de legitify :
name: Legitify Analyze
on:
workflow_dispatch:
schedule:
- cron: '0 11 * * 1-5'
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- name: Legitify Action
uses: Legit-Labs/legitify@main
with:
github_token: ${{ secrets.PAT_FOR_LEGITIFY }}
ignore-policies: |
non_admins_can_create_public_repositories
requires_status_checks
Consultez le fichier d'action pour les paramètres et la configuration supplémentaires.
Pour renforcer la sécurité de la chaîne d'approvisionnement logicielle des utilisateurs de legitify, à partir de la version v0.1.6, chaque version de legitify contient un document de Provenance SLSA Niveau 3.
Le document de provenance fait référence à tous les artefacts de la version, ainsi qu'à l'image Docker générée.
Vous pouvez utiliser le vérificateur officiel du framework SLSA pour vérifier la provenance.
Exemple d'utilisation pour l'architecture darwin_arm64 pour la version v0.1.6 :
VERSION=0.1.6
ARCH=darwin_arm64
./slsa-verifier verify-artifact --source-branch main --builder-id 'https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v1.2.2' --source-uri "git+https://github.com/Legit-Labs/legitify" --provenance-path multiple.intoto.jsonl ./legitify_${VERSION}_${ARCH}.tar.gz
SCM_TOKEN=<votre_token> legitify analyze
Par défaut, legitify vérifiera les politiques par rapport à toutes vos ressources (organisations, dépôts, membres, actions). Les dépôts archivés sont ignorés.
Vous pouvez contrôler les ressources qui seront analysées avec les indicateurs en ligne de commande namespace et org :
--namespace (-n) : analysera les politiques relatives aux ressources spécifiées--org : limitera l'analyse aux organisations GitHub ou au groupe GitLab spécifiés, en excluant les dépôts archivés--repo : limitera l'analyse aux dépôts GitHub ou aux projets GitLab spécifiés--scm : spécifier la plateforme de gestion de code source. Les valeurs possibles sont : github ou gitlab. Par défaut : github. Veuillez noter : lors de l'exécution sur GitLab, --scm gitlab est requis.--enterprise : spécifier les entreprises qui doivent être analysées. Veuillez noter : pour analyser une entreprise, un slug d'entreprise doit être fourni.SCM_TOKEN=<votre_token> legitify analyze --org org1,org2 --namespace organization,member
La commande ci-dessus testera les politiques d'organisation et de membre pour org1 et org2.
SCM_TOKEN=<votre_token> OPENAI_TOKEN=<jeton> ./legitify gpt-analysis --repo org1/repo1 --org org1
Analyse basée sur GPT-3 de la posture de sécurité du dépôt ou de l'organisation fournis.
REMARQUE : Les métadonnées du dépôt/de l'organisation sont envoyées aux serveurs d'OpenAI.
Indicateurs :
--org : limitera l'analyse aux organisations GitHub ou au groupe GitLab spécifiés--repo : limitera l'analyse aux dépôts GitHub ou aux projets GitLab spécifiés--scm : spécifier la plateforme de gestion de code source. Les valeurs possibles sont : github ou gitlab. Par défaut : github.--token : jeton pour le SCM (ou définir la variable d'environnement SCM_TOKEN)--openai-token : jeton pour l'API OpenAI (ou définir la variable d'environnement OPENAI_TOKEN)Vous devez fournir soit --org, soit --repo, ou les deux.
Génération du jeton OpenAI :
Vous pouvez également exécuter legitify en tant qu'action GitHub dans vos workflows, consultez le répertoire action_examples pour des exemples concrets.
-t) soit comme variable d'environnement (SCM_TOKEN).
Le PAT nécessite les portées suivantes pour une analyse complète :admin:org, read:enterprise, admin:org_hook, read:org, repo, read:repo_hook
Voir Création d'un jeton d'accès personnel pour plus d'informations.
Les jetons d'accès personnels à granularité fine ne sont actuellement pas pris en charge.
Vous pouvez exécuter legitify contre une instance GitHub Enterprise Server si vous définissez l'URL du point de terminaison dans la variable d'environnement SERVER_URL :
export SERVER_URL="https://github.example.com/"
SCM_TOKEN=<votre_token> legitify analyze --org org1,org2 --namespace organization,member
-t) soit comme variable d'environnement (SCM_TOKEN).
Le PAT nécessite les portées suivantes pour une analyse complète :
read_api, read_user, read_repository, read_registry
Voir Création d'un jeton d'accès personnel pour plus d'informations.--scm gitlab, pour exécuter contre GitLab Server, vous devez également fournir une SERVER_URL :export SERVER_URL="https://gitlab.example.com/"
SCM_TOKEN=<votre_token> legitify analyze --namespace organization --scm gitlab
NOTE 1 : Pour ignorer un certificat serveur invalide, veuillez passer l'indicateur
ignore-invalid-certificate
NOTE 2 : Pour les comptes GitLab non premium, certaines politiques (telles que les politiques de protection de branche) seront ignorées
Les espaces de noms dans legitify sont des ressources qui sont collectées et évaluées par rapport aux politiques. Actuellement, les espaces de noms suivants sont pris en charge :
organization - Politiques au niveau de l'organisation GitHub (ou du groupe GitLab) (par exemple, "L'authentification à deux facteurs n'est pas appliquée à l'organisation")actions - Politiques GitHub Actions de l'organisation (par exemple, "Les exécutions GitHub Actions ne sont pas limitées aux actions vérifiées")member - Politiques au niveau du contributeur (par exemple, "Administrateur inactif trouvé")repository - Politiques au niveau du dépôt GitHub (ou du projet GitLab) (par exemple, "La revue de code par au moins deux relecteurs n'est pas appliquée"). Remarque : Les dépôts archivés sont ignorés sauf s'ils sont spécifiés directement via l'argument --repo.runner_group - Politiques de groupe de runners (par exemple, "le runner peut être utilisé par des dépôts publics")Par défaut, legitify analysera tous les espaces de noms. Vous pouvez limiter l'analyse à certains seulement avec l'indicateur --namespace, suivi d'une liste séparée par des virgules des espaces de noms sélectionnés.
Par défaut, legitify affiche les résultats dans un format lisible par un humain. Cela inclut la liste des violations de politique classées par sévérité, ainsi qu'un tableau récapitulatif trié par espace de noms.
En utilisant l'indicateur --output-format (-f), legitify prend en charge l'affichage des résultats dans les formats suivants :
human-readable - Texte lisible par un humain (par défaut).json - JSON standard.sarif - Format SARIF (info).En utilisant l'indicateur --output-scheme, legitify prend en charge l'affichage des résultats selon différents schémas de regroupement.
Remarque : --output-format=json doit être spécifié pour afficher des schémas non par défaut.
flattened - Aucun regroupement ; une liste plate des politiques, chacune avec ses violations (par défaut).group-by-namespace - Regroupe les politiques par leur espace de noms.group-by-resource - Regroupe les politiques par leur ressource, par exemple organisation/dépôt spécifique.group-by-severity - Regroupe les politiques par leur sévérité.--output-file - chemin complet du fichier de sortie (par défaut : pas de fichier de sortie, affiche sur stdout).--error-file - chemin complet des journaux d'erreur (par défaut : ./error.log).Lors de l'affichage dans un format lisible par un humain, legitify prend en charge l'indicateur conventionnel --color[=when], qui a les options suivantes :
auto - sortie colorée si stdout est un terminal, non colorée sinon (par défaut).always - sortie colorée quelle que soit la destination de sortie.none - sortie non colorée quelle que soit la destination de sortie.--failed-only pour filtrer les vérifications réussies/ignorées du résultat.--ignore-policies-path $CHEMIN et fournissez un fichier avec les politiques que vous souhaitez ignorer pour ignorer des politiques spécifiques.
Une politique par ligne, par exemple :
no_conversation_resolution requires_status_checksScorecard est un projet open-source de l'OSSF :
Scorecards est un outil automatisé qui évalue un certain nombre d'heuristiques importantes ("vérifications") associées à la sécurité logicielle et attribue à chaque vérification un score de 0 à 10. Vous pouvez utiliser ces scores pour comprendre les domaines spécifiques à améliorer afin de renforcer la posture de sécurité de votre projet. Vous pouvez également évaluer les risques que les dépendances introduisent et prendre des décisions éclairées quant à l'acceptation de ces risques, à l'évaluation de solutions alternatives ou à la collaboration avec les mainteneurs pour apporter des améliorations.
legitify prend en charge l'exécution de Scorecard pour tous les dépôts de l'organisation, en appliquant des politiques de score et en affichant les résultats à l'aide de l'indicateur --scorecard :
no - n'exécute pas Scorecard (par défaut).yes - exécute Scorecard et utilise une politique qui alerte sur chaque score de dépôt inférieur à 7,0.verbose - exécute Scorecard, utilise une politique qui alerte sur chaque score de dépôt inférieur à 7,0, et intègre sa sortie à celle de legitify.legitify exécute les vérifications Scorecard suivantes :
| Vérification | Dépôt public | Dépôt privé |
|---|---|---|
| Security-Policy | V | |
| CII-Best-Practices | V | |
| Fuzzing | V | |
| License | V | |
| Signed-Releases | V | |
| Branch-Protection | V | V |
| Code-Review | V | V |
| Contributors | V | V |
| Dangerous-Workflow | V | V |
| Dependency-Update-Tool | V | V |
| Maintained | V | V |
| Pinned-Dependencies | V | V |
| SAST | V | V |
| Token-Permissions | V | V |
| Vulnerabilities | V | V |
| Webhooks | V | V |
legitify est livré avec un ensemble de politiques pour chaque SCM dans le répertoire policies/.
Ces politiques sont documentées ici.
Merci d'envisager de contribuer à Legitify ! Nous encourageons et apprécions tout type de contribution. Voici quelques ressources pour vous aider à démarrer :
Si vous avez des questions sur legitify ou si vous avez besoin d'aide pour son fonctionnement, n'hésitez pas à nous contacter. Notre équipe s'engage à fournir une assistance et à garantir une expérience fluide.
Si vous avez aimé Legitify, vous allez adorer la plateforme Legit Security !
Voici un tableau comparatif entre Legitify et Legit :
| Capacité | Legitify | Plateforme Legit Security |
|---|---|---|
| Plateformes prises en charge | GitHub GitLab | TOUS les principaux SCM (incl. Azure DevOps, Bitbucket et plus) Systèmes CI/CD (ex. Jenkins) Registres de paquets (ex. JFrog Artifactory) Fournisseurs cloud (ex. AWS) |
| Détection des risques | Mauvaises configurations SCM uniquement | Mauvaises configurations SCM Mauvaises configurations CI Mauvaises configurations CD Mauvaises configurations de registres de paquets Risques pipeline Secrets IaC Incidents de sécurité Et plus… |
| Rapport de conformité | Bonnes pratiques SCM OSSF | SSDF SLSA SOC2 ISO 27001 FedRAMP Et plus… |
| Détection des dérives de politique | Peut être détectée périodiquement via l'action GitHub de Legitify | Recevez des alertes en temps réel lorsqu'une mauvaise configuration est introduite |
| Gestion des actifs SDLC | - | Oui |
| Gestion des problèmes et des politiques | - | Oui |
| Contexte Code to Cloud | - | Oui (les informations contextualisées permettent une meilleure priorisation) |
| Espaces de travail et groupes de produits | - | Oui |
| Ticketing et alertes | - | Jira, Slack, et plus |
| Intégration des risques | - | API d'importation et intégrations avec SAST, SCA et autres solutions de test |
| API REST | - | Oui |
Pour découvrir Legit, visitez notre site web ou réservez une démo directement.