„Diese Webseite kann Ihren Computer beschädigen.“ Webseiten-Infektionen erkennen und abwehren

Inhalt

Einleitung

Massenhafte Infektionen von Webseiten sind eines der größten Probleme der modernen IT-Sicherheit. Das Ausmaß des Problems zeigt sich beispielsweise in der Anzahl der Anfragen an unseren technischen Support, die Warnungen vor schädlichen Webseiten betreffen. Webseiten-Inhaber beschweren sich immer wieder, dass unsere Produkte fälschlicherweise den Zugriff auf ihre Portale blockieren – sie gehen dabei von einem falschen Alarm aus, da sie keine schädlichen Inhalte bereitstellen. Leider liegen sie damit in den meisten Fällen falsch und es werden tatsächlich schädliche Skripte innerhalb ihrer Webseiten gefunden, die von Angreifern in den Originalcode (PHP, JS oder HTML) eingeschleust wurden. Diese Skripte leiten die Besucher üblicherweise auf schädliche URLs um, von wo aus Schadcode heruntergeladen und daraufhin auf dem Computer ausgeführt wird. In den meisten Fällen verläuft die Ausführung der Malware für den Nutzer vollkommen unbemerkt – die Webseite verhält sich anscheinend völlig normal. Der Schadcode nutzt Sicherheitslücken in der auf dem Computer installierten Software aus (wie etwa Java, Flash, PDF-Reader, Browser oder Plug-Ins) und installiert sich selbst auf dem angegriffenen Rechner.  Diese Methode nennt sich „Drive-by Download“ und wurde bereits ausführlich auf viruslist.de beschrieben.

In der vorliegenden Analyse geht es in erster Linie um Hintergrundinformationen, mit Hilfe derer Administratoren Malware auf ihren Webseiten schneller aufspüren und entfernen können.

  • Was geht vor sich? Symptome einer Infektion.
  • Worauf sollte man achten? Beispiele für Schadcode.
  • Was ist passiert? Angriffsvektoren und -Techniken.
  • Was wird beabsichtigt? Die Ziele der Cyberkriminellen.
  • Wie kann man Webseiten-Infektionen abwehren? Entfernungsmethoden.
  • Wie kann man Webseiten-Infektionen vorbeugen? Grundlagen der Webseiten-Sicherheit.


Symptome einer Infektion

Woran erkennt man, dass die eigene Webseite infiziert wurde? Die besten Symptome sind die offensichtlichsten:

  • Anwender beschweren sich darüber, dass die Webseite vom Browser und/oder der Sicherheitssoftware blockiert wurde.
  • Die Webseite wurde von Google auf die schwarze Liste gesetzt oder einer anderen Datenbank mit schädlichen URLs hinzugefügt.
  • Es gibt signifikante Veränderungen im Traffic und/oder einen Einbruch in den Suchmaschinen-Platzierungen.
  • Die Webseite funktioniert nicht ordnungsgemäß, zeigt Fehler- und Warnmeldungen an.
  • Nach dem Besuch der Webseite verhalten sich die Computer merkwürdig.

Häufig bleiben Infektionen für lange Zeit unbemerkt, insbesondere wenn technisch komplexe Malware im Spiel ist. Solche Schadprogramme sind normalerweise stark obfuskiert, um sowohl die Webseiten-Administratoren als auch die Sicherheitsprogramme in die Irre zu führen. Zudem werden die Domain-Namen, auf die umgeleitet wird, ständig geändert und so die Blacklisting-Methode umgangen. Bemerken Sie keine der oben aufgeführten Symptome, so ist die Wahrscheinlichkeit hoch, dass Ihr Server sauber ist, aber bleiben Sie bitte wachsam gegenüber jeglicher auffälliger Aktivität.

Das verlässlichste Anzeichen für jede einzelne Infektion ist das Vorhandensein von schädlichem oder verdächtigem Code in einer oder mehreren Dateien auf dem Server, hauptsächlich in HTML-, PHP- oder JS-Dateien, doch seit Neuestem auch in ASP/ASPX. Es ist nicht gerade einfach, diesen Code zu finden und es erfordert zumindest grundlegende Kenntnisse im Programmieren und in der Webseiten-Entwicklung. Um den Lesern eine Vorstellung davon zu vermitteln, wie Schadcode aussehen kann, folgen nun einige Beispiele für die gebräuchlichsten Web-Einschleusungen.

