Einleitung

Gründe und Ursachen für Seitenkompromitierungen

OpenSource-Software wie Joomla haben viele Vorteile, aber auch einige wenige Nachteile. Einer dieser Nachteile ist, dass die offenen Quellscripte auch durch Hacker analysiert werden können, um so Schwachstellen im Code zu erkennen, die evtl. wenig erfahrene Programmierer im Code zugelassen haben. Diese Schwachstellen können dann gezielt durch Hacker genutzt werden, um sich unerlaubt Zugriff auf Ihr Projekt zu verschaffen. Ziel dieser Kompromitierung Ihrer Webseite ist dann häufig, die Modifikation von Projektdateien oder das Einspeisen eigener Dateien. Manchmal passiert das sehr versteckt, manchmal sehr offensichtlich in dem Ihre Seite quasi übernommen wird und mit neuen Inhalten erscheint. Das ist sehr kritisch z.B. aus folgenden Gründen:

  • Diese neuen Fremdinhalte können Rechtsverstöße darstellen, z.B. in dem rechtsradikale Propaganda veröffentlicht wird oder der Download von Daten angeboten wird z.B. pädophiler Natur o.a. Als Eigentümer dieser Seite haften Sie dann umfänglich für diese Veröffentlichungen.
  • Nicht zu selten werden auch Malware oder Viren über kompromitierte Seite in den Umlauf gebracht. Damit können Sie den Rechner der Besucher Ihrer Seiten schädigen und auch Ihrem Image oder das Ihres Webangebotes.
  • Letzt genannt - ohne damit vollständig zu sein, erkennen auch Suchmaschinen wie Google kompromitierte Seiten und sperren diese für die Suche. Das ist bitter für Sie, weil es eine evtl. schon gute langwierig aufgebaute Platzierung in den Trefferlisten (Pagerank) zunichte macht. Es ist aufwendig dafür zu sorgen, dass die Suchmaschinen diese Indizierung wieder rausnehmen.

 

 



Geeignete Maßnahmen zum Schutz des Webprojektes

Um die Kompromitierung eines Projektes zu vermeiden, gibt es nun diverse Möglichkeiten, wobei deren kombinierter Einsatz die Sicherheit sehr erhöht. Genannt seinen diese:

  • Korrekte Einrichtung des Webprojektes, speziell der User-, Gruppen, Datei- und Verzeichnisrechte
  • zusätzlicher Webverzeichnisschutz (soweit dies Ihre Arbeit mit dem Projekt nicht behindert, z.B. bei Updates und Installationen)
  • Regelmäßiges und zeitnahes Einspielen aller Sicherheitspatches die von der Joomla-Community bereitgestellt werden.
  • Ausschließliche Nutzung von Joomla-Erweiterungen, die vertrauenswürdig sind (Diese Entscheidung sollte Ihr Administrator treffen und verantworten).

Trotz aller o.g. Maßnahmen kann es aus den Gründen der Verwendung von OpenSource-Software (wie oben beschrieben) trotzdem zu erfolgreichen Hacks kommen. Diese sollten dann schnell erkannt werden, um umgehend entsprechend reagieren zu können. Eine Möglichkeit dazu ist das Monitoring der Projekt-Dateien und Verzeichnisse durch den Administrator oder Seitenbetreiber. Um diese regelmäßige Arbeit zu erleichtern kann man unterstützende Analyse-Scripte nutzen, so wie ich diese für meine Website-Kunden anbiete.

Die nachfolgenden Ausführungen beschreiben den Umgang mit meinen Analyse-Script.

 

Scriptgestütztes Monitoring zum Erkennen evtl. Kompromitierungen

Aufgabe des Analysescriptes

Das Script liefert regelmäßig, z.B. jede Nacht eine Liste aller Dateien und Verzeichnisse die in einem definierten zurückliegenden Zeitraum, z.B. innerhalb des Vortages modifiziert wurden. Diese Liste wird sortiert und bereinigt von Einträgen die als "normale/übliche Modifikationen" eingestuft werden, um diese lesbarer zu machen. Die Liste wird per Mail zugestellt.
In einer weiteren Ausbaustufen können als besonders kritisch erkannte Modifikationen z.B. per SMS gemeldet werden, um so noch schneller reagieren zu können.

Ein kurze Beschreibung dazu:

  1. Das Script läuft per Cronjob gestartet autom. jede Nacht 00:30 und liefert in Folge eine Berichts-Mail.
  2. Hierbei wird der Webbereich auf das Datum von Dateien und Verzeichnisse geprüft und alle die aufgelistet mit Änderungsdatum jünger als 1 Tag ...
  3. ... mit Ausnahme aller der Datei die in einer Ausschlussliste stehen. In der Ausschlussliste stehen Dateien/Verzeichnisse, die mit Sicherheit jeden Tage modifiziert werden wie z.B. temporäre, Log-, Lock-, Error- oder Cache-Dateien. Das wird gemacht, damit nicht eine extrem lange Liste jeden Tag angezeigt wird.

 

Wie wird nun damit gearbeitet:

Es gibt keine Möglichkeit Angriffe vollautomatisiert zu erkennen, das geht nur durch Sichtung, wobei dieses Script aber wg. seiner Filterung und Aufbereitung extrem hilft.
Wenn die Ausschlussliste gut/sinnvoll gepflegt ist (was durch mich erfolgt), dann sollte die Liste i.d.R. leer oder sehr kurz sein, solange man nicht selbst am Vortag Wartungsarbeiten gemacht hat.
Wichtig ist allerdings, dass man wirklich jeden Tag schaut weil:

  1. Damit man keine Fremdmodifikationen verpasst, denn am nächsten Tag sind diese ja schon wieder älter als 1 Tag und werden dann auch nicht mehr gelistet.
  2. Damit man im Fall einer Fremdmodifikation sofort reagieren kann.

Natürlich gehört etwas Erfahrung dazu einzuschätzen, welche gelisteten Einträge verdächtig und welche normal sind.

Hierbei gelten etwa folgende Regeln:

  • bei gut gepflegter Ausschlussliste, sollte die Liste tgl. leer sein
  • wenn man selbst am Vortag im Projekt gearbeitet hat, dann sieht man dies mitunter auch an der Liste und lernt daran die dafür typischen Dateien kennen.
  • Bei eingespielten Updates explodiert die Liste typischerweise. Dann muss man mal etwas genauer hinschauen, weil in diesen Mosterlisten sich auch nicht zum Update gehörende Modifikationen verstecken könnten. Da die Updates i.d.R. durch mich durchgeführt werden und ich diese Meldungsmail in Kopie bekomme, schaue ich hier jeweils mit drauf.
  • Durch Hacker modifizierte Dateien sind i.d.R. vom Typ .php oder .html oder .htaccess, aber häufig auch Grafikdateien wie .gif oder .jpg. Hierbei gilt: Man sollte hochgeladenen Grafikdateien selbstsprechend benennen und Hyroglyphen-Namen vermeiden, denn das ist eher typisch für Fremddateien. Für erstgenannte Dateierweiterungen gilt: Diese sollten sehr selten und begründet auftauchen. Bearbeitet werden diese normalerweise nur durch mich, ansonsten sind diese hochverdächtig. Im Root-Verzeichnis sollten überhaupt keine Dateien modifiziert worden sein.