#security #sviluppo-software

GitHub Advanced Security: funzionalità, vantaggi e limiti

GitHub Advanced Security protegge codice e segreti con CodeQL, Copilot Autofix e secret scanning. Funzionalità di GitHub Code Security e Secret Protection, pricing e limiti reali.

di Emanuele Rossi
GitHub Advanced Security: protezione del codice e dei segreti su GitHub

GitHub Advanced Security: cos’è

GitHub Advanced Security è il nome con cui GitHub indica l’insieme delle funzionalità di sicurezza avanzate per il codice ospitato sulla piattaforma: rilevamento di segreti esposti, analisi statica del codice con CodeQL, revisione delle dipendenze e correzioni assistite da Copilot. Dal 1° aprile 2025 queste funzionalità non si acquistano più come un unico pacchetto, ma come due prodotti distinti e acquistabili separatamente, GitHub Code Security e GitHub Secret Protection, pensati per squadre che magari hanno bisogno solo di uno dei due ambiti di protezione.

In sintesi

  • Dal 2025 GitHub Advanced Security non è più un pacchetto unico: si compone di GitHub Code Security (30 $/mese per committer) e GitHub Secret Protection (19 $/mese), acquistabili anche separatamente
  • GitHub Code Security porta code scanning con CodeQL, Copilot Autofix, AI Scan per linguaggi non coperti da CodeQL e dependency review
  • GitHub Secret Protection rileva credenziali esposte nella cronologia Git e blocca i push che le contengono con push protection, incluso il rilevamento basato su AI per segreti non strutturati
  • Molte funzionalità di base restano gratuite sui repository pubblici, anche senza licenza Advanced Security
  • Non sostituisce un processo di sicurezza strutturato: automatizza il rilevamento, ma triage, prioritizzazione e decisioni di remediation restano responsabilità del team

Come funziona GitHub Advanced Security: l’architettura in due prodotti

La scelta di separare Advanced Security in due prodotti riflette un’esigenza molto concreta che GitHub si è sentita dire da tante organizzazioni diverse: non tutti i team hanno lo stesso profilo di rischio. Un’azienda che gestisce credenziali di produzione in molti repository privati ha priorità diverse da un team che sviluppa software con poche dipendenze esterne ma un forte bisogno di analisi statica del codice.

AreaGitHub Code SecurityGitHub Secret Protection
Obiettivo principaleTrovare vulnerabilità nel codice sorgenteTrovare segreti e credenziali esposte
Motore di analisiCodeQL + AI ScanPattern matching + rilevamento AI
Funzionalità chiaveCode scanning, Copilot Autofix, dependency reviewSecret scanning, push protection
Prezzo per committer attivo30 $/mese19 $/mese
Disponibile gratis su repo pubbliciSì (code scanning, CodeQL CLI, Copilot Autofix)Sì (secret scanning, push protection)

Su repository pubblici, GitHub mette a disposizione gratuitamente una parte consistente di queste funzionalità, in linea con il suo impegno storico verso la sicurezza dell’open source. Sui repository privati, invece, serve un piano GitHub Team o Enterprise più la licenza del prodotto specifico, con fatturazione calcolata sul numero di committer attivi, cioè sviluppatori che hanno effettuato almeno un push in un repository con Advanced Security abilitato negli ultimi 90 giorni.

GitHub Code Security: funzionalità

Code scanning con CodeQL

CodeQL è il motore di analisi statica sviluppato internamente da GitHub per automatizzare i controlli di sicurezza sul codice. Funziona trasformando il codice sorgente in un database interrogabile, su cui vengono eseguite query pensate per individuare pattern di vulnerabilità noti, come SQL injection, cross-site scripting o deserializzazione non sicura. I risultati vengono mostrati come avvisi di code scanning direttamente nel repository, collegati alla riga di codice responsabile.

La scansione viene eseguita tramite GitHub Actions, il che significa che consuma minuti di Actions come qualsiasi altro workflow, e si integra naturalmente nel ciclo di pull request. Chi preferisce lavorare offline, o integrare l’analisi in pipeline diverse da Actions, può anche eseguire CodeQL CLI in locale e caricare i risultati in formato SARIF, lo standard aperto per i risultati di analisi statica che GitHub supporta anche per strumenti di terze parti.

Copilot Autofix

Copilot Autofix genera automaticamente proposte di correzione per gli avvisi di code scanning, con l’obiettivo di accorciare il tempo che passa tra l’individuazione di una vulnerabilità e la sua effettiva risoluzione. Non elimina la necessità di una revisione umana, ma su classi di problemi ricorrenti e ben documentate riduce in modo sensibile il lavoro manuale di chi deve sistemare decine di avvisi accumulati in un repository più vecchio.