Beispiel 1: Einfache Umleitung

Die älteste und am wenigsten komplizierte Methode, die Cyberkriminelle verwenden, ist das Anhängen eines einfachen HTML-IFRAME an den Code der HTML-Dateien auf dem Server. Die Adresse, die im Frame zum Laden der schädlichen Webseite verwendet wird, ist als SRC-Attribut spezifiziert, und das auf „hidden” eingestellte VISIBILITY-Attribut ist dafür verantwortlich, dass der Frame für den Webseiten-Besucher unsichtbar ist.

Abb. 1: Schädlicher IFRAME innerhalb des HTML-Codes der Webseite

Eine andere Technik zum Ausführen von schädlichen Skripten im Browser ist die Einschleusung eines Links als src-Attribut im Tag script oder im Tag img:

Abb. 2: Beispiele für schädliche Links

In letzter Zeit gab es vermehrt Fälle mit dynamisch generiertem Schadcode, der von einem schädlichen JS- oder PHP-Skript in HTML-Dateien eingeschleust wurde. In solchen Fällen ist dieser Code nur in der Quellcode-Ansicht des Browsers sichtbar, jedoch nicht in physischen Dateien auf dem Server. Cyberkriminelle können zudem zusätzliche Bedingungen definieren, wann der Code generiert werden soll: Zum Beispiel nur, wenn der User über bestimmte Suchmaschinen auf die Webseite gelangt ist oder wenn er die Webseite mit einem bestimmten Browser geöffnet hat.

Um sowohl die Webseiten-Besitzer als auch die Sicherheitssoftware zu täuschen und die Analyse des Schadcodes zu erschweren, verwenden die Online-Kriminellen ein breites Spektrum an unterschiedlichen Techniken, um ihren Code zu tarnen.

Beispiel 2: „404 Not Found“

In diesem Beispiel wird der Schadcode in die allseits bekannte HTTP-Fehlermeldung 404 (Objekt nicht gefunden) eingeschleust sowie zusätzlich ein Link auf irgendein nicht existierendes Element in die Dateien index.html und index.php eingebaut. Damit erscheint diese Fehlermeldung jedes Mal dann, wenn ein Nutzer die infizierte Webseite besucht. Diese Methode kann zu einiger Verwirrung führen: Die für die Webseite verantwortliche Person wird darüber informiert, dass irgendeine AV-Software die Webseite als infiziert eingestuft hat. Nach oberflächlichen Untersuchungen stellt sich heraus, dass der Schadcode in einem Objekt gefunden wurde, das offensichtlich gar nicht existiert. Nun ist es verlockend, (fälschlicherweise) einfach davon auszugehen, dass es sich nur um einen falschen Alarm gehandelt hat.

Abb. 3: Trojan.JS.Iframe.zs – schädliches Skript in der Vorlage zur Fehlermeldung 404

In diesem speziellen Fall wurde der Schadcode obfuskiert. Nach der Demaskierung wird deutlich, dass der Zweck dieses Skripts darin besteht, einen IFRAME-Tag einzuschleusen, der dazu benutzt wird, den Browser auf eine schädliche URL umzuleiten.         

 Abb. 4: Trojan.JS.Iframe.zs – der Schadcode im Klartext

Beispiel 3: Profiling-Infektoren

Ähnlicher Code kann dynamisch (das heißt in Abhängigkeit von bestimmten Umständen) generiert und an alle auf einem Server abgelegten HTML-Dateien angehängt werden, wenn man ein schädliches PHP-Skript verwendet, das auf denselben Server hochgeladen wird. Das Skript aus dem folgenden Beispiel überprüft den UserAgent-Tag, der vom Browser sowie von Such-Bots gesendet wird, und fügt den schädlichen Code nicht an, wenn die Webseite von Bots sowie von Opera-, Chrome- oder Safari-Nutzern besucht wird. Dabei werden Browser, die von dem in dieser Attacke verwendeten Exploit nicht angreifbar sind, überhaupt nicht umgeleitet. Auch die irreführenden Kommentare, die glauben machen wollen, dass dieses Skript irgendetwas mit Bot-Statistiken zu tun hat, sind absolut nichts wert.

Abb. 5: Trojan.PHP.Iframer.e – PHP-Infektor

