Il rilevamento dei segreti è il processo di individuare e segnalare dati sensibili noti come "segreti" su codebase o altre località all'interno degli ambienti di sviluppo software. Questo livello automatico di difesa aiuta a garantire che nessuna informazione sensibile venga codificata o inserita nel codice sorgente in una forma facilmente leggibile o non criptata.
Il rilevamento dei segreti fa parte di un approccio "shift left" che sposta la sicurezza nelle prime fasi del processo di sviluppo. I segreti possono estendersi oltre il codice, aumentando il rischio di esposizione a incidenti di sicurezza. La protezione automatizzata tramite rilevamento dei segreti può aiutare a proteggere il i workflow degli sviluppatori su larga scala.
Nella sicurezza dell'applicazione (AppSec), i segreti sono informazioni digitali che concedono l'accesso a utenti umani o identità non umane come app, dispositivi o workload e consentono loro di comunicare o svolgere azioni. A causa della loro natura sensibile, i segreti devono essere mantenuti riservati.
Ecco alcuni tipi comuni di segreti:
Le chiavi API sono identificatori univoci per autenticare la comunicazione tra servizi, software o sistemi attraverso un'application programming interface (API).
I token di autenticazione e autorizzazione verificano l'identità e autorizzano l'accesso alle risorse.
I dati biometrici includono tratti fisici e comportamentali inerenti a una persona, come le caratteristiche del viso, le impronte digitali, la voce o anche il modo di camminare, che possono essere utilizzati per verificare la propria identità.
I certificati digitali e le chiavi private ad essi associate vengono utilizzati per autenticare gli endpoint e stabilire canali di comunicazione sicuri.
Le credenziali del provider di cloud possono essere utilizzate per accedere a piattaforme di cloud computing come AWS, Azure, Google Cloud e IBM Cloud.
Le stringhe di connessione sono stringhe di testo contenenti le istruzioni per connettersi con una sorgente di dati.
Le credenziali del database sono combinazioni di nome utente e password per accedere ai database.
Le chiavi di crittografia e altre chiavi crittografiche vengono utilizzate per firmare e crittografare o decrittografare i dati.
Le credenziali degli account di servizio consentono alle app e ai workflow automatizzati di accedere e interagire con i sistemi operativi.
Le chiavi SSH (Secure Shell) vengono utilizzate per autenticare le entità che accedono ai server e ad altre infrastrutture.
Le combinazioni di nome utente e password consistono in stringhe di caratteri che autenticano l'accesso dell'utente a un sistema.
I segreti sono obiettivi primari per gli attori delle minacce. Possono impiegare dei bot per raccogliere un token esposto, una credenziale trapelata o una configurazione errata in un ambiente cloud-native. Gli attaccanti utilizzano questi segreti per ottenere accessi non autorizzati ad applicazioni e sistemi. Poiché l'accesso è ottenuto tramite credenziali legittime, può essere più difficile da rilevare e può passare inosservato per lunghi periodi di tempo.
Questo rende il rilevamento dei segreti un componente cruciale della strategia di cybersecurity di un'azienda. Scoprire segreti aiuta le organizzazioni a:
Evitare il dirottamento dell'account e l'escalation dei privilegi: gli hacker possono usare credenziali trapelate per aumentare i loro privilegi. Dotati di privilegi più elevati, possono modificare le impostazioni di sistema, sconvolgere server e infrastrutture, eseguire comandi, installare malware o assumere il controllo degli asset.
Prevenire le violazioni dei dati: gli attori malintenzionati possono sfruttare i segreti esposti per rubare informazioni personali sensibili o dati aziendali riservati. Queste violazioni dei dati possono essere costose e portare a perdite finanziarie, diminuzione della fiducia dei clienti e danni alla reputazione.
Ridurre le vulnerabilità: i segreti esposti sono porte aperte. Localizzarli permette alle aziende di rimuovere in modo proattivo queste vulnerabilità, chiudendo la porta ad attacchi informatici di successo.
Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.
Il processo inizia con la scansione, in cui gli strumenti di rilevamento dei segreti esaminano i repository di codice (chiamati anche repository) e le risorse correlate alla ricerca dei segreti esposti. Questi strumenti generano poi avvisi o report per qualsiasi segreto identificato, compreso il tipo di segreto e la posizione in cui si trova. I team di sviluppo e i team di sicurezza possono attingere a questi avvisi o report per informare le fasi di correzione, come lo spostamento dei segreti in una soluzione di gestione dei segreti. Queste soluzioni contribuiscono ad automatizzare, centralizzare e semplificare la creazione, l'uso, la rotazione e la protezione dei segreti.
Il rilevamento dei segreti comporta una combinazione di metodi per identificare con precisione i segreti tra i repository:
Abbinamento dei modelli
Scansione del dizionario
Analisi dell'entropia
Gli algoritmi di abbinamento dei pattern cercano stringhe che corrispondano ai formati standard dei segreti. Utilizzano anche espressioni regolari, che sono schemi di ricerca composti da sequenze di caratteri.
Questo metodo è spesso efficace per segreti che seguono una forma predefinita, come i token di accesso per i cloud service o le chiavi API. Tuttavia, la scansione dei segreti con le espressioni regolari (note anche come regex) può essere lenta e i segreti con una composizione casuale possono passare inosservati.
Nel rilevamento dei segreti, i dizionari sono fonti di dati contenenti segreti noti. Questi dizionari possono essere utilizzati come riferimento nella ricerca di segreti.
La scansione del dizionario aiuta a determinare se un segreto è attuale o non in uso, ma potrebbe non essere in grado di rilevare segreti non presenti al suo interno.
L'entropia misura la casualità o imprevedibilità dei dati. Più elevata è l'entropia, più casuali sono i dati e più difficile è la previsione. Pertanto, l'analisi dell'entropia valuta le sequenze di caratteri per gli attributi di casualità.
Questo metodo aiuta a scoprire potenziali segreti che non aderiscono a schemi noti, come le chiavi di crittografia. Può anche rivelare nuovi segreti o segreti ad alta entropia.
Le opzioni per i sistemi di rilevamento dei segreti abbondano. Quando scelgono la soluzione giusta, le aziende devono considerare quanto sia accurata una soluzione, la profondità e l'ampiezza delle sue capacità di rilevamento, la sua scalabilità su grandi basi di codice, il ciclo di vita dello sviluppo software (SDLC) la sua compatibilità e possibilità di integrazione rispetto allo stack tecnologico e al workflow di sviluppo software.
Ecco alcuni strumenti popolari per scoprire i segreti:
GitLab utilizza un analizzatore per il rilevamento dei segreti specifico per gli ambienti GitLab. Offre queste funzionalità:
La protezione contro l'invio di segreti esamina le modifiche prima che vengano inviate a GitLab e blocca il push se vengono rilevati dei segreti.
Il rilevamento dei segreti nella pipeline viene eseguito come componente delle pipeline CI/CD, ispezionando le richieste di merge e i commit sul ramo predefinito di un repository.
Il rilevamento dei segreti lato client esamina i commenti e le descrizioni presenti nei problemi e nelle richieste di merging.
GitLab può rispondere automaticamente a particolari tipi di segreti trapelati revocandoli. Per alcuni livelli di account, la funzione di rilevamento dei falsi positivi GitLab Duo valuta i segreti identificati per determinare potenziali falsi positivi.
Gitleaks è uno strumento open-source per rilevare segreti nei repository Git, nelle directory, nei file e in altri input standard. Il suo motore di rilevamento si basa su una combinazione di pattern matching tramite analisi regex ed entropia.
Le organizzazioni possono creare set di regole personalizzati per i propri segreti. Possono anche eseguire Gitleaks come hook pre-commit per catturare segreti nel codice sorgente prima che vengano inseriti nel repository.
Vault Radar è il prodotto di rilevamento dei segreti di HashiCorp. Esegue scansioni continue in tempo reale alla ricerca di segreti e anche di informazioni di identificazione personale (PII), categorizzandoli e classificandoli su una dashboard per contribuire agli sforzi di correzione.
Le scansioni vengono effettuate anche per i commit di codice, le richieste di pull e quando si aggiungono fonti di dati. Le fonti di dati supportate includono repository e piattaforme come Azure DevOps, Bitbucket, GitHub e GitLab e piattaforme di collaborazione come Confluence, Jira e Slack.
Vault Radar fornisce una guida di correzione integrata per alcuni account aziendali. I segreti esposti possono anche essere copiati in Vault, la piattaforma di gestione dei segreti di HashiCorp, come parte del processo di correzione.
L'intelligenza artificiale può migliorare l'accuratezza e l'efficienza degli strumenti di rilevamento dei segreti, la maggior parte dei quali produce alti tassi di falsi positivi. I modelli AI possono essere addestrati a riconoscere caratteristiche corrispondenti a una gamma più ampia di tipologie di segreti, risultando così più dinamici rispetto alle soluzioni basate su regole.
I team di sviluppo che implementano l'AI per il rilevamento dei segreti possono ottenere questi benefici:
Consapevolezza del contesto: i modelli AI possono apprendere il contesto che circonda i segreti, inclusi i commenti al codice, la struttura del codice sorgente e i nomi delle variabili. Questa analisi semantica e contestuale consente ai modelli di distinguere meglio tra veri segreti e i dati campione o valori di test. Pertanto, la consapevolezza del contesto può contribuire ad aumentare il tasso di veri positivi e a ridurre il tasso di falsi positivi.
Rilevamento in tempo reale: alcuni strumenti di rilevamento basati su AI si integrano perfettamente con gli IDE, segnalando i segreti hardcoded mentre gli sviluppatori scrivono il codice e individuando i segreti esposti prima ancora che vengano confermati o caricati nei repository.
Prioritizzazione e correzione automatizzate: il rilevamento dei segreti basato su AI può automatizzare il modo in cui i segreti segnalati vengono assegnati alle priorità assegnando un punteggio di rischio basato su fattori come sfruttabilità, impatto, posizione e gravità. Può anche suggerire correzioni, come la sostituzione dei segreti esposti con le chiamate a una piattaforma di gestione dei segreti.
L'applicazione dell'AI per la rilevamento dei segreti coinvolge diverse tecniche:
Classificazione: la classificazione consente ai modelli di machine learning di prevedere se un'informazione è un segreto vero o falso. I tipici algoritmi di classificazione per il rilevamento di segreti includono la regressione logistica, l'algoritmo Naive Bayes e le macchine a vettori di supporto (SVM).
Apprendimento in ensemble: l'apprendimento in ensemble unisce più classificatori per aumentare l'accuratezza delle previsioni.
Deep learning: il deep learning, guidato da reti neurali multilivello, offre un modo più potente e versatile per rilevare segreti. Tra le architetture di deep learning più comuni si annoverano le reti neurali convoluzionali, le reti LSTM (Long Short-Term Memory) e i i modelli transformer.
AI generativa: i grandi modelli linguistici (LLM) rappresentano un'altra opzione per la rilevamento dei segreti. Sia gli LLM pre-addestrati sia i modelli linguistici di piccole dimensioni (SLM) ottimizzati possono essere utilizzati per prevedere i segreti e classificarli secondo diverse tipologie. Un approccio human-in-the-loop rimane fondamentale per convalidare l'accuratezza delle previsioni e classificazioni degli LLM.
Una combinazione di strategie convenzionali e basate sull'AI può rafforzare il processo di rilevamento dei segreti. L'abbinamento dei pattern e l'analisi dell'entropia possono essere utilizzati per cercare segreti, mentre le metodologie basate sull'AI convalidano i segreti scoperti per eliminare i falsi positivi.
Ecco alcuni esempi di soluzioni di rilevamento di segreti che utilizzano l'AI:
La piattaforma di sicurezza del codice GitGuardian analizza i repository Git, le pipeline CI/CD, le immagini Docker e i sistemi di collaborazione come Confluence, Jira e Slack. Gli sviluppatori possono impostare hook pre-commit e integrare la scansione negli IDE oppure utilizzare l'interfaccia a riga di comando di GitGuardian.
Il motore di rilevamento dei segreti di GitGuardian è costituito da due tipi di rilevatori di pattern-matching: rilevatori specifici dedicati alla ricerca di particolari tipi di segreti, che portano a un richiamo e una precisione elevati, e rilevatori generici invece di rilevatori specifici. Vari modelli di machine learning aggiungono anche funzionalità preziose, come filtrare i segreti che probabilmente sono falsi positivi e valutare il contesto attorno a un segreto generico per assegnargli una categoria e un provider appropriati.
Altre caratteristiche basate sul machine learning includono un raggruppamento di incidenti simile che raggruppa i segreti condividendo somiglianze contestuali e punteggi di rischio che utilizza XGBoost (eXtreme Gradient Boosting), un insieme di alberi decisionali che apprendono dagli errori reciproci, per classificare i segreti in base a più segnali di rischio.
GitHub Secret Protection è il sistema di scansione segreto di GitHub. Esamina l'intera cronologia Git su tutti i rami di un repository e le descrizioni e i commenti nei problemi e nelle richieste di pull.
La funzione di protezione push del sistema scansiona ogni push in tempo reale, bloccando i commit che contengono i segreti. Può effettuare controlli automatici di validità per verificare se un segreto scoperto è attivo ed esposto pubblicamente.
GitHub Secret Protection utilizza anche GitHub Copilot per rilevare segreti non strutturati inseriti nei repository.
Bob è l'assistente di codifica AI progettato per supportare la scrittura di codice sorgente, il debugging, il refactoring, le revisioni di codice e la documentazione. Può individuare le vulnerabilità di sicurezza all'interno del codice e, insieme alla capacità integrata di rilevamento dei segreti, Bob facilita e favorisce la codifica sicura.
Bob può essere programmato per adottare una modalità agentica personalizzata che cerca segreti codificati in modo rigido, spiega i rischi di sicurezza e raccomanda azioni per proteggere i segreti. Può sostituire i segreti con riferimenti a una piattaforma di gestione dedicata come Vault di HashiCorp e inviare segreti codificati a Vault utilizzando il Model Context Protocol (MCP).
Il rilevamento dei segreti può migliorare il livello di sicurezza di un'azienda. Può essere più efficace se incorporato nelle fasi di sviluppo, implementazione e manutenzione dell'SDLC.
Ecco alcune best practice che i team di sviluppo possono tenere a mente quando implementano il rilevamento dei segreti:
Definire i segreti che contano di più
Andare oltre le fonti legate al codice
Incorporare il rilevamento dei segreti nelle pipeline CI/CD
Triage e rettifica
Formare i team di sviluppo e DevOps
Le aziende possono iniziare definendo cosa costituisce un segreto per loro e ordinando questi segreti per importanza per informare il processo di correzione. Devono inoltre verificare l'intera supply chain del software per mappare l'estensione dell'esposizione ai segreti.
I segreti possono diffondersi oltre le fonti legate al codice, e ciò significa che il rilevamento deve considerare anche altre possibili fonti di esposizione ai segreti, come:
Strumenti per la comunicazione, la collaborazione e produttività degli sviluppatori
File di configurazione
Container e piattaforme di orchestrazione dei container come Kubernetes
Database
Documentazione
Log
I team DevOps possono implementare degli hook pre-commit che rendono la scansione segreta un passaggio obbligatorio prima che gli sviluppatori effettuino commit di codice o avviino richieste pull e blocchino modifiche che contengono segreti hardcoded. Devono anche verificare che gli strumenti abbiano la capacità di scansionare continuamente gli artefatti, i registri di compilazione e le variabili di ambiente alla ricerca di eventuali segreti esposti, prima che raggiungano gli ambienti di runtime e di produzione.
Le aziende devono stabilire delle politiche su come i segreti esposti vengono classificati e corretti. Le politiche di triage possono includere valutazioni dei rischi per la sicurezza posti da diversi tipi di segreti e quali team sono responsabili del triage.
Le politiche di correzione devono delineare chiaramente le azioni da intraprendere, che si tratti di revocare o ruotare i segreti o di sostituirli con chiamate a una piattaforma di gestione dei segreti. L'automazione di queste correzioni può far risparmiare tempo e portare a risposte rapide, ma le correzioni devono essere testate per verificare che un segreto non possa più essere rilevato.
Le organizzazioni devono includere il rilevamento dei segreti come parte integrante della formazione del team di sviluppo o DevOps sulla codifica sicura. I team devono comprendere i pericoli dei segreti codificati o esposti, cosa possono fare per limitare tali pericoli e come utilizzare gli strumenti necessari per il rilevamento dei segreti.
Accelera la distribuzione del software con Bob, il tuo partner AI per uno sviluppo sicuro e consapevole degli intenti.
Ottimizza le attività di sviluppo del software con strumenti affidabili basati su AI che riducono al minimo il tempo dedicato alla scrittura, al debug, al refactoring o al completamento del codice, lasciando più spazio all'innovazione.
Reinventa i workflow e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.