In occasione del MySQL Day 2020 Digital Edition, il TechAdvisor Michelangelo Uberti ha aiutato manager e tecnici a comprendere le minacce e le contromisure tecniche studiate appositamente per proteggere un database MySQL.
I punti trattati durante il webinar sono:
- La sicurezza 竪 la ricerca dell'equilibrio tra...
- La compliance... a cosa?
- Panoramica delle tecniche di protezione
- Cifratura delle connessioni + MySQL Authentication
- MySQL Enterprise Authentication
- MySQL Enterprise Audit
- MySQL Enterprise Monitor
- MySQL Enterprise Transparent Data Encryption
- MySQL Enterprise Encryption
- MySQL Enterprise Masking and De-identification
- MySQL Enterprise Masking - Alcuni esempi
- MySQL Enterprise Firewall
Per approfondimenti:
- Reportage di ImpresaCity https://bit.ly/3l3Fi0H
- Registrazione dell'evento https://bit.ly/3jLuhPP
1 of 18
Download to read offline
More Related Content
MySQL Day 2020 Digital Edition - Come proteggere al meglio un database MySQL
1. Partita IVA e Codice Fiscale: 12938200156
C.C.I.A.A. Milano n.1599095
Registro Imprese 12938200156
Capitale Sociale 2.418.433,00 i.v.
Sede Legale e Unit Operativa
Via Panfilo Castaldi, 11
20124 Milano
Tel: +39 02.66.732.1 Fax: +39 02.66.732.300
Unit Operativa
Via Cristoforo Colombo, 163
00147 Roma
Tel: +39 06.9826.9600 Fax: +39 06.9826.9680
Michelangelo Uberti - Marketing Manager
Oracle MySQL Day Digital Edition, 29 Ottobre 2020
Come proteggere al meglio un database MySQL
2. 2
Chi 竪 Par-Tec
Considerati uno dei system integrator pi湛 attivi della scena open source italiana, realizziamo soluzioni innovative
e personalizzate ed offriamo servizi professionali di alto profilo rivolti a Large Enterprise, PMI e alla PA.
Technology Solutions
Stackable
Financial Services Solutions
Security
TS
ST
FS
SE
Business Solutions
Educational
BS
E
La collaborazione con Oracle 竪 iniziata 10 anni fa ma ha origini lontane: lattuale business unit di
Roma, ex Babel, 竪 nata nel 1994 come partner di riferimento di Sun Microsystems sul mercato delle
principali telco italiane.
Il nostro attuale rapporto con Oracle?
Partner con specializzazione su MySQL 8
4. 4
La sicurezza 竪 la ricerca dell'equilibrio tra
TecnologiaFormazione
Compliance
5. 5
La compliance a cosa?
Normative internazionali
General Data Protection Regulation (GDPR)
Protezione dei dati personali
Payment Card Industry Data Security Standard
(PCIDSS)
Protezione dei dati delle carte di credito
Health Insurance Portability and Accountability
Act (HIPAA)
Protezione dei dati sanitari
Sarbanes-Oxley Act (SOX)
Accuratezza dei dati finanziari
1. Gestione degli accessi e delle autorizzazioni
2. Cifratura delle informazioni
3. Corretta conservazione e gestione dei dati
4. Monitoraggio continuo
Cosa hanno in comune?
6. 6
Panoramica delle tecniche di protezione
Proteggere un database 竪 come difendere un castello attaccato dallinterno e dallesterno.
Riservatezza, Integrit e Disponibilit dei dati dipendono dal mix di tutte queste contromisure.
Controllo degli accessi
Cifratura dei tablespace
Cifratura dei backup
Cifratura dei canali
di comunicazione
Monitoraggio
e controllo
Pseudonimizzazione
Database
firewall
8. 8
Cifratura delle connessioni + MySQL Authentication
Sono funzionalit disponibili anche in MySQL Community Edition!
Built-in authentication
il metodo di autenticazione nativo pi湛 diffuso e semplice da implementare
I nomi utente e le password (cifrate) sono memorizzati nella tabella user
Le password sono cifrate nativamente con SHA1 o, tramite plugin, con SHA-256
Consente di impostare delle politiche per la gestione delle password (scadenza, rotazione,
robustezza, blocco delle utenze etc.)
Encrypted connections
Assicura la riservatezza dei dati in transito e protegge da attacchi man-in-the-middle
Cifra la connessione tra client e server mediante protocollo TLS (Transport Layer Security)
Si applica anche alla comunicazione master-slave
Impostate require_secure_transport=ON per renderla mandatoria
Pu嘆 utilizzare certificati X.509 per identificare con certezza utenti e sistemi
PRO TIP: impostate il bind_address per accettare connessioni solo sull'indirizzo IP indicato
9. 9
MySQL Enterprise Authentication
MySQL External Authentication for Windows MySQL External Authentication for PAM
Consente di integrare MySQL con un'infrastruttura di sicurezza esistente
Offre il supporto nativo a Microsoft Active Directory
I Linux Pluggable Authentication Modules (PAMs) permettono di autenticare gli utenti mediante
dei credential store esterni (es. Linux passwords o LDAP)
I permessi sono sempre gestiti a livello MySQL
Solo con MySQL EE
10. 10
MySQL Enterprise Audit
Traccia le connessioni, le autenticazioni e le singole query e consente di effettuare analisi molto
approfondite in caso di data breach o incidenti di varia natura
Offre funzionalit di ricerca e filtraggio molto avanzate
uno strumento fondamentale per implementare dei controlli di sicurezza conformi alle
normative internazionali come GDPR, HIPAA, Sarbanes-Oxley, PCI DSS etc.
Solo con MySQL EE
11. 11
MySQL Enterprise Monitor Solo con MySQL EE
Consente di controllare ogni
aspetto del vostro MySQL
Include i Security Advisors che
vi aiutano a identificare e
risolvere le vulnerabilit
Consente inoltre di fare:
User Monitoring
Password Monitoring
Schema Change Monitoring
Backup Monitoring
Configuration Management
Configuration Tuning Advice
12. 12
MySQL Enterprise Transparent Data Encryption
Assicura la riservatezza dei dati anche in caso di furto dei dischi, dei file o dei backup.
Cifra i dati prima che vengano scritti sul supporto fisico e li decifra al momento della lettura.
Include un sistema di gestione delle chiavi che si interfaccia con Oracle Key Vault (e altri).
L'operazione 竪 completamente trasparente e non comporta overhead computazionali.
uno strumento fondamentale per rispettare i requisiti di riservatezza di numerose
normative internazionali come GDPR, HIPAA, PCI DSS etc.
Solo con MySQL EE
Requisiti:
Funziona solo con storage engine InnoDB configurato come innodb_file_per_table
Dobbiamo usare il keyring plugin per gestire la master key
13. 13
MySQL Enterprise Encryption
Da non confondere con la TDE: serve per cifrare il contenuto, non il contenitore!
Utilizza una combinazione di chiavi pubbliche, private e simmetriche per cifrare/decifrare i dati
Include funzioni ad hoc per proteggere i dati particolari e renderli visibili solo agli autorizzati
uno strumento fondamentale per rispettare i requisiti di riservatezza di numerose
normative internazionali come GDPR, HIPAA, PCI DSS etc.
Solo con MySQL EE
Encryption
Public Key
Decryption
Private Key
Encrypted
Data
Sensitive Data Sensitive Data
ApplicationsApplications
14. 14
MySQL Enterprise Masking and De-identification
Permette di offuscare o sostituire del tutto dei dati particolari
Consente di centralizzare la gestione delle policy di riservatezza
Semplifica l'export dei dati di produzione verso ambienti di test o sviluppo
uno strumento fondamentale per rispettare i requisiti di riservatezza di numerose
normative internazionali come GDPR, HIPAA, PCI DSS etc.
Solo con MySQL EE
Reference: https://dev.mysql.com/doc/refman/8.0/en/data-masking-usage.html
15. 15
MySQL Enterprise Masking Alcuni esempi Solo con MySQL EE
Offuscamento del numero di una carta di credito
mysql> SELECT mask_pan(gen_rnd_pan());
+-------------------------+
| mask_pan(gen_rnd_pan()) |
+-------------------------+
| XXXXXXXXXXXX2461 |
+-------------------------+
Offuscamento del social security number
mysql> SELECT mask_ssn(gen_rnd_ssn());
+-------------------------+
| mask_ssn(gen_rnd_ssn()) |
+-------------------------+
| XXX-XX-1723 |
+-------------------------+
Generazione di un indirizzo email casuale
mysql> SELECT gen_rnd_email();
+---------------------------+
| gen_rnd_email() |
+---------------------------+
| ayxnq.xmkpvvy@example.com |
+---------------------------+
Creiamo una vista con alcuni dati gi offuscati
CREATE VIEW masked_customer AS
SELECT id, first_name, last_name,
mask_ssn(CONVERT(ssn USING binary)) AS masked_ssn
FROM customer;
Quando l'applicazione interrogher il db otterr:
mysql> SELECT id, masked_ssn
mysql> FROM masked_customer
mysql> WHERE first_name = 'Joanna' AND last_name = 'Bond';
+-----+-------------+
| id | masked_ssn |
+-----+-------------+
| 786 | XXX-XX-0007 |
+-----+-------------+
16. 16
MySQL Enterprise Firewall
Offre una protezione in tempo reale contro minacce esterne (SQL Injections) e minacce interne
all'organizzazione (es. abuso dei propri privilegi)
Riduce drasticamente la superficie d'attacco del nostro database MySQL
Include diverse modalit di funzionamento utili per monitorare eventuali tentativi di attacco
completamente trasparente ed 竪 indipendente dalla sorgente (linguaggio, framework o app)
Solo con MySQL EE
SELECT * FROM employee WHERE id=22
SELECT * FROM employee WHERE id=22 OR 1=1 Block
Allow
Whitelist
Inbound
SQL traffic
Web
Application
SQL Injection Attack
via browser
17. 17
MySQL Enterprise Firewall Le tre modalit Solo con MySQL EE
Blocca e segnala tutti
gli attacchi SQL BLOCK
NOT in whitelist
BLOCK and ALERT
Table
Table
Table
ALLOW
In whitelist
Permette gli statement
SQL autorizzati
Table
Table
Table
Table
Table
Table
Permette qualunque
statement ma avvisa
DETECT (IDS)
NOT in whitelist
ALLOW and ALERT
1
RECORD
Registra tutti gli statement
che poi potremo selezionare
ed inserire in whitelist
2
PROTECT
Consente l'esecuzione dei soli
statement nella whitelist
3
DETECT
Consente anche gli statement
non in whitelist ma li traccia
come sospetti
18. Sede Legale e Unit Operativa
Via Panfilo Castaldi, 11
20124 Milano
Tel: +39 02.66.732.1 Fax: +39 02.66.732.300
Unit Operativa
Via Cristoforo Colombo, 163
00147 Roma
Tel: +39 06.9826.9600 Fax: +39 06.9826.9680
Grazie per l'attenzione!