I CMS sono in pericolo: WordPress, Typo3 e TCPDF
SICUREZZA INFORMATICA

I CMS sono in pericolo: WordPress, Typo3 e TCPDF

I CMS sono in pericolo: il problema affligge WordPress, Typo3 e TCPDF – la galleria per la generazione di file in formato PDF.

Ormai è passato più di un anno e la vulnerabilità non è ancora stata “fixata”. Ma di cosa stiamo parlando? Partiamo dal principio: alcuni ricercatori di Secarma hanno creato un exploit POC (Proof of Concept) che sarebbe in grado di permettere a dei malintenzionati di prendere di mira la vulnerabilità.

Questa vulnerabilità giace nel linguaggio di programmazione PHP che sta alla base di moltissimi Content Management Systems. Ovviamente, a questi, non fa eccezione WordPress. I siti WordPress unitamente ad altre web application, stando a quanto dichiarato dai ricercatori, sarebbero vulnerabili alla remote code execution.

Phar e la Vulnerabilità

I risvolti più recenti di questa vicenda, tuttavia, fanno riferimento al fatto che un attaccante, stando sempre a quanto riferito dai ricercatori Secarma, può usare delle funzioni contro Phar.

Cos’è Phar? Si tratta di una libreria PHP che archivia metadati in un formato serializzato. Tuttavia, questo formato può essere deserializzato ogniqualvolta una funzione di operazione sui file avviene e prova ad accedere all’archivio stesso dei file.

In termini pratici, proprio in questo consiste la vulnerabilità identificata: un qualsiasi malintenzionato può, attraverso una funzione a basso rischio (quelle precedentemente citate), attaccare senza usare la funzione di deserializzazione.

Gli archivi Phar, solitamente, hanno lo scopo di “ospitare” applicazioni auto estraenti o che si auto contengono e come abbiamo visto brevemente in precedenza, una grande fetta delle funzioni relative a questo archivio fa riferimento alla funzione di deserializzazione. Quali sono le implicazioni derivanti da questo?

Quando una qualsiasi operazione che fa riferimento all’archivio dei file avviene e prova ad accedere ai file stessi dell’archivio, questi ultimi devono essere deserializzati. In alternativa, convertiti in oggetti, cosa che avviene in maniera automatica.

Come avviene l’attacco

L’attacco, ad ogni modo, è possibile perché il processo appena descritto ha evidenti punti deboli. Infatti, in questo caso, è possibile per un potenziale attaccante lanciare un attacco di remote code execution. Si tratta, a livello concettuale, di una cosa molto semplice. Il Criminal Hacker o chi per lui, può far partire l’attacco semplicemente piazzando un file infetto all’interno dell’archivio Phar. Questo file infetto verrà poi deserializzato in maniera del tutto automatica ed eseguito come se nulla fosse.

Secarma ha rilasciato un white paper riguardante la tipologia di attacco, è stato specificato proprio all’interno di questo documento il fatto che si tratti di una tecnica di attacco del tutto innovativa. Infatti è specifica per il linguaggio PHP e può, come abbiamo visto, causare deserializzazione in molteplici scenari.

Sfruttare la vulnerabilità identificata è un processo composto da due fasi distinte:

  1. L’attaccante piazza un archivio Phar valido contenente il “payload object” ossia, per essere chiari, la carica esplosiva all’interno del sistema locale di file del target.
  2. Sempre il malintenzionato che esegue l’attacco esegue una file operation su un path “phar://” che fa riferimento al file.

A cosa si deve tutto ciò? Si può tranquillamente dire che questo è possibile grazie a ciò che in passato è sempre stato considerato come falla di sicurezza a basso rischio. Per esempio l’XML External Entity processing (XXE) vulnerabilities. Le vulnerabilità appena citate rientrano nelle vulnerabilità SSFR (Server-Side Request Forgery). Cosa vuol dire questo? Significa che possono permettere ad un attaccante terzo di provocare un DoS – un Denial of Service – che descritto in termini molto semplici consiste in un attacco che mira ad esaurire le risorse di un sistema informatico. In questo modo, il sistema stesso non riuscirà ad esaudire le richieste dei client poiché non più in grado di erogare il servizio.

Tornando a noi, dopo aver causato il DoS è possibile per il malintenzionato accedere ai file e servizi remoti o locali abusando oltremodo di una feature specifica presente nell’interprete XML.

Implicazioni e remediation

Risulta evidente, ora, come le problematiche XXE non possano più essere prese alla leggera in quanto foriere di possibili attacchi di code execution.

Quali sono le implicazioni per il CMS più utilizzato al mondo: WordPress? Una terza parte malintenzionata avrebbe bisogno dei privilegi per poter caricare e modificare i media al fine di ottenere sufficiente controllo del parametro. Ad oggi, questa vulnerabilità non ha ancora una soluzione.

Il problema, tuttavia, non si ferma a WordPress. Come abbiamo detto in principio non solo WordPress risulta potenzialmente vulnerabile.

Ci sono dei precedenti che hanno a che fare con questa tipologia di vulnerabilità legate alla deserializzazione non sicura relativamente al linguaggio PHP. Il problema è sorto per la prima volta 9 anni fa.

Ma cosa si può fare, ad oggi, per cercare di arginare la vulnerabilità? La verità è: non molto. Stando sempre a quanto riportato dai ricercatori impegnati nello studio della vulnerabilità, non è possibile disabilitare l’estensione Phar dalle opzioni nelle impostazioni. Tuttavia, ci sono degli accorgimenti possibili da adottare, citando quanto scritto nel documento:

“Per fare in modo di prevenire l’exploitation di questa vulnerabilità è imperativo evitare l’suo di dati controllati da Cyber Criminali all’inizio di un nome file usato in una qualsiasi file operation che possa innescare wrapper di flusso”.

Inoltre, è stato aggiunto:

“Una prima linea di difesa potrebbe essere quella di evitare queste vulnerabilità nel codice dell’applicazione.”

Possiamo aggiungere, in coda all’articolo, che le attività di sicurezza preventiva rappresentano uno step essenziale per un’azienda protetta. A questo proposito, Vulnerability Assessment Network Scan sono da considerarsi indispensabili e da effettuare su base periodica.

Federico D’Agostino

Swascan Marketing Manager

© Italiaonline S.p.A. 2019Direzione e coordinamento di Libero Acquisition S.á r.l.P. IVA 03970540963