Diese Methode kann auch in die andere Richtung eingesetzt werden. Cyberkriminelle können Links in illegale, dubiose oder schädliche Inhalte einschleusen (wie Spam, Spyware, Piraten-Software oder Phishing-Sites), und zwar nur dann, wenn ein Such-Bot die Webseite besucht. Der Sinn einer solchen Attacke ist die so genannte Schwarze Suchmaschinenoptimierung (SEO), ein Mechanismus, um die Ressourcen von Online-Verbrechern möglichst weit oben in den Ergebnislisten von Suchmaschinen zu platzieren. Derartige Malware greift normalerweise sehr populäre, bekannte Portale mit einem hohen Page-Rank an und sie ist recht schwierig zu entdecken, da der Schadcode niemals an den Durchschnittsuser „geliefert“ wird. Eine solche Attacke hat zur Folge, dass die schädlichen Webseiten im Suchmaschinen-Ranking sehr hoch positioniert sind und ganz oben auf der Ergebnisliste erscheinen.

Beispiel 4: Raffinierte Tarnung

PHP-Infektoren können auch andere Gestalt annehmen. Hier und hier zwei Beispiele, die vor einigen Monaten entdeckt und in unserem Blog beschrieben wurden.

Abb. 6: Trojan-Downloader.PHP.JScript.a – PHP-Infektor

Abb. 7: Trojan.PHP.Injecter.c – PHP-Infektor

Das erste dieser Beispiele (Trojan-Downloader.PHP.JScript.a) schleust ein schädliches Javascript in den Code von HTML-Dateien ein, und zwar direkt nach einem der definierten Schluss-Tags (script, div, table, form, p oder body). Der Inhalt des eingeschleusten Skripts ist nicht verständlich geschrieben – er wird in Form von Zahlen innerhalb von zwei Matrizen $tr and $tc bereitgestellt. Die Entschlüsselung erfolgt „on-the-fly“. Der so erzeugte Code ist ebenfalls obfuskiert, aber auf eine andere Art:

Abb. 8: Trojan.JS.Redirector.px – in eine HTML-Datei eingeschleustes schädliches Javascript

Auf den ersten Blick könnte man meinen, dass dieses Skript etwas mit den auf der Webseite dargestellten Farben zu tun hat. Leider ist dieser Eindruck jedoch komplett falsch – das Skript konvertiert die von ihm in der div_colors-Matrix gespeicherten Werte in ASCII-Zeichen und erstellt dann die schädliche URL, die daraufhin der HTML-Datei beigefügt wird, unter Verwendung der Funktionen document.write() oder document.createElement().

Das zweite PHP-Skript (Trojan.PHP.Injecter.c) ist noch raffinierter: Die schädliche URL ist in „unsichtbaren“ Zeichen geschrieben, nämlich Leerzeichen und Tabulatoren. Entspricht das Leerzeichen einer „0“ und der Tabulator einer „1“, so erhalten wir einen binären Code. Jedes 8 Bit große Stück dieses Codes ist eine dezimale Repräsentation eines ASCII-Zeichens.

Beispiel 5: Infizierte Javascripts

Cyberkriminelle platzieren die oben beschriebenen Infektoren in PHP-Dateien, die sie durch Ausnutzen von Sicherheitslücken in der CMS-Software oder mittels gestohlener FTP-Zugangsdaten auf den Server laden. Eine andere Methode besteht in der Infektion legitimer JS-Dateien, die bereits auf dem Server vorhanden sind. Von der großen Auswahl an Beispielen hierfür sind mindestens drei unterschiedliche Fälle erwähnenswert, die in den letzten Monaten weit verbreitet waren.

Im ersten Beispiel wird der folgende Code dynamisch in die HTML-Dateien eingeschleust:

Abb. 9: Trojan.JS.Iframe.zs – schädliches IFRAME, das dynamisch in HTML eingeschleust wird

Dieses Skript ist dafür zuständig, dass der Code an eine oder mehrere JS-Dateien auf dem Server angehängt wird:

Abb. 10: Trojan.JS.Iframe.zs – Skript, das ein IFRAME einschleust – nach der Entschlüsselung

Im nächsten Fall wurde die hexadezimale Codierung der ASCII-Zeichen für die Obfuskation ausgenutzt. Alle JS-Dateien auf dem Server sind mit ähnlichem Code infiziert:

Abb. 11: Trojan-Downloader.JS.Agent.gnm – schädlicher Code, eingeschleust in JS-Dateien

