Interview mit Code Risk – Ein kostenloser Quellcode-Analysedienst für WordPress-Plugins

Veröffentlicht: 2018-10-17

Hendrik Buchwald CodeRisk CEO Schwachstellen in WordPress-Plugins waren die Ursache für mehr Website-Hacks als Schwachstellen im WordPress-Kern. Einer der Gründe, warum dies geschieht, ist der Mangel an Ressourcen. Software wird immer Schwachstellen aufweisen, obwohl der WordPress-Kerncode von Tausenden von Menschen überprüft wird. Außerdem hat die Stiftung Ressourcen zugewiesen, um sicherzustellen, dass der Code so sicher wie möglich ist.

Andererseits verfügen viele Plugin-Entwickler nicht über die Ressourcen, um sicherzustellen, dass der Code ihrer Plugins sicher ist, insbesondere wenn es sich um ein kleines Plugin handelt. Doch das wird sich ändern, wie Hendrik Buchwald im Interview erklärt. Hendrik ist Softwareingenieur, Sicherheitsforscher und Mitbegründer von RIPS Technologies.

Was macht RIPS Technologies?

RIPS Technologies ist ein Hightech-Unternehmen mit Sitz in Bochum, Deutschland. Wir liefern automatisierte Sicherheitsanalysen für PHP-Anwendungen als lokale Softwareinstallation oder hochskalierbaren Cloud-Service. Unsere innovativen Codeanalysealgorithmen, die speziell auf die Sprache PHP ausgerichtet sind, können wie keine andere Lösung komplexe Sicherheitslücken in modernen Anwendungen identifizieren. Unsere Mission ist es, Entwicklern und Sicherheitsexperten die genaueste und effizienteste Sicherheitsanalyse zu bieten, die möglich ist.

Was würden Sie sagen, ist der häufigste Sicherheitsfehler, den Entwickler machen, und was sind die Top 3 Schwachstellen, die Sie in WordPress-Plugins sehen?

Es überrascht nicht, dass die häufigsten Probleme Cross-Site-Scripting (XSS)-Schwachstellen sind, die auftreten, wenn Benutzereingaben ohne angemessene Bereinigung auf der HTML-Antwortseite gedruckt werden. Zum einen treten diese Probleme häufig auf, weil die Ausgabe von Daten die häufigste Operation von PHP-Anwendungen ist und daher stärker von Sicherheitsverletzungen betroffen ist als andere Operationen. Und zweitens lassen sich diese Probleme angesichts der Vielfalt der HTML-Kontexte und ihrer Fallstricke bei der Bereinigung leicht einführen. Cross-Site-Scripting (XSS)-Schwachstellen sind in WordPress durchaus schwerwiegend, da sie beispielsweise dazu genutzt werden können, PHP-Code über den Template-Editor einzuschleusen. Glücklicherweise erfordern sie jedoch die Interaktion mit einem Administrator.

Die zweithäufigsten Probleme sind SQL-Injection-Schwachstellen. SQL-Injections sind schwerwiegender als Cross-Site-Scripting-Schwachstellen, da sie im schlimmsten Fall dazu verwendet werden können, sensible Informationen – beispielsweise Passwörter – ohne jegliche Benutzerinteraktion aus der Datenbank zu extrahieren. Dadurch können sie für vollautomatisierte bösartige Angriffe verwendet werden.

Wie gut oder schlecht würden Sie sagen, ist die allgemeine Sicherheitslage der beliebtesten/heruntergeladenen 1.000 Plugins?

Das ist schwer zu beantworten, da ich mir die 1.000 beliebtesten Plugins nicht im Detail angeschaut habe. Solche Operationen würden viele Monate dauern, bis wir fertig sind, und wenn wir bereit sind, müssten wir wieder von vorne beginnen, da einige Plugins sehr häufig aktualisiert werden.

Daher ist es wichtig, einen automatisierten Sicherheitsdienst wie Code Risk zu verwenden. Aus der CodeRisk-Bewertung, die aus den automatisierten und nicht verifizierten Quellcode-Scans generiert wird, die wir im Repository durchführen, kann ich jedoch sagen, dass der Code der meisten nicht schlecht ist, obwohl es auch Plugins mit schlechter Bewertung gibt. Die meisten dieser Plugins sind jedoch sehr groß und haben viele Funktionen. Dies erhöht automatisch die Wahrscheinlichkeit, dass irgendwo ein Fehler auftritt. Aus unseren manuellen Tests können wir auch sagen, dass die großen Plugins oft logische Schwachstellen haben.

Können Sie uns etwas darüber erzählen, was Sie WordPress-Plugin-Entwicklern anbieten?

