Sicherheits-Checkliste / Einrichtung von Joomla!

From Joomla! Documentation

< Security Checklist
This page is a translated version of the page Security Checklist/Joomla! Setup and the translation is 100% complete.

Other languages:
Deutsch • ‎English


Konfiguration von Joomla!

Offizielle Versionen von Joomla! installieren

Um zu vermeiden, dass die Website beschädigt wird, sollten die Foren nach Berichten über inkompatible Erweiterungen durchsucht werden, bevor auf eine neue Version von Joomla aktualisiert wird.
Aktualisierungen auf die aktuellste stabile Version von Joomla! sollten möglichst bald nach deren Veröffentlichung erfolgen.
Joomla! sollte nur von offiziellen Seiten wie downloads.joomla.org heruntergeladen werden. Außerdem ist es wichtig, den MD5-Hash zu überprüfen.]].
Webseiten-Diagnosetools, z. B. Firefox Developer Tools, Microsoft Edge (Chromium) Developer Tools, Chrome Developer Tools, können bei der korrekten Installation der Dateien hilfreich sein.

Standardmäßigen Admin-Benutzernamen ändern

Der Benutzername des Standard-Admin-Benutzers sollte geändert werden. Dieser einfache Schritt erhöht die Sicherheit dieses wichtigen Kontos effektiv um 50 %, indem eine der beiden Variablen geändert wird, die Angreifer für den Zugriff benötigen. Das Passwort ist die andere Variable und sollte daher früh und häufig geändert werden. (FAQ)

Verzeichnisse und Dateien schützen

Alle konfigurierbaren Pfade zu beschreibbaren oder hochladbaren Verzeichnissen (Dokument-Repositories, Bildergalerien, Caches) sollten außerhalb von public_html liegen. Erweiterungen von Drittanbietern wie Dokumenten-Download-Systeme oder Galerien sollten auf editierbare Pfade zu beschreibbaren Verzeichnissen überprüft werden.
Joomla 1.5Joomla 2.5Joomla 3.xJoomla 4.x In der globalen Back-End-Konfiguration sollte der Protokollpfad (log) geändert werden. Einige Erweiterungen verwenden die eingebaute JLog-Klasse. Diese schreibt standardmäßig Protokoll-Daten an yoursite/logs in Joomla 3.5 und niedriger oder yoursite/administrator/logs in neuen Joomla 3.6+ Installationen. Der log-Pfad sollte so geändert werden, dass ein Gelegenheitsbrowser ihn nicht finden kann (dabei nicht /tmp/ auswählen), oder mit http-Authentifizierung gesperrt werden. Da wir es mit Open-Source-Software zu tun haben, können Angreifer den Code von Erweiterungen von Drittanbietern lesen und möglicherweise Log-Dateinamen erraten.
Joomla 1.5Joomla 2.5Joomla 3.xJoomla 4.x In der globalen Back-End-Konfiguration sollte der Pfad des temporären Ordners geändert werden..
Wenn die Log- und Temp-Pfade geändert werden und die PHP-Konfigurationsanweisung open_basedir gesetzt ist, muss sichergestellt werden, dass die neuen Pfade in den Anwendungsbereich von open_basedir fallen.
Es gibt derzeit keine einfache Möglichkeit, die/image- und /media-Verzeichnisse von Joomla! zu verschieben. Dies liegt daran, dass Tausende von Erweiterungen von Drittanbietern darauf bauen, diese wichtigen Verzeichnisse am aktuellen Standort vorzufinden. Ein guter Ansatz ist hier die richtige Einstellung von open_basedir für alle Benutzerkonten auf dem Server. Bei Unsicherheiten sollte der Hosting-Provider kontaktiert werden.

Berechtigungen für Dateien und Verzeichnisse anpassen

Diese Option ist in Joomla! nicht mehr vorhanden. Sobald die Webseite konfiguriert und stabil ist, können wichtige Verzeichnisse und Dateien vor Schreibzugriff geschützt werden, indem die Verzeichnisberechtigungen auf 755 und die Dateiberechtigungen auf 644 geändert werden. Es gibt eine Funktion in Site --> Globale Konfiguration --> Server, um alle Ordner- und Dateiberechtigungen auf einmal zu setzen. Anschließend müssen Erweiterungen von Drittanbietern getestet und der Code jeder Erweiterung, die Probleme mit solchen Einstellungen hat, überprüft werden. Anmerkung: Abhängig von den Berechtigungen des Servers müssen möglicherweise vorübergehend offenere Berechtigungen verwendet werden, wenn weitere Erweiterungen mit dem Joomla!-Installationsprogramm installiert werden. Diese Option erscheint nicht mehr in Joomla und wird hier nur aus historischen Gründen erwähnt.

