
Rileva e correggi configurazioni errate e rischi di sicurezza su tutte le tue risorse GitHub e GitLab.
Rafforza la postura di sicurezza del tuo sistema di gestione del codice sorgente!
Rileva e correggi facilmente errori di configurazione, problemi di sicurezza e conformità su tutte le risorse GitHub e GitLab 🔥
da Legit Security.
Legit Security è una soluzione di application security posture management (ASPM) e software supply chain security.
Per maggiori informazioni, dai un'occhiata alla tabella di confronto
L'installazione è possibile in diversi modi:
brew install legitify
Puoi scaricare l'ultima versione di legitify da https://github.com/Legit-Labs/legitify/releases, ogni archivio contiene:
Da sorgente con i seguenti passaggi:
git clone [email protected]:Legit-Labs/legitify.git
go run main.go analyze ...
gh extension install legit-labs/gh-legitify
gh legitify
Puoi eseguire legitify come parte di un processo CI con le Azioni Personalizzate GitHub di 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
Consulta il file action per parametri aggiuntivi e configurazione.
Per migliorare la sicurezza della software supply chain degli utenti di legitify, a partire dalla v0.1.6, ogni release di legitify contiene un documento di Provenienza SLSA Livello 3.
Il documento di provenienza si riferisce a tutti gli artefatti presenti nella release, così come all'immagine docker generata.
Puoi utilizzare il verificatore ufficiale del framework SLSA per verificare la provenienza.
Esempio di utilizzo per l'architettura darwin_arm64 per la release 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=<your_token> legitify analyze
Per impostazione predefinita, legitify controllerà le politiche su tutte le tue risorse (organizzazioni, repository, membri, azioni). I repository archiviati vengono saltati.
Puoi controllare quali risorse verranno analizzate tramite i flag da riga di comando namespace e org:
--namespace (-n): analizzerà le politiche relative alle risorse specificate--org: limiterà l'analisi alle organizzazioni GitHub specificate o al gruppo GitLab, escludendo i repository archiviati--repo: limiterà l'analisi ai repository GitHub specificati o ai progetti GitLab--scm: specifica la piattaforma di gestione del codice sorgente. I valori possibili sono: github o gitlab. Il valore predefinito è github. Nota: quando si esegue su GitLab, è richiesto --scm gitlab.--enterprise: specificherà quali enterprise devono essere analizzate. Nota: per analizzare un'enterprise, è necessario fornire uno slug enterprise.SCM_TOKEN=<your_token> legitify analyze --org org1,org2 --namespace organization,member
Il comando precedente testerà le politiche dell'organizzazione e dei membri per org1 e org2.
SCM_TOKEN=<your_token> OPENAI_TOKEN=<token> ./legitify gpt-analysis --repo org1/repo1 --org org1
Analisi basata su GPT-3 della postura di sicurezza del repository o dell'organizzazione fornita.
NOTA: I metadati del repository/dell'organizzazione vengono inviati ai server openai.
Flags:
--org: limita l'analisi alle organizzazioni GitHub specificate o al gruppo GitLab--repo: limita l'analisi ai repository GitHub specificati o ai progetti GitLab--scm: specifica la piattaforma di gestione del codice sorgente. I valori possibili sono: github o gitlab. Il valore predefinito è github.--token: token per lo SCM (o imposta la variabile d'ambiente SCM_TOKEN)--openai-token: token per l'API openai (o imposta la variabile d'ambiente OPENAI_TOKEN)È necessario fornire --org o --repo o entrambi.
Generazione del token openai:
Puoi anche eseguire legitify come azione GitHub nei tuoi workflow, consulta la directory action_examples per esempi concreti.
-t) o come variabile d'ambiente (SCM_TOKEN). Il PAT necessita dei seguenti ambiti per un'analisi completa:admin:org, read:enterprise, admin:org_hook, read:org, repo, read:repo_hook
Consulta Creazione di un Personal Access Token per maggiori informazioni.
I personal access token con granularità fine non sono attualmente supportati.
Puoi eseguire legitify contro un'istanza di GitHub Enterprise Server se imposti l'URL dell'endpoint nella variabile d'ambiente SERVER_URL:
export SERVER_URL="https://github.example.com/"
SCM_TOKEN=<your_token> legitify analyze --org org1,org2 --namespace organization,member
-t) o come variabile d'ambiente (SCM_TOKEN). Il PAT necessita dei seguenti ambiti per un'analisi completa:
read_api, read_user, read_repository, read_registry
Consulta Creazione di un Personal Access Token per maggiori informazioni.--scm gitlab, per eseguirlo contro GitLab Server devi fornire anche una SERVER_URL:export SERVER_URL="https://gitlab.example.com/"
SCM_TOKEN=<your_token> legitify analyze --namespace organization --scm gitlab
NOTA 1: Per ignorare certificati server non validi, passa il flag
ignore-invalid-certificate
NOTA 2: Per account GitLab non premium alcune politiche (come le politiche di protezione dei branch) verranno saltate
I namespace in legitify sono risorse che vengono raccolte e valutate rispetto alle politiche. Attualmente, sono supportati i seguenti namespace:
organization - politiche a livello di organizzazione GitHub (o gruppo GitLab) (ad es., "L'autenticazione a due fattori non è obbligatoria per l'organizzazione")actions - politiche GitHub Actions dell'organizzazione (ad es., "Le esecuzioni di GitHub Actions non sono limitate ad azioni verificate")member - politiche a livello di contributore (ad es., "Trovato amministratore inattivo")repository - politiche a livello di repository GitHub (o progetto GitLab) (ad es., "La revisione del codice da parte di almeno due revisori non è obbligatoria"). Nota: I repository archiviati vengono ignorati a meno che non siano specificati direttamente tramite l'argomento --repo.runner_group - politiche del gruppo di runner (ad es., "il runner può essere utilizzato da repository pubblici")Per impostazione predefinita, legitify analizzerà tutti i namespace. Puoi limitarti solo a quelli selezionati con il flag --namespace, seguito da un elenco separato da virgole dei namespace selezionati.
Per impostazione predefinita, legitify produce output in un formato leggibile dall'uomo. Questo include l'elenco delle violazioni delle politiche elencate per gravità, oltre a una tabella riassuntiva ordinata per namespace.
Utilizzando il flag --output-format (-f), legitify supporta l'output dei risultati nei seguenti formati:
human-readable - Testo leggibile dall'uomo (predefinito).json - JSON standard.sarif - Formato SARIF (info).Utilizzando il flag --output-scheme, legitify supporta l'output dei risultati in diversi schemi di raggruppamento.
Nota: --output-format=json deve essere specificato per produrre schemi non predefiniti.
flattened - Nessun raggruppamento; un elenco piatto delle politiche, ciascuna con le proprie violazioni (predefinito).group-by-namespace - Raggruppa le politiche per namespace.group-by-resource - Raggruppa le politiche per risorsa, ad es. organizzazione/repository specifico.group-by-severity - Raggruppa le politiche per gravità.--output-file - percorso completo del file di output (predefinito: nessun file di output, stampa su stdout).--error-file - percorso completo dei log degli errori (predefinito: ./error.log).Quando si produce output in formato leggibile dall'uomo, legitify supporta il flag convenzionale --color[=when], che ha le seguenti opzioni:
auto - output colorato se stdout è un terminale, non colorato altrimenti (predefinito).always - output colorato indipendentemente dalla destinazione.none - output non colorato indipendentemente dalla destinazione.--failed-only per filtrare i controlli superati/saltati dal risultato.--ignore-policies-path $PATH e fornisci un file con le politiche che vuoi ignorare per saltare politiche specifiche.
Una politica per riga, ad es.
no_conversation_resolution requires_status_checks ─╯Scorecard è un progetto open source di OSSF:
Scorecards è uno strumento automatizzato che valuta una serie di importanti euristiche ("controlli") associate alla sicurezza del software e assegna a ciascun controllo un punteggio da 0 a 10. Puoi utilizzare questi punteggi per comprendere aree specifiche su cui migliorare per rafforzare la postura di sicurezza del tuo progetto. Puoi anche valutare i rischi introdotti dalle dipendenze e prendere decisioni informate sull'accettazione di tali rischi, la valutazione di soluzioni alternative o la collaborazione con i manutentori per apportare miglioramenti.
legitify supporta l'esecuzione di scorecard per tutti i repository dell'organizzazione, applicando le politiche sui punteggi e mostrando i risultati utilizzando il flag --scorecard:
no - non eseguire scorecard (predefinito).yes - esegue scorecard e applica una politica che avvisa su ogni repository con punteggio inferiore a 7.0.verbose - esegue scorecard, applica una politica che avvisa su ogni repository con punteggio inferiore a 7.0 e incorpora il suo output nell'output di legitify.legitify esegue i seguenti controlli scorecard:
| Check | Public Repository | Private Repository |
|---|---|---|
| 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 include una serie di politiche per ciascun SCM nella directory policies/.
Queste politiche sono documentate qui.
Grazie per aver considerato di contribuire a Legitify! Incoraggiamo e apprezziamo qualsiasi tipo di contributo. Ecco alcune risorse per iniziare:
Se hai domande su legitify o hai bisogno di assistenza per il suo funzionamento, non esitare a contattarci. Il nostro team è impegnato a fornire supporto e garantire un'esperienza senza intoppi.
Se ti è piaciuto Legitify, adorerai la Legit Security Platform!
Di seguito un confronto tra Legitify e Legit:
| Capacità | Legitify | Legit Security Platform |
|---|---|---|
| Piattaforme supportate | GitHub GitLab | TUTTI i principali SCM (incl. Azure DevOps, Bitbucket e altri) Sistemi CI/CD (es. Jenkins) Registri pacchetti (es. JFrog Artifactory) Provider cloud (es. AWS) |
| Rilevamento rischi | Solo errori di configurazione SCM | Errori di configurazione SCM Errori di configurazione CI Errori di configurazione CD Errori di configurazione dei registri pacchetti Rischi pipeline Segreti IaC Incidenti di sicurezza E altro... |
| Report di conformità | OSSF SCM Best Practices | SSDF SLSA SOC2 ISO 27001 FedRAMP E altro... |
| Rilevamento drift delle politiche | Può essere rilevato periodicamente tramite l'azione GitHub di Legitify | Ricevi avvisi in tempo reale quando viene introdotto un errore di configurazione |
| Gestione asset SDLC | - | Sì |
| Gestione problemi e politiche | - | Sì |
| Contesto Code To Cloud | - | Sì (le informazioni contestualizzate consentono una priorità più intelligente) |
| Spazi di lavoro e gruppi di prodotti | - | Sì |
| Ticket e avvisi | - | Jira, Slack e altro |
| Ingestione rischi | - | API di importazione e integrazioni con SAST, SCA e altre soluzioni di test |
| API REST | - | Sì |