Wie macht man seine Joomla! Installation zu Fort Knox - Joomla Security

Tipps und Tricks für Front- und Backend. Jedes Jahr steigt die Zahl der gehackten Websites. In so einem Fall entsteht eine Menge Arbeit und das Vertrauen von Kunden, Lesern, Freunden geht verloren. Dabei muss man nur einige Maßnahmen regelmäßig durchführen, damit man von so einem Ärger verschont bleibt.
Die meisten Angriffe werden auf leichte, einfache Ziele durchgeführt. Dabei geht es zu wie bei der Geschichte mit dem hungrigen Löwen. Man muss nicht der schnellste sein, um zu entkommen, nur schneller als der langsamste der Gruppe ...

Hacker können auch wirtschaftlich rechnen. Daher werden nur Sites gehackt, die einfach zu kapern sind. Für eingehende kostenintensive Maßnahmen sind die meisten Websites zu kleine Fische, so das ein erfolgreicher Hack, mehr Zeit und Geld verschlingen würde, als diese gehackte Seite jemals einbringen kann. Da wenden sich die Kriminellen dann eher einfacheren Zielen zu, oder Projekten deren möglicher Gewinn so astronomisch ist, das es fast jedes Risiko wert ist (Regierungen, Forschungsstätten, Versandhäuser, etc.).

Wenn sie auch nur einige dieser unten genannten Maßnahmen durchführen, senken Sie damit Ihr Risiko von so einem Hack betroffen zu sein erheblich.
Falls das ganze zu technisch und kompliziert ist, können Sie sich selbstverständlich auch gerne an uns richten.

Was bedeutet Sicherheit?

  • Dass mit dem System zuverlässig gearbeitet werden kann.
  • Schutz vor unbefugter Manipulation (Hacker, Spammer, etc.)

Welche Bereiche muss man bei einer Joomla! Installation absichern?

  • Server (Apache, nginx, PHP, Datenbank, OS)
  • Joomla! Core
  • Joomla! Komponenten (Components, Plug-ins, Module)
  • Frontend (was der Besucher sieht)
  • Backend (Management der Website)

Server absichern

Es sollten immer aktuelle, stabile Versionen des jeweiligen PHP Zweiges verwendet werden. Manche PHP-Zweige (php 5.3) lassen sich auch nicht mehr mit aktuellen Joomla! Versionen verwenden.

Das gleiche gilt für den Webserver (Apache / ngix) und der verwendeten Datenbank. Updates schließen Sicherheitslücken und steigern oft die Leistungsfähigkeit.

 Joomla Security Checklist:
  • Webserver aktuell halten (Apache, nginx)
  • PHP Versionen in den aktuellen Versionen aktuell halten
  • Datenbanken und Treiber (MySQL, Maria DB) aktuell halten.
  • Regelmäßig, getestete Backups machen

Joomla! Core absichern

Das CMS Joomla wird fortlaufend weiter entwickelt. Um diese Verbesserungen zu nutzen u können, muss man natürlich die erschienenen Updates einspielen. Diese erhöhen die Produktivität, die Sicherheit des Systems.

Vor jedem Update muss ein Backup gemacht werden, welches auch getestet werden sollte. Ein ungetestetes Backup ist kein Backup („Schrödingers Backup“). Ob sich der Aufwand finanziell / zeitlich lohnt, sollte im Vorfeld abgewägt werden. Als Kompromiss ist es angeraten, ab und zu stichprobenartig testen, ob man mit dem Backup das System wieder herstellen könnte.

 Link Tipp:

Tragt Euch beim Joomla! Security Team ein.
http://developer.joomla.org/security-centre.html

Joomla Security Checklist:
  • Joomla! Updates zeitnahe einspielen
  • Rechtzeitig auf neue Version von Joomla! migrieren (updaten), bevor die verwendete Version EOL (End of Life / es keinen Softwareaktualisierung mehr gibt) ist.

Joomla! Zusatz-Komponenten Updaten