Nicht benötigte Dateien entfernen

Nicht benötigte Design-Templates sollten entfernt werden. Sicherheitslogiken sollten niemals in Template-Dateien enthalten sein.
Joomla 1.5 Der XML-RPC-Server sollte deaktiviert werden, wenn er nicht benötigt wird.
Nach der Installation sollte die Webseite bereinigt werden. Während des Installationsprozesses muss das Installationsverzeichnis und sein gesamter Inhalt gelöscht werden. Es sollte nicht einfach umbenannt werden! Wenn Dateien als komprimierte Archive (z. B. xxxx.zip) auf die Webseite hochgeladen werden, sollte die komprimierte Datei danach entfernt werden. Das Verzeichnis /temp/ sollte ebenfalls überprüft werden, da dort nach einem fehlgeschlagenen Installationsversuch temporäre Dateien verbleiben können.
Im Allgemeinen sollten nicht benötigte Dateien (ob komprimiert oder nicht) nicht auf einem öffentlichen Server verbleiben. Jede unbenutzte (und vielleicht längst vergessene) Datei stellt eine potentielle Sicherheitslücke dar.

Register-Global-Emulation ausschalten

Joomla 1.0 Es wird dringend empfohlen, die Emulation von Register Globals auszuschalten. Obwohl diese Einstellung etwas sicherer als das PHP-seitige register_globals ist, ist es stets besser, wenn solche Einstellungen insgesamt vermieden werden (und auch alle Anwendungen, die sie benötigen). Bei Joomla-Versionen vor 1.0.13 ist diese Einstellung in der Datei globals.php zu finden. Ab Version 1.0.13 kann sie im Backend unter Globale Einstellungen deaktiviert werden.
Joomla 1.5Joomla 2.5Joomla 3.x und höher verwendet Register Globals nicht und verfügt über intelligenten Code, um diese Einstellung zu umgehen, selbst wenn sie auf PHP-Ebene aktiviert ist. Obwohl dies Joomla selbst sicherer macht, ist jeder Server mit eingeschalteten Register Globals potentiell anfällig. Jeder gemeinsam genutzte Server mit eingeschalteten Register Globals ist ein potenziell leichtes Ziel für Angreifer. Jeder Hosting-Provider, der darauf besteht, dass Register Globals eingeschaltet werden sollten, ist entweder ignorant oder inkompetent!
Weitere Informationen zu register_globals sind hier zu finden: Sicherheits-Checkliste: PHP: register_globals.

Installation von Joomla!-Erweiterungen

Vor der Installation ein Backup durchführen

Vor der Installation von Erweiterungen sollten die Dateien und die Datenbank der Webseite stets gesichert werden. Dies folgt einem sehr grundlegenden Prinzip:
Es sollte jederzeit möglich sein, die Webseite in einen früheren funktionierenden Zustand zurückzuversetzen.
Daher ist es klug, ein einfaches und schnelles Backup-Skript einzurichten, um diese Aufgabe zu automatisieren. Wenn ein einfacher Prozess nicht schon im Voraus eingerichtet wird, besteht die Versuchung, ein schnelles Upgrade ohne vorherige Sicherung durchzuführen. Diese sehr verständliche Tendenz ist jedoch eine der Hauptursachen für vorzeitigen Haarausfall, plötzliche Karrierewechsel und Burnout ...

Erweiterungen auf Schwachstellen überprüfen

Die meisten Sicherheitslücken werden durch Erweiterungen von Drittanbietern verursacht. Vor der Installation von Erweiterungen sollte die offizielle Liste der anfälligen Erweiterungen von Drittanbietern zu Rate gezogen werden. Unter vel.joomla.org gibt es eine ganze Website, die sich mit anfälligen Erweiterungen befasst. Wir empfehlen dringend, diese im Auge zu behalten!

Von vertrauenswürdigen Seiten herunterladen

Eine "vertrauenswürdige Webseite" ist eine, der der Benutzer vertraut.

Achtung! Die Qualität des Codes überprüfen

Erweiterungen von Drittanbietern gibt es in allen Qualitäts- und Altersgruppen. Obwohl es Joomla!-Codierungsstandards gibt, sind Entwickler von Drittanbietern nicht verpflichtet, diese zu befolgen. Erweiterungen, die im Erweiterungs-Verzeichnis der offiziellen Joomla!-Website aufgeführt sind, werden nicht auf ihre Konformität überprüft. Wenn jedoch verifizierte Schwachstellen gemeldet werden, werden sie aus dem Verzeichnis entfernt, bis sie behoben sind.

