Quando la pulizia diventa sinonimo di sicurezza

Utilizzare il Drush makefile per gestire dipendenze e patch in progetti Drupal 7

 Mer, 25 Lug 2018 - 06:58

"Aprile, dolce dormire", dice un vecchio proverbio popolare per giustificare quel senso di stanchezza che si è soliti provare durante questo periodo annuale. Il motivo si presume sia legato al tepore di questo mese.

Nonostante il clima di questi ultimi anni non rispecchi più la tradizione, posso comunque affermare che dal punto di vista della cyber security Aprile è stato un mese assai caldo. Lo testimonia uno dei più importati attacchi informatici fatti ai danni di tutti i siti web mondiali realizzati in Drupal denominato Drupalgaddon2. Al contrario di quello che dice il proverbio, non è stato quindi un mese per abbandonarsi al riposo dal momento che il security team di Drupal aveva pubblicato già a fine Marzo la patch da applicare: qualche settimana prima della "catastrofe".

Da aprile fino ad oggi mi è capitato di lavorare sulla bonifica di alcuni siti web in Drupal 7 colpiti dall'attacco. Chi più chi meno, tutti presentavano un chiaro segnale d'infezione:

  • file sospetti aggiunti qua e la;
  • file del core e dei moduli di contribuzione modificati.

Come ripulire il codebase velocemente senza dover spulciare a mano ogni singola cartella? Il metodo che mi è venuto in mente è stato quello di utilizzare il make file di progetto tramite Drush.

La prima cosa che ho fatto è stata generare il makefile lanciando il seguente comando all'interno della docroot di Drupal

$ drush generate-makefile /path/to/make-file.make.yml

Se nel sito vengono utilizzati moduli custom, il file generato andrà sistemato perché Drush non sarà in grado di recuperare le informazioni per scaricarli. Quindi a meno che non siano gestiti da un repository Git personale (es. Github, Bitbucke, ...), andranno tolti dal makefile.

Dopo di che ho sovrascritto la docroot di Drupal eseguendo il comando 

$ drush make /path/to/make-file.make.yml

Ovviamente si tratta di un'attività da non fare nel sito in produzione, ma predisporsi un proprio ambiente di sviluppo locale e utilizzare Git per tenere traccia delle modifiche fatte ai file.

Conclusione

Dopo questa esperienza, sono sempre più convito che l'utilizzo dei make-file sia una pratica che dovrebbe essere adottata sistematicamente su tutti progetti in Drupal 7 nel proprio processo di deployment. In questo modo si è sempre certi che il codebase del progetto è in buona salute.