Fast jeder der schon längere Zeit mit WordPress arbeitet hat schon die eine oder andere Unannehmlichkeit mit Hackerangriffen erlebt. Durch die „War on Spam“ die Google den Black Hat SEOs erklärt hat werden traditionelle Black Hat Methoden unwirksam. Eine unerwünschte Nebenwirkung dieser Maßnahmen ist jedoch, dass Hacken von Webseiten immer attraktiver wird. Dabei werden oft […]
Fast jeder der schon längere Zeit mit WordPress arbeitet hat schon die eine oder andere Unannehmlichkeit mit Hackerangriffen erlebt. Durch die „War on Spam“ die Google den Black Hat SEOs erklärt hat werden traditionelle Black Hat Methoden unwirksam. Eine unerwünschte Nebenwirkung dieser Maßnahmen ist jedoch, dass Hacken von Webseiten immer attraktiver wird. Dabei werden oft Links zu anderen gehackten Seiten auf der Seite platziert und via CSS versteckt. (Das ist die meist verwundetste und mit Abstand harmloseste Methode!)
Doch warum haben es Hacker gerade auf WordPress abgesehen? Oft wird fälschlicherweise behauptet, dass WordPress unsicher ist. Die Realität ist aber, dass der Core von WordPress genauso sicher ist, wie der Core von Drupal oder auch Joomla.
WordPress ist zum Ziel von Hackern geworden, doch nicht aus technischen Gründen sondern aus ökonomischen. Laut w3techs CMS Statistik laufen 58% aller mit einem CMS betriebenen Webseiten auf WordPress. Das sind .ca 70 Millionen WordPress Installationen (Stand: 2011), und die Zahl wächst täglich mit rund 100,000 neuen Installationen.
Laut dem Österreichischen Hoster easyname.com verwenden rund 90% neuer Hostingkunden bereits WordPress. Sog. 1-Click-Wordpress Installationen gehören bei den meisten C-Panels bereits zum Standard. Kein anderes CMS kommt auch nur annähernd an diese Zahlen heran. Ein Exploit in WordPress zu finden ist für einen Hacker wie den Jackpot zu knacken.
Um sich gegen Hacker zu schützen ist es Hilfreich die Herangehensweise und Motivation, sowie die operativen Kosten einer Hack-Campagne zu kennen.
Die meisten WordPress Hacker haben wirtschaftliche Motivationen. Wenn sich wirtschaftlich nicht rentiert eine Webseite zu hacken, oder aber die eigene Webseite nicht in die Prozesse des Hackers passt, dann ist man oft bereits 90% der Hackangriffe los. Wenn die eigene Webseite, für die Crawler der Hacker nicht als WordPress erkannt wird, dann findet auch kein Angriff statt. Hacker hassen nämlich manuelle Arbeit.
Die Crawler von Hackern sind auf sog. „Footprints“ angewiesen. Das sind Strings, die im Quellcode aber auch den URLs einer Seite enthalten sind, durch die eine WordPressinstallation als solche identifiziert werden kann.
Hier einige Beispiele solcher Footprints:
Im Quellcode:
In den URLs:
In HTML Kommentaren:
Wie man anhand der zahlreichen Footprints erkennt, ist es relativ schwierig, auf jeden möglichen Footprint zu achten. Im Folgenden werden wir versuchen die meisten Footprints mit möglichst wenig Aufwand flächendeckend zu entfernen.
Da Kommentare oft unsere größten Schwächen nach draussen Preis geben (Plugin + Version) sind diese unsere Top Priorität.
Der folgende Code wird in der functions.php integriert und verhindert, dass jegliche HTML Kommentare an den Browser gesendet werden:
function callback($buffer) {
$buffer = preg_replace(‘//’, ”, $buffer);
return $buffer;
}
function buffer_start() {
ob_start(“callback”);
}
function buffer_end() {
ob_end_flush();
}
add_action(‘get_header’, ‘buffer_start’);
add_action(‘wp_footer’, ‘buffer_end’);
Eine andere Option ist es das W3 Total Cache Plugin zu verwenden. Dieses Plugin erhöht nicht nur die Geschwindigkeit von WordPress, sondern entfernt auch alle unnötigen HTML Kommentare. Sehr empfehlenswert!
In den von WordPress generierten Menus findet man oft eine Reihe an Klassen. Dies kann man leicht verhindern, indem man das Menu im Theme mit einer Benutzerdefinierten Funktion mit Class Parametern ausgibt:
defaults = array(
'theme_location' => ,
'menu' => ,
'container' => 'div',
'container_class' => 'menu-{menu slug}-container',
'container_id' => ,
'menu_class' => 'menu',
'menu_id' => ,
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => ,
'after' => ,
'link_before' => ,
'link_after' => ,
'items_wrap' => '
',
'depth' => 0,
'walker' => );
?>
Container Class und Menu Class können umbenannt werden, sodass sie nicht mehr als WordPress zu erkennen sind.
Beispiel:
'container_class' => kein-wordpress-{menu slug}-nicht-container',
Einer der meist verbreiteten Angriffe zielen auf die wp-login.php. Selbst wenn man ein sicheres Passwort wählt, ist es nützlich diese URL zu verändern um Angriffe auf das Login Formular gänzlich unmöglich zu machen.
Hierzu empfiehlt sich das kostenlose Stealth Login Page Plugin. Dieses Plugin ermöglicht es, eine eigene URL für die Loginseite zu wählen, was automatische Loginversuche deutlich schwieriger macht.
Für Diejenigen, die lieber eine Plug & Play Lösung verwenden würden ist das Premium Plugin WP Hide My WP sehr zu empfehlen. Es übernimmt die oben genannten Aufgaben und macht WordPress praktisch unkenntlich für Angreifer. Kostenpunkt: 20$.
Image Credits:
venomous green tree pit viper camouflaged on plant, arena, costa rica, latin america, deadly snake by shutterstock.com