In einem anderen populären Fall finden sich neben den standardmäßigen Obfuskationsmethoden auch Kommentare in lateinischer Sprache, vermutlich eingefügt, um das Skript legitim erscheinen zu lassen und das Vertrauen des Administrators zu gewinnen, obwohl es sich dabei nur um willkürliche Auszüge aus dem bekannten Blindtext „Lorem ipsum“ handelt :).

Abb. 12: Trojan-Downloader.JS.Twetti.t – schädlicher Code, eingefügt in JS-Dateien

Schließlich haben wir noch eine Web-Malware-Epidemie, bei der willkürliche Domain-Namen verwendet werden. Der Code, den Sie auf Ihrer Webseite finden, wenn sie mit dieser Malware infiziert ist, sieht folgendermaßen aus:

Abb. 13: Obfuskierte Version des Codes, der auf eine willkürlich erstellte Domain umleitet

Beispiel 6: „gootkit“ und Obfuskation der gesamten Datei

Obfuskierter Schadcode ist innerhalb einer sauberen Datei leicht zu erkennen. Daher kamen Cyberkriminelle kürzlich auf die Idee, den gesamten Inhalt der Datei zu verschleiern, so dass sowohl das eingeschleuste Skript als auch der legitime Code unlesbar werden. Auf diese Weise wird es unmöglich, guten von gefährlichem Code zu unterscheiden, und folglich gibt es auch keine Möglichkeit, die Datei zu desinfizieren, ohne sie vorher zu entschlüsseln.

>Abb. 14: Von der „gootkit“-Malware obfuskierte Datei

Die erste Obfuskationsebene zu entschlüsseln stellt kein besonders großes Problem dar, da zu diesem Zweck lediglich die Funktion eval() in die Funktion alert() – oder im Falle einer Konsole in die Funktion print() – umgeändert und ausgeführt werden muss. Die zweite Ebene ist dagegen schon ein wenig raffinierter: Hier kommen als Dechiffrierungsschlüssel für den Code Domain-Namen ins Spiel.

Abb. 15: „gootkit“ – zweite Obfuskationsebene

Nach der Entschlüsselung wird der Schadcode sichtbar, gefolgt vom Originalinhalt der Datei:

Abb. 16: „gootkit“ – entschlüsselter Code

Teilweise handelt es sich bei dem schädlichen Teil um die zweite Version der im vorherigen Beispiel erläuterten Malware, die pseudo-zufällige Domain-Namen für die Umleitung erzeugt.

Beispiel 7: .htaccess

Anstatt Skripte oder HTML-Codes zu infizieren, können Angreifer auch die Möglichkeiten nutzen, die einige Konfigurationsdateien bieten, wie etwa die .htaccess-Dateien. In diesen Dateien kann der Administrator die Zugriffserlaubnis auf bestimmte Ordner auf dem Server definieren, und er kann Browser unter bestimmten Umständen auf andere URLs umleiten. Wenn der User-Agent zum Beispiel von einem mobilen Browser kommt, wird der Browser auf die mobile Version der Webseite umgeleitet. Man braucht nicht viel Phantasie, um sich vorzustellen, wie Cyberkriminelle diese Funktionalität ausnutzen…

Abb. 17: .htaccess-Malware

Im oben dargestellten Beispiel werden alle Browser, die über einen Link von den größten Suchmaschinen (HTTP_REFERER Parameter) auf diese Webseite gelangt sind, auf die schädliche URL umgeleitet. Zusätzlich gibt es eine recht lange Liste von Browsern und Bots, die den Redirect nicht auslösen (HTTP_USER_AGENT Parameter). Die Umleitung findet nicht statt, wenn die Webseite aus dem Cache (referer == cache) gelesen wird oder erneut vom selben Computer geladen wird (das cookie-Parameter).

Derartige Schadprogramme können für noch enger definierte Infektionen genutzt werden. So können zum Beispiel bestimmte IP-Adressen ausgeschlossen werden, so dass etwa der Besuch der Webseite von einem bestimmten IP-Bereich aus, der beispielsweise zu einem Sicherheitsunternehmen gehört, keine Auffälligkeiten nach sich zieht.

Angriffsvektoren und -Techniken

