際際滷

際際滷Share a Scribd company logo
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
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
3
I nostri Clienti
4
La sicurezza 竪 la ricerca dell'equilibrio tra
TecnologiaFormazione
Compliance
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
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
Scopriamo le singole contromisure
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
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
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
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
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
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
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
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
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
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
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!

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
  • 7. Scopriamo le singole contromisure
  • 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!