Esercizio - Proteggere i dati in transito, inattivi e visualizzati

Completato

Il database marketplaceDb archivia informazioni sensibili, ad esempio indirizzi fisici, indirizzi di posta elettronica e numeri di telefono. Se esposto, gli utenti malintenzionati potrebbero usare queste informazioni per danneggiare l'azienda o i clienti. Esaminare come è possibile usare la crittografia e la maschera dati per migliorare la sicurezza del database.

Crittografia di rete TLS

database SQL di Azure applica sempre la crittografia TLS (Transport Layer Security) per tutte le connessioni, assicurando che tutti i dati vengano crittografati in transito tra il database e il client. Usando la crittografia TLS, è possibile assicurarsi che chiunque possa intercettare il traffico tra il server app e il database non sia in grado di leggere i dati. La crittografia TLS è uno standard di protezione del traffico su Internet. In questo caso assicura che il traffico di rete da e verso il database SQL di Azure sia protetto per impostazione predefinita.

Transparent Data Encryption

Per proteggere i dati inattivi, il database SQL di Azure usa la tecnologia Transparent Data Encryption (TDE). Questa tecnologia esegue in tempo reale la crittografia e la decrittografia del database, dei backup associati e dei file di log delle transazioni inattivi, senza richiedere modifiche dell'applicazione. Transparent Data Encryption esegue la crittografia E/O in tempo reale e la decrittografia dei dati a livello di pagina usando una chiave di crittografia del database. Ogni pagina viene decrittografata quando letta in memoria e quindi crittografata prima di essere scritta su disco.

Per impostazione predefinita, la tecnologia TDE è abilitata per tutti i database SQL di Azure appena distribuiti. È importante verificare che la crittografia dei dati non sia disattivata. I database sql server di Azure meno recenti potrebbero non avere TDE abilitato.

Esaminare i portale di Azure in cui TDE è configurato nel database marketplaceDb.

  1. Accedere al portale di Azure usando lo stesso account con cui è stata attivata la sandbox.

  2. Nella barra di ricerca nella parte superiore del portale di Azure cercare marketplaceDb e quindi selezionare il database.

  3. Nel riquadro dei menu a sinistra, in Sicurezza, selezionare Crittografia dati.

  4. Nell'opzione di crittografia dei dati verificare che Crittografia dati sia impostata su Attivata. Sarà visualizzato anche lo stato della crittografia Crittografato.

Poiché i nuovi database sono crittografati per impostazione predefinita, è possibile assicurarsi che i dati vengano crittografati su disco non appena si crea il database.

Nota

Azure include un servizio predefinito denominato Microsoft Defender for Cloud, che offre visibilità nella sicurezza dell'ambiente e nei database SQL di Azure. Microsoft Defender per il cloud contrassegna tutti i database che non dispongono di TDE abilitati, consentendo di creare report e intervenire per proteggere i dati.

Maschera dati dinamica

È possibile notare che quando è stata eseguita la query nell'unità precedente, alcune delle informazioni nel database sono sensibili. Ci sono numeri di telefono, indirizzi di posta elettronica e altre informazioni che potresti non voler visualizzare completamente a tutti gli utenti con accesso ai dati.

Forse non vuoi che gli utenti siano in grado di visualizzare il numero di telefono completo o l'indirizzo di posta elettronica, ma vuoi comunque rendere disponibile una parte dei dati per i rappresentanti del servizio clienti per identificare un cliente. Usando la funzionalità di maschera dati dinamica di database SQL di Azure, è possibile limitare i dati visualizzati all'utente. La maschera dati dinamica è una funzionalità di sicurezza basata su criteri che nasconde i dati sensibili nel set di risultati di una query su campi di database designati, mentre i dati nel database non vengono modificati.