Veraltete Komponenten sind oft schuld, wenn mal ein System gehackt wird. Falls eine Komponente, eine gravierende Sicherheitslücke enthält, kann unter Umständen hierüber das gesamte System gekapert werden.
Beispiele aus der Geschichte: Download Komponente, Editoren, Foto-Galerien etc. Daher müssen Komponenten genau so auf dem Laufenden gehalten werden, wie das Kern-System. Vor dem einspielen und dem Update von Komponenten, sollte man ein Backup erstellen.
Das gleiche kann man mit einem Auto vergleichen. Auch wenn der Wagen von außen gut aussieht, sollte man ab und an die Bremsbeläge erneuern.

 Link Tipp:
 Vorsicht / Warnung:
  • Nur Komponenten von den Original Herstellern installieren, wer Warez-Seiten nutzt „bettelt“ darum gehackt zu werden.
  • Vor der Installation oder Update von Komponenten, Plug-ins, Modulen Backup erstellen

Hilfsmittel zum Absichern von Joomla!

  • Starke Passworte!
  • Passwort Manager (1Password)
  • Akeebe Backup
  • Akeeba Admin Tools
  • 2Faktor Autorisation (Yubi Key, Google Authenticator) Link

Starke Passworte!

Als Faustregel gilt, wenn Sie sich ein Passwort leicht merken können, ist es unsicher!

Mindestanforderungen an ein Passwort:

  • Mindestens 12 Zeichen lang sein
  • Bestehend aus Groß-, Kleinbuchstaben, Nummern und Sonderzeichen (ü!§$_ , wenn zugelassen)
  • Das Passwort darf in keinem Wörterbuch vorkommen (egal welche Sprache) oder in der Literatur verwendet worden sein.
    Daher ist auch „Ph’nglui mglw’nafh Cthulhu R’lyeh wgah’nagl fhtagn.“ kein sicheres Passwort.
  • Das Passwort sollte nie Bestandteile Ihres Namens, Ihrer Familie, Hobbys, Haustieres enthalten.
    Schlecht: FMüller72, HassoPrenzlauerAllee43
  • Das Passwort wollte keinen „Reihen“ aufweisen.
    Schlecht: 123abcde, 123asdfg (Nebeneinanderliegende Tasten auf der Tastatur)
  • Jede Passwortkombination sollte nur einmal verwendet werden.
    Es werden auch mal Dienste kompromittiert und es ist einfacher ein Passwort an einer Stelle zu ändern, als an 250 Stellen das gleiche Passwort.
 Link Tipp:
  • http://wiki.selfhtml.org/wiki/Grundlagen/Sicherheit/sichere_Passwortwahl
  • https://www.bsi-fuer-buerger.de/BSIFB/DE/MeinPC/Passwoerter/passwoerter_node.html

Passwort Manager (1Password)

Wenn man in der IT arbeitet hat man es mit sehr vielen Passworten zu tun, die man sich nicht alle merken kann. Das geht leicht in die über 1000 verschiedene Passwort-Kombinationen.

Diese kann man von einem Passwortmanager verwalten lassen. Das erleichtert einem das Leben enorm und hat den Vorteil, dass man ohne Mehraufwand 20 bis 32 stellige Passwörter verwenden kann. Ein Passwort auszutauschen ist einfach und man kann für jede Gelegenheit ein eigenes willkürliches, starkes Passwort nutzten.

Absicherung Frontend

Wenn es keinen Community Website ist, kann man auch gleich die Nuter-Registierung im Frontend verbieten. So kann sich niemand in das System „einschleichen“ und dann ggf. später höhere Rechte verschaffen.

Merke: Wenn die Front-End Registrierung nicht abgeschaltet ist, kann man sich trotzdem mit einer speziell präparierten URL anmelden.

 Joomla Klickpfad:

Benutzer > Optionen Tab: Komponenten > Benutzerregistrierung: Nein

Absicherung Backend

