Matt Mullenweg risponde a Security Rant: le firme digitali per gli aggiornamenti di WordPress sono importanti ma non una priorità

Pubblicato: 2017-02-16

Scott Arciszewski, Chief Development Officer di Paragon Initiative Enterprises, noto soprattutto per il suo lavoro di ingegneria della crittografia, ha pubblicato un post su Medium criticando Matt Mullenweg, co-creatore del progetto software open-source WordPress, per non essersi preoccupato abbastanza della sicurezza. Da allora Arciszewski ha ritirato il post, ma puoi leggerlo tramite Wayback Machine.

Arciszewski sta lavorando a un progetto noto come libsodium, un'estensione principale di PHP 7.2 che consente crittografia, decrittografia, firme, hashing delle password e altro ancora. Il suo obiettivo è consentire agli sviluppatori di creare strumenti crittografici di livello superiore.

Il sistema di aggiornamento automatico di WordPress è gestito tramite api.wordpress.org. Poiché gli aggiornamenti non hanno una firma digitale, se api.wordpress.org fosse compromesso, gli aggressori potrebbero inviare aggiornamenti dannosi a migliaia o milioni di siti. Questo scenario era in prima linea nella mente delle persone alla fine dell'anno scorso, dopo che Wordfence ha pubblicato i dettagli di una complessa vulnerabilità della sicurezza che avrebbe potuto compromettere i server di aggiornamento.

Arciszewski suggerisce come soluzioni la firma del codice offline e la crittografia a curva ellittica: "La chiave che può produrre una firma valida per un file non è memorizzata sul server (solo il file stesso e una firma valida lo sono), quindi anche se il server viene violato , gli aggressori non possono semplicemente aggiungere malware trojan horse al file", ha affermato.

OpenSSL è un'estensione di PHP ed è comunemente usato come crittografia a chiave pubblica, ma supporta solo RSA che Arciszewski ritiene inadeguato. Poiché WordPress è scritto in PHP e supporta le versioni 5.2-7+, Arciszewski aveva bisogno di creare una soluzione altrettanto compatibile. Questo lo ha ispirato a creare sodio_compat che aggiunge la verifica della firma Ed25519 all'aggiornamento automatico di WordPress.

Arciszewski ha inviato una serie di patch a WordPress, ma Dion Hulse, sviluppatore principale di WordPress, gli ha detto che la libreria sodium_compat non poteva essere unita al core fino a quando non avesse superato un audit di sicurezza da parte di una terza parte. Gli audit possono costare un sacco di soldi, quindi il piano di Arciszewski era di vedere se Automattic poteva assumersi parte dei costi o raccogliere fondi. Tuttavia, il suo progetto è stato sospeso dopo che Mullenweg ha informato Hulse di smettere di lavorare sulla funzionalità poiché non è correlata alle tre aree di interesse principali dell'Editor, del Customizer e dell'API REST.

Arciszewski ha descritto la decisione come irresponsabile e che ogni utente ha motivo di allarmarsi: "Il team di WordPress ha dimostrato di non essere abbastanza responsabile da governare la loro impressionante proprietà di Internet (con l'eccezione di alcune persone incapaci di correggere il corso dell'organizzazione )," Egli ha detto. "Questo atto di negligenza metterà in pericolo il resto del web."

La firma dell'aggiornamento è importante ma non una priorità

Mullenweg ha risposto al post su Medium.com con uno dei suoi e ha ribadito l'impegno del team di sviluppo di WordPress per la sicurezza.

"Tutte le persone coinvolte prendono molto sul serio le proprie responsabilità e la crescita di WordPress ha significato che molte persone premurose e laboriose sono state coinvolte e pensano alla sicurezza dei siti WP in modo olistico, da ogni angolazione", ha affermato.

Mullenweg ha anche chiarito quali attacchi sarebbero stati fermati implementando le firme digitali negli aggiornamenti di WordPress.