Avviso di code scanning con CodeQL su una vulnerabilità XSS e suggerimento di correzione di Copilot Autofix CodeQL e Copilot Autofix in azione

AI Scan

Una funzionalità più recente, pensata per coprire un limite storico di CodeQL: non tutti i linguaggi e i framework hanno query CodeQL mature. AI Scan usa un motore basato su intelligenza artificiale, attivato durante la revisione delle pull request, per individuare vulnerabilità in linguaggi o framework che CodeQL non copre ancora in modo completo. È un complemento a CodeQL, non un sostituto: le due analisi lavorano insieme sulla stessa pull request.

Security campaigns e auto-triage

Quando un’organizzazione accumula centinaia di avvisi aperti su decine di repository, il problema smette di essere tecnico e diventa organizzativo. Le security campaigns permettono di raggruppare un insieme di avvisi in un’iniziativa coordinata, con obiettivi e responsabili assegnati, pensata per ridurre il debito di sicurezza accumulato su larga scala invece di lasciarlo nelle mani dei singoli team.

Le regole di auto-triage personalizzate, invece, lavorano sugli avvisi Dependabot: permettono di ignorare automaticamente certe categorie di aggiornamenti, posporne altre o attivare l’aggiornamento automatico, secondo criteri definiti una volta sola a livello di organizzazione.

Una security campaign GitHub per vulnerabilità SQL injection, con avanzamento, scadenza e avvisi raggruppati per repository Una campagna di remediation in corso

Dependency review

Dependency review mostra, direttamente dentro una pull request, l’impatto completo di una modifica alle dipendenze del progetto, segnalando se una nuova versione introduce vulnerabilità note prima ancora che venga unita al branch principale. È uno dei controlli più semplici da attivare e tra i più efficaci, perché interviene nel momento in cui costa meno correggere un problema: prima del merge, non dopo il deploy.

GitHub Secret Protection: funzionalità

Secret scanning

Secret scanning analizza l’intera cronologia Git, su tutti i branch del repository, alla ricerca di credenziali codificate direttamente nel codice: chiavi API, password, token di accesso. La scansione copre anche commenti, descrizioni di issue e pull request, discussioni, wiki e persino i gist segreti, un livello di copertura più ampio di quanto molti team si aspettino quando sentono parlare per la prima volta di questa funzionalità.

Quando viene rilevata una credenziale esposta, l’avviso compare nella scheda dedicata alla sicurezza del repository, e per i partner che supportano la validazione automatica (molti provider cloud tra cui Azure) l’avviso può includere anche un controllo sulla validità attuale della credenziale, utile per distinguere rapidamente un vecchio token già revocato da uno ancora attivo e quindi davvero pericoloso.

Illustrazione di GitHub Secret Protection

Push protection

Push protection interviene prima che il danno sia fatto: blocca direttamente il push di un commit che contiene un segreto riconosciuto, impedendo che la credenziale finisca mai nella cronologia del repository. È la differenza tra scoprire che una chiave API è stata esposta e doverla ruotare d’urgenza, e non esporla affatto.

Rilevamento basato su AI

Oltre ai pattern noti (chiavi strutturate con un formato riconoscibile, come i token di molti provider cloud), GitHub Secret Protection include un rilevamento basato su intelligenza artificiale pensato per le credenziali non strutturate, come password scelte liberamente da uno sviluppatore e incollate per errore in un file di configurazione. Questo tipo di segreto è storicamente molto più difficile da individuare con il solo pattern matching, perché non segue un formato prevedibile.

Pattern personalizzati e governance

Le organizzazioni possono definire pattern di rilevamento personalizzati, pensati per credenziali interne che non rientrano nei formati standard riconosciuti da GitHub. A completare il quadro ci sono funzionalità di governance pensate per scenari enterprise, come l’approvazione delegata per chi può ignorare un blocco di push protection o chiudere un avviso di secret scanning, utile per evitare che un singolo sviluppatore possa silenziare un avviso critico senza che nessuno se ne accorga.

Vantaggi di GitHub Advanced Security

Il vantaggio più immediato è lo spostamento dei controlli di sicurezza più a monte nel ciclo di sviluppo, quello che nel settore si chiama shift left. Trovare una vulnerabilità in una pull request, prima del merge, costa ore. Trovarla in produzione, dopo un incidente, costa giorni e spesso anche reputazione.