Egal, welche Technik sie verwenden, Cyberkriminelle müssen einen Weg finden, ihre schädlichen Dateien zu platzieren oder bereits auf dem Server vorhandene Dateien zu modifizieren. Die primitivste Methode, Zugriff auf einen Server zu erhalten, besteht darin, das Zugangspasswort zu knacken. Dazu können Online-Verbrecher so genannte Brute-Force-Attacken durchführen oder deren abgespeckte Version, den Wörterbuchangriff. Eine solche Taktik ist normalerweise sehr zeitaufwändig und ressourcenintensiv, so dass sie selten für massenhafte Webinfektionen genutzt wird. Populärere Ansätze beinhalten das Ausnutzen von Sicherheitslücken und den Einsatz von Passwort stehlenden Schadprogrammen.

Ausnutzen von Sicherheitslücken in Content Management- und e-Commerce-Systemen

Auch die modernsten Webmanagement-Plattformen wie CMS, e-Commerce oder Control Panels sind nicht perfekt und enthalten Schwachstellen, die es Unbefugten ermöglichen, Dateien ohne Authentifikation auf den Server zu laden. Solche Sicherheitslücken werden mit schöner Regelmäßigkeit entdeckt, während die entsprechenden Patches immer viel zu langsam veröffentlicht werden. Zudem nutzen viele Anwender immer noch ältere, virenverseuchte Software-Versionen. Die am heftigsten angegriffenen Plattformen sind gleichzeitig auch die populärsten, zum Beispiel WordPress, Joomla oder osCommerce. Ein berüchtigtes Beispiel für eine solche Sicherheitslücke ist die TimThumb-Schwachstelle, die Cyberkriminelle in verschiedenen Drive-by-Download-Szenarien ausnutzten. TimThumb ist das PHP-Modul für die Größenanpassung von Bildern und für das Erstellen so genannter Thumbnails, und es ist in die meisten der öffentlichen CMS-Templates integriert. Die Sicherheitslücke gestattete es, Dateien von einem entfernten Ort in das Cache-Verzeichnis des Servers zu schreiben. Ein anderes Beispiel ist die SQL-Einschleusungs-Sicherheitslücke im Plesk Panel (Versionen 10 und älter), die im Februar 2012 entdeckt wurde. Diese Schwachstelle erlaubt es, Datenbanken zu lesen und Passwörter zu stehlen, die – bis vor kurzem – unverschlüsselt gespeichert waren. Auf diese Weise erhaltene Zugangsdaten wurden vermutlich in einer jüngst durchgeführten Web-Malware-Attacke eingesetzt.

Einsatz von Spyware zum Diebstahl von FTP-Zugangsdaten

Bei den am weitesten verbreiteten Web-Infektionen (wie etwa Gumblar und Pegel) hat sich eine andere Methode als effektiv erwiesen. In der ersten Etappe verbreiten Cyberkriminelle Schadprogramme, die eigens zu dem Zweck entwickelt wurden, Benutzernamen und Passwörter zu FTP-Accounts zu suchen und zu stehlen – entweder durch die Überprüfung der Einstellungen des FTP-Clients oder durch Ausspionieren des Netzwerk-Traffics. Sobald die Malware die entsprechenden Zugangsdaten findet, verbindet sie sich mit dem FTP-Server und lädt schädliche Skripte hoch beziehungsweise überschreibt die Originaldateien mit infizierten Versionen. Ist der Computer des Account-Inhabers erst einmal infiziert, versteht es sich von selbst, dass die Dateien auf dem Server immer und immer wieder neu infiziert werden, selbst nachdem die Login-Daten geändert und der gesamte Inhalt von einem sauberen Backup neu aufgespielt wurde.

Die Ziele der Cyberkriminellen

Warum verbreiten Cyberkriminelle Web-Malware?

  • Um Browser auf Webseiten mit Exploits umzuleiten und so unbemerkt Schadprogramme auf Computern zu installieren.
  • Um Browser auf Spam-, Phishing- oder andere schädliche, illegale oder unerwünschte Inhalte umzuleiten.
  • Um Webseiten- und Suchtraffic abzufangen.
  • Um schädliche/illegale oder Spam-Webseiten im Suchmaschinen-Ranking nach oben zu befördern (Black Hat SEO).
  • Um Serverressourcen für illegale Aktivitäten zu nutzen.

Alles in allem also nichts Neues: Es sind indirekt finanzielle Gründe, die Cyberkriminelle veranlassen, Webseiten zu infizieren.

Entfernungsmethoden

Was tun, wenn die eigene Webseite gehackt wird?

