Ohne Frage, ich mag meinen Job. Sonst würde ich ihn nicht machen – logisch, oder? Dennoch begegnen mir immer mal wieder Sachen, die mir Kommentare wie „So, das reicht jetzt aber wirklich! Ich steig‘ um und mach jetzt irgendwas mit Blumen!“ entlocken. Dieses Mal fing alles mit der Anfrage eines Kunden an, der eines seiner Lieblings-Plugins nicht mehr im WordPress Plugin Repository finden konnte. Sowas kommt ab und zu vor, und oft sind dann Sicherheitsprobleme die Ursache. Ein weiterer häufig vorkommender Grund wäre das Alter des Plugins gewesen, in diesem Fall lag das letzte Update aber noch nicht lange zurück. Also hieß es mal wieder: „Das ist ja interessant, das schaue ich mir an.“

Mit ein wenig Google-Fu konnte ich ein Statement des Entwicklers zur aktuellen Situation finden, der schrieb:

Michael Simpson (@msimpson)
— Yes, WP wants me to fix a potential security vulnerability, so it is temporarily delisted.

Kurz darauf stieß ich dann auf das Plugin WP Authenticity Checker, dessen Scan anscheinend die zitierte Lücke entdeckt hatte. Die Beschreibung des Plugins klang vollmundig, also schaute ich mal unter die Haube:

WP Authenticity Checker scans all of your wordpress themes and plugins for potentially malicious or unwanted code, find the malicious code in seconds

Allerdings hält das Plugin bei weitem nicht, was die Beschreibung verspricht. Der Autor bezeichnet sich selbst als „Passionate Developer and Security Researcher“, angesichts der vorliegenden Leistung (Plugin-Version 1.0 vom 16.12.2016) muss ich mich dabei aber ausgiebig am Kopf kratzen. Das Plugin erkennt Malware anhand einer internen Liste von Definitionen, die bislang ohne Unterstützung für reguläre Ausdrücke oder andere fortgeschrittene Methoden auskommt. Die Signaturen liegen als Klartext in Stringform vor, deshalb überspringt der Scanner auch vorsorglich das eigene Verzeichnis. Die Liste der Signaturen sieht mit Version 1.0 so aus:

//Malware definations expression and syntax, add more itme in array to update definations
$this->malware_definations = 'base64';

Kein Witz. Im Klartext: Das Plugin ist nicht nur irreführend betitelt, da es keinerlei Echtheitsprüfung (beispielsweise durch Abgleich der Datei-Hashes mit dem Repository bei wordpress.org) durchführt, sondern es stellt sich auch beim Versuch, Malware erkennen zu wollen, äußerst … naiv an. Im Supportforum für das Plugin gibt es einen exemplarischen Test, bei dessen Ergebnissen mir das Lachen im Halse stecken bleibt. Unter den Treffern ist kein einziger echter Malwarefund, es handelt sich durchweg um legitimen Code. Amüsanterweise wird sogar ein Kommentar im ähnlich funktionierenden Plugin AntiVirus gefunden. 🙂

Außer der reinen Volltextsuche nach einer viel zu kurzen Zeichenkette, die zudem in real vorkommender Malware seit Ewigkeiten nicht mehr im Klartext auftaucht, hat das Plugin also zumindest zum jetzigen Zeitpunkt nichts zu bieten, stattdessen sorgt es für Irritationen nicht nur bei den Anwendern, die sich auf die Qualität der Plugins im WordPress Repository verlassen. Der Kollateralschaden ist durchaus vorhanden, wenn aufgrund solcher Fehlalarme sogar harmlose Plugins Dritter erst einmal auf die Ersatzbank geschickt werden.

Vom Einsatz des Plugins kann ich derzeit wirklich nur abraten. Es bringt keinerlei Nutzen sondern kann lediglich ein falsches Gefühl von Sicherheit vermitteln – oder verunsichert den Anwender durch zahllose Meldungen, die praktisch nie tatsächlichen Malwarebefall als Ursache haben. Ein trauriges Bild. 🙁