Daten sind das wichtigste Kapital eines Unternehmens und eine der wichtigsten Aufgaben eines Unternehmens. Wenn Sie nicht aufpassen, besteht ein hohes Risiko, dass Daten unbeabsichtigt abfließen oder sogar böswillig von Hackern gestohlen werden. Jedes Jahr kommt es in der Branche zu mehreren größeren Vorfällen, beispielsweise wenn ein bekanntes oder unbekanntes Unternehmen gehackt wird (ein Homonym für „拖库“, was bedeutet, dass die gesamte Datenbank von Hackern gestohlen wird). Aus Sicht der Datensicherheit kann auch zwischen externer Netzwerksicherheit und interner Betriebssicherheit unterschieden werden, worauf weiter unten eingegangen wird. Interne Betriebssicherheitsrichtlinie 1. Ob alle DBA-Berechtigungen widerrufen werden sollen Stellen Sie sich vor, der DBA hätte keine Autorität. Wie könnten dann die täglichen Betriebs- und Wartungsarbeiten an der Datenbank sowie die Fehlerbehebung im Notfall durchgeführt werden? Deshalb wird empfohlen, vor der Einrichtung einer ausgereiften Plattform für automatisierten Betrieb und Wartung nicht zu viele Berechtigungen des DBA grob zu widerrufen. Andernfalls kann dies zu einer verringerten Arbeitseffizienz führen und beim DBA sogar das Gefühl des Misstrauens entstehen. 2. Sicherheitsstrategie auf MySQL-Ebene - Bei Geschäftskonten ist eine Remote-Anmeldung nur über das Intranet möglich, eine Remote-Verbindung über das öffentliche Netzwerk ist jedoch nicht möglich.
- Fügen Sie ein Betriebs- und Wartungsplattformkonto hinzu, das eine Remote-Verbindung von einem dedizierten Verwaltungsplattformserver ermöglicht. Natürlich müssen auf dem Server, auf dem die Verwaltungsplattform bereitgestellt wird, Sicherheitsmaßnahmen und erforderliche Sicherheitsprüfungsstrategien implementiert werden.
- Es wird empfohlen, die Datenbank-Audit-Funktion zu aktivieren. Dies erfordert die Verwendung der MySQL Enterprise Edition oder der Percona/MariaDB-Zweigversion. Die MySQL Community Edition unterstützt diese Funktion nicht.
- Aktivieren Sie die Option „Safe-Update“, um zu verhindern, dass die gesamte Tabelle ohne eine WHERE-Bedingung geändert wird.
- Versuchen Sie in Ihrer Anwendung nicht, Daten direkt mit DELETE zu löschen, sondern setzen Sie lediglich ein Flag. Wenn das Löschen wirklich notwendig ist, lassen Sie den DBA zuerst die Daten sichern und sie dann physisch löschen, um zu vermeiden, dass alle Daten versehentlich gelöscht werden.
- Trigger können auch verwendet werden, um einige Zusatzfunktionen auszuführen, beispielsweise um zu verhindern, dass Hacker Daten böswillig manipulieren.
3. Berechtigungsregeln für MySQL-Konten - Für Geschäftskonten werden die Berechtigungen minimiert und DROP- und TRUNCATE-Berechtigungen sind streng verboten.
- Standardmäßig werden Geschäftskonten nur die für normales DML erforderlichen Berechtigungen gewährt, wie etwa Auswählen, Aktualisieren, Einfügen, Löschen und Ausführen. Weitere Berechtigungen werden nicht gewährt.
- Löschen Sie nach der Initialisierung von MySQL nicht mehr benötigte Konten und die anonyme Testdatenbank.
mysql> aus mysql.user löschen, wobei Benutzer!='root' oder Host!='localhost'; Berechtigungen leeren; mysql> Datenbanktest löschen; - Erstellen Sie ein dediziertes Sicherungskonto mit ausschließlich ausgewählten Berechtigungen und erlauben Sie die Anmeldung nur vom lokalen Computer aus.
- Legen Sie die Kennwortsicherheitsrichtlinie für das MySQL-Konto fest, einschließlich Länge und Komplexität.
4. Informationen zur Datensicherung Denken Sie daran: Eine vollständige Datensicherung ist der letzte Ausweg, wenn das System abstürzt und nicht mehr repariert werden kann. Sicherungsdaten können auch zur Datenprüfung oder zum Abrufen von Datenquellen aus Datenbanken verwendet werden. Im Allgemeinen lautet die Sicherungsstrategie wie folgt: Führen Sie einmal täglich eine vollständige Sicherung durch und führen Sie regelmäßig zusätzliche Sicherungen des Binlogs durch, oder verwenden Sie direkt den Binlog-Servermechanismus, um das Binlog auf andere Remote-Hosts zu übertragen. Mit vollständigem Backup + Binlog können Sie bei Bedarf einen beliebigen Zeitpunkt wiederherstellen. Besonderer Hinweis: Wenn Sie das Streaming-Backup von xtrabackup verwenden, sollten Sie eine verschlüsselte Übertragung in Betracht ziehen, um zu verhindern, dass die Sicherungsdaten böswillig abgefangen werden. Externe Netzwerksicherheitsstrategie Tatsächlich sind die Sicherheit des Betriebssystems und die Anwendungssicherheit wichtiger als die Sicherheitsrichtlinie der Datenbank selbst. Ebenso ist die Systemsicherheit der Anwendung und ihres Servers sehr wichtig. Viele Datensicherheitsvorfälle werden dadurch verursacht, dass der Anwendungsserver über Code-Schwachstellen angegriffen wird, dann die Datenbank geprüft und schließlich die Datenbank erfolgreich gelöscht wird. 1. Sicherheitsempfehlungen für Betriebssysteme - Das Linux, auf dem MySQL läuft, darf nur im internen Netzwerk laufen und darf nicht direkt dem öffentlichen Netzwerk ausgesetzt sein. Wenn eine Verbindung vom öffentlichen Netzwerk aus erforderlich ist, sollte die Portweiterleitung über einen Jump-Server erfolgen. Und wie oben erwähnt, muss die Berechtigungsstufe des Datenbankkontos streng begrenzt sein.
- Alle Systemkonten wurden auf eine SSH-Schlüssel-basierte Authentifizierung umgestellt, eine Remote-Anmeldung per Passwort ist nicht zulässig und es gibt Anforderungen an den Algorithmus und die Länge des SSH-Schlüssels, um eine relative Sicherheit zu gewährleisten. Auf diese Weise besteht keine Gefahr eines Passwortverlusts, es sei denn, der private Schlüssel einer Person wird gestohlen.
- Darüber hinaus können Sie sogar die PAM-Authentifizierung für alle Server aktivieren, um eine einheitliche Kontoverwaltung zu erreichen, die bequemer und sicherer ist.
- Fahren Sie nicht benötigte Systemdienste herunter und führen Sie nur die erforderlichen Prozesse aus, wie etwa mysqld, sshd, Netzwerk, crond, syslogd und andere Dienste, und fahren Sie alle anderen herunter.
- Die Remote-Anmeldung durch das Root-Konto ist verboten.
- Es ist verboten, das Root-Konto zum Starten allgemeiner Geschäftsdienstprozesse wie mysqld zu verwenden.
- Es wird empfohlen, die Portnummer des SSHD-Dienstes auf einen Wert über 10000 zu ändern.
- Versuchen Sie, die Firewall-Richtlinie für den MySQL-Dienstport zu aktivieren, ohne die Leistung zu beeinträchtigen (bei hoher Parallelität kann die Verwendung von iptables die Leistung beeinträchtigen. Es wird empfohlen, stattdessen die IP-Routenrichtlinie zu verwenden).
- Für GRUB muss ein Kennwort festgelegt werden und die Standardkennwörter für Konten wie Idrac/imm/ilo auf dem physischen Server müssen ebenfalls geändert werden.
- Jeder Mitarbeiter, der sich beim System anmelden muss, verwendet anstelle eines öffentlichen Kontos ein eigenes privates Konto.
- Die Betriebsüberwachung auf Systemebene sollte aktiviert sein, um alle SSH-Protokolle aufzuzeichnen. Alternativ sollten Sie Bash verwenden, um die entsprechenden Betriebsbefehle aufzuzeichnen und an den Remote-Server zu senden. Führen Sie anschließend entsprechende Sicherheitsüberprüfungen durch, um unsichere Vorgänge rechtzeitig zu erkennen.
- Stellen Sie die Verzeichnisberechtigungen für MySQL und andere Datenbankdienste richtig ein. Setzen Sie nicht alle Berechtigungen auf 755. Im Allgemeinen ist 750 ausreichend.
- Sie können die Bereitstellung eines Bastion-Hosts in Betracht ziehen. Alle Verbindungen zu Remote-Servern müssen zunächst über den Bastion-Host laufen, und alle Betriebsaufzeichnungen und Prüffunktionen können auf dem Bastion-Host implementiert werden.
- Die Skriptverschlüsselung trägt nicht wirklich zur Verbesserung der Sicherheit bei. Erfahrene Hacker können sich, sofern sie über die Berechtigung zur Anmeldung beim System verfügen, beispielsweise durch die Ausweitung von Berechtigungen, problemlos Rootzugriff verschaffen.
2. Empfehlungen zur Anwendungssicherheit - Deaktivieren Sie die Autoindex-Konfiguration des Webservers.
- Aus institutioneller Sicht ist es Mitarbeitern untersagt, Code auf externes GitHub hochzuladen, da ein hohes Risiko für interne IP-, Konto- und Passwortlecks besteht. Wenn Code hochgeladen werden muss, muss er zunächst einer Sicherheitsüberprüfung unterzogen werden.
- Versuchen Sie, keine Open-Source-CMS, Blogs, Foren und andere Systeme im öffentlichen Internet zu verwenden, es sei denn, Sie haben ein Code-Sicherheitsaudit durchgeführt oder im Voraus eine Sicherheitsstrategie vorbereitet. Solche Systeme stehen normalerweise im Fokus der Hackerforschung und können leicht gehackt werden.
- Auf der Webserverebene können Sie einige Sicherheitsmodule verwenden, beispielsweise das WAF-Modul von nginx.
- Auf der App-Serverebene können Code-Sicherheitsprüfungen und Sicherheitsscans durchgeführt werden, um Sicherheitslücken wie XSS-Angriffe, CSRF-Angriffe, SQL-Injections, Datei-Upload-Angriffe und das Umgehen der Cookie-Erkennung zu verhindern.
- Wenn in der Anwendung Kontokennwörter verwendet werden, z. B. bei der Konfiguration der JDBC-Verbindungszeichenfolge, versuchen Sie, das Kennwort im Klartext verschlüsselt zu speichern und es dann vor der Verwendung mit dem internen privaten Entschlüsselungstool zu entschlüsseln. Alternativ können Sie die Anwendung zunächst über ein Zwischenkonto eine Verbindung zur Proxy-Ebene herstellen lassen und dann über den Proxy eine Verbindung zu MySQL herstellen. So vermeiden Sie, dass die Anwendungsebene eine direkte Verbindung zu MySQL herstellt.
Abschließend möchten wir sagen, dass nicht nur die beste Sicherheitsstrategie, sondern auch das Sicherheitsbewusstsein der internen Mitarbeiter wichtig ist. In der Vergangenheit gab es einen Fall, bei dem der PC eines Mitarbeiters versehentlich infiziert wurde, was zum Diebstahl von Intranet-Daten führte. Sicherheit ist keine Kleinigkeit und jeder sollte sie im Hinterkopf behalten. In puncto Datensicherheit können Sie auf etwas Komfort verzichten, aber nicht zu viel, da der Gewinn sonst möglicherweise den Verlust nicht aufwiegt. Oben finden Sie einige Vorschläge zur Gewährleistung der MySQL-Datensicherheit. Weitere Informationen zu MySQL-Sicherheitsvorschlägen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:- Es ist Jahresende, ist Ihr MySQL-Passwort sicher?
- So fahren Sie MySQL sicher herunter
- Schnelle und sichere Methode zum Umbenennen einer MySQL-Datenbank (3 Arten)
- So beenden Sie den MySQL-Prozess ordnungsgemäß und sicher
- So fahren Sie eine MySQL-Instanz sicher herunter
- Details zur MySQL-Sicherheitsverwaltung
|