Zuerst sollte man, sobald man irgendwelche Anzeichen einer möglichen Infektion bemerkt, sofort die Webseite deaktivieren, bis das Problem gelöst ist. Dieser Schritt ist ungemein wichtig, da jede Verzögerung den Cyberkriminellen in die Hände spielt, die so mehr potenzielle Opfer erreichen und die Infektion über das Internet verbreiten. Sie sollten zudem die Server-Logs auf mögliche verdächtige Aktivität überprüfen, zum Beispiel auf merkwürdige Anfragen von IP-Adressen in ungewöhnlichen Ländern. Es könnte hilfreich sein, die infizierten Dateien zu lokalisieren und festzustellen, wie die Cyberkriminellen auf den Server zugreifen konnten.

Doch wie wehrt man nun den schädlichen Code ab?

Backup-Kopie

Die schnellste und zuverlässigste Methode besteht darin, den gesamten Inhalt, der auf dem Server gespeichert ist, von einer sauberen Backup-Kopie wiederherzustellen. Damit diese Lösung effektiv ist, muss die Software, die auf dem Server läuft (wie CMS / CMF, e-commerce-Systeme), komplett neu installiert werden. Dazu sollten selbstverständlich die neusten, vollständig aktualisierten Versionen verwendet werden. Nach dieser Aktion sollten keine infizierten Dateien mehr auf dem Server sein – sofern Sie vor der Wiederherstellung den gesamten Inhalt gelöscht haben und sofern die Backup-Kopie vor dem Angriff erstellt wurde.

Automatisierter Scan

Gibt es keine saubere Backup-Kopie, so bleibt einem nichts anderes übrig als die Malware selbst zu bekämpfen. Glücklicherweise gibt es verschiedene automatisierte Lösungen, die helfen, den Schadcode aufzuspüren, inklusive Antiviren-Produkte und Online-Webseiten-Scanner wie http://sucuri.net/. Keine dieser Lösungen ist perfekt, doch bei bekannter oder gebräuchlicher Malware können sie sich alle als äußerst hilfreich erweisen. Für den Anfang können Sie Ihre Webseite mit verschiedenen Online-Scannern überprüfen. Einige werden nicht nur bestätigen, dass Ihre Webseite tatsächlich infiziert ist, sondern zudem den schädlichen Code innerhalb Ihrer Dateien lokalisieren. Daraufhin können Sie einen vollständigen Antiviren-Scan all Ihrer Server-Dateien durchführen. Gehört der Server Ihnen oder läuft eine Sicherheitslösung auf dem Server, die Sie benutzen dürfen, so können Sie den Scan auf der Serverseite durchführen. Stellen Sie sicher, dass Sie eine Kopie Ihrer Dateien angefertigt haben, da einige AV-Scanner infizierte Dateien eher löschen als desinfizieren! Sie können die Inhalte auf Ihrem Server zudem auf Ihren lokalen Rechner laden und sie mit Hilfe einer Internet Security-Lösung für Desktop-PCs scannen. Die zweite Option ist die bessere, da die meisten modernen Desktop-AV-Programme über gut ausgebaute heuristische Module verfügen. Webseiten-Malware ist höchst polymorph: Während statische Signaturen fast völlig nutzlos im Kampf gegen derartige Schädlinge sind, so können sie relativ problemlos mit heuristischen Methoden erkannt werden.

Manuelle Entfernung
Ist ein automatisierter Scan nicht erfolgreich und Ihre Webseite wird nach wie vor als infiziert eingestuft, so bleibt als einzige Möglichkeit, die Infektion loszuwerden, manuell danach zu suchen und alle Instanzen des schädlichen Codes zu löschen. Das ist keine einfache Aufgabe, die zudem recht zeitaufwändig sein kann, da jede einzelne Datei auf schädliche Skripte überprüft werden muss, seien es HTML-, JS-, PHP- oder Konfigurationsdateien. Die oben beschriebenen Beispiele sind nur ein kleiner Auszug aus allen möglichen Arten, auf die Webseiten-Schädlinge eindringen können, so dass die Wahrscheinlichkeit groß ist, dass der Code auf Ihrer Webseite entweder nur etwas oder auch komplett anders ist. Trotzdem haben die meisten zeitgemäßen Webseiten-Infektionen einige Dinge gemeinsam und diese Merkmale könnten bei der Diagnose des Problems hilfreich sein.

