Esercizio - Proteggere i dati in transito, inattivi e visualizzati
Il database marketplaceDb archivia informazioni sensibili, ad esempio indirizzi fisici, indirizzi di posta elettronica e numeri di telefono. Se esposte, queste informazioni potrebbero essere usate da utenti malintenzionati per danneggiare l'azienda o i clienti. Scoprire come è possibile usare la crittografia e la maschera dati per aumentare la sicurezza del database.
Crittografia di rete TLS
Il database SQL di Azure applica sempre la crittografia TLS (Transport Layer Security) per tutte le connessioni, in modo da assicurarsi che i dati in transito tra il database e il client vengano crittografati. Grazie alla crittografia TLS, è possibile garantire che chiunque intercetti il traffico tra il server app e il database non possa 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. TDE (Transparent Data Encryption) esegue la crittografia e la decrittografia I/O in tempo reale dei dati a livello di pagina usando la 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 controllare che la crittografia dei dati non sia disattivata. Nei database SQL Server di Azure meno recenti la funzionalità TDE potrebbe non essere abilitata.
Di seguito viene illustrato come configurare TDE nel portale di Azure per il database marketplaceDb.
Accedere al portale di Azure usando lo stesso account con cui è stata attivata la sandbox.
Nella barra di ricerca nella parte superiore del portale di Azure cercare marketplaceDb e quindi selezionare il database.
Nel riquadro del menu a sinistra selezionare Crittografia dei dati in Sicurezza.
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 essere certi che i dati vengano sempre crittografati su disco non appena viene creato 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. In Microsoft Defender per il cloud tutti i database che non hanno la crittografia TDE abilitata vengono contrassegnati, in modo che sia possibile segnalare e intervenire per proteggere i dati.
Maschera dati dinamica
Quando è stata eseguita la query nell'unità precedente, è possibile che si sia notato che alcune delle informazioni nel database sono sensibili. Ci sono numeri di telefono, indirizzi di posta elettronica e altre informazioni che potrebbe essere meglio non visualizzare completamente a tutti gli utenti con accesso ai dati.
Probabilmente si preferisce che gli utenti non siano in grado di visualizzare il numero di telefono o l'indirizzo di posta elettronica per intero, ma si vuole comunque che i rappresentanti del servizio clienti possano visualizzare una parte dei dati per indentificare un cliente. Usando la funzionalità Maschera dati dinamica del database SQL di Azure, è possibile limitare i dati che l'utente può visualizzare. Maschera dati dinamica è una funzionalità di sicurezza basata su criteri che consente di nascondere i dati sensibili nel set di risultati di una query su campi del database designati, senza modificare i dati contenuti nel database.
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 di carta di credito, che visualizza solo le ultime quattro cifre del numero sostituendo tutti gli altri numeri con x minuscole.
- 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 mascherati aggiungendoli agli utenti SQL esclusi dall'elenco di mascheramento.
Di seguito viene esaminato il funzionamento della maschera dati nel database marketplaceDb.
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.
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.
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 Fare clic su Aggiungi per aggiungere la regola per la maschera.
Aggiungere un'altra maschera 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) Fare clic su Aggiungi per aggiungere la regola per la maschera.
Ogni nuova maschera viene aggiunta all'elenco delle regole per la maschera. Selezionare Salva per applicare le maschere.
Vediamo ora in che modo la maschera dati modifica la query.
Accedere di nuovo al database, ma come utente ApplicationUser.
sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
Eseguire la query seguente.
SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer; GO
Osservare in che modo l'output è mascherato.
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 usando il formato specificato. Queste regole consentono ai rappresentanti del servizio clienti di visualizzare le ultime quattro cifre del numero di telefono con le quali possono identificare un cliente, ma il numero completo e l'indirizzo di posta elettronica del cliente sono nascosti.