Matt Mullenweg antwortet auf Security Rant: Digitale Signaturen für WordPress-Updates sind wichtig, aber keine Priorität
Veröffentlicht: 2017-02-16Scott Arciszewski, Chief Development Officer von Paragon Initiative Enterprises, der vor allem für seine Kryptographie-Engineering-Arbeit bekannt ist, veröffentlichte einen Beitrag auf Medium, in dem er Matt Mullenweg, Mitschöpfer des Open-Source-Softwareprojekts WordPress, dafür kritisierte, dass er sich nicht genug um Sicherheit kümmerte. Arciszewski hat den Beitrag inzwischen zurückgezogen, aber Sie können ihn über die Wayback-Maschine lesen.
Arciszewski arbeitet an einem Projekt namens libsodium, einer Kernerweiterung von PHP 7.2, die Verschlüsselung, Entschlüsselung, Signaturen, Passwort-Hashing und mehr ermöglicht. Sein Ziel ist es, Entwickler in die Lage zu versetzen, kryptografische Tools auf höherer Ebene zu erstellen.
Das automatische Update-System von WordPress wird über api.wordpress.org abgewickelt. Da Updates keine digitale Signatur haben, könnten Angreifer bei einer Kompromittierung von api.wordpress.org böswillige Updates an Tausende oder Millionen von Websites senden. Dieses Szenario war Ende letzten Jahres in aller Munde, nachdem Wordfence Details über eine komplexe Sicherheitslücke veröffentlicht hatte, die die Update-Server hätte kompromittieren können.
Arciszewski schlägt Offline-Code-Signierung und Elliptische-Kurven-Kryptografie als Lösungen vor: „Der Schlüssel, der eine gültige Signatur für eine Datei erzeugen kann, wird nicht auf dem Server gespeichert (nur die Datei selbst und eine gültige Signatur), also selbst dann, wenn der Server gehackt wird , Angreifer können der Datei nicht einfach Trojaner-Malware hinzufügen“, sagte er.
OpenSSL ist eine Erweiterung von PHP und wird häufig als Public-Key-Kryptographie verwendet, unterstützt jedoch nur RSA, was Arciszewski für unzureichend hält. Da WordPress in PHP geschrieben ist und die Versionen 5.2-7+ unterstützt, musste Arciszewski eine ebenso kompatible Lösung erstellen. Dies inspirierte ihn dazu, „sodium_compat“ zu entwickeln, das die Ed25519-Signaturverifizierung zum automatischen Updater von WordPress hinzufügt.
Arciszewski übermittelte eine Reihe von Patches an WordPress, wurde jedoch von Dion Hulse, dem Entwickler des WordPress-Kerns, darüber informiert, dass die Sodium_compat-Bibliothek nicht mit dem Kern zusammengeführt werden könne, bis sie ein Sicherheitsaudit durch einen Drittanbieter bestanden habe. Audits können viel Geld kosten, daher wollte Arciszewski prüfen, ob Automattic einen Teil der Kosten übernehmen oder die Mittel durch Crowdsourcing aufbringen könnte. Sein Projekt wurde jedoch auf Eis gelegt, nachdem Mullenweg Hulse informiert hatte, die Arbeit an dem Feature einzustellen, da es nicht mit den drei Kernbereichen Editor, Customizer und REST API zusammenhängt.
Arciszewski beschrieb die Entscheidung als unverantwortlich und dass jeder Benutzer einen Grund zur Beunruhigung hat: „Das WordPress-Team hat gezeigt, dass es nicht verantwortungsbewusst genug ist, um seinen beeindruckenden Besitz des Internets zu regeln (mit Ausnahme einiger Leute, die machtlos sind, den Kurs der Organisation zu korrigieren )," er sagte. „Dieser Akt der Fahrlässigkeit wird den Rest des Internets gefährden.“
Die Signierung von Updates ist wichtig, hat aber keine Priorität
Mullenweg antwortete auf den Beitrag auf Medium.com mit einem eigenen und wiederholte das Engagement des WordPress-Entwicklungsteams für Sicherheit.
„Alle Beteiligten nehmen ihre Verantwortung sehr ernst, und das Wachstum von WordPress hat dazu geführt, dass sich viele nachdenkliche, hart arbeitende Menschen engagiert haben und die Sicherheit von WP-Sites aus jedem Blickwinkel ganzheitlich betrachten“, sagte er.
Mullenweg stellte auch klar, welche Angriffe durch die Implementierung digitaler Signaturen in WordPress-Updates gestoppt würden.
„Es könnte einen Man-in-the-Middle-Angriff stoppen, bei dem jemand die Update-Dateien im Netzwerk zwischen Ihrem Blog und WordPress.org ändert, oder es könnte eine Situation verhindern, in der der Teil von .org, der das Update bereitstellt, kompromittiert ist, aber die Signatur Teil ist es nicht, und jemand hat beschlossen, Updates zu versenden, obwohl er weiß, dass sie abgelehnt werden“, sagte er.