"Potrebbe fermare un uomo nel mezzo dell'attacco, in cui qualcuno modifica i file di aggiornamento sulla rete tra il tuo blog e WordPress.org, oppure potrebbe fermare una situazione in cui la parte di .org che serve l'aggiornamento è compromessa ma la firma parte non lo è, e qualcuno ha deciso di inviare aggiornamenti anche se sa che saranno rifiutati", ha detto.

Il team non è a conoscenza di alcun sito WordPress che sia stato attaccato in questo modo. Sebbene esista la possibilità, l'entità del danno sarebbe probabilmente limitata. I server di aggiornamento sono monitorati 24 ore su 24 e poiché molte grandi società di web hosting scansionano automaticamente i siti dei clienti alla ricerca di malware, è probabile che l'aggiornamento dannoso venga scoperto rapidamente.

Mullenweg descrive cosa accadrebbe se un server di aggiornamento fosse compromesso.

"Lo spegniamo molto rapidamente, informiamo il mondo che si è verificato un problema, lo risolviamo, lo riaccendiamo e avvisiamo i siti o gli host specifici in grado", ha affermato. Anche se WordPress alimenta il 27,5% dei primi 10 milioni di siti monitorati da Alexa, è altamente improbabile che il numero di siti venga compromesso.

Continua dicendo che ci sono modi più semplici per compromettere un sito WordPress e ha elencato i maggiori problemi per la sicurezza di WordPress in base all'impatto.

  1. Siti che non aggiornano il core.
  2. Siti che non aggiornano i plugin.
  3. Siti che non aggiornano i temi.
  4. Password deboli, senza protezione da forza bruta o autenticazione a due fattori.
  5. Host (professionali o ad hoc) che non scansionano e riparano i siti.
  6. Questioni ipotetiche non viste nella pratica, che distolgono dalle priorità esistenti di cui sopra.

Mullenweg conferma di essersi offerto di fare una donazione all'audit di sodium_compat un giorno prima che Arciszewski pubblicasse il suo post. Anche se la libreria ha superato un controllo, il codice non potrebbe essere aggiunto immediatamente al core, "Dovresti anche fare un lavoro significativo sul lato server per isolare la firma dal server di aggiornamento, quindi vale la pena in primo luogo ," Egli ha detto.

E se il codice fosse aggiunto al core, solo i siti che si aggiornassero alla versione che ha la libreria crittografica e il controllo degli aggiornamenti potrebbero trarne vantaggio. WordPress.org dovrebbe comunque inviare aggiornamenti a versioni precedenti che non dispongono del controllo degli aggiornamenti. Questi siti sarebbero comunque vulnerabili alla ricezione di un aggiornamento dannoso.

Mullenweg afferma che le firme digitali e la firma degli aggiornamenti finiranno in WordPress alla fine, ma non è una priorità in quanto ci sono altri problemi di sicurezza di fronte ad esso, "Stiamo dando la priorità a questi problemi al di sopra di uno sforzo di difesa approfondito, piacevole, " Egli ha detto.

“Un buon approccio sarebbe quello di creare prima il lato server, perché farlo correttamente, diciamo con un HSM, è la parte difficile e importante; quindi fai firmare i pacchetti; quindi testare la verifica in un plug-in perché non vogliamo interrompere gli aggiornamenti automatici; e infine unisciti al core e imposta il client per rifiutare gli aggiornamenti non firmati. Sul lato client, dobbiamo scegliere una libreria di crittografia e farla controllare".

Mullenweg ha concluso il suo post spiegando perché ha pubblicato la sua risposta su Medium invece che sul suo sito personale. “Sembra essere il posto più popolare per sproloqui come questo. Volevo anche provare il famoso editor di Medium", ha detto.

Quali sono le prospettive per sodio_compat

Sebbene le prospettive non siano buone per l'aggiunta della sua libreria a WordPress nel 2017, Arciszewski afferma che ci sono molti altri progetti PHP che potrebbero trarne vantaggio: "Per il loro bene, sono ancora fortemente incline a perseguire un terzo indipendente audit di crittografia del partito e tentativo di crowdfunding dei costi", ha affermato.