Che cos'è la scansione segreta?

La scansione dei segreti è la pratica di eseguire analisi automatizzate su repository di codice, pipeline di esecuzione, file di configurazione, commit e altre origini dati per prevenire potenziali minacce alla sicurezza poste dai segreti esposti. 

La scansione dei segreti fa parte del più ampio ambito della gestione dei segreti, che comprende i processi e gli strumenti coinvolti nell'archiviazione e nella protezione dei segreti provenienti da entità non autorizzate. 

Cosa sono i segreti?

I segreti sono credenziali utilizzate per l'autenticazione o per ottenere l'accesso autorizzato per eseguire azioni sensibili nei sistemi IT di un'azienda. 

I progetti software spesso si basano su componenti di terze parti: container e piattaforme di orchestrazione dei container, strumenti DevOps e CI/CD, database, repository, ecc. Per connettersi a questi servizi di terze parti e abilitare la comunicazione tra i vari componenti dell'app, l'ambiente software deve disporre di un modo per autenticare il servizio o il componente dell'app; Questo di solito avviene sotto forma di "segreto", ovvero una chiave, una password, un certificato o un token.

Quali sono le differenze tra i segreti e i dati sensibili? 

A differenza dei dati sensibili (ad esempio i numeri di previdenza sociale e le informazioni sulla carta di credito), che in genere appartengono agli utenti finali, i segreti appartengono alle aziende. Esempi di segreti includono:

  • Password LDAP

  • Certificati PKI/TLS

  • Chiavi di crittografia

  • Credenziali del contenitore

  • Chiavi SSH

  • Token API

Gli sviluppatori utilizzano i segreti per autenticare e stabilire la comunicazione tra i loro sistemi e altri servizi cloud o per controllare l'accesso umano e automatico ai sistemi sensibili.

As digital authentication credentials, secrets—if exposed—can grant adversaries unauthorized access to a company’s code bases, databases, and other sensitive digital infrastructure. 

Perché la scansione segreta è importante?

Come credenziali di autenticazione digitale, i segreti, se esposti, possono concedere agli avversari l'accesso non autorizzato alle basi di codice, ai database e ad altre infrastrutture digitali sensibili di un'azienda. 

Sfortunatamente, proteggere i segreti non è un compito facile. Sebbene i segreti debbano essere crittografati e strettamente controllati, devono anche essere resi accessibili ai team di ingegneri, alle app e all'intero ambiente. 

Di conseguenza, in un momento o nell'altro durante il ciclo di vita dello sviluppo del software (SDLC), i segreti spesso trovano la loro strada in spazi potenzialmente esposti: credenziali codificate nelle pipeline di integrazione continua e distribuzione continua (CI/CD), repository di codice, Sistemi di controllo di versione (VCS), software di sicurezza, ambienti di containerizzazione o canali di comunicazione sul posto di lavoro (ad esempio, Slack, Teams). 

Questo accade perché gli sviluppatori si concentrano sulla scrittura e sulla distribuzione di codice di qualità a una velocità vertiginosa. Quindi, quando il software è ancora in fase di sviluppo e test, potrebbero considerare ideale archiviare i segreti nelle macchine locali per accelerare lo sviluppo e facilitare cicli di feedback più rapidi. 

Inserisci la scansione segreta. Discutiamo i quattro motivi principali per cui gli sviluppatori dovrebbero implementarlo. 

Salvaguardia dei dati sensibili e dei segreti 

Per salvaguardare dati sensibili, lo crittografiamo, in transito e a riposo, e lo memorizziamo in database. I segreti vengono quindi utilizzati per mantenere i database, limitando l'accesso solo alle persone e alle macchine autorizzate. 

Ad esempio, per confermare le coppie nome utente/password inserite dagli utenti finali, il portale di accesso deve stabilire una connessione automatica al database. Questa connessione viene autenticata con un segreto, che autorizza l'accesso del portale alle informazioni sensibili nel database. Se questo segreto viene divulgato lungo il percorso o finisce in uno spazio non protetto, individui non autorizzati possono accedere, rubare, esporre o crittografare i dati per attacchi ransomware.

