{"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 Datenbanken: Was man bei der Auswahl von Schutzma\u00dfnahmen beachten sollte","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h1><img decoding=\"async\" alt=\"Sicherheit und Datenbanken: Was man bei der Auswahl von Schutzma\u00dfnahmen beachten sollte\" src=\"\/wp-content\/uploads\/2020\/05\/ac49253838e36336af127d71394139d8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/h1>\n<p>\nIch hei\u00dfe Denis Roschkov, ich bin Leiter der Softwareentwicklung bei \"Gazinformservice\" in der Produktteam. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.gaz-is.ru\/produkty\/inform-sistemy\/subd-jatoba.html\">Jatoba<\/a><\/noindex>. Die Gesetzgebung und Unternehmensrichtlinien stellen bestimmte Anforderungen an die Sicherheit der Datenspeicherung. Niemand m\u00f6chte, dass Dritte Zugang zu vertraulichen Informationen erhalten, weshalb f\u00fcr jedes Projekt folgende Fragen wichtig sind: Identifikation und Authentifizierung, Zugriffskontrolle auf Daten, Gew\u00e4hrleistung der Datenintegrit\u00e4t im System, Protokollierung von Sicherheitsereignissen. Daher m\u00f6chte ich einige interessante Aspekte zur Sicherheit von Datenbankmanagementsystemen ansprechen. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nDer Artikel wurde basierend auf einem Vortrag vorbereitet <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 Solutions<\/a><\/noindex>. Wenn Sie nicht lesen m\u00f6chten, k\u00f6nnen Sie zuschauen:<\/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 besteht aus drei Teilen:<\/p>\n<ul>\n<li>Wie man Verbindungen sch\u00fctzt.<\/li>\n<li>Was ist eine Aktions\u00fcberwachung und wie man feststellt, was auf der Seite der Datenbank und ihrer Verbindungen passiert.<\/li>\n<li>Wie man Daten in der Datenbank selbst sch\u00fctzt und welche Technologien daf\u00fcr verf\u00fcgbar sind.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Sicherheit und Datenbanken: Was man bei der Auswahl von Schutzma\u00dfnahmen beachten sollte\" src=\"\/wp-content\/uploads\/2020\/05\/fbdca7f4a925b9ceb78de06c6e245b23.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Drei Komponenten der Sicherheit von Datenbankmanagementsystemen: Schutz von Verbindungen, Aktions\u00fcberwachung und Datenschutz.<\/i><\/p>\n<h2>Schutz von Verbindungen<\/h2>\n<p>\nEine Verbindung zur Datenbank kann sowohl direkt als auch indirekt \u00fcber Webanwendungen hergestellt werden. In der Regel interagiert ein Business-Nutzer, also jemand, der mit dem Datenbankmanagementsystem arbeitet, nicht direkt mit ihm.<\/p>\n<p>Bevor wir \u00fcber den Schutz von Verbindungen sprechen, sollten wir wichtige Fragen beantworten, die dar\u00fcber entscheiden, wie Sicherheitsma\u00dfnahmen aufgebaut werden:<\/p>\n<ul>\n<li>ist ein Business-Nutzer gleichbedeutend mit einem Nutzer des Datenbankmanagementsystems;<\/li>\n<li>wird der Zugriff auf die Daten des Datenbankmanagementsystems nur \u00fcber eine API bereitgestellt, die Sie kontrollieren, oder gibt es direkten Zugriff auf die Tabellen;<\/li>\n<li>ist das Datenbankmanagementsystem in einem separaten gesch\u00fctzten Segment untergebracht und wer und wie interagiert damit;<\/li>\n<li>werden Pooling\/Proxy und Zwischenschichten verwendet, die Informationen dar\u00fcber ver\u00e4ndern k\u00f6nnen, wie die Verbindung aufgebaut ist und wer die Datenbank nutzt.<\/li>\n<\/ul>\n<p>\nNun schauen wir uns an, welche Werkzeuge wir zum Schutz der Verbindungen einsetzen k\u00f6nnen:<\/p>\n<ol>\n<li>Verwenden Sie Datenbank-Firewall-L\u00f6sungen. Eine zus\u00e4tzliche Schutzschicht wird mindestens die Transparenz daf\u00fcr erh\u00f6hen, was im Datenbankmanagementsystem passiert, im besten Fall k\u00f6nnen Sie einen zus\u00e4tzlichen Schutz der Daten gew\u00e4hrleisten.<\/li>\n<li>Verwenden Sie Passwortrichtlinien. Ihre Anwendung h\u00e4ngt davon ab, wie Ihre Architektur gestaltet ist. In jedem Fall ist ein einzelnes Passwort in der Konfigurationsdatei der Webanwendung, die mit der DBMS verbunden ist, unzureichend zum Schutz. Es gibt eine Reihe von DBMS-Tools, die es erm\u00f6glichen zu kontrollieren, dass Benutzer und Passwort aktualisiert werden m\u00fcssen.\n<p>Mehr \u00fcber die Funktionen zur Bewertung von Benutzern kann man lesen <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.cloud.oracle.com\/en-us\/iaas\/data-safe\/doc\/user-assessment-reports.html\">hier<\/a><\/noindex>, auch \u00fcber MS SQL Vulnerability Assessment kann man 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 Sitzungskontext mit den ben\u00f6tigten Informationen. Wenn die Sitzung nicht transparent ist, wissen Sie nicht, wer in ihrem Rahmen mit dem DBMS arbeitet; man kann im Rahmen der ausgef\u00fchrten Operation Informationen erg\u00e4nzen, wer, was und warum tut. Diese Informationen sind im Audit sichtbar.<\/li>\n<li>Konfigurieren Sie SSL, wenn Sie keine Netzwerktrennung zwischen dem DBMS und den Endbenutzern haben, es sich nicht in einem separaten VLAN befindet. In solchen F\u00e4llen ist es unbedingt erforderlich, den Kanal zwischen dem Verbraucher und dem DBMS zu sch\u00fctzen. Es gibt Schutzwerkzeuge, auch unter Open Source.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Wie wird sich das auf die Leistung des DBMS auswirken?<\/h3>\n<p>\nLassen Sie uns am Beispiel von PostgreSQL ansehen, wie sich SSL auf die CPU-Belastung, die Erh\u00f6hung der Timing und die Verringerung der TPS auswirkt, ob nicht zu viele Ressourcen verbraucht werden, wenn es aktiviert wird.<\/p>\n<p>Belasten Sie PostgreSQL mit pgbench \u2013 einem einfachen Programm zur Durchf\u00fchrung von Leistungstests. Es f\u00fchrt wiederholt eine Sequenz von Befehlen aus, m\u00f6glicherweise in parallelen Datenbank-Sitzungen, und berechnet dann die durchschnittliche Transaktionsgeschwindigkeit.<\/p>\n<p><strong>Test 1 ohne SSL und mit SSL<\/strong> \u2013 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> \u2013 alle Transaktionen werden in einer 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>Die restlichen Einstellungen<\/strong>:<\/p>\n<pre><code class=\"plaintext\">Skalierungsfaktor: 1\nAbfrage-Modus: einfach\nAnzahl der Clients: 10\nAnzahl der Threads: 1\nAnzahl der Transaktionen pro Client: 5000\nAnzahl der tats\u00e4chlich verarbeiteten 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 der Verbindungsherstellungen<br \/>\n58.168112<br \/>\n53.278062<\/p>\n<p>TPS ohne die Verbindungsherstellungen<br \/>\n64.084546<br \/>\n58.725846<\/p>\n<p>CPU<br \/>\n24%<br \/>\n28%<\/p>\n<p><strong>Alle Transaktionen werden in einer Verbindung ausgef\u00fchrt<\/strong><\/p>\n<p>Durchschnittliche Latenz<br \/>\n6.722 ms<br \/>\n6.342 ms<\/p>\n<p>TPS einschlie\u00dflich der Verbindungsherstellungen<br \/>\n1587.657278<br \/>\n1576.792883<\/p>\n<p>TPS ohne die Verbindungsherstellungen<br \/>\n1588.380574<br \/>\n1577.694766<\/p>\n<p>CPU<br \/>\n17%<br \/>\n21%<\/p>\n<p>\nBei geringen Lasten ist der Einfluss von SSL mit der Messgenauigkeit vergleichbar. Wenn die Menge der \u00fcbertragenen Daten jedoch sehr gro\u00df ist, kann die Situation anders sein. Wenn wir f\u00fcr jede Transaktion eine Verbindung herstellen (was selten vorkommt, normalerweise teilen sich die Benutzer eine Verbindung), haben Sie eine gro\u00dfe Anzahl von Verbindungen\/Trennungen, dann kann der Einfluss etwas h\u00f6her sein. Das hei\u00dft, die Risiken einer Leistungsverringerung k\u00f6nnen vorhanden sein, aber der Unterschied ist nicht so gro\u00df, dass man auf Schutz verzichten sollte.<\/p>\n<p>Beachten Sie \u2013 es gibt einen starken Unterschied, wenn man die Arbeitsmodi vergleicht: ob innerhalb einer Sitzung oder in verschiedenen. Das ist verst\u00e4ndlich: Es werden Ressourcen f\u00fcr die Erstellung jeder Verbindung ben\u00f6tigt.<\/p>\n<p>Wir hatten einen Fall, als wir Zabbix im Trust-Modus verbunden haben, d. h. wir haben md5 nicht \u00fcberpr\u00fcft, es gab keine Notwendigkeit zur Authentifizierung. Sp\u00e4ter bat der Kunde, den Modus der md5-Authentifizierung zu aktivieren. Dies f\u00fchrte zu einer hohen CPU-Last und die Leistung fiel ab. Wir suchten nach Wegen zur Optimierung. Eine m\u00f6gliche L\u00f6sung des Problems ist, ein Netzwerklimit zu implementieren, separate VLANs f\u00fcr die DBMS zu erstellen, Einstellungen hinzuzuf\u00fcgen, um klarzustellen, wer sich von wo verbindet, und die Authentifizierung zu entfernen. Auch die Authentifizierungseinstellungen k\u00f6nnen optimiert werden, um die Kosten bei der Aktivierung der Authentifizierung zu senken, aber insgesamt beeinflussen verschiedene Authentifizierungsmethoden die Leistung und es ist wichtig, diese Faktoren bei der Planung der Rechenleistung der Server (Hardware) f\u00fcr das DBMS zu ber\u00fccksichtigen.<\/p>\n<p>Fazit: In einer Reihe von L\u00f6sungen k\u00f6nnen sogar kleine Nuancen bei der Authentifizierung erhebliche Auswirkungen auf ein Projekt haben und es ist problematisch, wenn dies erst bei der Implementierung in die Produktion klar wird.<\/p>\n<h2>Audit von Aktionen<\/h2>\n<p>\nDas Audit kann nicht nur die DBMS umfassen. Ein Audit bedeutet, Informationen dar\u00fcber zu erhalten, was in verschiedenen Segmenten passiert. Das kann auch eine Datenbank-Firewall und das Betriebssystem sein, auf dem das DBMS l\u00e4uft.<\/p>\n<p>In kommerziellen Enterprise-DBMS ist das Audit gut, bei Open Source jedoch nicht immer. Hier ist was in PostgreSQL verf\u00fcgbar ist:<\/p>\n<ul>\n<li>default log \u2013 integrierte Protokollierung;<\/li>\n<li>Erweiterungen: pgaudit \u2013 wenn Ihnen die Standardprotokollierung nicht ausreicht, k\u00f6nnen Sie spezifische Einstellungen verwenden, die einige Aufgaben l\u00f6sen.<\/li>\n<\/ul>\n<p>\n<b>Zusatz zum Vortrag im Video:<\/b><\/p>\n<p>Die grundlegende Registrierung von Operatoren kann durch ein Standardprotokollierungstool mit log_statement = all sichergestellt werden.<\/p>\n<p>Dies ist f\u00fcr das Monitoring und andere Verwendungszwecke akzeptabel, bietet jedoch nicht das Ma\u00df an Detailgenauigkeit, das normalerweise f\u00fcr Audits erforderlich ist.<\/p>\n<p>Es ist nicht ausreichend, nur eine Liste aller mit der Datenbank durchgef\u00fchrten Operationen zu haben.<\/p>\n<p>Es sollte auch die M\u00f6glichkeit bestehen, spezifische Aussagen zu finden, die f\u00fcr den Auditor von Interesse sind.<\/p>\n<p>Das Standardprotokollierungstool zeigt an, was der Benutzer angefordert hat, w\u00e4hrend sich pgAudit auf die Details konzentriert, was passiert ist, als die Datenbank die Anfrage ausf\u00fchrt.<\/p>\n<p>Ein Auditor k\u00f6nnte beispielsweise sicherstellen wollen, dass eine bestimmte Tabelle in einem dokumentierten Wartungsfenster erstellt wurde.<\/p>\n<p>Das k\u00f6nnte sich f\u00fcr ein einfaches Audit und grep als einfache Aufgabe erweisen, aber was ist, wenn Ihnen etwas wie dieses (absichtlich verworrene) 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 zeigt Ihnen dies:<\/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 es einige Programmierkenntnisse erfordert, um die interessierende Tabelle zu finden, wenn Tabellen dynamisch erstellt werden.<\/p>\n<p>Das ist nicht ideal, da es vorzuziehen w\u00e4re, einfach nach dem Tabellennamen zu suchen.<\/p>\n<p>Hier kommt pgAudit ins Spiel.<\/p>\n<p>F\u00fcr dieselbe Eingabe w\u00fcrde es diese Ausgabe im Protokoll erzeugen:<\/p>\n<p>AUDIT: SESSION,33,1,FUNCTION,DO,,,'DO $$<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>Es wird nicht nur der DO-Block protokolliert, sondern auch der vollst\u00e4ndige Text der CREATE TABLE-Anweisung mit Typ des Operators, Objekttyp und vollst\u00e4ndigem Namen, was die Suche erleichtert.<\/p>\n<p>Bei der Protokollierung von SELECT- und DML-Operatoren kann pgAudit so konfiguriert werden, dass es f\u00fcr jede Beziehung, auf die im Operator verwiesen wird, einen separaten Eintrag protokolliert.<\/p>\n<p>Es sind keine syntaktischen Analysen erforderlich, um alle Operatoren zu finden, die sich auf eine bestimmte Tabelle beziehen (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/pgaudit\/pgaudit\/blob\/master\/README.md\">*<\/a><\/noindex>)\u00bb.<\/p>\n<h3>Wie wird sich das auf die Leistung des DBMS auswirken?<\/h3>\n<p>\nLassen Sie uns Tests mit aktiviertem vollst\u00e4ndigen Audit durchf\u00fchren und sehen, was mit der Performance von PostgreSQL passiert. Aktivieren wir das maximale Loggen der DB f\u00fcr alle Parameter.<\/p>\n<p>Im Konfigurationsfile \u00e4ndern wir fast nichts, wichtig ist, dass wir den debug5-Modus 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 = ein<br \/>\nlog_checkpoints = ein<br \/>\nlog_connections = ein<br \/>\nlog_disconnections = ein<br \/>\nlog_duration = ein<br \/>\nlog_hostname = ein<br \/>\nlog_lock_waits = ein<br \/>\nlog_replication_commands = ein<br \/>\nlog_temp_files = 0<br \/>\nlog_timezone = 'Europe\/Moscow'<\/p>\n<p>\nF\u00fcr die Datenbank PostgreSQL mit den Parametern 1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD f\u00fchren wir drei Lasttests durch, wobei die folgenden Befehle verwendet werden:<\/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>Testergebnisse:<\/strong><\/p>\n<p><strong>Ohne Logging<\/strong><br \/>\n<strong>Mit Logging<\/strong><\/p>\n<p>Gesamtdauer f\u00fcr das Bef\u00fcllen der DB<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\/Sek.<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\/Sek.<br \/>\n136<br \/>\n52<\/p>\n<p>Durchschnittliche Verz\u00f6gerung<br \/>\n550 ms<br \/>\n1432 ms<\/p>\n<p><strong>Zu den Gr\u00f6\u00dfen<\/strong><\/p>\n<p>Gr\u00f6\u00dfe der DB<br \/>\n2251 MB<br \/>\n2262 MB<\/p>\n<p>Gr\u00f6\u00dfe der DB-Logs<br \/>\n0 MB<br \/>\n4587 MB<\/p>\n<p>\nInsgesamt ist das vollst\u00e4ndige Audit nicht sehr vorteilhaft. Die Daten, die aus dem Audit stammen, k\u00f6nnen in ihrer Menge mit den Daten in der Datenbank selbst vergleichbar oder sogar gr\u00f6\u00dfer sein. Ein solches Log-Volumen, das bei der Arbeit mit der Datenbank entsteht, ist ein h\u00e4ufiges Problem in der Produktion.<\/p>\n<p>Betrachten wir andere Parameter:<\/p>\n<ul>\n<li>Die Geschwindigkeit \u00e4ndert sich nicht wesentlich: ohne Logging - 43,74 Sek., mit Logging - 53,23 Sek.<\/li>\n<li>Die Leistung von RAM und CPU wird absacken, da eine Datei mit dem Audit erstellt werden muss. Dies ist auch in der Produktion deutlich zu merken.<\/li>\n<\/ul>\n<p>\nBei einer Erh\u00f6hung der Anzahl der Verbindungen werden die Werte nat\u00fcrlich etwas schlechter.<\/p>\n<p>In Unternehmen mit Audit wird es noch komplizierter:<\/p>\n<ul>\n<li>es gibt viel Daten;<\/li>\n<li>Audit ist nicht nur \u00fcber syslog in SIEM erforderlich, sondern auch in Dateien: falls mit syslog etwas geschieht, 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 Bereich erforderlich, um die I\/O-Last der Festplatten nicht zu beeintr\u00e4chtigen, da dies viel Platz beansprucht;<\/li>\n<li>es kommt vor, dass Mitarbeiter der Informationssicherheit \u00fcberall GOSTs ben\u00f6tigen und sie die GOST-Identifikation fordern.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Zugangsbeschr\u00e4nkung zu Daten<\/h2>\n<p>\nSchauen wir uns die Technologien an, die zum Schutz von Daten und zum Zugang in kommerziellen DBMS und Open Source verwendet werden.<\/p>\n<p>Was im Allgemeinen verwendet werden kann:<\/p>\n<ol>\n<li>Verschl\u00fcsselung und Obfuskation von Prozeduren und Funktionen (Wrapping) \u2013 das sind spezielle Werkzeuge und Utilities, die aus lesbarem Code unlesbaren machen. Allerdings kann dieser dann nicht mehr ge\u00e4ndert oder zur\u00fcckrefaktort werden. Ein solcher Ansatz ist manchmal erforderlich, zumindest auf der Seite des DBMS \u2013 die Logik der Lizenzbeschr\u00e4nkungen oder die Logik der Autorisierung wird genau auf der Ebene der Prozeduren und Funktionen verschl\u00fcsselt.<\/li>\n<li>Datenzugriffssteuerung auf Zeilenebene (RLS) bedeutet, dass unterschiedliche Benutzer eine Tabelle sehen, jedoch unterschiedliche Zeileninhalte darin haben, das hei\u00dft, bestimmten Benutzern d\u00fcrfen bestimmte Zeilen nicht angezeigt werden.<\/li>\n<li>Die Bearbeitung angezeigter Daten (Maskierung) erfolgt, wenn Benutzer in einer Spalte der Tabelle entweder Daten oder nur Platzhalter sehen, das bedeutet, dass f\u00fcr bestimmte Benutzer Informationen verborgen bleiben. Die Technologie bestimmt, welchem Benutzer was angezeigt wird, basierend auf dem Zugriffslevel.<\/li>\n<li>Zugriffsrechteverteilung Security DBA\/Application DBA\/DBA bezieht sich eher auf die Einschr\u00e4nkung des Zugriffs auf das DBMS selbst, das hei\u00dft, Sicherheitspersonal kann von Datenbankadministratoren und Anwendungsadministratoren getrennt werden. In Open-Source-Technologien sind solche L\u00f6sungen selten, in kommerziellen DBMS gibt es sie genug. Sie sind notwendig, wenn viele Benutzer auf die Server zugreifen.<\/li>\n<li>Zugriffsrechte auf Dateiebene des Dateisystems. Man kann Rechten und Zugriffsprivilegien auf Verzeichnisse vergeben, sodass jeder Administrator nur auf die ben\u00f6tigten Daten zugreifen kann.<\/li>\n<li>Mandatierter Zugriff und Speicherbereinigung - diese Technologien werden selten angewendet.<\/li>\n<li>Ende-zu-Ende-Verschl\u00fcsselung des DBMS - das ist clientseitige Verschl\u00fcsselung mit Schl\u00fcsselverwaltung auf der Serverseite.<\/li>\n<li>Verschl\u00fcsselung von Daten. Zum Beispiel spaltenbasierte Verschl\u00fcsselung - wenn Sie einen Mechanismus verwenden, der eine bestimmte Spalte der Datenbank verschl\u00fcsselt.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Wie wirkt sich das auf die Leistung des DBMS aus?<\/h3>\n<p>\nSchauen wir uns das Beispiel der spaltenbasierten Verschl\u00fcsselung in PostgreSQL an. Dort gibt es das Modul pgcrypto, das es erm\u00f6glicht, ausgew\u00e4hlte Felder in verschl\u00fcsselter Form zu speichern. Das ist n\u00fctzlich, wenn nur bestimmte Daten von Wert 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 weiter. Ohne Schl\u00fcssel kann niemand etwas mit Ihren Daten anfangen.<\/p>\n<p><strong>Lassen Sie uns einen Test mit pgcrypto durchf\u00fchren<\/strong>. Erstellen wir eine Tabelle mit verschl\u00fcsselten Daten und mit normalen Daten. Unten die Befehle zur Erstellung der Tabellen, in der ersten Zeile der n\u00fctzliche Befehl - die Erstellung der Extension mit der Registrierung im 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>\nAls n\u00e4chstes versuchen wir, aus jeder Tabelle eine Datenauswahl zu treffen und betrachten die Ausf\u00fchrungszeiten.<\/p>\n<p><strong>Auswahl 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>\nStoppuhr gestartet.<\/p>\n<p>\u00a0\u00a0id  | text1 | text2<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 Zeilen)<\/p>\n<p>Zeit: 1,386 ms<\/p>\n<p><strong>Auswahl 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>\nStoppuhr gestartet.<\/p>\n<p>\u00a0\u00a0id  |  decrypt   |  decrypt<br \/>\n------+----------+------<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 (entschl\u00fcsseln)<\/strong><\/p>\n<p>Auswahl von 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 erhebliche Auswirkungen auf die Leistung. Es ist zu erkennen, dass die Ausf\u00fchrungszeit gestiegen ist, da die Entschl\u00fcsselung verschl\u00fcsselter Daten (und die Entschl\u00fcsselung ist in der Regel auch in Ihre Logik eingebettet) erhebliche Ressourcen erfordert. Das hei\u00dft, die Idee, alle Spalten, die irgendwelche Daten enthalten, zu verschl\u00fcsseln, kann die Leistung erheblich beeintr\u00e4chtigen.<\/p>\n<p>Verschl\u00fcsselung ist jedoch keine Allesk\u00f6nnerl\u00f6sung, die alle Probleme l\u00f6st. Die entschl\u00fcsselten Daten und der Entschl\u00fcsselungsschl\u00fcssel befinden sich w\u00e4hrend des Entschl\u00fcsselungs- und \u00dcbertragungsprozesses auf dem Server. Daher k\u00f6nnen die Schl\u00fcssel von jemandem abgefangen werden, der vollen Zugriff auf den Datenbankserver hat, wie zum Beispiel ein Systemadministrator.<\/p>\n<p>Wenn f\u00fcr eine gesamte Spalte f\u00fcr alle Benutzer ein Schl\u00fcssel verwendet wird (selbst wenn nicht f\u00fcr alle, sondern nur f\u00fcr Kunden eines begrenzten Sets), ist das nicht immer gut und korrekt. Aus diesem Grund begann man, End-to-End-Verschl\u00fcsselung zu implementieren, und es wurden Optionen f\u00fcr die Verschl\u00fcsselung von Daten aus der Sicht von Client und Server in Datenbanksystemen untersucht, sodass die sogenannten Schl\u00fcssel-Vault-Speicher \u2014 separate Produkte, die das Schl\u00fcsselmanagement auf der Seite der Datenbank sicherstellen \u2014 entstanden sind.<\/p>\n<p><img decoding=\"async\" alt=\"Sicherheit und Datenbanken: Was man bei der Auswahl von Schutzma\u00dfnahmen beachten sollte\" 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>Ein Beispiel f\u00fcr eine solche Verschl\u00fcsselung in MongoDB<\/i><\/a><\/noindex><\/p>\n<h2>Sicherheitsmittel 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 Prozeduren 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\u2014<br \/>\n+<br \/>\nErweiterungen<\/p>\n<p><strong>MongoDb<\/strong><br \/>\nKostenlos<br \/>\n\u2014<br \/>\n+<br \/>\n\u2014<br \/>\n\u2014<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 Sicherheitsprobleme seit langem gel\u00f6st, w\u00e4hrend in Open Source in der Regel einige Erweiterungen f\u00fcr die Sicherheit verwendet werden, viele Funktionen fehlen oft, und manchmal muss man etwas nachprogrammieren. Zum Beispiel Passwortrichtlinien \u2014 in PostgreSQL gibt es viele verschiedene Erweiterungen.<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 Passwortrichtlinien umsetzen, jedoch nicht alle Bed\u00fcrfnisse des heimischen Unternehmenssegments abdecken, meiner Meinung nach nicht eine einzige.<\/p>\n<p><strong>Was tun, wenn es das Gew\u00fcnschte nirgendwo 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>Dann k\u00f6nnen Sie Drittanbieter-L\u00f6sungen verwenden, die mit verschiedenen DBMS arbeiten, wie z.B. \u201eKrypto DB\u201c oder \u201eGarda DB\u201c. Wenn es um L\u00f6sungen aus dem heimischen Segment geht, wissen sie in Bezug auf die GOST besser Bescheid als im Open Source.<\/p>\n<p>Die zweite M\u00f6glichkeit besteht darin, selbst das Notwendige zu schreiben, den Zugriff auf Daten und die Verschl\u00fcsselung auf der Anwendungsebene zu implementieren. Allerdings wird es mit der GOST komplizierter. Aber insgesamt k\u00f6nnen Sie die Daten nach Bedarf verbergen, in die Datenbank einf\u00fcgen und dann entsprechend entschl\u00fcsseln, direkt auf der Anwendungsebene. Denken Sie dabei sofort dar\u00fcber nach, wie Sie diese Algorithmen in der Anwendung sch\u00fctzen werden. Nach unserer Ansicht sollte dies auf der DBMS-Ebene erfolgen, weil es so schneller funktioniert.<\/p>\n<p>Dieser Bericht wurde erstmals 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<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\"> das Video <\/a><\/noindex>weitere Vortr\u00e4ge und abonnieren Sie die Ank\u00fcndigungen von Veranstaltungen 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>Was gibt es noch zu lesen<\/strong>:<\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/472694\/\">Mehr als Ceph: Blockspeicher der MCS-Cloud<\/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 man eine Datenbank f\u00fcr ein Projekt ausw\u00e4hlt, um nicht erneut ausw\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 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u0435\u043d\u0438\u0441.\" \/>\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) 5.0.1.1\" \/>\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.\" \/>\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 DBMS: woran man denken sollte, wenn man Schutzmittel ausw\u00e4hlt | ProHoster","description":"Ich hei\u00dfe Denis.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}