Per la maschera dati è necessario definire la maschera da applicare alla colonna e le regole di mascheramento dei dati. È possibile creare un formato maschera personalizzato o usare una delle maschere standard, ad esempio:

  • Valore predefinito, che visualizza il valore predefinito per il tipo di dati.
  • Valore della carta di credito, che mostra solo le ultime quattro cifre del numero, convertendo tutti gli altri numeri in lettere minuscole x.
  • Posta elettronica, che nasconde il nome di dominio e tutto il contenuto ad eccezione del primo carattere del nome dell'account di posta elettronica.
  • Numero, che specifica un numero casuale incluso in un intervallo di valori. Ad esempio, per il mese e l'anno di scadenza della carta di credito è possibile selezionare mesi casuali compresi tra 1 e 12 e impostare l'intervallo per l'anno tra il 2018 e il 3000.
  • Stringa personalizzata, che consente di impostare il numero di caratteri esposti dall'inizio dei dati, il numero di caratteri esposti dalla fine dei dati e i caratteri da ripetere per la parte restante dei dati.

Quando gli amministratori di database eseguono query sulle colonne, vengono comunque visualizzati i valori originali. I non amministratori visualizzano i valori mascherati. È possibile consentire ad altri utenti di visualizzare le versioni non mascherate aggiungendole agli utenti SQL esclusi dall'elenco di maschera.

Esaminare il funzionamento della maschera dati nel database marketplaceDb .

  1. Nel pannello del database marketplaceDb all'interno del portale, nella sezione Sicurezza del riquadro del menu a sinistra selezionare Maschera dati dinamica.

    La schermata Regole per la maschera mostra un elenco di maschere dati dinamiche esistenti, con consigli sulle colonne a cui è possibile applicare la maschera.

    Screenshot of the Azure portal showing a list of the recommended masks for the various database columns of a sample database.

  2. Aggiungere una maschera per il numero di telefono che visualizza solo le ultime quattro cifre. Selezionare il pulsante Aggiungi maschera nella parte superiore per aprire la finestra di dialogo Aggiungi regola di maschera.

  3. Selezionare i valori seguenti.

    Impostazione Value
    Schema SalesLT
    Tabella Cliente
    Istogramma Telefono (nvarchar)
    Formato maschera del campo Stringa personalizzata (prefisso [riempimento] suffisso)
    Prefisso esposto 0
    Stringa di riempimento XXX-XXX-
    Suffisso esposto 4
  4. Fare clic su Aggiungi per aggiungere la regola per la maschera.

    Screenshot of the Azure portal showing the values to add a masking rule.

  5. Aggiungere un altro per l'indirizzo di posta elettronica. Selezionare di nuovo il pulsante Aggiungi maschera nella parte superiore per aprire la finestra di dialogo Aggiungi regola di maschera.

    Impostazione Value
    Schema SalesLT
    Tabella Cliente
    Istogramma Indirizzo di posta elettronica (nvarchar)
    Formato maschera del campo Posta elettronica (aXXX@XXX.com)
  6. Fare clic su Aggiungi per aggiungere la regola per la maschera.

  7. Ogni nuova maschera viene aggiunta all'elenco delle regole di maschera. Selezionare Salva per applicare le maschere.

Esaminare il modo in cui la maschera dati modifica la query.

  1. Accedere ora al database, ma come utente ApplicationUser .

    sqlcmd -S tcp:serverNNNNN.database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
    
  2. Eseguire la query seguente.

    SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer;
    GO
    

    Osservare come viene mascherato l'output.

    FirstName     LastName      EmailAddress         Phone
    ------------- ------------- -------------------- ------------
    Orlando       Gee           oXXX@XXXX.com        XXX-XXX-0173
    Keith         Harris        kXXX@XXXX.com        XXX-XXX-0127
    Donna         Carreras      dXXX@XXXX.com        XXX-XXX-0130
    Janet         Gates         jXXX@XXXX.com        XXX-XXX-0173
    ...
    

Con le regole di maschera create, i dati vengono mascherati con il formato specificato. Queste regole consentono ai rappresentanti del servizio clienti di verificare un cliente con le ultime quattro cifre del numero di telefono, ma nasconde il numero completo e l'indirizzo di posta elettronica del cliente dalla visualizzazione.