Das Backend sollte immer mit einem einfachen .htaccess Passwortschutz abgesichert werden. Dies kann man meist bequem über die Web-Administration des Hosters erledigen (siehe ansonsten auch weiter unten Admin-Tools). Dies verhindert, das sich Skript-Kiddies versuchen können im Backend anzumelden. Eine falsche Passwort Eingabe kann Serverseitig mit einer .htaccess Datei viel schneller abgearbeitet werden. In Joomla enthält eine Passwortabfrage zwangsläufig eine zusätzliche Datenbank-Abfrage.
Mit extrem vielen Passwortabfragen pro Sekunde auf das Joomla! Backend, kann man ggf. den Server lahm legen (Denial of Service Attacke).

Meta-Tag Generator

Wenn der Angreifer weiß um welches System (CMS) es sich handelt, kann er systematisch nach bekannten Schwachstellen suchen. Wenn dies nicht bekannt hat ein Hacker es wesentlich schwerer und die Chance steigt, das er vorher bemerkt wird.

In vielen Webseiten gibt es einen Meta-Tag (Generator) der dafür genutzt wird um Statistiken zu erheben, auf welchem CMS die Webseiten im Netz basieren. Diesen zu deaktivieren macht also aus Sicherheitsgesichtspunkten Sinn.

Die Ausgabe des CMS sollte unterbunden werden.

Joomla! > kann im Template unterbunden werden:

$this->setMetaData(›generator‹,‹‹); // in der Index.php Datei des Templates

 Joomla Klickpfad (Admin Tools):

Akeeba Admin Tools > WAF (Web application Firewall) > Visual Fingerprinting Protection > Set Generator

Viele Templates bringen diese Funktion schon von Haus aus mit.

Löschen von nicht benötigten „auskunftsfreudigen“ Dateien

Sogenannte „Fluff Files“ geben Auskunft über das verwendete System und dessen Version. Da man diese Dateien auch direkt vom Browser aufrufen kann, macht man es potenziellen Angreifern schwerer Informationen über die Website zu sammeln.

Beispiele hierfür sind:

/robots.txt.dist
/web.config.txt
/joomla.xml
/LICENSE.txt
/README.txt
/htaccess.txt
/LICENSES.php
/configuration.php-dist
/CHANGELOG.php
/COPYRIGHT.php
/CREDITS.php

 Vorsicht / Warnung:

Löschen Sie nur Dateien aus dem CMS, wenn Sie wissen was sie tun! Wenn Sie nicht in Joomla und seiner internen Funktionen vertraut sind, zerschießen Sie wahrscheinlich Ihr System!

Aktivieren der 2 Faktor Authentification

