WordPress Version verstecken

Es hat mich schon immer genervt, dass WordPress relativ gesprächig ist, wenn es um Interna des Systems geht. So wird mit Freuden für jede geladene JavaScript-Datei die Versionsnummer angegeben, es werden interne URL-Strukturen verraten und selbst die Version der eigentlichen Software findet sich hier und dort wieder.

Ich hatte deshalb damals angefangen, die URL-Struktur meines Blogs zu verbergen. Nach mehreren Jahren kann ich sagen, dass dies viele Angriffe verhindert hat (vor allem in letzter Zeit, wo die Angriffe auf WordPress-Blogs stark zunahmen).

Doch auch mit der Versionnummer, die sich im Generator-Tag im HTML-Quelltext und im RSS-Feed findet, lässt sich einiges anfangen. Auch diese Informationsquelle wollte ich potentiellen Angreifern gern entziehen. Zum Glück gibt es z.B. auf wpbeginner.com alles, was man wissen muss - es muss nur noch in ein Plugin überführt werden. Aktivieren. Fertig.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
  /*
    Plugin Name: HideVersion
    Plugin URI: https://weizenspr.eu/
    Description: Hides the WordPress version from generated pages.
    Version: 0.1c1
    Author: Kevin Niehage
    Author URI: https://weizenspr.eu/

    this code is based on http://www.wpbeginner.com/wp-tutorials/the-right-way-to-remove-wordpress-version-number/
  */


  /* STOP EDITING HERE IF YOU DO NOT KNOW WHAT YOU ARE DOING */

  // remove generator from HTML head
  remove_action("wp_head", "wp_generator");

  // remove generator from RSS
  function hideversion_returnempty() {
    return "";
  }
  add_filter("the_generator", "hideversion_returnempty");
?>

Auf Seiten wie z.B. isitwp.com kann man dann einfach mal ausprobieren, ob einfache Analyser noch Erfolg haben. Es wäre natürlich großartig, wenn diese bei der Erkennung einfach komplett versagen. Das Ergebnis beim Einsatz von HideStructure und HideVersion sieht jedenfalls so aus:

Is it WordPress?

Is it WordPress?

Der ein oder andere mag natürlich der Überzeugung sein, dass es relativ sinnlos ist, verschleiern zu wollen, welches CMS man auf einem privaten Blog einsetzt. Dahinter steht jedoch einiges mehr. Das unnötige Verraten von internen Strukturen bezeichnet man hinlänglich als Information Leakage. Es mag auf den ersten Blick nicht immer ersichtlich sein, wofür solche Informationen genutzt werden, aber ein Nutzen ist jedenfalls gegeben. So kann ein Angreifer z.B. durch das regelmäßige Prüfen der Versionsnummer herausfinden, wie lange der Betreiber in der Regel benötigt, um auf eine aktuelle Version zu wechseln.

Wenn wir als Beispiel den neuen "sicheren" E-Mail-Dienst mailbox.org nehmen, sehen wir relativ schnell, dass der Dienst tatsächlich WordPress verwendet.

Zum Schluss noch etwas Rechtliches:
Der Autor dieses Programms haftet nicht für Schäden an Soft- oder Hardware oder Vermögensschäden, die durch das Benutzen des Programms entstehen, es sei denn, diese beruhen auf einem grob fahrlässigen oder vorsätzlichen Handeln des Autors, seiner Erfüllungsgehilfen oder seiner gesetzlichen Vertreter.

Versionierte Grüße, Kenny