In erster Linie sollten Sie auf jeden Abschnitt von Code achten, der merkwürdig und unlesbar aussieht. Code-Obfuskation ist eine gebräuchliche Technik unter Virenautoren und sie ist andererseits für jede andere Webseiten-Software ungewöhnlich. Wenn Sie den Code nicht selbst obfuskiert haben, so haben Sie allen Grund, misstrauisch zu sein. Doch seien Sie trotzdem vorsichtig, denn nicht jeder obfuskierte Code ist auch unbedingt schädlich!

Umgekehrt ist auch nicht jedes schädliche Skript obfuskiert, daher sollten Sie auch nach Plaintext-IFRAMES Ausschau halten sowie nach anderen Links auf externe Ressourcen in allen ihren Dateien. Einige von ihnen könnten mit Werbung oder Statistiken zu tun haben, aber lassen Sie sich nicht von den URLs in die Irre führen – sie könnten den Adressen von bekannten und vertrauenswürdigen Portalen täuschend ähnlich sein. Vergessen Sie nicht, die Vorlagen für die Fehlercodemeldungen sowie auch sämtliche .htaccess-Dateien zu überprüfen.

Nützliche Werkzeuge bei der Jagd auf Schadcode auf dem Server sind sicherlich auch grep und find – Befehlszeilentools, die standardmäßig in fast alle Unix-basierten Systeme integriert sind. Unten stehend einige Beispiele, wie sie zur Diagnose der häufigsten Infektionen verwendet werden können:

grep -iRs “iframe” *

grep -iRs “eval” *

grep -iRs “unescape” *

grep -iRs “base64_decode” *

grep -iRs “var div_colors” *

grep -iRs “var _0x” *

grep -iRs “CoreLibrariesHandler” *

grep -iRs “pingnow” *

grep -iRs “serchbot” *

grep -iRs “km0ae9gr6m” *

grep -iRs “c3284d” *

find . -iname “upd.php”

find . -iname “*timthumb*”

In der Beschreibung von grep heißt es (aus dem Linux-Handbuch): print lines matching a pattern (grep durchsucht die Dateien nach einem Muster und gibt die entsprechenden Zeilen aus). Die -i-Option steht für ignore case (Fall ignorieren), -R bedeutet recursive (rekursiv) und -s verhindert, dass Fehlermeldungen ins Output geschrieben werden. Der erste der aufgelisteten Befehle sucht nach allen IFRAME-Tags in den Dateien, die folgenden drei nach den auffälligsten Obfuskationsmerkmalen und die letzten nach speziellen Strings, die mit den allgemein bekannten, groß angelegten Webseiten-Infektionen in Verbindung stehen.

Zu find heißt es im Linux-Handbuch: search for files in a directory hierarchy (Suche nach Dateien in einer Ordnerhierarchie). dot zeigt den aktuellen Ordner an (daher sollten diese Befehle aus dem Wurzelverzeichnis oder aus Ihrem Homeverzeichnis auf dem Server ausgeführt werden) und der -iname-Parameter spezifiziert den Dateinamen, nach dem gesucht werden soll. Sie können reguläre Ausdrücke verwenden, um alle Dateien zu finden, die den gegebenen Kriterien entsprechen.

Selbstverständlich müssen Sie immer wissen, wonach Sie suchen – nicht alle Ergebnisse werden auf eine Infektion hinweisen. Es könnte sein, dass Sie verdächtige Code-Fragmente mit einem AV-Scanner überprüfen wollen oder versuchen möchten, nach der Antwort zu „googeln“. Höchstwahrscheinlich werden Sie einige Antworten bekommen, ob der Code nun schädlich ist oder nicht. Wenn Sie sich noch immer nicht sicher sind, ob die Datei infiziert ist oder nicht, sollten Sie die Webseite (nur zur Sicherheit) am besten deaktivieren  und einen Experten zu Rate ziehen, bevor Sie weitere Schritte unternehmen.

Wichtige Anmerkung!

Neben der Desinfektion aller Dateien auf dem Server sollten Sie in jedem Fall daran denken, einen vollständigen Antiviren-Scan aller Computer durchzuführen, die zum Upload und zum Content-Management auf dem Server benutzt worden sind, und alle Login-Daten für alle Server-Accounts zu ändern, sie Sie unterhalten (FTP, SSH, Administrationspaneele etc.).

Grundlagen der Webseiten-Sicherheit