Eine nicht verschlüsselte Kommunikation kann im Internet leicht „mitgeschnitten“ werden. So das man über dieses Belauschen auch Nutzername und Passwort desjenigen ermitteln kann, der sich (InternetCafe, öffentliches nicht gesichertes WLAN) im Backend anmeldet. Nicht jeder leistet sich eine SSL-Verschlüsselung, so das ohne SSL die Verbindung nie als sicher angesehn werden kann.
Hier kommt die 2 Faktor Autorisierung ins Spiel. Hier wird zusätzlich zu Name und Passwort auch ein drittes Element benötigt, dass in der „Hand“ des Nutzers ist. Dieser physikalische Schlüssel kann ein Yubi-Key (https://www.yubico.com/products/yubikey-hardware/) sein, oder das Mobiltelefon, auf dem der Google-Authenticator (https://support.google.com/accounts/answer/1066447?hl=de) installiert ist.

Wir bei deweso haben die besseren Erfahrungen mit dem Yubi-Key gemacht, es sind aber beide Systeme erheblich sicherer, als nur auf „Name & Passwort“ zu vertrauen.

 Joomla Klickpfad:
  1. Erweiterungen > Plugins: Zwei-Faktor-Authentifizierung - YubiKey aktivieren
  2. Benutzer > Verwalten (Benutzer auswählen) > letzter Tab „Zwei-Faktor-Authorisierung“ auswählen und den Anweisungen folgen.

Tipp:

  • Druckt Euch die Einmal-Passworte aus und bewahrt diese im Safe auf.
  • Ggf. kann man sie auch in dem Feld „Notizen“ bei 1Password speichern.
  • Achtet darauf, verwendete „Ersatz-Passwörter“ von Eurer Liste zu streichen.

Absicherung über Akeeba Admin Tools

Diese Komponente erleichtert es enorm die Joomla! Website abzusichern.

 Link Tipp:

https://www.akeebabackup.com/products/admin-tools.html

Backend .htaccess

Man kann bequem einen .htaccess Passwortschutz für das Backend aus den Admin Tools erstellen.

allgemeinene .htacces Maker

Es gibt einen .htaccess Maker mit dem man gängige Angriffe unterbinden kann. Hier muss man aber wissen, was freigegeben werden muss, damit Joomla! Auch weiterhin funktioniert (z.B. das verwendete Template freigeben).

Web Applikation Firewall (WAF)

Hier kann man Regeln für die Zugriffe auf die Website erstellen. Die Konfigurationsmöglichkeiten sind sehr umfangreich und gehen von der IP-Sperre von Ländern, bis hin zu dem zeitweisen Bannen von IPs die von einem Angreifer genutzt wurde.
Beispiel: IP xxx.xxx.xxx.xxx hat sich 3 mal mit dem falschen Passwort in einer Stunde anzumelden versucht, dann wird er für 24h gesperrt. Wenn die selbe IP dann 3 mal zeitweise gesperrt wurde, wird diese dann permanent gesperrt.

Man kann den Zugriff der Seite für bekannte aktiver Spammer sperren indem es Schnittstellen zu diesen Portalen gibt.

 Security Tipp:

Probieren Sie immer nur eine Veränderung zur Zeit. Es ist sehr unangenehm, wenn man sich selber aus der eignen Website ausgesperrt hat und keine Ahnung hat, welche Einstellung nun dafür verantwortlich war.

Backups erstellen

Diese sollten über jede serverseitige Sicherung erstellt werden können. Es sollte serverseitig mindestens ein automatisches Backup der Website erfolgen.

Als zusätzliche Alternative haben sich Akeeba-Backup als Standardlösung für Backups von Joomla Webseiten etabliert. Akeeba ist einfach zu bedienen und verlässlich. Beim ersten Starten lässt man von Akeeba einen Test durchlaufen, bei dem dann die optimalen Einstellungen für den jeweiligen Server ermittelt und abgespeichert werden. Das Backup umfasst den „Web-Ordner“ (htdocs), in dem die Joomla Dateien liegen, sowie die dazugehörige Datenbank.
Die Pro-Version kann einiges mehr und sollte von kommerziell genutzten Angeboten genutzt werden, da enorme Arbeitserleichterungen geboten werden.

  • Automatisches Backup vor jedem Joomla Update
  • Automatsches Backup vor jedem Update oder Installation einer Komponente, Plug-In, Moduls
  • Anlegen von Sicherungen als Cronjob (auch als WebCron)
  • Sicherungen in der Cloud (z.B. Amazon S3, Dropbox, etc.)
  • Es können zusätzliche Datenbanken mit gesichert werden
  • Man kann für das Backup nicht benötigte Ordner ausschließen
 Investieren Sie jetzt in Ihre Sicherheit:

Der Entwickler von Akeeba Nicholas K. Dionysopoulos hat uns für diesen Artikel einen Gutscheincode generiert, mit dem man 20% auf eine Akeeba-Subscription sparen kann. Coupon Code: FD155PPFJG (gültig bis zum 31. Dezember 2015)

https://www.akeebabackup.com/subscribe/levels.html
Wir raten Joomla Nutzern zu „Essentials“ und Agenturen zu „Joomladeluxe“


Diese Regeln immer zu beachten und aus Gewohnheit umzusetzen braucht jahrelange Übung. Alternativ können wir uns um Ihre Webseiten vom Hosting, Wartung bis hin zu Sicherheitsaudits kümmern.



So erreichen Sie uns:

deweso.de - Wir bringen Lösungen

  +49 40 - 59450 981
  info@deweso.de

 deweso.de
Inh. Frank Delventhal
Hermann-Balk-Str. 111a
22147 Hamburg



Zertifizierter Joomla Administrator

Suche