Gestire le funzionalità e gli avvisi di GitHub Advanced Security
Ora che la sicurezza per il progetto è configurata, è necessario monitorare e gestire le funzionalità e gli avvisi di sicurezza avanzata GitHub per il progetto.
In questa unità si apprenderà come usare Panoramica della sicurezza per monitorare i rischi per la sicurezza nel progetto. Si apprenderà anche come usare GitHub endpoint di sicurezza avanzata per gestire funzionalità e avvisi di sicurezza.
Usa Panoramica della sicurezza
Panoramica della sicurezza è disponibile nella scheda Sicurezza e qualità per organizzazioni e repository. È possibile usarlo per ottenere una panoramica generale del comportamento di sicurezza dell'organizzazione o identificare i repository che richiedono attenzione.
- Livello organizzazione: Visualizza informazioni di sicurezza aggregate e specifiche del repository per i repository di proprietà dell'organizzazione. Le informazioni possono anche essere filtrate in base alla funzionalità di sicurezza.
- Livello team: Visualizza le informazioni di sicurezza specifiche del repository per i repository in cui il team dispone dei privilegi di amministratore.
- Livello repository: Mostra le funzionalità di sicurezza abilitate per il repository e fornisce opzioni per configurare le funzionalità disponibili che non sono attualmente abilitate.
Grazie alle funzionalità interattive di interfaccia e filtro, Panoramica della sicurezza supporta sia l'analisi della sicurezza estesa che quella mirata.
Ad esempio, è possibile usarlo per:
- Monitorare l'adozione delle funzionalità di sicurezza nell'organizzazione.
- Monitorare l'adozione dei singoli team durante la distribuzione di GitHub Advanced Security.
- Esaminare gli avvisi di un tipo o una gravità specifici in tutti i repository.
Usare gli endpoint di GitHub Advanced Security
La tabella seguente riepiloga gli endpoint API disponibili per ogni GitHub funzionalità sicurezza avanzata.
| Caratteristica | Endpoint | Documentazione |
|---|---|---|
| Analisi del codice | Recuperare e aggiornare gli avvisi di analisi del codice. Creare report automatizzati per le organizzazioni. Caricare i risultati dell'analisi CodeQL offline. |
API analisi del codice |
| Analisi dei segreti | Abilita o disabilita la scansione dei segreti nei repository. Recuperare e aggiornare gli avvisi di analisi dei segreti. |
API dei repository API di scansione dei segreti |
| Revisione delle dipendenze | Abilitare o disabilitare gli avvisi delle dipendenze e il grafico delle dipendenze. Abilitare o disabilitare le correzioni di sicurezza. Visualizzare le informazioni sulle dipendenze. |
API dei repository API GraphQL |
Configurare le GITHUB_TOKEN autorizzazioni
Se si usa GitHub Actions per automatizzare i flussi di lavoro di sicurezza, è importante configurare le autorizzazioni concesse all'GITHUB_TOKENoggetto usato per le chiamate API autenticate.
La tabella seguente riepiloga le autorizzazioni predefinite.
| Ambito | Accesso predefinito (permissivo) | Accesso predefinito (con restrizioni) | Accesso massimo dai repository con fork |
|---|---|---|---|
| Azioni | lettura/scrittura | Nessuno | lettura |
| controlli | lettura/scrittura | Nessuno | lettura |
| contenuti | lettura/scrittura | lettura | lettura |
| distribuzioni | lettura/scrittura | Nessuno | lettura |
| token id | lettura/scrittura | Nessuno | lettura |
| problemi | lettura/scrittura | Nessuno | lettura |
| dati descrittivi | lettura | lettura | lettura |
| Pacchetti | lettura/scrittura | Nessuno | lettura |
| richieste pull | lettura/scrittura | Nessuno | lettura |
| progetti repository | lettura/scrittura | Nessuno | lettura |
| eventi di sicurezza | lettura/scrittura | Nessuno | lettura |
| stati | lettura/scrittura | Nessuno | lettura |
È possibile modificare le autorizzazioni concesse a GITHUB_TOKEN in singoli file del flusso di lavoro.
- Se le autorizzazioni predefinite sono restrittive, potrebbe essere necessario aumentare le autorizzazioni in modo che i flussi di lavoro possano essere completati correttamente.
- Se le autorizzazioni predefinite sono permissive, è consigliabile rimuovere autorizzazioni non necessarie.
Come procedura consigliata per la sicurezza, concedere sempre il privilegio minimo richiesto.
È anche possibile usare la permissions chiave per configurare le autorizzazioni per un intero flusso di lavoro o per singoli processi. Quando viene specificato permissions, tutte le autorizzazioni non specificate vengono impostate su none, ad eccezione dell'ambito metadata, che ha sempre accesso read.
name: Create issue on commit
on:
- push
jobs:
create_commit:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**.\n\nThe commit hash was: _${{ github.sha }}_."
}' \
--fail
Nell'esempio precedente viene concesso l'accesso in scrittura per un ambito di problemi per un singolo processo.
È anche possibile usare la permissions chiave per aggiungere o rimuovere le autorizzazioni di lettura per i flussi di lavoro attivati dai repository con fork. Le autorizzazioni di scrittura in genere non possono essere concesse a meno che l'opzione Invia token di scrittura ai flussi di lavoro dalle richieste pull sia abilitata nelle impostazioni di GitHub Actions.
Visualizzazioni di rilevamento, correzione e prevenzione
Panoramica della sicurezza organizza le informazioni dettagliate in tre visualizzazioni principali.
| View | Purpose |
|---|---|
| Rilevamento | Monitorare la posizione in cui vengono individuate vulnerabilità, segreti e rischi per le dipendenze. |
| Bonifica | Tenere traccia del modo in cui gli avvisi vengono corretti, classificati in ordine di priorità e risolti tra repository. |
| Prevenzione | Misurare la modalità di prevenzione delle vulnerabilità prima di raggiungere rami protetti. |
La visualizzazione Prevenzione aiuta le organizzazioni a valutare in che modo i controlli di sicurezza interrompono le modifiche rischiose prima che vengano unite.
Ecco alcuni esempi:
- Vulnerabilità risolte durante la revisione delle richieste pull.
- Risultati dell'analisi del codice risolti prima dell'unione.
- Attività di correzione automatica di Copilot.
- Eventi di protezione push dell'analisi dei segreti.
- È stato impedito il rischio di dipendenza.
Interpretazione degli avvisi tra le funzionalità di sicurezza
Security Overview raggruppa le informazioni provenienti da più funzionalità di sicurezza di GitHub per aiutare i team a comprendere il rischio dell'organizzazione.
Le origini di avviso comuni includono:
- Avvisi di analisi del codice: Vulnerabilità e modelli di codifica non sicuri rilevati da scanner CodeQL o di terze parti.
- Avvisi di analisi dei segreti: Credenziali esposte, chiavi API e token.
- Avvisi di Dependabot: Dipendenze vulnerabili e rischi relativi ai pacchetti.
- Revisione delle dipendenze: Rischi introdotti dalle modifiche alle dipendenze nelle pull request.
Teams può filtrare gli avvisi in base a:
- Severity
- Repository
- Tipo di funzionalità
- Intervallo di tempo
- Proprietà del team
- Stato dell'avviso
Questi filtri supportano sia l'analisi a livello di organizzazione che le indagini incentrate.
Monitoraggio degli interventi di correzione e informazioni sulla correzione automatica
Panoramica della sicurezza consente anche di monitorare lo stato di avanzamento della correzione.
I team di sicurezza possono tenere traccia di:
- Avvisi delle pull request corretti prima del merge.
- Tendenze di correzione.
- Pull request generate da Autofix di Copilot.
- Tassi di convalida e di completamento delle unioni.
- Repository con avvisi ricorrenti non risolti.
Queste informazioni aiutano le organizzazioni a identificare i colli di bottiglia, assegnare priorità ai repository ad alto rischio e misurare l'efficacia degli interventi correttivi.
Visibilità sugli eventi di bypass e i segnali di governance
La panoramica della sicurezza illustra anche le metriche relative alla governance e ai criteri nell'intera organizzazione.
Ecco alcuni esempi:
- Eventi di bypass della protezione push.
- Attività di applicazione della protezione dei rami.
- Tendenze di chiusura degli avvisi.
- Attività del registro di controllo.
- Metriche di adozione e di copertura dei criteri.
Queste metriche consentono agli amministratori di comprendere:
- Dove gli utenti ignorano le protezioni.
- Indica se i criteri richiedono l'affinamento.
- Indica se i controlli di sicurezza vengono applicati in modo coerente.
Insieme ai log di controllo, ai set di regole e ai criteri di protezione dei rami, questi dati analitici supportano la creazione di report sulla conformità, le revisioni operative e il miglioramento continuo della sicurezza.
Ruoli e responsabilità di sicurezza
Il successo dell'adozione di GitHub Advanced Security richiede una chiara attribuzione delle responsabilità tra i team di sviluppo, sicurezza e amministrazione.
Diversi ruoli interagiscono con GitHub funzionalità di sicurezza avanzata in tutto il ciclo di vita di sviluppo software e risposta agli eventi imprevisti.
| Responsabilità | Gli sviluppatori | Ingegneri della sicurezza | Repository/Amministratori dell'organizzazione |
|---|---|---|---|
| Esaminare e correggere gli avvisi di analisi del codice | Sì | Sì | No |
| Rivedere gli avvisi di scansione dei segreti | Sì | Sì | Sì |
| Aggiornare le dipendenze vulnerabili | Sì | Sì | No |
| Convalidare le pull request di Copilot Autofix | Sì | Sì | No |
| Valutare e classificare in ordine di priorità gli avvisi di sicurezza | No | Sì | Sì |
| Configurare criteri di sicurezza e set di regole | No | Sì | Sì |
| Gestire i criteri di protezione dei rami e del flusso di lavoro | No | No | Sì |
| Monitorare le dashboard della panoramica della sicurezza | No | Sì | Sì |
| Esaminare i log di controllo e i segnali di governance | No | Sì | Sì |
| Configurare le impostazioni di sicurezza del repository e dell'organizzazione | No | No | Sì |
| Coordinare i flussi di lavoro di risposta agli eventi imprevisti | No | Sì | Sì |
| Approvare eccezioni ai criteri o rifiuti | No | Sì | Sì |
Titolarità del flusso di lavoro di esempio
Un tipico flusso di lavoro di sicurezza avanzata GitHub prevede l'uso di più ruoli.
- Uno sviluppatore riceve un avviso di analisi del codice in una richiesta pull.
- Un tecnico della sicurezza esamina la gravità dell'avviso e consiglia un approccio di correzione.
- Copilot Autofix suggerisce un aggiornamento della pull request.
- Lo sviluppatore convalida la correzione e aggiorna il codice, se necessario.
- Gli amministratori del repository applicano le protezioni dei rami e i controlli necessari prima dell'unione.
- I team di sicurezza esaminano i log di controllo e le tendenze di correzione tramite Panoramica della sicurezza.
Definire chiaramente le responsabilità aiuta le organizzazioni a estendere l’adozione di GitHub Advanced Security, mantenendo al contempo governance, responsabilità e coerenza operativa.