C’è poi un vantaggio meno discusso ma altrettanto concreto per chi lavora già nell’ecosistema Microsoft: GitHub Advanced Security è disponibile anche per Azure DevOps, con lo stesso modello di licenza, il che permette a organizzazioni con pipeline miste (parte su GitHub, parte su Azure Repos) di avere un livello di protezione coerente senza dover gestire due strumenti di sicurezza completamente diversi con due logiche di governance separate.

Infine, la disponibilità gratuita di buona parte delle funzionalità sui repository pubblici abbassa la barriera d’ingresso per progetti open source e team piccoli che vogliono iniziare a introdurre pratiche di sicurezza senza un budget dedicato, un aspetto che vale la pena menzionare quando si valuta il costo complessivo di adozione rispetto ad alternative sul mercato.

Limiti e cose da sapere prima di attivarlo

Non tutto è automatico, e vale la pena essere espliciti su dove GitHub Advanced Security mostra i suoi limiti, perché le aspettative sbagliate sono spesso la causa principale di adozioni fallite.

  • Il costo cresce con il numero di committer attivi, non con il numero di repository. Un’organizzazione con molti sviluppatori che toccano codice solo occasionalmente può trovarsi a pagare più di quanto si aspettava, perché ogni committer attivo negli ultimi 90 giorni conta come licenza, anche se ha fatto un solo push.
  • CodeQL non copre tutti i linguaggi con la stessa profondità. Alcuni linguaggi e framework più recenti hanno query meno mature di quelle disponibili per linguaggi storicamente più diffusi come Java, C# o JavaScript. AI Scan colma parte di questo divario, ma resta un’area in evoluzione, non un sostituto completo e definitivo.
  • I falsi positivi non sono mai zero. Sia il code scanning sia il secret scanning possono generare avvisi che, dopo revisione, risultano non rilevanti per il contesto specifico del progetto. Serve un processo di triage definito, altrimenti il rumore degli avvisi finisce per scoraggiare chi dovrebbe occuparsene.
  • Copilot Autofix propone, non decide. Le correzioni suggerite vanno sempre revisionate prima del merge, specialmente su vulnerabilità che toccano logica di business o scelte architetturali, dove una correzione sintatticamente corretta può comunque introdurre un comportamento diverso da quello voluto.
  • Serve comunque un piano GitHub Team o Enterprise per i repository privati: le funzionalità gratuite restano circoscritte ai repository pubblici, quindi la maggior parte delle organizzazioni che proteggono codice proprietario dovrà comunque considerare il costo della licenza.

GitHub Advanced Security per Azure DevOps

Per le organizzazioni che usano Azure Repos invece di GitHub per ospitare il codice, GitHub Advanced Security for Azure DevOps porta lo stesso tipo di protezione dentro le pipeline esistenti, senza richiedere una migrazione verso GitHub. Il modello di fatturazione è identico, 49 dollari per committer attivo al mese per la copertura completa, fatturato direttamente sulla sottoscrizione Azure collegata all’organizzazione Azure DevOps invece che sull’account GitHub.

Per i team che stanno valutando se consolidare la propria pipeline DevOps, questo è spesso un fattore pratico da considerare insieme al resto dell’architettura: chi ha già investito nella gestione dei progetti e delle pipeline con Azure DevOps non deve necessariamente spostare il codice su GitHub solo per ottenere lo stesso livello di analisi di sicurezza.

Un avviso di code scanning CodeQL in Azure DevOps, con dettagli di severità, posizione e raccomandazione Code scanning dentro Azure DevOps

Pricing: quanto costa GitHub Advanced Security

Il prezzo si basa su due componenti separate, acquistabili anche singolarmente:

  • GitHub Code Security: 30 dollari al mese per committer attivo
  • GitHub Secret Protection: 19 dollari al mese per committer attivo
  • Entrambe insieme: 49 dollari al mese per committer attivo

Un committer è considerato attivo se ha effettuato almeno un push su un repository con Advanced Security abilitato negli ultimi 90 giorni, un criterio che conta la persona, non il repository su cui lavora. La fatturazione è a consumo, calcolata su base giornaliera e senza vincoli di contratto pluriennale, un cambio di impostazione rispetto al vecchio modello Advanced Security, pensato per rendere più facile scalare la spesa su e giù in base alle dimensioni reali del team. GitHub mette inoltre a disposizione, per i clienti su piano Team ed Enterprise, una valutazione gratuita del rischio su un massimo di 20 repository, utile per farsi un’idea concreta di quante vulnerabilità o segreti esposti emergerebbero prima ancora di acquistare la licenza.