Le Incidente di esposizione dei dati di Microsoft 2023 scoperto dal team di ricerca Wiz è una perfetta dimostrazione dell'importanza della scansione segreta. Nel tentativo di pubblicare dati di training basati sull'intelligenza artificiale su GitHub, un team di ricerca Microsoft ha accidentalmente condiviso un collegamento che esponeva 38 TB di dati privati, tra cui chiavi private, segreti, password e oltre 30.000 messaggi interni di Microsoft Teams, archiviati in un account di archiviazione di Microsoft Azure. 

Questo incidente avrebbe potuto essere evitato se il team avesse scansionato l'account alla ricerca di segreti prima di rilasciare il collegamento a GitHub.

Contrastare gli attacchi informatici 

Le Il team di ricerca Wiz sono stati trovati anche segreti dimenticati in più posizioni trascurate nelle pipeline CI/CD, in particolare i livelli di base delle immagini dei container e i file di cronologia bash di Linux. Gli aggressori possono sfruttare tali segreti esposti per condurre attacchi informatici utilizzando vari scenari. I segreti dimenticati possono facilitare il movimento laterale e Esecuzione di codice in modalità remota Negli attacchi alla catena di approvvigionamento del software, consentire agli hacker di modificare i codici sorgente di un'azienda, inserire codice dannoso in artefatti pronti per la produzione o manomettere i processi di creazione delle immagini. 

Trovando segreti dimenticati o codificati prima che vengano esposti, gli strumenti di scansione segreta aiutano a stroncare sul nascere varie forme di aggressori informatici. 

Many companies are subject to regulatory standards designed to protect end users’ sensitive personal, financial, and health-related information.  As secrets guard this data, any accidental release of secrets may result in a data breach that could result in hefty noncompliance fines. 

Miglioramento della conformità

Molte aziende sono soggette a standard normativi progettati per proteggere le informazioni personali, finanziarie e sanitarie sensibili degli utenti finali.  Poiché i segreti proteggono questi dati, qualsiasi rilascio accidentale di segreti può comportare una violazione dei dati che potrebbe comportare pesanti multe per non conformità. 

La scansione dei segreti può aiutare a rilevare e prevenire la compromissione dei segreti.

Protezione da danni reputazionali e perdite finanziarie

Le violazioni e gli attacchi informatici causano danni significativi alla reputazione, con un impatto negativo sui ricavi e un aumento dei costi come multe, spese legali e risarcimenti. 

La scansione proattiva e la salvaguardia dei segreti aiuteranno a evitare tali gravi conseguenze. 

Come funziona la scansione segreta?

La scansione segreta prevede alcuni passaggi, eseguiti con strumenti e metodi specializzati. Ecco come funziona. 

Passaggio 1: scansione

Una volta installato e collegato a tutte le parti rilevanti dello stack IT, uno scanner segreto esegue scansioni in tempo reale o inattive dello stack. 

Le analisi in tempo reale sono basate su eventi, attivate da richieste pull nel sistema di controllo della versione (VCS) o da modifiche al codice in uno dei seguenti componenti dello stack:

  • Codice: Repository di codice, file di configurazione 

  • Contenitori: Immagini dei container e architettura Kubernetes

  • Stack tecnologico DevOps: Costruisci sistemi, sistemi di ticketing, canali di comunicazione, sistemi di gestione della conoscenza, software di tracciamento dei bug, stack di supporto, ecc.

  • Pipeline di osservabilità: Software di osservabilità/registrazione e archivi dati

Le scansioni a riposo eseguono scansioni cronologiche degli stessi componenti a intervalli programmati. 

Tecniche di scansione segrete

Poiché i segreti sono spesso incorporati nel codice, nei log e così via, identificarli può essere difficile. La tabella seguente descrive in dettaglio quattro tecniche di scansione segrete.