Testen, Testen, Testen ...

Alle Erweiterungen sollten zunächst in einer Entwicklungs-Umgebung getestet werden, bevor sie auf einer Produktions-Seite installiert und erneut getestet werden. Wichtig ist auch, die Protokolle auf Laufzeitfehler und Warnungen zu überprüfen.

Junk-Dateien entfernen

Es wird dringend empfohlen, alle unbenutzten Erweiterungen zu entfernen und zu überprüfen, ob verwandte Ordner und Dateien tatsächlich durch Deinstallationsskripte entfernt wurden. Es sollte beachtet werden, dass viele Erweiterungen von Drittanbietern während der Deinstallation Dateien auf der Webseite und Datenbanktabellen komplett mit Daten hinterlassen. Abhängig vom Standpunkt ist das entweder eine Funktion oder ein Fehler. Alle Dateien, die auf dem Server verbleiben, bleiben über direkte URLs erreichbar, wie z. B. yoursite.com/modules/bad_module.

Verschlüsselten Code vermeiden

Joomla ist (und war trotz Desinformationskampagnen schon immer) ein GNU GPL-Projekt. Das bedeutet, dass alle Erweiterungen von Joomla ebenfalls frei (wie in Freiheit) und offen (wie in lesbarem Code) sein müssen. Verschlüsselter Code mag sicher sein, aber der Benutzer kann dies nicht selbst überprüfen und muss daher den Entwicklern vertrauen. Die Verwendung von verschlüsseltem Code anderer liegt im Bereich der proprietären Software, wo Benutzer auf Sicherheits-Patches vom Entwickler warten muss, in der Hoffnung, dass Angreifer die Webseite nicht finden, bevor ein Fix veröffentlicht wird.
Es steht dem Benutzer oft nicht frei, verschlüsselten Code zu ändern, zu verbessern oder weiterzugeben. Diese Einschränkungen machen verschlüsselten Code weniger wertvoll für die Gemeinschaft als Ganzes und stehen im Widerspruch zum allgemeinen Konzept des Joomla-Projekts, das von der offenen Freigabe unter allen Teilnehmern abhängt.
Natürlich ist Code, der nicht für andere freigegeben wird, von den Anforderungen an die GNU-GPL-Veröffentlichung ausgenommen. Somit kann Joomla-bezogenen Code auf eigenen Servern verschlüsselt werden, vorausgesetzt, er wird nicht an andere weitergegeben.

Zusätzliche Tipps und Tricks zum Absicherung von Joomla!-Webseiten

Gemeinsam genutzte Server möglichst vermeiden

Um maximale Sicherheit zu gewährleisten, sollten gemeinsam genutzte Server vermieden werden, da im Normalfall nicht alle anderen Benutzer oder deren Code-Qualität bekannt und vertrauenswürdig sind.

SSL für den Server aktivieren

Server mit korrekt konfiguriertem SSL sind derzeit die einzige Möglichkeit, vertrauliche Transaktionen und eine sichere Benutzerauthentifizierung sicher zu verarbeiten. SSL funktioniert durch Verschlüsselung der gesamten HTTP-Kommunikation zwischen dem Web-Server und den Web-Clients. Selbst wenn eine Übertragung abgefangen wird, kann sie daher nicht gelesen werden. Weitere Informationen sind im Artikel Aktivierung von HTTPS für die Webseite zu finden.
Die Konfiguration von SSL-Optionen wird von Joomla! 1.5 und höher unterstützt.

.htaccess auf Apache-Server verwenden

Für eine zusätzliche Ebene des Passwortschutzes kann die Datei .htaccess verwendet werden, um kritische Verzeichnisse mit einem Passwort zu schützen. Dies ist normalerweise ausreichend, um den typischen Skript-Kiddie zu blockieren; es muss aber klar sein, dass ein .htaccess-Passwortschutz allein keine hochsichere Methode ist. Für maximalen Schutz MUSS er mit einem SSL-Server kombiniert werden. Ein SSL-Server ist erforderlich, um Webseiten vor raffinierteren Angriffen wie Packet Sniffing zu schützen.

Zu Joomla! 3,x wechseln

Joomla 3.0 Das bedeutendste Upgrade in der Geschichte von Joomla! umfasst leistungsstarke Sicherheits- und Leistungsverbesserungen.

Sicherheitsankündigungen von Joomla! zu Webseite hinzufügen

Das Joomla! Sicherheitsteam unterstützt einen RSS-Feed, der die neuesten Joomla-Sicherheitsinformationen liefert. Die folgende FAQ erklärt, wie dieser Feed zu einer Webseite hinzugefügt werden kann.