{"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\/de\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity","title":{"rendered":"Sicherheit und Datenbankmanagement: worauf Sie bei der Auswahl von Schutzma\u00dfnahmen achten sollten","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1><img decoding=\"async\" alt=\"Sicherheit und Datenbankmanagement: worauf Sie bei der Auswahl von Schutzma\u00dfnahmen achten sollten\" src=\"\/wp-content\/uploads\/2020\/05\/ac49253838e36336af127d71394139d8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/h1>\n<p>\nMein Name ist Denis Rozhkov, ich bin Leiter der Softwareentwicklung bei Gazinformservice, im Produktteam. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gaz-is.ru\/produkty\/inform-sistemy\/subd-jatoba.html\">Jatoba<\/a><\/noindex>. Die Gesetze und Firmenrichtlinien stellen bestimmte Anforderungen an die Sicherheit der Datenspeicherung. Niemand m\u00f6chte, dass Dritte Zugang zu sensiblen Informationen erhalten, deshalb sind f\u00fcr jedes Projekt folgende Aspekte wichtig: Identifizierung und Authentifizierung, Zugriffsmanagement, Sicherstellung der Datenintegrit\u00e4t im System und Erfassung von Sicherheitsereignissen. Deshalb m\u00f6chte ich einige interessante Punkte zur Sicherheit von Datenbanksystemen vorstellen. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDer Artikel wurde auf der <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/databases-1\/\">@Databases Meetup,<\/a><\/noindex> organisiert von <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Mail.ru Cloud L\u00f6sungen<\/a><\/noindex>. Wenn Sie nicht lesen m\u00f6chten, k\u00f6nnen Sie sich Folgendes ansehen:<\/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=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\nDer Artikel wird in drei Teile unterteilt:<\/p>\n<ul>\n<li>Wie man Verbindungen sch\u00fctzt.<\/li>\n<li>Was ist ein Aktionsaudit und wie erfasst man, was auf der Datenbankseite und bei der Verbindung dazu passiert.<\/li>\n<li>Wie man die Daten in der Datenbank selbst sch\u00fctzt und welche Technologien daf\u00fcr existieren.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Sicherheit und Datenbankmanagement: worauf Sie bei der Auswahl von Schutzma\u00dfnahmen achten sollten\" src=\"\/wp-content\/uploads\/2020\/05\/fbdca7f4a925b9ceb78de06c6e245b23.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Drei Komponenten der Sicherheit von Datenbanksystemen: Schutz der Verbindungen, Aktionsaudit und Datenschutz.<\/i><\/p>\n<h2>Schutz der Verbindungen<\/h2>\n<p>\nDie Verbindung zur Datenbank kann sowohl direkt als auch indirekt \u00fcber Webanwendungen hergestellt werden. In der Regel interagiert ein gesch\u00e4ftlicher Nutzer, also jemand, der mit dem Datenbanksystem arbeitet, nicht direkt mit ihm.<\/p>\n<p>Bevor wir \u00fcber den Schutz von Verbindungen sprechen, m\u00fcssen wichtige Fragen beantwortet werden, die Einfluss darauf haben, wie Sicherheitsma\u00dfnahmen gestaltet werden:<\/p>\n<ul>\n<li>Ist ein Gesch\u00e4ftsnutzer gleichzusetzen mit einem Nutzer des Datenbanksystems?<\/li>\n<li>Wird der Zugang zu den Daten des Datenbanksystems nur \u00fcber eine API gew\u00e4hrt, die Sie kontrollieren, oder ist der Zugriff auf die Tabellen direkt m\u00f6glich?<\/li>\n<li>Ist das Datenbanksystem in einem separaten, sicheren Segment untergebracht, und wer interagiert mit ihm?<\/li>\n<li>Wird Pooling\/Proxy und eine Zwischenschicht verwendet, die Informationen \u00fcber den Aufbau der Verbindung und die Nutzer der Datenbank \u00e4ndern k\u00f6nnen?<\/li>\n<\/ul>\n<p>\nSchauen wir uns nun an, welche Werkzeuge zum Schutz der Verbindungen eingesetzt werden k\u00f6nnen:<\/p>\n<ol>\n<li>Verwenden Sie L\u00f6sungen der Klasse Database Firewall. Eine zus\u00e4tzliche Schutzschicht erh\u00f6ht zumindest die Transparenz bez\u00fcglich dessen, was im Datenbanksystem geschieht; im besten Fall k\u00f6nnen Sie einen zus\u00e4tzlichen Schutz der Daten gew\u00e4hrleisten.<\/li>\n<li>Verwenden Sie Passwort-Richtlinien. Ihre Anwendung h\u00e4ngt davon ab, wie Ihre Architektur aufgebaut ist. In jedem Fall ist ein einzelnes Passwort in der Konfigurationsdatei der Webanwendung, die mit der Datenbank verbunden ist, nicht ausreichend f\u00fcr den Schutz. Es gibt eine Vielzahl von Datenbank-Tools, die sicherstellen, dass Benutzer und Passw\u00f6rter aktualisiert werden.\n<p>Weitere Informationen zu den Benutzerbewertungsfunktionen finden Sie <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cloud.oracle.com\/en-us\/iaas\/data-safe\/doc\/user-assessment-reports.html\">hier<\/a><\/noindex>, ebenso k\u00f6nnen Sie mehr \u00fcber die MS SQL Vulnerability Assessment erfahren <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/security\/sql-vulnerability-assessment?view=sql-server-ver15\">hier<\/a><\/noindex>.\u00a0<\/li>\n<li>Bereichern Sie den Kontext der Sitzung mit den notwendigen Informationen. Wenn die Sitzung undurchsichtig ist und Sie nicht verstehen, wer innerhalb dieser Sitzung in der Datenbank arbeitet, k\u00f6nnen Sie im Rahmen der ausgef\u00fchrten Operation zus\u00e4tzliche Informationen dar\u00fcber bereitstellen, wer was und warum tut. Diese Informationen sind im Audit sichtbar.<\/li>\n<li>Konfigurieren Sie SSL, wenn Sie kein Netzwerktrennung zwischen der Datenbank und den Endbenutzern haben, sie nicht in einem eigenen VLAN ist. In solchen F\u00e4llen m\u00fcssen Sie den Kanal zwischen dem Verbraucher und der Datenbank absichern. Schutzwerkzeuge sind unter anderem auch in der Open-Source-Community verf\u00fcgbar.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Wie wird sich dies auf die Leistung der Datenbank auswirken?<\/h3>\n<p>\nSehen wir uns am Beispiel von PostgreSQL an, wie SSL die CPU-Last, die Verz\u00f6gerungen erh\u00f6ht und die TPS verringert, und ob zu viele Ressourcen verbraucht werden, wenn es aktiviert ist.<\/p>\n<p>Wir belasten PostgreSQL mit pgbench \u2013 einem einfachen Programm f\u00fcr Leistungstests. Es f\u00fchrt wiederholt eine Sequenz von Befehlen aus, m\u00f6glicherweise in parallelen Datenbanksitzungen, und berechnet dann die durchschnittliche Transaktionsgeschwindigkeit.<\/p>\n<p><strong>Test 1 ohne SSL und mit SSL<\/strong> \u2014 die Verbindung wird bei jeder Transaktion hergestellt:<\/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 ohne SSL und mit SSL<\/strong> \u2014 alle Transaktionen werden in einer einzigen Verbindung ausgef\u00fchrt:<\/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>Weitere Einstellungen<\/strong>:<\/p>\n<pre><code class=\"plaintext\">Scaling-Faktor: 1\nAbfragemodus: einfach\nAnzahl der Clients: 10\nAnzahl der Threads: 1\nAnzahl der Transaktionen pro Client: 5000\nTats\u00e4chlich verarbeitete Transaktionen: 50000\/50000<\/code><\/pre>\n<p>\n<strong>Testergebnisse<\/strong>:<\/p>\n<p>\u00a0<br \/>\n<strong>KEIN SSL<\/strong><br \/>\n<strong>SSL<\/strong><\/p>\n<p><strong>Die Verbindung wird bei jeder Transaktion hergestellt<\/strong><\/p>\n<p>Durchschnittliche Latenz<br \/>\n171,915 ms<br \/>\n187,695 ms<\/p>\n<p>tps einschlie\u00dflich Verbindungsaufbau<br \/>\n58.168112<br \/>\n53.278062<\/p>\n<p>tps ohne Verbindungsaufbau<br \/>\n64.084546<br \/>\n58.725846<\/p>\n<p>CPU<br \/>\n24%<br \/>\n28%<\/p>\n<p><strong>Alle Transaktionen werden \u00fcber eine Verbindung abgewickelt<\/strong><\/p>\n<p>Durchschnittliche Latenz<br \/>\n6,722 ms<br \/>\n6,342 ms<\/p>\n<p>tps einschlie\u00dflich der Verbindungsherstellung<br \/>\n1587.657278<br \/>\n1576.792883<\/p>\n<p>tps ohne Verbindungsaufbau<br \/>\n1588.380574<br \/>\n1577.694766<\/p>\n<p>CPU<br \/>\n17%<br \/>\n21%<\/p>\n<p>\nBei geringer Belastung ist der Einfluss von SSL mit der Messfehlergrenze vergleichbar. Wenn jedoch eine gro\u00dfe Datenmenge \u00fcbertragen wird, kann die Situation anders sein. Bei einer einzelnen Verbindung pro Transaktion (was selten vorkommt, normalerweise teilen sich mehrere Benutzer eine Verbindung) gibt es viele Verbindungen\/Trennungen, und der Einfluss kann etwas gr\u00f6\u00dfer sein. Das bedeutet, dass es Risiken f\u00fcr die Leistungseinbu\u00dfen geben kann, jedoch ist der Unterschied nicht so gro\u00df, dass man auf den Schutz verzichten sollte.<\/p>\n<p>Beachten Sie, dass es einen deutlichen Unterschied gibt, wenn man die Betriebsmodi vergleicht: Innerhalb einer Sitzung arbeiten Sie oder in unterschiedlichen Sitzungen. Das ist nachvollziehbar: Das Erstellen jeder Verbindung verbraucht Ressourcen.<\/p>\n<p>Wir hatten den Fall, dass wir Zabbix im Trust-Modus verbunden haben, das hei\u00dft, wir haben die md5-Pr\u00fcfung nicht durchgef\u00fchrt und die Authentifizierung war nicht erforderlich. Sp\u00e4ter bat der Kunde um die Aktivierung des md5-Authentifizierungsmodus. Dies f\u00fchrte zu einer erheblichen CPU-Belastung, wodurch die Leistung absank. Wir begannen, nach Wegen zur Optimierung zu suchen. Eine m\u00f6gliche L\u00f6sung f\u00fcr das Problem k\u00f6nnte die Implementierung von Netzwerkkontrollen sein, separate VLANs f\u00fcr die Datenbank zu erstellen, Einstellungen hinzuzuf\u00fcgen, um klarzustellen, wer von wo verbindet, und die Authentifizierung zu entfernen. Zudem kann man die Authentifizierungseinstellungen optimieren, um die Kosten bei Aktivierung der Authentifizierung zu senken, aber insgesamt beeinflussen verschiedene Authentifizierungsmethoden die Leistung und es ist wichtig, diese Faktoren bei der Planung der Serverressourcen (Hardware) f\u00fcr die Datenbank zu ber\u00fccksichtigen.<\/p>\n<p>Fazit: Bei vielen L\u00f6sungen k\u00f6nnen selbst kleine Details bei der Authentifizierung erhebliche Auswirkungen auf das Projekt haben, und es ist ung\u00fcnstig, wenn dies erst bei der Produktivsetzung offensichtlich wird.<\/p>\n<h2>Auditanalyse<\/h2>\n<p>\nAudit kann nicht nur auf die Datenbank beschr\u00e4nkt sein. Der Auditprozess dient dazu, Informationen dar\u00fcber zu erhalten, was in verschiedenen Segmenten vor sich geht. Dazu geh\u00f6ren auch Datenbankfirewalls und das Betriebssystem, auf dem die DBMS aufgebaut ist.<\/p>\n<p>Bei kommerziellen Enterprise-Datenbanken funktioniert der Auditprozess gut, bei Open-Source-L\u00f6sungen jedoch nicht immer. Hier sind die Optionen in PostgreSQL:<\/p>\n<ul>\n<li>Standardprotokoll \u2013 integrierte Protokollierung;<\/li>\n<li>Erweiterungen: pgaudit \u2013 wenn die standardm\u00e4\u00dfige Protokollierung nicht ausreicht, k\u00f6nnen separate Einstellungen genutzt werden, um bestimmte Anforderungen zu erf\u00fcllen.<\/li>\n<\/ul>\n<p>\n<b>Zusatz zu dem Bericht im Video:<\/b><\/p>\n<p>Die grundlegende Registrierung von Operatoren kann durch das standardm\u00e4\u00dfige Protokollierungstool mit log_statement = all sichergestellt werden.<\/p>\n<p>Dies ist geeignet f\u00fcr Monitoring und andere Verwendungszwecke, bietet jedoch nicht das Ma\u00df an Detailliertheit, das normalerweise f\u00fcr Audits erforderlich ist.<\/p>\n<p>Es reicht nicht aus, lediglich eine Liste aller mit der Datenbank durchgef\u00fchrten Operationen zu haben.<\/p>\n<p>Es muss auch die M\u00f6glichkeit bestehen, spezifische Aussagen zu finden, die f\u00fcr den Auditor von Interesse sind.<\/p>\n<p>Das standardm\u00e4\u00dfige Protokollierungstool zeigt an, was der Benutzer angefordert hat, w\u00e4hrend pgAudit sich auf die Details konzentriert, was passiert ist, als die Datenbank die Anfrage ausgef\u00fchrt hat.<\/p>\n<p>Zum Beispiel k\u00f6nnte ein Auditor sicherstellen wollen, dass eine bestimmte Tabelle im festgelegten Wartungsfenster erstellt wurde.<\/p>\n<p>Das mag eine einfache Aufgabe f\u00fcr ein grundlegendes Audit und grep erscheinen, aber was, wenn Ihnen etwas wie dieses (bewusst komplizierte) Beispiel pr\u00e4sentiert wird:<\/p>\n<p>DO $$<br \/>\nBEGIN<br \/>\n EXECUTE 'CREATE TABLE import' || 'ant_table (id INT)';<br \/>\nEND $$;<\/p>\n<p>Das Standardprotokoll gibt Ihnen Folgendes:<\/p>\n<p>LOG: statement: DO $$<br \/>\nBEGIN<br \/>\n EXECUTE 'CREATE TABLE import' || 'ant_table (id INT)';<br \/>\nEND $$;<\/p>\n<p>Es scheint, dass ein gewisses Verst\u00e4ndnis des Codes erforderlich sein k\u00f6nnte, um die interessante Tabelle zu finden, insbesondere wenn Tabellen dynamisch erstellt werden.<\/p>\n<p>Das ist nicht ideal, da es besser w\u00e4re, einfach nach dem Tabellennamen zu suchen.<\/p>\n<p>Hier kommt pgAudit ins Spiel.<\/p>\n<p>F\u00fcr denselben Input gibt es folgende Ausgabe im Protokoll:<\/p>\n<p>AUDIT: SESSION,33,1,FUNCTION,DO,,,\u00abDO $$<br \/>\nBEGIN<br \/>\n EXECUTE 'CREATE TABLE import' || 'ant_table (id INT)';<br \/>\nEND $$;<br \/>\nAUDIT: SESSION,33,2,DDL,CREATE TABLE,TABLE,public.important_table,CREATE TABLE important_table (id INT)<\/p>\n<p>Nicht nur der DO-Block wird protokolliert, sondern auch der vollst\u00e4ndige TEXT von CREATE TABLE mit dem Operator-Typ, dem Objekt-Typ und dem vollst\u00e4ndigen Namen, was die Suche erleichtert.<\/p>\n<p>Bei der Protokollierung von SELECT- und DML-Operatoren kann pgAudit so konfiguriert werden, dass es einen separaten Eintrag f\u00fcr jede Beziehung aufzeichnet, auf die in dem Befehl verwiesen wird.<\/p>\n<p>Es bedarf keiner syntaktischen Analyse, um alle Operatoren zu finden, die eine bestimmte Tabelle betreffen.<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pgaudit\/pgaudit\/blob\/master\/README.md\">*<\/a><\/noindex>)\u00bb.<\/p>\n<h3>Wie wird sich dies auf die Leistung der Datenbank auswirken?<\/h3>\n<p>\nLassen Sie uns Tests mit aktiviertem vollst\u00e4ndigen Audit durchf\u00fchren und sehen, wie sich dies auf die Leistung von PostgreSQL auswirkt. Wir aktivieren das umfangreiche Datenbank-Logging f\u00fcr alle Parameter.<\/p>\n<p>Im Konfigurationsfile \u00e4ndern wir fast nichts, das Wichtigste ist, den Modus debug5 zu aktivieren, um maximale Informationen zu erhalten.<\/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\/Berlin'<\/p>\n<p>\nWir f\u00fchren drei Lasttests auf einer PostgreSQL-Datenbank mit den Parametern 1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD durch, unter Verwendung folgender Befehle:<\/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>Testresultate:<\/strong><\/p>\n<p><strong>Ohne Logging<\/strong><br \/>\n<strong>Mit Logging<\/strong><\/p>\n<p>Gesamtdauer f\u00fcr das Bef\u00fcllen der Datenbank<br \/>\n43,74 Sek.<br \/>\n53,23 Sek.<\/p>\n<p>RAM<br \/>\n24%<br \/>\n40%<\/p>\n<p>CPU<br \/>\n72%<br \/>\n91%<\/p>\n<p><strong>Test 1 (50 Verbindungen)<\/strong><\/p>\n<p>Anzahl der Transaktionen in 10 Minuten<br \/>\n74169<br \/>\n32445<\/p>\n<p>Transaktionen\/Sekunde<br \/>\n123<br \/>\n54<\/p>\n<p>Durchschnittliche Verz\u00f6gerung<br \/>\n405 ms<br \/>\n925 ms<\/p>\n<p><strong>Test 2 (150 Verbindungen bei 100 m\u00f6glichen)<\/strong><\/p>\n<p>Anzahl der Transaktionen in 10 Minuten<br \/>\n81727<br \/>\n31429<\/p>\n<p>Transaktionen\/Sekunde<br \/>\n136<br \/>\n52<\/p>\n<p>Durchschnittliche Verz\u00f6gerung<br \/>\n550 ms<br \/>\n1432 ms<\/p>\n<p><strong>\u00dcber die Gr\u00f6\u00dfen<\/strong><\/p>\n<p>Datenbankgr\u00f6\u00dfe<br \/>\n2251 MB<br \/>\n2262 MB<\/p>\n<p>Datenbankprotokollgr\u00f6\u00dfe<br \/>\n0 MB<br \/>\n4587 MB<\/p>\n<p>\nInsgesamt: Ein vollst\u00e4ndiges Audit ist nicht optimal. Die Datenmenge aus dem Audit wird \u00e4hnlich gro\u00df sein wie die der Datenbank selbst, oder sogar gr\u00f6\u00dfer. Ein solches Ma\u00df an Protokollierung, das bei der Arbeit mit DBMS entsteht, ist ein g\u00e4ngiges Problem in der Produktionsumgebung.<\/p>\n<p>Sehen wir uns weitere Parameter an:<\/p>\n<ul>\n<li>Die Geschwindigkeit \u00e4ndert sich nicht stark: ohne Protokollierung \u2013 43,74 Sek., mit Protokollierung \u2013 53,23 Sek.<\/li>\n<li>Die Leistung in Bezug auf RAM und CPU wird sinken, da eine Auditdatei erstellt werden muss. Dies ist ebenfalls in der Produktionsumgebung zu beobachten.<\/li>\n<\/ul>\n<p>\nMit steigender Anzahl der Verbindungen werden sich die Werte nat\u00fcrlich etwas verschlechtern.<\/p>\n<p>In Unternehmen mit Audits ist es noch komplizierter:<\/p>\n<ul>\n<li>es gibt viele Daten;<\/li>\n<li>das Audit muss nicht nur \u00fcber syslog in SIEM, sondern auch in Dateien erfolgen: falls mit syslog etwas passiert, sollte eine Datei in der N\u00e4he der Datenbank vorhanden sein, in der die Daten gespeichert werden;<\/li>\n<li>F\u00fcr das Audit ist ein separater Speicher erforderlich, um I\/O-Verluste bei den Festplatten zu vermeiden, da er viel Platz einnimmt;<\/li>\n<li>teilweise ben\u00f6tigen IT-Sicherheitsmitarbeiter \u00fcberall GOST-Standards, sie verlangen eine staatliche Identifikation.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Zugangsbeschr\u00e4nkung zu den Daten<\/h2>\n<p>\nBetrachten wir die Technologien, die zum Schutz von Daten und deren Zugriff in kommerziellen DBMS und Open Source verwendet werden.<\/p>\n<p>Was insgesamt verwendet werden kann:<\/p>\n<ol>\n<li>Verschl\u00fcsselung und Verschleierung von Prozeduren und Funktionen (Wrapping) \u2013 das sind spezielle Werkzeuge und Hilfsprogramme, die aus lesbarem Code unlesbaren Code machen. Allerdings kann dieser nachher nicht ver\u00e4ndert oder zur\u00fcckrefaktoriert werden. Dieser Ansatz ist manchmal zumindest auf der DBMS-Seite erforderlich \u2013 die Logik der Lizenzbeschr\u00e4nkungen oder der Autorisierung wird genau auf der Ebene von Prozeduren und Funktionen verschl\u00fcsselt.<\/li>\n<li>Einschr\u00e4nkung der Sichtbarkeit von Daten nach Zeilen (RLS) \u2013 das bedeutet, dass verschiedene Benutzer eine Tabelle sehen, aber unterschiedliche Zeileninhalte darin, also sind bestimmte Daten f\u00fcr einige Benutzer auf Zeilenebene nicht sichtbar.<\/li>\n<li>Bearbeitung der angezeigten Daten (Maskierung) \u2013 hier sehen Benutzer in einer Spalte der Tabelle entweder Daten oder nur Sternchen, das hei\u00dft, f\u00fcr bestimmte Benutzer wird die Information verborgen. Die Technologie bestimmt, was welchem Benutzer je nach Zugriffslevel angezeigt wird.<\/li>\n<li>Die Zugangskontrolle f\u00fcr Security DBA\/Application DBA\/DBA bezieht sich haupts\u00e4chlich auf die Einschr\u00e4nkung des Zugriffs auf das Datenbankmanagementsystem (DBMS). Das bedeutet, dass Mitarbeiter der IT-Sicherheit von Datenbank- und Anwendungsadministratoren getrennt werden k\u00f6nnen. Bei Open-Source-L\u00f6sungen gibt es nur wenige solche Technologien, w\u00e4hrend kommerzielle DBMS gen\u00fcgend Alternativen bieten. Diese sind erforderlich, wenn viele Benutzer Zugriff auf die Server haben.<\/li>\n<li>Einschr\u00e4nkungen beim Zugriff auf Dateien auf der Ebene des Dateisystems. Es k\u00f6nnen Berechtigungen und Zugriffsprivilegien f\u00fcr Verzeichnisse vergeben werden, sodass jeder Administrator nur Zugriff auf die relevanten Daten erh\u00e4lt.<\/li>\n<li>Mandatierter Zugriff und Speicherbereinigung \u2014 diese Technologien werden selten angewendet.<\/li>\n<li>End-to-End-Verschl\u00fcsselung direkt im DBMS \u2014 dies ist eine clientseitige Verschl\u00fcsselung mit Schl\u00fcsselverwaltung auf der Serverseite.<\/li>\n<li>Datenverschl\u00fcsselung. Zum Beispiel die Spaltenverschl\u00fcsselung \u2014 wenn Sie einen Mechanismus verwenden, der eine bestimmte Datenbankspalte verschl\u00fcsselt.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Wie beeinflusst das die Leistung des DBMS?<\/h3>\n<p>\nBetrachten wir das Beispiel der Spaltenschl\u00fcsselung in PostgreSQL. Es gibt das Modul pgcrypto, das es erm\u00f6glicht, ausgew\u00e4hlte Felder verschl\u00fcsselt zu speichern. Dies ist n\u00fctzlich, wenn nur bestimmte Daten wertvoll sind. Um die verschl\u00fcsselten Felder zu lesen, \u00fcbertr\u00e4gt der Client den Entschl\u00fcsselungsschl\u00fcssel, der Server entschl\u00fcsselt die Daten und gibt sie an den Client zur\u00fcck. Ohne den Schl\u00fcssel kann niemand etwas mit Ihren Daten anfangen.<\/p>\n<p><strong>Lassen Sie uns einen Test mit pgcrypto durchf\u00fchren.<\/strong>. Wir erstellen eine Tabelle mit verschl\u00fcsselten Daten und eine mit normalen Daten. Im Folgenden die Befehle zur Erstellung der Tabellen, in der ersten Zeile befindet sich der n\u00fctzliche Befehl zur Erstellung der Extension mit der Registrierung der Datenbank:<\/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>\nAls n\u00e4chstes versuchen wir, aus jeder Tabelle Daten auszuw\u00e4hlen und beobachten die Ausf\u00fchrungszeiten.<\/p>\n<p><strong>Abfrage aus der Tabelle ohne Verschl\u00fcsselungsfunktion.<\/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>\nDie Stoppuhr l\u00e4uft.<\/p>\n<p>\u00a0\u00a0id | text1 | text2<br \/>\n\u2014\u2014+\u2014\u2014-+\u2014\u2014\u2014-<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 Zeilen)<\/p>\n<p>Zeit: 1,386 ms<\/p>\n<p><strong>Abfrage aus der Tabelle mit Verschl\u00fcsselungsfunktion:<\/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>\nDie Stoppuhr l\u00e4uft.<\/p>\n<p>\u00a0\u00a0id | decrypt | decrypt<br \/>\n\u2014\u2014\u2014+\u2014\u2014\u2014-\u2014\u2014\u2014\u2013+\u2014\u2014\u2014\u2014\u2014-<br \/>\n 1 | x31 | x31<br \/>\n 2 | x32 | x32<br \/>\n 3 | x33 | x33<br \/>\n\u2026<br \/>\n999 | x393939 | x393939<br \/>\n1000 | x31303030 | x31303030<br \/>\n(1000 Zeilen)<\/p>\n<p>Zeit: 50,203 ms<\/p>\n<p><strong>Testergebnisse<\/strong>:<\/p>\n<p>\u00a0<br \/>\n<strong>Ohne Verschl\u00fcsselung<\/strong><br \/>\n<strong>Pgcrypto (decrypt)<\/strong><\/p>\n<p>Abfrage 1000 Zeilen<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>\nDie Verschl\u00fcsselung hat einen erheblichen Einfluss auf die Leistung. Es ist offensichtlich, dass die Zeit steigt, da die Entschl\u00fcsselungsoperationen von verschl\u00fcsselten Daten (und die Entschl\u00fcsselung ist in der Regel noch in Ihrer Logik eingebettet) erhebliche Ressourcen erfordern. Das bedeutet, dass die Idee, alle Spalten mit Daten zu verschl\u00fcsseln, mit einer Verringerung der Leistung verbunden ist.<\/p>\n<p>Die Verschl\u00fcsselung ist jedoch keine Allheilmittel, das alle Probleme l\u00f6st. Die entschl\u00fcsselten Daten und der Entschl\u00fcsselungsschl\u00fcssel befinden sich w\u00e4hrend des Entschl\u00fcsselungs- und Daten\u00fcbertragungsprozesses auf dem Server. Daher k\u00f6nnen die Schl\u00fcssel von jemandem abgeh\u00f6rt werden, der vollen Zugriff auf den Datenbankserver hat, wie beispielsweise ein Systemadministrator.<\/p>\n<p>Wenn f\u00fcr alle Benutzer ein einziger Schl\u00fcssel f\u00fcr die gesamte Datenbank verwendet wird (auch wenn dies nicht f\u00fcr alle gilt, sondern nur f\u00fcr eine eingeschr\u00e4nkte Kundengruppe), ist das nicht immer gut und richtig. Daher haben wir mit der Implementierung von End-to-End-Verschl\u00fcsselung begonnen. In Datenbanksystemen wurden Optionen f\u00fcr die Verschl\u00fcsselung von Daten sowohl auf der Client- als auch auf der Serverseite in Betracht gezogen, und es wurden die sogenannten Key-Vault-Speicher entwickelt \u2014 separate Produkte, die das Schl\u00fcsselmanagement auf der Datenbankseite gew\u00e4hrleisten.<\/p>\n<p><img decoding=\"async\" alt=\"Sicherheit und Datenbankmanagement: worauf Sie bei der Auswahl von Schutzma\u00dfnahmen achten sollten\" 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>Beispiel f\u00fcr eine solche Verschl\u00fcsselung in MongoDB<\/i><\/a><\/noindex><\/p>\n<h2>Sicherheitsma\u00dfnahmen in kommerziellen und Open-Source-Datenbanksystemen<\/h2>\n<p><\/p>\n<p><strong>Funktionen<\/strong><br \/>\n<strong>Typ<\/strong><br \/>\n<strong>Passwortrichtlinie<\/strong><br \/>\n<strong>Audit<\/strong><br \/>\n<strong>Schutz des Quellcodes von Verfahren und Funktionen<\/strong><br \/>\n<strong>RLS<\/strong><br \/>\n<strong>Verschl\u00fcsselung<\/strong><\/p>\n<p><strong>Oracle<\/strong><br \/>\nKommerziell<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<\/p>\n<p><strong>MsSql<\/strong><br \/>\nKommerziell<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 \/>\nKommerziell<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\n+<br \/>\nErweiterungen<\/p>\n<p><strong>PostgreSQL<\/strong><br \/>\nKostenlos<br \/>\nErweiterungen<br \/>\nErweiterungen<br \/>\n&#8212;<br \/>\n+<br \/>\nErweiterungen<\/p>\n<p><strong>MongoDb<\/strong><br \/>\nKostenlos<br \/>\n&#8212;<br \/>\n+<br \/>\n&#8212;<br \/>\n&#8212;<br \/>\nNur in MongoDB Enterprise verf\u00fcgbar<\/p>\n<p>\nDie Tabelle ist bei weitem nicht vollst\u00e4ndig, aber die Situation ist folgende: In kommerziellen Produkten werden Sicherheitsfragen schon lange gel\u00f6st, w\u00e4hrend in Open-Source-L\u00f6sungen oft zus\u00e4tzliche Module f\u00fcr die Sicherheit verwendet werden, und oft fehlen viele Funktionen, sodass manchmal Anpassungen erforderlich sind. Beispielsweise gibt es in PostgreSQL viele verschiedene Erweiterungen, die Passwortrichtlinien implementieren (<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>), die jedoch, meiner Meinung nach, keine der Anforderungen des heimischen Unternehmenssegments umfassend abdecken.<\/p>\n<p><strong>Was tun, wenn es nirgendwo das Gew\u00fcnschte gibt?<\/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 diesem Fall k\u00f6nnen Sie auf Drittanbieter-L\u00f6sungen zur\u00fcckgreifen, die mit verschiedenen DBMS arbeiten, wie zum Beispiel \"Krypto DB\" oder \"Garda DB\". Wenn es um L\u00f6sungen aus dem heimischen Sektor geht, haben diese meist ein besseres Verst\u00e4ndnis f\u00fcr die geltenden Standards als im Open Source-Bereich.<\/p>\n<p>Die zweite M\u00f6glichkeit besteht darin, die ben\u00f6tigten Funktionen selbst zu entwickeln und den Datenzugriff sowie die Verschl\u00fcsselung auf Anwendungsebene zu implementieren. Allerdings wird es mit den Standards komplizierter. Insgesamt k\u00f6nnen Sie die Daten nach Bedarf verstecken, sie in der DB ablegen und dann wieder entzippen, genau auf Anwendungsebene. Dabei sollten Sie auch gleich \u00fcberlegen, wie Sie diese Algorithmen in der Anwendung sch\u00fctzen. Unserer Meinung nach sollten solche Ma\u00dfnahmen auf der Ebene des DBMS durchgef\u00fchrt werden, da dies schneller funktionieren wird.<\/p>\n<p>Dieser Vortrag wurde erstmals gehalten auf <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/databases-1\/\">@Databases Meetup<\/a><\/noindex> von Mail.ru Cloud Solutions. Sehen Sie sich an<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>anderer Vortr\u00e4ge an und abonnieren Sie die Veranstaltungshinweise auf Telegram. <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/k8s_mail\">Rund um Kubernetes in der Mail.ru Group<\/a><\/noindex>.<\/p>\n<p><strong>Weitere Lesetipps zu diesem Thema<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/472694\/\">Mehr als Ceph: Blockspeicher der 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\">Wie w\u00e4hlt man die passende Datenbank f\u00fcr ein Projekt aus, um nicht erneut w\u00e4hlen zu m\u00fcssen?<\/a><\/noindex>.<\/li>\n<\/ol>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47Sicherheit und Datenbankmanagementsysteme: Was man bei der Auswahl von Schutzma\u00dfnahmen beachten sollte | ProHoster","description":"Ich hei\u00dfe Denis Rozhkov und bin Leiter der Softwareentwicklung bei Gazinformservice im Jatoba-Produktteam. Gesetzliche und Unternehmensnormen stellen bestimmte Anforderungen an die Sicherheit der Datenspeicherung. Niemand m\u00f6chte, dass Dritte Zugang zu vertraulichen Informationen erhalten. Deshalb sind f\u00fcr jedes Projekt folgende Punkte wichtig: Identifikation und Authentifizierung, Verwaltung des Zugriffs auf Daten, Gew\u00e4hrleistung der Integrit\u00e4t der Informationen in","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/bezopasnost-i-subd-o-chyom-nado-pomnit-podbiraya-sredstva-zashhity","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/81884","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=81884"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/81884\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/81885"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=81884"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=81884"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=81884"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}