If the scanner detects a potential secret, it either corresponds with the service provider or extracts metadata within your stack to identify the service that the secret pattern matches; it then detects if it is still valid. 

Passaggio 2: Identificazione e verifica dei segreti

Se lo scanner rileva un potenziale segreto, corrisponde al fornitore di servizi o estrae i metadati all'interno dello stack per identificare il servizio a cui corrisponde il modello segreto; Rileva quindi se è ancora valido. 

Passaggio 3: Segnalazione e invio di avvisi

Se una corrispondenza viene confermata, lo scanner notifica il segreto esposto. A seconda della completezza degli strumenti, può anche fornire raccomandazioni per risolvere il problema. Nota: Assicurati che solo le parti autorizzate abbiano accesso a questo rapporto, in quanto conterrebbe dati sensibili.

Strumenti di scansione segreta open source

Di seguito, esploriamo cinque comuni strumenti di scansione segreta open source.

Detect-segreti

Detect-secrets è un progetto Microsoft che analizza la cronologia Git del tuo progetto utilizzando euristica e regex.

Gitleaks scans repos, directories, files, and entire Git histories to detect past and present exposed secrets. It can be installed using Docker, Go, or Homebrew.

Gitleaks

Gitleaks esegue la scansione di repository, directory, file e intere cronologie Git per rilevare segreti esposti passati e presenti. Può essere installato utilizzando Docker, Go o Homebrew.

Whispers scans static structured text files such as configs, XML, JSON, and Python3 for hard-coded secrets. Unlike the others, it doesn't scan code but instead parses known data formats and extracts key-value pairs to detect secrets. 

Sussurri

Whispers esegue la scansione di file di testo strutturati statici come config, XML, JSON e Python3 alla ricerca di segreti hardcoded. A differenza degli altri, non'T analizza il codice, ma analizza invece i formati di dati noti ed estrae le coppie chiave-valore per rilevare i segreti. 

Git-secrets is an AWS command-line tool for scanning commits, commit messages, and “–no-ff” merges. 

Git-secrets

Git-secrets è uno strumento a riga di comando AWS per la scansione di commit, messaggi di commit e merge "–no-ff". 

Git-all-secrets is an aggregation of multiple secret scanners, including TruffleHog (a regular expression-based scanner) and repo-supervisor (a high entropy-based scanner). 

Git-all-secrets

Git-all-secrets è un'aggregazione di più scanner segreti, tra cui TruffleHog (uno scanner basato su espressioni regolari) e repo-supervisor (uno scanner basato su alta entropia). 

Secret scanning can be approached in a few different ways, including open-source and commercial options. Each brings strengths that can be valuable depending on your environment and use case.

E gli strumenti proprietari?

La scansione segreta può essere eseguita anche utilizzando strumenti proprietari. Gli strumenti open source hanno costi finanziari minimi o nulli, ma potrebbero anche non offrire la stessa copertura degli strumenti proprietari. Al contrario, gli strumenti proprietari richiedono vari gradi di impegno finanziario, ma in genere hanno più funzionalità e offerte. 

Qualunque cosa tu scelga di seguire, assicurati di prestare attenzione alla tecnica di scansione utilizzata dallo strumento; Ad esempio, uno scanner ibrido aiuterà a ridurre i falsi positivi e a rilevare più tipi di segreti. Inoltre, considera la reputazione del fornitore e la capacità dello strumento di condurre monitoraggio/avvisi in tempo reale, Risposta agli incidentie la definizione delle priorità dei rischi.

6 best practice per la gestione dei segreti 

Oltre a scansionare i segreti, è anche importante implementare le seguenti best practice per gestirli correttamente.  

1. Archivia e crittografa i segreti utilizzando un gestore di segreti

Evitare di archiviare i segreti in immagini del contenitore, file di configurazione, codice e altre posizioni non protette per evitare la proliferazione dei segreti. Utilizza invece strumenti di gestione dei segreti dedicati (ad esempio HashiCorp Vault o AWS Secrets Manager) che crittografano i segreti inattivi e in transito. 