Come iniziare: attivazione e best practice

L’attivazione parte dalle security configuration, un insieme centralizzato di impostazioni di sicurezza che un amministratore può applicare a più repository dell’organizzazione in un colpo solo, invece di configurare ogni repository singolarmente. Per organizzazioni di grandi dimensioni questo fa una differenza enorme in termini di tempo e di coerenza tra progetti diversi.

Alcuni suggerimenti pratici maturati osservando l’adozione in contesti reali:

  • Parti da un progetto pilota prima di abilitare Advanced Security su tutta l’organizzazione, per capire il volume reale di avvisi che emergono e dimensionare di conseguenza il lavoro di triage.
  • Attiva prima push protection, perché previene nuovi problemi, e solo dopo dedica tempo a smaltire gli avvisi storici già accumulati nella cronologia dei repository esistenti.
  • Definisci un processo di triage con responsabili chiari per gli avvisi di code scanning e secret scanning, altrimenti il volume di notifiche rischia di essere ignorato dopo le prime settimane.
  • Usa le security campaigns per affrontare il debito di sicurezza accumulato nei repository più vecchi, invece di lasciarlo come compito informale di chi se ne accorge per caso.

Conclusioni

GitHub Advanced Security, nella sua forma attuale divisa in due prodotti, riflette un’idea semplice ma corretta: la sicurezza del codice e la protezione dei segreti sono due problemi distinti, con priorità diverse a seconda del contesto, e non tutte le organizzazioni hanno bisogno di affrontarli allo stesso tempo con la stessa intensità. Per chi lavora già nell’ecosistema Microsoft, la disponibilità anche su Azure DevOps toglie un argomento in più a favore di una migrazione forzata verso GitHub solo per ottenere questo livello di protezione.

Resta vero, come per qualsiasi strumento di sicurezza automatizzato, che la tecnologia da sola non basta. Serve un processo definito per gestire gli avvisi, decidere le priorità e assegnare le responsabilità, altrimenti anche lo strumento più sofisticato finisce per generare rumore invece che valore. Se la tua organizzazione sta valutando come introdurre GitHub Advanced Security, o come integrarlo con una pipeline Azure DevOps già esistente, il nostro team può aiutarti a disegnare un percorso di adozione che parta dai rischi reali del tuo codice, non da una checklist generica.

FAQ su GitHub Advanced Security

GitHub Advanced Security è ancora un unico prodotto? No, non più. Dal 1° aprile 2025 Microsoft e GitHub hanno separato l’offerta in due prodotti acquistabili in modo indipendente, GitHub Code Security (analisi del codice) e GitHub Secret Protection (rilevamento di segreti esposti). Il nome “GitHub Advanced Security” resta usato per indicare entrambi insieme.

Quanto costa GitHub Advanced Security? GitHub Code Security costa 30 dollari al mese per committer attivo, GitHub Secret Protection 19 dollari. Acquistati insieme, il totale è 49 dollari per committer attivo al mese. Un committer è considerato attivo se ha effettuato almeno un push su un repository con Advanced Security abilitato negli ultimi 90 giorni.

Serve un piano Enterprise per usare GitHub Advanced Security? No. Da quando l’offerta è stata scorporata, anche i clienti con piano GitHub Team possono acquistare Code Security e Secret Protection separatamente, senza bisogno di un abbonamento Enterprise. Molte funzionalità di base (secret scanning, push protection, code scanning con CodeQL) restano inoltre gratuite su tutti i repository pubblici.

GitHub Advanced Security funziona anche con Azure DevOps? Sì. GitHub Advanced Security for Azure DevOps porta le stesse funzionalità di code scanning e secret scanning dentro le pipeline di Azure Repos, con lo stesso modello di fatturazione per committer attivo, fatturato direttamente sulla sottoscrizione Azure collegata all’organizzazione Azure DevOps.

Copilot Autofix sostituisce il lavoro di un security engineer? No. Copilot Autofix genera proposte di correzione per gli avvisi di code scanning, utili per velocizzare la remediation, ma restano sempre suggerimenti da rivedere prima del merge. Su vulnerabilità complesse, o che richiedono scelte architetturali, il controllo umano resta necessario.

Emanuele Rossi

Scritto da

Emanuele Rossi

Infra & Security · Dev4Side

Dev4Side Software · Microsoft Gold Partner

Hai bisogno di implementare questo nella tua azienda?

I nostri team specializzati hanno completato oltre 200 implementazioni Microsoft in tutta Italia. Contattaci per una valutazione gratuita e senza impegno del tuo progetto.