Dem Team sind keine WordPress-Sites bekannt, die auf diese Weise angegriffen wurden. Während die Möglichkeit besteht, wäre das Ausmaß des Schadens wahrscheinlich begrenzt. Die Update-Server werden rund um die Uhr überwacht und da viele große Webhosting-Unternehmen die Seiten ihrer Kunden automatisch auf Malware scannen, würde das bösartige Update wahrscheinlich schnell entdeckt werden.
Mullenweg beschreibt, was passieren würde, wenn ein Update-Server kompromittiert würde.
„Wir würden es sehr schnell ausschalten, die Welt benachrichtigen, dass ein Problem aufgetreten ist, das Problem beheben, es wieder einschalten und die bestimmten Websites oder Hosts nach Möglichkeit benachrichtigen“, sagte er. Obwohl WordPress 27,5 % der Top-10-Millionen-Websites betreibt, die von Alexa verfolgt werden, ist es höchst unwahrscheinlich, dass eine Anzahl von Websites kompromittiert wird.
Er sagt weiter, dass es einfachere Möglichkeiten gibt, eine WordPress-Seite zu kompromittieren, und listet die größten Probleme für die WordPress-Sicherheit basierend auf den Auswirkungen auf.
- Websites aktualisieren den Kern nicht.
- Websites, die Plugins nicht aktualisieren.
- Sites, die Themes nicht aktualisieren.
- Schwache Passwörter, ohne Brute-Force-Schutz oder Zwei-Faktor-Authentifizierung.
- Hosts (professionell oder ad-hoc), die Websites nicht scannen und reparieren.
- Hypothetische Probleme, die in der Praxis nicht auftreten und von den oben genannten bestehenden Prioritäten ablenken.
Mullenweg bestätigt, dass er einen Tag vor der Veröffentlichung seines Posts durch Arciszewski angeboten hat, für das Audit vonodium_compat zu spenden. Selbst wenn die Bibliothek ein Audit bestanden hätte, konnte der Code nicht sofort zum Kern hinzugefügt werden: „Sie müssten auch auf der Serverseite erhebliche Arbeit leisten, um die Signierung vom Update-Server zu isolieren, also lohnt es sich in erster Linie ," er sagte.
Und wenn der Code zum Kern hinzugefügt würde, könnten nur die Sites, die auf die Version mit der kryptografischen Bibliothek und der Update-Überprüfung aktualisiert wurden, davon profitieren. WordPress.org müsste weiterhin Updates an ältere Versionen senden, die keine Update-Prüfung haben. Diese Websites wären weiterhin anfällig für böswillige Updates.
Mullenweg sagt, dass digitale Signaturen und das Signieren von Updates irgendwann in WordPress landen werden, aber es ist keine Priorität, da es andere Sicherheitsprobleme davor gibt: " er sagte.
„Ein guter Ansatz wäre, zuerst die Serverseite zu bauen, denn das richtig zu machen, sagen wir mit einem HSM, ist der schwierige und wichtige Teil; dann lassen Sie die Pakete signieren; dann testen Sie die Verifizierung in einem Plugin, weil wir automatische Updates nicht unterbrechen wollen; und dann schließlich mit dem Kern zusammenführen und den Client so einstellen, dass er nicht signierte Updates ablehnt. Auf der Client-Seite müssen wir eine Kryptografie-Bibliothek auswählen und prüfen lassen.“
Mullenweg beendete seinen Beitrag mit der Erklärung, warum er seine Antwort auf Medium und nicht auf seiner persönlichen Website veröffentlichte. „Scheint der beliebteste Ort für solche Tiraden zu sein. Ich wollte auch den berühmten Medium-Editor ausprobieren“, sagte er.
Was kommt als nächstes fürsodium_compat
Obwohl die Aussichten für seine Bibliothek, die 2017 zu WordPress hinzugefügt wird, nicht gut aussehen, sagt Arciszewski, dass es viele andere PHP-Projekte gibt, die davon profitieren könnten: Partei-Kryptographie-Audit und versuchen, die Kosten durch Crowdfunding zu finanzieren“, sagte er.
