Scansione della sicurezza del codice per le applicazioni Databricks

Important

Questa funzionalità è in versione beta. Azure Databricks abilita la scansione della sicurezza del codice per gli spazi di lavoro idonei durante la beta.

Important

Le scansioni di sicurezza possono produrre falsi positivi e non identificare tutti i bug di sicurezza.

Databricks Apps analizza il codice sorgente della tua app per individuare problemi di sicurezza comuni ogni volta che distribuisci una modifica al codice sorgente. La scansione non blocca né causa il fallimento di un deployment. I rilevamenti appaiono nella pagina Sicurezza dell'app, dove un gestore dell'app può esaminarli e valutarli.

Come funziona la scansione della sicurezza del codice

La scansione della sicurezza del codice esegue un'analisi statica sul codice sorgente della tua app come parte del deployment:

  • Viene eseguita in caso di modifiche al codice sorgente: una scansione viene eseguita automaticamente quando si distribuisce una modifica al codice sorgente. Un deployment che riutilizza una build esistente senza una modifica al codice sorgente non viene scansionato.
  • Legge solo il tuo codice sorgente: lo scanner analizza il codice sorgente senza eseguirlo, e non modifica mai la tua app.
  • Non bloccante: lo scanner riporta le segnalazioni di sicurezza ma non blocca né causa il fallimento del deployment. Rivedere e affrontare i risultati in base alla loro gravità e ai tuoi requisiti di sicurezza.
  • Modalità fail-safe: Se una scansione non si completa, il risultato viene registrato come non disponibile anziché pulito, quindi una scansione mancante non viene mai scambiata per una scansione riuscita.

Cosa rileva la scansione

La scansione della sicurezza del codice analizza solo il codice sorgente della tua app. Non scansiona le dipendenze della tua app e non esegue un'analisi dinamica dell'app in esecuzione.

Lo scanner utilizza regole di rilevamento selezionate, create e ottimizzate da Azure Databricks per le app Databricks. Azure Databricks può aggiungere, rimuovere o aggiornare regole nel tempo per migliorare la copertura e l'accuratezza della rilevazione. Le regole rilevano classi comuni di vulnerabilità, tra cui:

  • Credenziali e segreti hardcoded
  • Attacco di tipo SQL injection
  • Scripting tra siti (XSS)
  • Falsificazione di richieste lato server (SSRF)
  • path traversal
  • Deserializzazione non sicura
  • Configurazione permissiva di condivisione delle risorse cross-origin (CORS)
  • Caricamento YAML non sicuro
  • Esposizione dei token utente per conto di un utente

Note

Una scansione pulita non garantisce che la tua app sia sicura. Lo scanner controlla un insieme specifico di problemi, quindi i problemi che le sue regole non coprono non vengono rilevati. Mantieni le tue pratiche di revisione del codice e sicurezza, soprattutto per le app che gestiscono dati sensibili. Per ulteriori indicazioni sulla sicurezza, consulta le migliori pratiche di sicurezza.

Visualizza i risultati delle analisi di sicurezza

Devi avere il CAN MANAGE permesso su un'app per visualizzare i risultati sulla sicurezza. Vedere Configurare le autorizzazioni per un'app Databricks.

Per vedere i riscontri:

  1. Nel tuo spazio di lavoro, apri l'app. Vedere i dettagli di un'app Databricks.
  2. Seleziona la scheda Sicurezza.

La pagina Sicurezza di un'app Databricks, che mostra il riassunto dei risultati e i risultati raggruppati per file

La pagina Sicurezza mostra i risultati per il deployment selezionato, raggruppati per file. Ogni risultato include:

  • L'assegno corrispondente
  • Il percorso del file e il numero della linea
  • Un livello di gravità
  • Una descrizione del problema

I risultati utilizzano i seguenti livelli di gravità:

  • Critico: Un problema di grande gravità, come una probabile vulnerabilità, che dovresti affrontare prima di fare affidamento sull'app.
  • Attenzione: Un potenziale problema che dovresti rivedere e risolvere se si applica alla tua app.
  • Informazioni: Un'osservazione a basso rischio o un suggerimento di codifica sicura da tenere a mente.

Un riassunto in cima alla pagina mostra il numero di riscontri aperti, il numero di riscontri critici, un livello complessivo di rischio e il numero di riscontri che hai risolto o ignorato. Il livello di rischio riflette i tuoi rilievi aperti e la loro gravità; i rilievi che risolvi o ignori non contano ai suoi effetti. Filtra i riscontri per gravità per concentrarti sulle questioni che contano di più.

Per rivedere i risultati di un deployment precedente, usa il selettore della versione del codice per selezionare un deployment precedente.

Risultati del triage

Il triage ti permette di tracciare quali riscontri hai gestito. Come per la visualizzazione dei risultati, devi avere il CAN MANAGE permesso sull'app per valutarli.

Ogni risultato presenta uno dei seguenti stati:

  • Aperto: Lo stato predefinito per un nuovo riscontro.
  • Risolto: Segna un risultato come risolto dopo aver corretto il problema sottostante.
  • Ignorato: Ignora una scoperta che non si applica alla tua app o che hai accettato come rischio noto.

Per classificare un risultato, seleziona Segna risolto o Ignora sul risultato. Per riportare un riscontro allo stato Aperto, seleziona Riapri. Per gestire più risultati contemporaneamente, seleziona più risultati e applica un'azione in massa.

Lo stato di triage viene salvato per ogni riscontro e persiste tra le distribuzioni. Se lo stesso problema si presenta in un rilascio successivo, mantiene lo stato impostato, così non devi rieseguire il triage dei problemi già controllati.

Risultati dell'analisi

La pagina Sicurezza riflette l'esito della scansione della distribuzione. L'esito della scansione descrive ciò che la scansione ha rilevato, e lo stato della scansione indica se la scansione è stata completata.

I risultati riflettono le regole di rilevamento in vigore al momento della scansione. Azure Databricks non ri-scansiona una distribuzione esistente quando le regole cambiano, quindi un risultato precedente (Nessun problema di sicurezza) potrebbe non riflettere le regole attuali. Una nuova scansione viene eseguita automaticamente al prossimo cambio di codice sorgente.

I seguenti risultati descrivono ciò che la scansione ha rilevato:

Risultato Description
Nessun rilevamento di sicurezza La scansione si è completata e non ha trovato problemi rispetto al set di regole corrente.
Risultati La scansione ha rilevato uno o più problemi da esaminare e controllare.

I seguenti stati descrivono lo stato stesso della scansione:

Status Description
Scansione di questa implementazione in corso La scansione è in corso. La pagina si aggiorna automaticamente quando la scansione termina.
Scansione incompleta La scansione è stata eseguita ma ha saltato alcuni file o regole, quindi i risultati potrebbero essere parziali.
Risultati della scansione non disponibili La scansione non è stata completata per questa distribuzione.
Questa distribuzione non è stata scansionata La distribuzione ha riutilizzato una build esistente senza alcuna modifica al codice sorgente. Esegui nuovamente il deploy dopo una modifica del codice per eseguirne la scansione.

Risorse aggiuntive