Will man die Infektion ein für alle Mal loswerden, ist es meist leider nicht ausreichend, den schädlichen Code zu entfernen. Wurde Ihre Webseite einmal kompromittiert, so bedeutet das höchstwahrscheinlich, dass es einige Sicherheitslücken gibt, die es Cyberkriminellen ermöglicht haben, schädliche Skripte auf dem Server zu platzieren. Kümmern Sie sich nicht darum, so sind weitere Infektionen in nächster Zukunft zu erwarten. Um das zu verhindern, sollten Sie entsprechende Maßnahmen ergreifen, um Ihren Server und die mit dem Server-Account verbundenen Computer zu schützen.

  • Verwendung starker Passwörter: So banal es klingen mag, starke Passwörter sind tatsächlich die Basis der Server-Sicherheit. Passwörter auf dem Server sollten nicht nur nach einem Malware-Vorfall beziehungsweise einer Attacke geändert werden, sondern in regelmäßigen Abständen, sagen wir einmal pro Monat. Ein gutes Passwort sollte bestimmte Kriterien erfüllen. Näheres dazu finden Sie auf unserer Webseite.
  • Up-to-Date sein: Man sollte keinesfalls vergessen, regelmäßig Updates zu installieren. Cyberkriminelle nutzen Sicherheitslücken in der Software aus, egal ob die Schadprogramme sich gegen PC-Nutzer oder Webseiten oder Webserver richten. Jegliche Software, die Sie von Ihrem Server-Account aus verwalten, sollte in den neusten Versionen aufgespielt sein, und jeder einzelne Sicherheitspatch sollte gleich nach Veröffentlichung ausgeführt werden. Eine vollständig gepatchte und aktualisierte Software mindert das Risiko von Exploit-basierten Angriffen. Eine regelmäßig aktualisierte Liste bekannter Sicherheitslücken finden Sie hier.
  • Erstellen regelmäßiger Backups: Eine saubere Kopie des Server-Inhalts erspart Ihnen mit Sicherheit eine Menge Zeit und Mühe, ganz abgesehen davon, dass ein frisches Backup sich auch bei der Lösung anderer Probleme als ebenso nützlich erweisen kann wie bei Infektionen.
  • Regelmäßiger Datei-Scan: Selbst wenn Sie keine offensichtlichen Anzeichen einer Infektion bemerken, sollten alle Server-Dateien in regelmäßigen Abständen gescannt werden.
  • Für PC-Sicherheit sorgen: Da ein großer Teil der Webseiten-Malware mit Hilfe infizierter PCs verbreitet wird, ist die Sicherheit des Desktop-Computers, der für die Verwaltung Ihrer Webseite verwendet wird, einer der wichtigsten Aspekte der Webseiten-Sicherheit. Ist Ihr Rechner sauber und sicher, so stehen die Chancen gut, dass Ihre Webseite ebenfalls sauber und sicher bleibt.
  • Server-Hardening: Gehört der Server Ihnen, so sollten Sie darauf achten, dass die Konfiguration so sicher wie möglich ist. Dabei sollten Sie mindestens folgende Maßnahmen ergreifen:
    • Alle nicht verwendeten Programme entfernen.
    • Alle unnötigen Dienste und Module deaktivieren.
    • Alle zweckmäßigen Richtlinien für Anwender und Gruppen konfigurieren.
    • Sichere Befugnisse und  Zugriffsbeschränkungen für bestimmte Dateien und Verzeichnisse festlegen.
    • Ordnersuche deaktivieren.
    • Log-Dateien sammeln, die regelmäßig auf verdächtige Aktivität überprüft werden.
    • Verschlüsselung und sichere Protokolle verwenden.

Webseiten-Malware ist ein Alptraum – sowohl für Webadministratoren als auch für Internetnutzer. Cyberkriminelle verfeinern ihre Techniken fortwährend und decken ständig neue Sicherheitslücken auf. Infektionen verbreiten sich rasend schnell über das Internet und sie betreffen ebenso Server wie auch Workstations. Sicherlich wurde bisher noch kein Weg gefunden, diese Bedrohung vollständig auszuschalten. Allerdings kann jeder einzelne Webseiten-Betreiber und jeder einzelne Internetnutzer das World Wide Web zu einem sichereren Ort machen, indem er die Grundregeln der Internet-Sicherheit beachtet und seine Webseiten und Computer zu jeder Zeit schützt und sauber hält.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.