Joomla Sicherheit
In den letzten Monaten ist die aktuelle Version von Joomla nicht durch besondere Sicherheitsvorkehrungen hervorgestochen. In diesem Tutorial zeigen wir Ihnen, wie sie ihre Webpräsenz trotz alledem sicher aufbauen können:
Absicherung auf Dateisystemebene
- Im Idealfall sollte Joomla selbst mit den Schreibrechten des Webservers laufen, während ein normaler unpriviligierter Systembenutzer Eigentümer der Joomla-Skripte ist
- Ist dies nicht möglich (Einschränkung durch Webhoster), dann sollten Sie die Rechte aller Dateien und Ordner auf mindestens 644 setzen. Was bedeutet diese Zahl?
- Im *Unix-Umfeld werden Dateisystemrechte folgendermaßen definiert:
- 4 (Punkte) erhält das Leserecht
- 2 (Punkte) erhält das Schreibrecht
- 1 (Punkt) erhält das Ausführrecht
- Diese Punkte werden zusammen addiert. Die höchste "Punktzahl" ist somit die 7, die Niedrigste die 0
- Die erste der drei Zahlen (644) steht für den Eigentümer der Dateien/Verzeichnisse, die Zweite für die Gruppe und die dritte Zahl für alle Anderen
- Konkret bedeutet dies nun, dass Alle das Recht zum Lesen besitzen. Der Eigentümer hat darüber hinaus noch das Recht Dateien zu schreiben.
- Im *Unix-Umfeld werden Dateisystemrechte folgendermaßen definiert:
Absicherung auf Datenbankebene
- Leider ist es ohne ein Patching von Joomla nicht möglich dem Datenbankbenutzer die Schreibrechte zu nehmen und nur mit Leserechten arbeiten zu lassen. Dies wäre darüber hinaus auch wenig praktikabel und nur auf Homepages anwendbar, die keine ändernden Inhalte vorzuweisen haben. Trotzdem sollten Sie (je nach Möglichkeit) die Rechte auf ihrer Datenbank einschränken
Absicherung auf HTTP-Ebene
- Um das /administrator-Verzeichnis absichern zu können, empfehlen wir eine .htaccess-Datei, die für eine Benutzername - Passwort - Abfrage sorgt. Diese erscheint vor der eigentlichen Benutzername - Passwort - Abfrage von Joomla. Erstellen können Sie eine solche Datei hier. Kopieren Sie die Datei einfach mit einem FTP-Programm in Ihr /administrator-Verzeichnis.
- Dieser Schutz verhindert ein Eingreifen in Ihre Joomla-Instanz selbst dann, wenn es einem Angreifer gelungen ist über Drittkomponenten einen neuen Benutzer hinzu zu fügen.
Joomla Tools Suite
- Eine sehr gute Software zur automatischen Überprüfung des gesamten Webserver ist die Joomla Tools Suite. Diese stellt eine Ratgeber Funktion zur Verfügung. Sie sollten trotzdem darauf achten, dass Sie im Assessment Rating auf 100% kommen. Sie erhalten die Komponenten hier. Beachten Sie, dass Sie für die Installation Joomla im Legacy-Modus ausführen müssen. Dazu aktivieren Sie das Legacy-Plugin von Joomla. Nach der Installation und dem Test mit JTS können Sie sowohl die Suite deinstallieren, als auch das Legacy-Plugin wieder deaktivieren.
PHP-Sicherheit
- Erstellen Sie eine Datei namens "phpinfo.php" und fügen Sie folgenden Content ein: phpinfo();
- Dies laden Sie direkt in Ihr Root-Verzeichnis und rufen Sie in einem Browser auf --> http://www.meinedomain.de/phpinfo.php
- Kontrollieren Sie nun die Ausgabe des Skripts. Achten Sie darauf, dass register_globals ausgeschaltet ist und magic_quotes aktiviert ist.
- Alternativ kann dies auch im Backend kontrolliert werden unter dem Punkt Hilfe-->Systeminfo
- Sollte dies nicht der Fall sein, dann erstellen Sie in Ihrem Root-Verzeichnis eine .htaccess-Datei mit folgenden zwei Zeilen:
- php_flag register_globals off
- php_flag magic_quotes_gpc on
- Generell gilt allerdings: Bennen Sie die mitgelieferte htaccess.txt-Datei in .htaccess um und erweitern Sie sie um die entsprechenden Zeilen. Dies hat den Vorteil, dass Sie auch das "Umschreiben" mittels mod_rewrite in der Joomla-Config aktivieren können.
Security by Obscurity
- Verschleiern Sie die aktuelle Version von Joomla bzw. die Verwendung von Joomla allgemein. Dies gibt einem Angreifer weniger Informationen über eventuelle Sicherheitslücken.
- Ändern Sie das favicon Ihrer URL
- Ändern Sie den Standardbenutzername "admin" auf einen anderen Namen Ihrer Wahl
- Sichern Sie die configuration.php ab. Dazu erstellen Sie ein Verzeichnis auf Ihrem Webserver. Kopiern Sie dort die configuration.php rein und nennen Sie sie um in .htconf.php. Das ".ht" vor dem Namen verhindert bei normaler Webserver-Konfiguration die Anzeige der Datei. Danach erstellen Sie im Root-Verzeichnis eine Datei configuration.php und fügen folgende Zeile ein: <?php include("[Verzeichnisname]/.htconf.php"); ?>. Dies führt dazu, dass die umbenannte configuration-Datei in die configuration-Datei im Root eingefügt wird. Ändern Sie als letztes die Rechte der Datei noch auf 640.
- Zudem können Sie beispielsweise mithilfe des SEO Patches auch noch den Meta-Tag "generator" entfernen. Dadurch lässt sich dem Quelltext und den Seiteninformationen, die der Browser ausgibt nicht mehr entnehmen, dass es sich um eine Joomla Seite handelt. Alternativ kann man den Generator-Text direkt ändern. Dazu begibt man sich in die Datei 'libraries/joomla/document/document.php'. In der Zeile 85 ändert man nun den Inhalt des Generators. Es gilt dabei zu beachten, dass diese Datei bei einem Update wieder überschrieben werden könnte.
- Eine weitere Methode ist die Verschleierung des Backends. Dazu laden Sie sich das Plugin JSecure herunter. Mit diesem Plugin ist es möglich, die Backend URL um einen beliebigen Parameter zu erweitern. Somit kommt man nicht mehr über die URL http://www.meinedomain.de/administrator ins Backend, sondern man fügt noch einen Parameter an: http://www.meinedomain.de/administrator/?parameter
- Um keine Standard-Fehlermeldung mehr von Joomla zu erhalten, wenn man eine URL eingegeben hat, die nicht existiert, kopiert man einfach folgende Datei einfach in den Template-Ordner. Danach wird automatisch auf die Sucher weiter geleitetet.
Erweiterungen und Updates
- Installieren Sie immer aktuellen Updates und achten Sie bei der Installation von Erweiterungen auf mögliche Sicherheitslücken. Im Normalfall gilt: Lieber auf eine Erweiterung verzichten, als eine mögliche Schwachstelle zu installieren. Besuchen Sie in regelmäßigen Abständen folgende Homepages und kontrollieren Sie, ob Ihre Erweiterungen aufgeführt sind. Ist dies der Fall, ist sofortiger Handlungsbedarf gefordert
- Eine gute Anlaufstelle, ob neue Versionen/Updates für Joomla zur Verfügung stehen ist ihre Joomla-Installation selbst. Direkt nach dem Login ins Backend erhalten Sie auf der rechten Seite den Punkt "Update nötig?", der anzeigt, ob eine Aktualisierung verfügbar ist. Ergänzend können Sie die Komponenten "Joomla Magic Updater" installieren, die ebenfalls einen Hinweis auf Aktualisierungen gibt.
Beachten Sie all diese Tipps, dann sollte einer sicheren Joomla-Konfiguration nichts mehr im Wege stehen. Allerdings sollte der Fairness halber auch gesagt werden, dass es keine 100%ige Sicherheit gibt...


Kommentare
Auch wenn an manchen Stellen etwas schnellen Schrittes vorbeigegangen wird, so bin ich dankbar dass jemand auch die "Joomla-Verschleierung" als wichtigen Punkt aufnimmt. Ich bin zwar ein Freund von open-source Lösungen und ebenso der Ansicht dass man diese durch einen entsprechenden Verweis honorieren sollte, aber aus der Perspektive der IT-Sicherheit sollte man wirklich so wenig wie möglich von seinem System preisgeben. Diesen trade-off muss jeder für sein Projekt selbst abwägen. In jedem Fall vielen dank für die Übersicht.