Unser neuestes Projekt CodeRisk hilft Entwicklern und Benutzern, das Sicherheitsrisiko des Codes ihres Plugins kostenlos einzuschätzen. Im Moment ist dies auf WordPress-Plugins beschränkt, die im offiziellen WordPress-Repository gehostet werden.

Wir holen automatisch neue Plugins aus dem WordPress-Repository und scannen sie mit unserem PHP-Sicherheitsscanner RIPS. Die detaillierten Ergebnisse von RIPS werden zu einem leicht verständlichen Risikowert kombiniert. Der Wert berücksichtigt die Schwere der erfolgreichen Ausnutzung, die Menge der gefundenen Probleme im Verhältnis zur Codegröße und die Wahrscheinlichkeit, dass ein Problem von einem Dritten missbraucht werden kann.

Plugin-Entwickler können die vollständigen detaillierten Ergebnisse für ihre eigenen Plugins über ein automatisiertes System anfordern. Sie können die Informationen verwenden, um mögliche Schwachstellen zu beheben und ihren Code zu härten, wodurch das WordPress-Ökosystem sicherer wird. Die Idee hinter CodeRisk ist es, Plugin-Entwicklern zu ermöglichen, Probleme in ihrem Code selbst zu finden, auch wenn sie nicht sicherheitsbewusst sind. Obwohl wir viel über die Sicherheit von WordPress recherchieren und viele Schwachstellen an Entwickler melden, gibt es viel zu viele Plugins, um sie alle manuell zu analysieren.

Abonnieren und nutzen viele Plugin-Entwickler Ihren kostenlosen Quellcode-Analysedienst? Wie ist die Resonanz der WordPress-Community?

Derzeit gibt es einige Dutzend Plugin-Entwickler, die CodeRisk verwenden, um das Risiko von Sicherheitslücken in ihren Plugins zu reduzieren. Wir haben bisher viel gutes Feedback erhalten und CodeRisk hat bereits geholfen, Hunderte von Problemen zu lösen.

Automatisierte Scanner neigen dazu, Fehlalarme und Randfälle zu melden, die möglicherweise nicht ausgenutzt werden können. Angesichts der Tatsache, dass viele Entwickler nicht sicherheitsbewusst sind, was tun Sie, um ihnen zu helfen und Fehlalarme zu vermeiden?

Unsere Benutzer sollten sich darüber im Klaren sein, dass wir Code hervorheben, der ein Sicherheitsrisiko darstellt. Dazu gehören neben unbeabsichtigten Sicherheitslücken auch andere Erkenntnisse, beispielsweise schwache Schutzmaßnahmen, die später zu einer Bedrohung werden können.

Sie müssen nicht wissen, ob und wie ein Problem ausgenutzt werden kann, um sicherzustellen, dass es in Zukunft nicht zu einer Sicherheitsbedrohung wird. Wenn Sie beispielsweise den Rückgabewert einer Funktion ausgeben, achten Sie darauf, ihn richtig zu codieren, um Cross-Site-Scripting-Schwachstellen zu vermeiden. Auch wenn der Rückgabewert noch keine Benutzereingaben enthält, wird dies in Zukunft möglicherweise nicht mehr der Fall sein.

Wo sehen Sie dieses kostenlose WordPress-Projekt hin? Hast du Pläne dafür? Vielleicht einen Premium-Service für Handheld-Entwickler anbieten, ihnen helfen, die Ergebnisse zu verstehen und das Beste daraus zu machen?

Die nächste Version von CodeRisk wird Unterstützung für WordPress-Designs hinzufügen, da sie ein wesentlicher Bestandteil der meisten Blogs sind und oft auch Schwachstellen enthalten. Irgendwann möchten wir CodeRisk auf andere Content-Management-Systeme ausdehnen. Derzeit gibt es keine Pläne für einen Premium-Service, aber wenn genügend Nachfrage danach besteht, könnte sich dies ändern.

Können Sie WordPress-Entwicklern zwei oder drei Best Practices für sichere Entwicklung geben, die sie befolgen können, damit sie sichereren Code schreiben können?

Wenn Sie sichereren Code schreiben möchten, vertrauen Sie niemals blind dem vorhandenen Code. Gehen Sie immer davon aus, dass Funktionen Benutzereingaben zurückgeben könnten, und behandeln Sie sie als solche. Allgemeine Informationen zum Schreiben von sicherem PHP-Code finden Sie im The 2018 Guide to Building Secure PHP Software.

Besuchen Sie die CodeRisk-Website für weitere Informationen über den Dienst. Und wenn Sie ein WordPress-Plugin-Entwickler sind und sich Ihr Plugin im WordPress-Plugin-Repository befindet, melden Sie sich für ein kostenloses Konto an, um zu sehen, welche Schwachstellen Ihr Plugin haben könnte.