2. Adotta la rotazione (regolare) dei segreti e i segreti dinamici

La rotazione dei segreti comporta la modifica periodica dei segreti a intervalli preconfigurati o l'attivazione manuale di una modifica. L'utilizzo di segreti dinamici è un modo per implementare la rotazione dei segreti. A differenza dei segreti statici, questi sono di breve durata, il che significa che scadono dopo un determinato periodo di tempo o dopo che sono state soddisfatte determinate condizioni. 

La rotazione regolare dei segreti limita la finestra di opportunità di un hacker, riducendo la possibilità che i segreti compromessi vengano utilizzati per condurre attacchi informatici. 

3. Limitare l'accesso ai segreti

Crea policy di accesso segrete coerenti in tutto il tuo stack e automatizza la loro applicazione. Ciò include l'applicazione del principio del privilegio minimo (PoLP), elenchi di controllo degli accessi (ACL) e controllo degli accessi basato sui ruoli (RBAC); Questi limiteranno l'accesso degli utenti e delle app ai segreti, ai dati e all'infrastruttura solo in base alla necessità di utilizzo. 

Se una credenziale viene compromessa accidentalmente, PoLP, ACL e RBAC possono aiutare a ridurre la superficie di attacco, limitando la capacità di un attore della minaccia di spostarsi lateralmente nell'ambiente.

4. Utilizzare i segnaposto

Evita i segreti hardcoded, poiché potrebbe essere necessario condividere il codice nei repository pubblici. L'incidente Microsoft discusso in precedenza ne è un esempio. Invece di segreti codificati, usa Variabili d'ambiente per fare riferimento ai segreti nel codice. 

5. Tenere traccia del ciclo di vita dei segreti

Tieni traccia dei segreti attualmente in uso, revoca i segreti compromessi e registra gli eventi di accesso (chi accede a cosa e quando) in un registro di controllo completo.

6. Implementa l'analisi del percorso delle minacce

Scegli uno strumento di scansione segreto con Analisi avanzata del percorso di attacco; In questo modo i segreti, li correleranno con i sistemi pertinenti e forniranno una mappa chiara delle risorse e dei sistemi sul percorso di attacco. 

Scansione dei segreti con Wiz

Codice Wiz migliora le tue attività di scansione segreta rilevando le credenziali esposte, le chiavi API e le informazioni sensibili nella tua base di codice, assicurandoti che vengano rilevate prima che raggiungano gli ambienti di produzione.

Nell'ambito di Wiz's piattaforma completa di sicurezza cloud, Wiz Code esegue la scansione dell'intero flusso di lavoro alla ricerca di minacce e vulnerabilità utilizzando 35+ framework di conformità supportati su Terraform, CloudFormation, Ansible, Google Deployment Manager, ARM, Kubernetes, Helm e Docker. 

Wiz si integra automaticamente con i repository di codice per: 

  • Analizza i volumi di sistema e rileva i segreti esposti come le chiavi di accesso alla piattaforma cloud, i certificati di dominio e le chiavi SSH

  • Scansiona i dati noti relativi ai segreti ed estrai i metadati per fornire il contesto

  • Estrai le informazioni sull'algoritmo e sulla lunghezza in bit per collegare le chiavi private SSH alla configurazione delle chiavi autorizzate 

  • Estrai dettagli come oggetti, date di scadenza e attributi importanti per collegare un certificato alla risorsa per cui viene utilizzato

  • Fornire grafici di sicurezza per tracciare potenziali percorsi di attacco 

  • Avvisare le parti interessate quando vengono rilevati segreti 

Wiz implementa scanner nativi per il cloud per garantire velocità, efficienza e scansione completa, una combinazione rara. 

Richiedi un demo oggi per vedere come Wiz può aiutarti a mantenere i tuoi segreti al sicuro.