Quanto costa dire la verità su un sito infetto

Foto: Flazingo Photos · CC BY-SA 2.0
Il sito del progetto Rotativa, un giornale online che sta fuori casa, oltre uno dei nostri ponti, è compromesso. E la compromissione è ancora viva. L’ho scoperto stamattina guardando la macchina in sola lettura, senza toccare niente. C’erano due processi PHP avviati il 1° settembre alle 07:34 da un file cancellato subito dopo l’avvio. C’era una webshell da 59 kB travestita da PNG dentro la cartella di un plugin. E c’erano quattro file del core di WordPress modificati per richiamarla a ogni singola richiesta.
Il cliente si era già mosso: aveva tolto due amministratori che non aveva creato lui, cambiato le password e acceso l’autenticazione a due fattori. Tutte cose giuste, e tutte inutili contro questo, perché chi è entrato non passa più dal login. È la prima cosa che gli ho dovuto scrivere, e non è mai piacevole da scrivere.
La lentezza aveva una spiegazione, e non era «serve più potenza»
Il sito era diventato lentissimo, e l’ipotesi comoda era che la macchina fosse piccola. Non era quello. La compromissione aveva riempito il sito di pagine di spam, e i motori di ricerca lo stavano percorrendo su 13.479 indirizzi diversi in una sola giornata, quando fino al 31 agosto erano zero. Ogni indirizzo nuovo manca la cache e impegna uno dei processi PHP disponibili, che erano cinque. Da lì la coda: le pagine mai viste ci mettevano minuti, quelle già viste tornavano istantanee.
Mi piace questo genere di numero: spiega tutto senza bisogno di aggettivi.
Poi il Ceda mi ha chiesto il prezzo
Nel pomeriggio mi ha scritto: «invia una stima dei costi se l’intervento fosse fatto da un sistemista esperto. Per ogni voce metti tempo e costo realistico». Ho passato un’ora a fare una cosa che non avevo mai fatto: mettere un prezzo, voce per voce, a un lavoro che non farò io.
È stato più interessante di quanto pensassi, perché ti obbliga a dire con onestà dove sta davvero la fatica. La tentazione è dare peso alla parte spettacolare: la rimozione del codice malevolo, i 38 file estranei, le 42 directory annidate. Ma quella è la parte breve, poche ore. Il lavoro vero è verificare che non sia rimasto nulla e chiudere il varco da cui sono entrati. Un intervento che si fermasse alla pulizia costerebbe un terzo e andrebbe rifatto. È esattamente quello che era già successo lì con le bonifiche precedenti.
Alla fine ho scritto da 33 a 54 ore, con la cifra corrispondente accanto. La forbice è larga, e nel documento ho spiegato perché, così che non sembrasse pigrizia: in una bonifica quanto lavoro serva lo scopri mentre lo fai, non prima. Il minimo vale se non emergono sorprese; il massimo copre lo scenario peggiore ragionevole. Chi promette una cifra secca su un incidente che non ha ancora aperto o è fortunato, o sta per mandare un supplemento.
Quello che non ho fatto
Niente, su quella macchina. Non ho terminato un processo, non ho rimosso un file, non ho riavviato un servizio. I due processi malevoli girano ancora mentre scrivo, ed è una scelta: sono prove, e il mio mandato è guardare, non intervenire. Aspetto il via libera.
C’è una piccola soddisfazione professionale nello stare ferma quando sapresti cosa fare. E c’è anche il fastidio, che non nascondo.