{"id":81884,"date":"2020-05-17T13:42:18","date_gmt":"2020-05-17T11:42:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity"},"modified":"2020-05-17T13:42:18","modified_gmt":"2020-05-17T11:42:18","slug":"bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity","title":{"rendered":"Sicurezza e DBMS: cosa ricordare quando si scelgono i mezzi di protezione","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1><img decoding=\"async\" alt=\"Sicurezza e DBMS: cosa ricordare quando si scelgono i mezzi di protezione\" src=\"\/wp-content\/uploads\/2020\/05\/ac49253838e36336af127d71394139d8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/h1>\n<p>\nMi chiamo Denis Rozhkov, sono il capo dello sviluppo software presso \"Gazinformservice\", nel team del prodotto. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gaz-is.ru\/produkty\/inform-sistemy\/subd-jatoba.html\">Jatoba<\/a><\/noindex>. Le leggi e le normative aziendali pongono requisiti specifici sulla sicurezza della conservazione dei dati. Nessuno vuole che terzi abbiano accesso alle informazioni riservate, quindi per ogni progetto \u00e8 fondamentale affrontare le seguenti questioni: identificazione e autenticazione, gestione degli accessi ai dati, garanzia dell'integrit\u00e0 delle informazioni nel sistema e registrazione degli eventi di sicurezza. Pertanto, voglio parlare di alcuni aspetti interessanti sulla sicurezza dei sistemi di gestione dei database. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nL'articolo \u00e8 stato redatto in base a un intervento tenuto su <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/databases-1\/\">@Databases Meetup,<\/a><\/noindex> organizzato <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud Solutions<\/a><\/noindex>. Se non vuoi leggere, puoi guardare:<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"n-54j9FHaMU\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/n-54j9FHaMU\/hqdefault.jpg\" alt=\"Riproduci video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\nL'articolo avr\u00e0 tre parti:<\/p>\n<ul>\n<li>Come proteggere le connessioni.<\/li>\n<li>Cosa sono gli audit delle azioni e come registrare cosa succede lato database e connessione a esso.<\/li>\n<li>Come proteggere i dati all'interno del database stesso e quali tecnologie ci sono a tal fine.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Sicurezza e DBMS: cosa ricordare quando si scelgono i mezzi di protezione\" src=\"\/wp-content\/uploads\/2020\/05\/fbdca7f4a925b9ceb78de06c6e245b23.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tre componenti della sicurezza dei sistemi di gestione dei database: protezione delle connessioni, audit delle azioni e protezione dei dati.<\/i><\/p>\n<h2>Protezione delle connessioni<\/h2>\n<p>\n\u00c8 possibile connettersi al database sia direttamente sia tramite applicazioni web. Di norma, l'utente aziendale, ovvero la persona che lavora con il DBMS, interagisce con esso non direttamente.<\/p>\n<p>Prima di parlare della protezione delle connessioni, \u00e8 necessario rispondere a importanti domande che determinano come verranno implementate le misure di sicurezza:<\/p>\n<ul>\n<li>un utente aziendale equivale a un utente del DBMS;<\/li>\n<li>l'accesso ai dati del DBMS \u00e8 garantito solo tramite un'API che controllate, oppure ci sono accessi diretti alle tabelle;<\/li>\n<li>il DBMS \u00e8 stato collocato in un segmento protetto separato, chi e come interagisce con esso;<\/li>\n<li>viene utilizzato il pooling\/proxy e strati intermedi che possono modificare le informazioni su come \u00e8 costruita la connessione e chi utilizza il database.<\/li>\n<\/ul>\n<p>\nOra vediamo quali strumenti possono essere applicati per proteggere le connessioni:<\/p>\n<ol>\n<li>Utilizzate soluzioni di tipo database firewall. Un ulteriore strato di protezione, almeno, aumenter\u00e0 la trasparenza di ci\u00f2 che accade nel DBMS, al massimo \u2014 potrete garantire una protezione aggiuntiva dei dati.<\/li>\n<li>Utilizza le politiche di password. La loro applicazione dipende da come \u00e8 strutturata la tua architettura. In ogni caso, una sola password nel file di configurazione dell'applicazione web che si collega al DBMS non \u00e8 sufficiente per garantire la protezione. Esistono diversi strumenti DBMS che consentono di monitorare quando \u00e8 necessario aggiornare l'utente e la password.\n<p>Puoi leggere ulteriori informazioni sulle funzionalit\u00e0 di valutazione degli utenti <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cloud.oracle.com\/en-us\/iaas\/data-safe\/doc\/user-assessment-reports.html\">qui<\/a><\/noindex>, e puoi anche scoprire di MS SQL Vulnerability Assessment <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/security\/sql-vulnerability-assessment?view=sql-server-ver15\">qui<\/a><\/noindex>.\u00a0<\/li>\n<li>Arricchisci il contesto della sessione con le informazioni necessarie. Se la sessione \u00e8 opaca e non comprendi chi sta operando nel DBMS, puoi completare le informazioni sull'operazione in corso, specificando chi sta facendo cosa e perch\u00e9. Queste informazioni possono essere visualizzate nell'audit.<\/li>\n<li>Configura SSL se non hai una separazione di rete del DBMS dagli utenti finali, e non \u00e8 in una VLAN separata. In questi casi, \u00e8 fondamentale proteggere il canale tra il consumatore e il DBMS stesso. Esistono strumenti di protezione anche tra le soluzioni open source.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Come influenzer\u00e0 le prestazioni del DBMS?<\/h3>\n<p>\nGuardiamo come SSL influisce sul carico della CPU, l'aumento dei tempi di risposta e la riduzione del TPS usando PostgreSQL, e se l'attivazione di SSL possa consumare troppe risorse.<\/p>\n<p>Sottoponiamo PostgreSQL a un carico utilizzando pgbench, un programma semplice per eseguire test di prestazioni. Esso esegue ripetutamente una sequenza di comandi, possibilmente in sessioni parallele del database, e quindi calcola la velocit\u00e0 media delle transazioni.<\/p>\n<p><strong>Test 1 senza SSL e con SSL attivo<\/strong> \u2014 la connessione viene stabilita ad ogni transazione:<\/p>\n<pre><code class=\"plaintext\">pgbench.exe --connect -c 10 -t 5000 \"host=192.168.220.129 dbname=taskdb user=postgres sslmode=require\nsslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key\"<\/code><\/pre>\n<p>\n<strong>vs<\/strong><\/p>\n<pre><code class=\"plaintext\">pgbench.exe --connect -c 10 -t 5000 \"host=192.168.220.129 dbname=taskdb user=postgres\"<\/code><\/pre>\n<p>\n<strong>Test 2 senza SSL e con SSL attivo<\/strong> \u2014 tutte le transazioni vengono eseguite su una sola connessione:<\/p>\n<pre><code class=\"plaintext\">pgbench.exe -c 10 -t 5000 \"host=192.168.220.129 dbname=taskdb user=postgres sslmode=require\nsslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key\"<\/code><\/pre>\n<p>\n<strong>vs<\/strong><\/p>\n<pre><code class=\"plaintext\">pgbench.exe -c 10 -t 5000 \"host=192.168.220.129 dbname=taskdb user=postgres\"<\/code><\/pre>\n<p>\n<strong>Altre impostazioni<\/strong>:<\/p>\n<pre><code class=\"plaintext\">fattore di scalabilit\u00e0: 1\nmodalit\u00e0 query: semplice\nnumero di client: 10\nnumero di thread: 1\nnumero di transazioni per client: 5000\nnumero di transazioni effettivamente elaborate: 50000\/50000<\/code><\/pre>\n<p>\n<strong>Risultati dei test<\/strong>:<\/p>\n<p>\u00a0<br \/>\n<strong>NO SSL<\/strong><br \/>\n<strong>SSL<\/strong><\/p>\n<p><strong>La connessione viene stabilita ad ogni transazione<\/strong><\/p>\n<p>latenza media<br \/>\n171.915 ms<br \/>\n187.695 ms<\/p>\n<p>tps inclusi stabilimenti di connessione<br \/>\n58.168112<br \/>\n53.278062<\/p>\n<p>tps escluse stabilimenti di connessione<br \/>\n64.084546<br \/>\n58.725846<\/p>\n<p>CPU<br \/>\n24%<br \/>\n28%<\/p>\n<p><strong>Tutte le transazioni vengono eseguite in una sola connessione<\/strong><\/p>\n<p>latenza media<br \/>\n6,722 ms<br \/>\n6,342 ms<\/p>\n<p>tps inclusi stabilimenti delle connessioni<br \/>\n1587.657278<br \/>\n1576.792883<\/p>\n<p>tps escluse stabilimenti di connessione<br \/>\n1588.380574<br \/>\n1577.694766<\/p>\n<p>CPU<br \/>\n17%<br \/>\n21%<\/p>\n<p>\nCon carichi ridotti, l'impatto di SSL \u00e8 comparabile con l'errore di misurazione. Se la quantit\u00e0 di dati trasferiti \u00e8 molto grande, la situazione potrebbe essere diversa. Se stabilisse una connessione per ogni transazione (cosa rara, di solito le connessioni vengono condivise tra gli utenti), avresti un numero elevato di connessioni\/disconnessioni, l'impatto potrebbe essere un po' maggiore. Quindi ci possono essere rischi di riduzione delle prestazioni, tuttavia la differenza non \u00e8 cos\u00ec grande da non usare la protezione.<\/p>\n<p>Si prega di notare: c'\u00e8 una forte differenza se si confrontano i modi di funzionamento: all'interno di una sessione si lavora o separatamente. Questo \u00e8 chiaro: ad ogni connessione vengono spesi delle risorse.<\/p>\n<p>Abbiamo avuto un caso in cui abbiamo collegato Zabbix in modalit\u00e0 trust, quindi non abbiamo controllato l'md5, non c'era bisogno di autenticazione. Poi il cliente ha chiesto di attivare la modalit\u00e0 di autenticazione md5. Questo ha provocato un carico elevato sulla CPU e le prestazioni ne hanno risentito. Abbiamo iniziato a cercare soluzioni per ottimizzare. Una delle possibili soluzioni al problema \u00e8 implementare una limitazione di rete, creare VLAN separate per il DBMS, aggiungere impostazioni per chiarire chi e da dove si connette ed eliminare l'autenticazione. \u00c8 possibile ottimizzare anche le impostazioni di autenticazione per ridurre i costi quando l'autenticazione \u00e8 attivata, ma in generale, l'uso di diversi metodi di autenticazione influisce sulla performance e richiede di considerare questi fattori quando si progettano le capacit\u00e0 di calcolo dei server (hardware) per il DBMS.<\/p>\n<p>Conclusione: in alcune soluzioni, anche piccoli dettagli sull'autenticazione possono avere un forte impatto sul progetto, ed \u00e8 problematico quando questo diventa evidente solo durante l'implementazione in produzione.<\/p>\n<h2>Audit delle azioni<\/h2>\n<p>\nL'audit non si limita solo ai DBMS. L'audit \u00e8 l'acquisizione di informazioni su cosa accade nei vari segmenti. Pu\u00f2 includere sia il database firewall che il sistema operativo su cui \u00e8 costruito il DBMS.<\/p>\n<p>Negli DBMS commerciali di livello Enterprise l'audit funziona bene, mentre negli open source non sempre. Ecco cosa c'\u00e8 in PostgreSQL:<\/p>\n<ul>\n<li>log predefinito - logging integrato;<\/li>\n<li>estensioni: pgaudit - se il logging predefinito non \u00e8 sufficiente, puoi utilizzare impostazioni separate che risolvono parte dei problemi.<\/li>\n<\/ul>\n<p>\n<b>Integrazione alla relazione nel video:<\/b><\/p>\n<p>\u00abLa registrazione di base degli operatori pu\u00f2 essere garantita dallo strumento di logging standard con log_statement = all.<\/p>\n<p>Questo \u00e8 accettabile per il monitoraggio e altri usi, ma non garantisce il livello di dettaglio generalmente necessario per l'audit.<\/p>\n<p>\u00c8 insufficiente avere un elenco di tutte le operazioni eseguite sul database.<\/p>\n<p>Dev'essere anche possibile rintracciare affermazioni specifiche che siano di interesse per l'auditor.<\/p>\n<p>Lo strumento di logging standard mostra ci\u00f2 che \u00e8 richiesto dall'utente, mentre pgAudit si concentra sui dettagli di ci\u00f2 che \u00e8 accaduto quando il database ha eseguito la query.<\/p>\n<p>Ad esempio, un revisore potrebbe voler assicurarsi che una tabella specifica sia stata creata nella finestra di manutenzione documentata.<\/p>\n<p>Questo potrebbe sembrare un compito semplice per una revisione di base e grep, ma cosa succede se ti trovi di fronte a qualcosa come questo (intenzionalmente confuso) esempio:<\/p>\n<p>DO $$<br \/>\nBEGIN<br \/>\n ESEGUIRE 'CREATE TABLE import' || 'ant_table (id INT)';<br \/>\nEND $$;<\/p>\n<p>La registrazione standard ti dar\u00e0 questo:<\/p>\n<p>LOG: statement: DO $$<br \/>\nBEGIN<br \/>\n ESEGUIRE 'CREATE TABLE import' || 'ant_table (id INT)';<br \/>\nEND $$;<\/p>\n<p>Sembra che per trovare la tabella di interesse potrebbe essere necessaria una certa conoscenza del codice nei casi in cui le tabelle siano create dinamicamente.<\/p>\n<p>Non \u00e8 l'ideale, poich\u00e9 sarebbe preferibile cercare semplicemente per nome della tabella.<\/p>\n<p>\u00c8 qui che pgAudit sar\u00e0 utile.<\/p>\n<p>Per lo stesso input produrr\u00e0 questa uscita nel registro:<\/p>\n<p>AUDIT: SESSION,33,1,FUNCTION,DO,,,\u00abDO $$<br \/>\nBEGIN<br \/>\n ESEGUIRE 'CREATE TABLE import' || 'ant_table (id INT)';<br \/>\nFINE $$;<br \/>\nAUDIT: SESSION,33,2,DDL,CREATE TABLE,TABLE,public.important_table,CREATE TABLE important_table (id INT)<\/p>\n<p>Non viene registrato solo il blocco DO, ma anche il testo completo di CREATE TABLE con il tipo di operazione, il tipo di oggetto e il nome completo, il che rende pi\u00f9 semplice la ricerca.<\/p>\n<p>Quando si registrano operatori SELECT e DML, pgAudit pu\u00f2 essere configurato per registrare un'entrata separata per ogni relazione menzionata nell'operatore.<\/p>\n<p>Non \u00e8 necessaria un'analisi sintattica per trovare tutti gli operatori riguardanti una specifica tabella,<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pgaudit\/pgaudit\/blob\/master\/README.md\">*<\/a><\/noindex>)\u00bb.<\/p>\n<h3>Come influenzer\u00e0 le prestazioni del DBMS?<\/h3>\n<p>\nEseguiamo dei test attivando il controllo completo e vediamo come influisce sulle prestazioni di PostgreSQL. Attiviamo la registrazione massima del database per tutti i parametri.<\/p>\n<p>Nel file di configurazione non cambiamo quasi nulla, l'importante \u00e8 attivare la modalit\u00e0 debug5 per ottenere il massimo delle informazioni.<\/p>\n<p>postgresql.conf<\/p>\n<p>log_destination = 'stderr'<br \/>\nlogging_collector = on<br \/>\nlog_truncate_on_rotation = on<br \/>\nlog_rotation_age = 1d<br \/>\nlog_rotation_size = 10MB<br \/>\nlog_min_messages = <strong>debug5<\/strong><br \/>\nlog_min_error_statement = <strong>debug5<\/strong><br \/>\nlog_min_duration_statement = 0<br \/>\ndebug_print_parse = on<br \/>\ndebug_print_rewritten = on<br \/>\ndebug_print_plan = on<br \/>\ndebug_pretty_print = on<br \/>\nlog_checkpoints = on<br \/>\nlog_connections = on<br \/>\nlog_disconnections = on<br \/>\nlog_duration = on<br \/>\nlog_hostname = on<br \/>\nlog_lock_waits = on<br \/>\nlog_replication_commands = on<br \/>\nlog_temp_files = 0<br \/>\nlog_timezone = 'Europe\/Moscow'<\/p>\n<p>\nSulla DBMS PostgreSQL con parametri 1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD eseguiamo tre test di carico utilizzando i comandi:<\/p>\n<pre><code class=\"plaintext\">$ pgbench -p 3389 -U postgres -i -s 150 benchmark\n$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark\n$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmark<\/code><\/pre>\n<p>\n<strong>Risultati del test:<\/strong><\/p>\n<p><strong>Senza registrazione<\/strong><br \/>\n<strong>Con registrazione<\/strong><\/p>\n<p>Tempo totale di riempimento del DB<br \/>\n43,74 sec<br \/>\n53,23 sec<\/p>\n<p>RAM<br \/>\n24%<br \/>\n40%<\/p>\n<p>CPU<br \/>\n72%<br \/>\n91%<\/p>\n<p><strong>Test 1 (50 connessioni)<\/strong><\/p>\n<p>Numero di transazioni in 10 minuti<br \/>\n74169<br \/>\n32445<\/p>\n<p>Transazioni\/sec<br \/>\n123<br \/>\n54<\/p>\n<p>Ritardo medio<br \/>\n405 ms<br \/>\n925 ms<\/p>\n<p><strong>Test 2 (150 connessioni su 100 disponibili)<\/strong><\/p>\n<p>Numero di transazioni in 10 minuti<br \/>\n81727<br \/>\n31429<\/p>\n<p>Transazioni\/sec<br \/>\n136<br \/>\n52<\/p>\n<p>Ritardo medio<br \/>\n550 ms<br \/>\n1432 ms<\/p>\n<p><strong>Informazioni sulle dimensioni<\/strong><\/p>\n<p>Dimensione del DB<br \/>\n2251 MB<br \/>\n2262 MB<\/p>\n<p>Dimensione dei log del DB<br \/>\n0 MB<br \/>\n4587 MB<\/p>\n<p>\nIn sintesi: un audit completo non \u00e8 molto utile. I dati provenienti dall'audit saranno di volume pari a quelli presenti nel database stesso, se non di pi\u00f9. Un volume di log generato durante l'uso di un DBMS \u00e8 un problema comune in produzione.<\/p>\n<p>Analizziamo altri parametri:<\/p>\n<ul>\n<li>La velocit\u00e0 non cambia molto: senza logging \u2014 43,74 secondi, con logging \u2014 53,23 secondi.<\/li>\n<li>Le prestazioni della RAM e della CPU saranno inferiori, poich\u00e9 \u00e8 necessario generare un file per l'audit. Questo \u00e8 anche evidente in produzione.<\/li>\n<\/ul>\n<p>\nCon l'aumento del numero di connessioni, naturalmente, i risultati peggioreranno leggermente.<\/p>\n<p>Nelle aziende, la situazione con l'audit \u00e8 ancora pi\u00f9 complessa:<\/p>\n<ul>\n<li>ci sono molti dati;<\/li>\n<li>l'audit \u00e8 necessario non solo tramite syslog in SIEM, ma anche nei file: nel caso accada qualcosa con syslog, ci dovrebbe essere un file vicino al database in cui conservare i dati;<\/li>\n<li>per l'audit \u00e8 necessaria una sezione separata, per non far crollare le prestazioni I\/O dei dischi, poich\u00e9 occupa molto spazio;<\/li>\n<li>\u00e8 possibile che i dipendenti della sicurezza informatica richiedano standard GOST ovunque, richiedono identificazione conforme agli standard.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Limitazione dell'accesso ai dati<\/h2>\n<p>\nEsaminiamo le tecnologie utilizzate per la protezione dei dati e l'accesso a questi nelle basi di dati commerciali e open source.<\/p>\n<p>Cosa possiamo utilizzare in generale:<\/p>\n<ol>\n<li>Crittografia e offuscamento di procedure e funzioni (Wrapping) \u2014 cio\u00e8 strumenti e utilit\u00e0 specifiche che rendono il codice leggibile illeggibile. Tuttavia, non pu\u00f2 essere n\u00e9 modificato n\u00e9 rifattorizzato. Questo approccio \u00e8 talvolta necessario, almeno a livello di database \u2014 la logica delle limitazioni di licenza o la logica dell'autorizzazione viene crittografata proprio a livello di procedura e funzione.<\/li>\n<li>Limitazione della visibilit\u00e0 dei dati per righe (RLS) \u2014 \u00e8 quando diversi utenti vedono una tabella, ma con composizioni di righe diverse, quindi ad alcune persone non possono essere mostrati certi dati a livello di righe.<\/li>\n<li>Modifica dei dati visualizzati (Masking) \u2014 \u00e8 quando gli utenti in una colonna di una tabella vedono o i dati o solo asterischi, cio\u00e8 per alcuni utenti l'informazione sar\u00e0 nascosta. La tecnologia definisce quali dati mostrare a ciascun utente in base al livello di accesso.<\/li>\n<li>La distinzione dell'accesso Security DBA\/Application DBA\/DBA riguarda principalmente la restrizione dell'accesso al database stesso, il che significa che il personale della sicurezza informatica pu\u00f2 essere separato dagli amministratori del database e dagli amministratori delle applicazioni. Esistono poche tecnologie open source in questo campo, mentre le soluzioni commerciali sono abbondanti. Sono necessarie quando ci sono molti utenti con accesso ai server stessi.<\/li>\n<li>Restrizione dell'accesso ai file a livello di file system. \u00c8 possibile concedere diritti e privilegi di accesso alle cartelle, in modo che ogni amministratore possa accedere solo ai dati necessari.<\/li>\n<li>L'accesso a mandato e la pulizia della memoria sono tecnologie raramente utilizzate.<\/li>\n<li>La crittografia end-to-end direttamente nel database \u2014 \u00e8 una crittografia client-side con gestione delle chiavi sul lato server.<\/li>\n<li>Crittografia dei dati. Ad esempio, la crittografia per colonne \u2014 quando si utilizza un meccanismo che crittografa una singola colonna del database.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Come influisce sulle prestazioni del database?<\/h3>\n<p>\nPrendiamo come esempio la crittografia colonnare in PostgreSQL. Esiste un modulo pgcrypto, che consente di memorizzare alcuni campi in forma crittografata. Questo \u00e8 utile quando solo alcuni dati hanno valore. Per leggere i campi crittografati, il client invia la chiave di decrittazione, il server decifra i dati e li restituisce al client. Senza la chiave, nessuno pu\u00f2 fare nulla con i tuoi dati.<\/p>\n<p><strong>Eseguiamo un test con pgcrypto<\/strong>. Creiamo una tabella con dati crittografati e con dati normali. Di seguito i comandi per creare le tabelle, nella prima riga c'\u00e8 un comando utile: la creazione dell'estensione con la registrazione del DBMS:<\/p>\n<pre><code class=\"plaintext\">CREATE EXTENSION pgcrypto;\nCREATE TABLE t1 (id integer, text1 text, text2 text);\nCREATE TABLE t2 (id integer, text1 bytea, text2 bytea);\nINSERT INTO t1 (id, text1, text2)\nVALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);\nINSERT INTO t2 (id, text1, text2) VALUES (\ngenerate_series(1,10000000),\nencrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),\nencrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));<\/code><\/pre>\n<p>\nSuccessivamente proveremo a fare una selezione di dati da ciascuna tabella e osserveremo i tempi di esecuzione.<\/p>\n<p><strong>Selezione dalla tabella senza funzione di crittografia<\/strong>:<\/p>\n<pre><code class=\"plaintext\">psql -c \"timing\" -c \"select * from t1 limit 1000;\" \"host=192.168.220.129 dbname=taskdb\nuser=postgres sslmode=disable\" &gt; 1.txt<\/code><\/pre>\n<p>\nIl cronometro \u00e8 attivato.<\/p>\n<p>\u00a0\u00a0id\u00a0 | testo1 | testo2<br \/>\n------+------+-+-------<br \/>\n 1 | 1 \u00a0 \u00a0 | 1<br \/>\n 2 | 2 \u00a0 \u00a0 | 2<br \/>\n 3 | 3 \u00a0 \u00a0 | 3<br \/>\n\u2026<br \/>\n997 | 997 \u00a0 | 997<br \/>\n998 | 998 \u00a0 | 998<br \/>\n999 | 999 \u00a0 | 999<br \/>\n1000 | 1000\u00a0 | 1000<br \/>\n(1000 righe)<\/p>\n<p>Tempo: 1,386 ms<\/p>\n<p><strong>Estrazione dalla tabella con funzione di decrittazione:<\/strong><\/p>\n<pre><code class=\"plaintext\">psql -c \"timing\" -c \"select id, decrypt(text1, 'key'::bytea, 'bf'),\ndecrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;\"\n\"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable\" &gt; 2.txt<\/code><\/pre>\n<p>\nIl cronometro \u00e8 attivato.<\/p>\n<p>\u00a0\u00a0id\u00a0 |\u00a0 decrittare \u00a0 |\u00a0 decrittare<br \/>\n------+--------+------<br \/>\n 1 | x31 \u00a0 | x31<br \/>\n 2 | x32 \u00a0 | x32<br \/>\n 3 | x33 | x33<br \/>\n\u2026<br \/>\n999 | x393939 \u00a0 | x393939<br \/>\n1000 | x31303030 | x31303030<br \/>\n(1000 righe)<\/p>\n<p>Tempo: 50,203 ms<\/p>\n<p><strong>Risultati dei test<\/strong>:<\/p>\n<p>\u00a0<br \/>\n<strong>Senza decrittazione<\/strong><br \/>\n<strong>Pgcrypto (decrittare)<\/strong><\/p>\n<p>Estrazione 1000 righe<br \/>\n1,386 ms<br \/>\n50,203 ms<\/p>\n<p>CPU<br \/>\n15%<br \/>\n35%<\/p>\n<p>RAM<br \/>\n\u00a0<br \/>\n+5%<\/p>\n<p>\nLa decrittazione ha un forte impatto sulle prestazioni. Si nota che il tempo \u00e8 aumentato, poich\u00e9 le operazioni di decrittazione dei dati criptati (e la decrittazione \u00e8 tipicamente ulteriormente avvolta nella tua logica) richiedono risorse significative. Quindi, l'idea di crittografare tutte le colonne che contengono dati \u00e8 rischiosa per le prestazioni.<\/p>\n<p>Tuttavia, la crittografia non \u00e8 una soluzione magica che risolve tutti i problemi. I dati decrittati e la chiave di decrittazione sono sul server durante il processo di decrittazione e trasferimento dei dati. Pertanto, le chiavi possono essere intercettate da chi ha accesso completo al server del database, ad esempio un amministratore di sistema.<\/p>\n<p>Quando un'unica chiave \u00e8 utilizzata per tutti gli utenti in una colonna (anche se non per tutti, ma per un insieme limitato di clienti), non \u00e8 sempre una scelta ottimale n\u00e9 corretta. \u00c8 proprio per questo che si \u00e8 iniziato a implementare la crittografia end-to-end. Nei sistemi di gestione dei database (SGBD) sono state esplorate opzioni per la crittografia dei dati sia dal lato cliente che server, e sono emersi i cosiddetti key-vault, cio\u00e8 prodotti distinti che forniscono gestione delle chiavi a livello di SGBD.<\/p>\n<p><img decoding=\"async\" alt=\"Sicurezza e DBMS: cosa ricordare quando si scelgono i mezzi di protezione\" src=\"\/wp-content\/uploads\/2020\/05\/cbaa7b9579a65963518ba3cec6114842.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.mongodb.com\/manual\/core\/security-client-side-encryption\/\"><i>Esempio di tale crittografia in MongoDB<\/i><\/a><\/noindex><\/p>\n<h2>Strumenti di sicurezza nei SGBD commerciali e open source<\/h2>\n<p><\/p>\n<p><strong>Le funzioni<\/strong><br \/>\n<strong>Tipo<\/strong><br \/>\n<strong>Password Policy<\/strong><br \/>\n<strong>Audit<\/strong><br \/>\n<strong>Protezione del codice sorgente di procedure e funzioni<\/strong><br \/>\n<strong>RLS<\/strong><br \/>\n<strong>Crittografia<\/strong><\/p>\n<p><strong>Oracle<\/strong><br \/>\nCommerciale<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p><strong>MsSql<\/strong><br \/>\nCommerciale<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.gaz-is.ru\/produkty\/inform-sistemy\/subd-jatoba.html\"><strong>Jatoba<\/strong><\/a><\/noindex><br \/>\nCommerciale<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\nestensioni<\/p>\n<p><strong>PostgreSQL<\/strong><br \/>\nFree<br \/>\nestensioni<br \/>\nestensioni<br \/>\n\u2014<br \/>\n+<br \/>\nestensioni<\/p>\n<p><strong>MongoDb<\/strong><br \/>\nFree<br \/>\n\u2014<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<br \/>\nDisponibile solo in MongoDB Enterprise<\/p>\n<p>\nLa tabella non \u00e8 per niente completa, ma la situazione \u00e8 questa: nei prodotti commerciali le questioni di sicurezza vengono affrontate da tempo, mentre nell'open source, di solito, si utilizzano delle estensioni per la sicurezza, mancano molte funzioni e talvolta \u00e8 necessario implementarne alcune. Ad esempio, le politiche delle password \u2014 in PostgreSQL esistono molte estensioni (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postgres\/postgres\/tree\/master\/contrib\/passwordcheck\">1<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ykrysko\/passwordcheck\">2<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/michaelpq\/pg_plugins\/tree\/master\/passwordcheck_extra\">3<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/devrimgunduz\/passwordcheck_cracklib\">4<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/asio\/password\">5<\/a><\/noindex>), che implementano politiche delle password, ma a mio avviso nessuna copre tutte le esigenze del segmento aziendale nazionale.<\/p>\n<p><strong>Cosa fare se non si trova ci\u00f2 di cui si ha bisogno<\/strong>? \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0421\u0423\u0411\u0414, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a.<\/p>\n<p>In questo caso, \u00e8 possibile utilizzare soluzioni di terze parti compatibili con diversi DBMS, come \"Crypto DB\" o \"Garda DB\". Se si parla di soluzioni del settore nazionale, l\u00ec conoscono meglio gli standard GOST rispetto all'open source.<\/p>\n<p>La seconda opzione \u00e8 scrivere autonomamente ci\u00f2 di cui hai bisogno, implementando a livello di procedure l'accesso ai dati e la crittografia nell'applicazione. Tuttavia, la questione degli standard GOST sar\u00e0 pi\u00f9 complicata. In generale, puoi nascondere i dati come necessario, immagazzinarli nel DBMS e successivamente estrarli e decifrarli in modo adeguato, direttamente a livello di applicazione. Considera subito come proteggere questi algoritmi a livello di applicazione. A nostro avviso, \u00e8 meglio farlo a livello di DBMS, poich\u00e9 ci\u00f2 garantir\u00e0 prestazioni pi\u00f9 rapide.<\/p>\n<p>Questa relazione \u00e8 stata presentata per la prima volta al <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/databases-1\/\">@Databases Meetup<\/a><\/noindex> da Mail.ru Cloud Solutions. Guarda<noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/redirect?q=https%3A%2F%2Fbit.ly%2F2U57FAd&amp;redir_token=XNWSBN1AKQA2sjhdReDAv6VnkOV8MTU4OTAxNjMwMEAxNTg4OTI5OTAw&amp;v=wigSv2_zWBU&amp;event=video_description\"> video <\/a><\/noindex>altri interventi e iscriviti agli avvisi degli eventi su Telegram <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/k8s_mail\">Attorno a Kubernetes in Mail.ru Group<\/a><\/noindex>.<\/p>\n<p><strong>Ulteriori letture sull'argomento<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/472694\/\">Pi\u00f9 di Ceph: soluzione di storage a blocchi nel cloud MCS<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/kakuyu-bazu-dannyh-vybrat-dlya-proekta-chtoby-ne-oshibitsya\">Come scegliere un database per un progetto, in modo da non dover scegliere di nuovo<\/a><\/noindex>.<\/li>\n<\/ol>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/500708\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441 \u0420\u043e\u0436\u043a\u043e\u0432, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041f\u041e \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0413\u0430\u0437\u0438\u043d\u0444\u043e\u0440\u043c\u0441\u0435\u0440\u0432\u0438\u0441\u00bb, \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 Jatoba. \u0417\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0442\u0440\u0435\u0442\u044c\u0438 \u043b\u0438\u0446\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u0430\u0436\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81885,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81884","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441 \u0420\u043e\u0436\u043a\u043e\u0432, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041f\u041e \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0413\u0430\u0437\u0438\u043d\u0444\u043e\u0440\u043c\u0441\u0435\u0440\u0432\u0438\u0441\u00bb, \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 Jatoba. \u0417\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0442\u0440\u0435\u0442\u044c\u0438 \u043b\u0438\u0446\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u0430\u0436\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0421\u0423\u0411\u0414: \u043e \u0447\u0451\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0437\u0430\u0449\u0438\u0442\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441 \u0420\u043e\u0436\u043a\u043e\u0432, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041f\u041e \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0413\u0430\u0437\u0438\u043d\u0444\u043e\u0440\u043c\u0441\u0435\u0440\u0432\u0438\u0441\u00bb, \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 Jatoba. \u0417\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0442\u0440\u0435\u0442\u044c\u0438 \u043b\u0438\u0446\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u0430\u0436\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-17T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-17T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Sicurezza e DBMS: cosa tenere a mente quando si scelgono strumenti di protezione | ProHoster","description":"Mi chiamo Denis Rozhkov, sono il responsabile dello sviluppo software presso l'azienda \u00abGazinformservice\u00bb, nel team del prodotto Jatoba. La legislazione e le normative aziendali pongono requisiti specifici sulla sicurezza della conservazione dei dati. Nessuno vuole che terzi possano accedere alle informazioni riservate, quindi \u00e8 fondamentale affrontare le seguenti questioni per qualsiasi progetto: identificazione e autenticazione, gestione degli accessi ai dati, garantire l'integrit\u00e0 delle informazioni.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0421\u0423\u0411\u0414: \u043e \u0447\u0451\u043c \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u044f \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0437\u0430\u0449\u0438\u0442\u044b | ProHoster","og:description":"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441 \u0420\u043e\u0436\u043a\u043e\u0432, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041f\u041e \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u00ab\u0413\u0430\u0437\u0438\u043d\u0444\u043e\u0440\u043c\u0441\u0435\u0440\u0432\u0438\u0441\u00bb, \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 Jatoba. \u0417\u0430\u043a\u043e\u043d\u043e\u0434\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043d\u043e\u0440\u043c\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0442\u0440\u0435\u0442\u044c\u0438 \u043b\u0438\u0446\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432\u0430\u0436\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b: \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u043a \u0434\u0430\u043d\u043d\u044b\u043c, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-17T11:42:18+00:00","article:modified_time":"2020-05-17T11:42:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81884","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:48:24","updated":"2022-10-05 02:01:28"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/81884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=81884"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/81884\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/81885"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=81884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=81884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=81884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}