Supporto esteso per PHP: cosa chiedere a un fornitore prima di firmare

Le domande da fare a un fornitore di supporto esteso per PHP prima di firmare, divise in sei aree: perimetro, processo sulle CVE, tempi e reperibilità, test e rollback, accessi e dati, durata e uscita, con i segnali da osservare.

Copertina con il logo php∞, la categoria Compliance e business, il titolo Supporto esteso: cosa chiedere e il numero 49

Quando una versione di PHP esce dal supporto ufficiale e la migrazione richiede mesi, molte aziende cercano un fornitore che continui a correggere le vulnerabilità sul ramo in uso. Le offerte di “supporto esteso” però sono molto diverse tra loro: alcune forniscono pacchetti ricostruiti con le patch, altre sostituiscono l’intero stack, altre ancora si limitano a una consulenza a chiamata. Dal nome del servizio è difficile capire cosa si sta comprando, e le differenze emergono quando esce una CVE critica e il fornitore deve rispondere davvero.

In questo articolo raccogliamo le domande da fare prima di firmare, divise in sei aree, insieme ai segnali che indicano un servizio solido e a quelli che meritano un chiarimento. Sono le stesse domande che ci aspettiamo dai nostri clienti, e per ognuna indichiamo come rispondiamo noi, così il confronto con altre offerte è più semplice.

Cosa si compra davvero

Il supporto esteso per PHP consiste nel prendere le correzioni di sicurezza pubblicate per i rami supportati e adattarle al codice di un ramo in End of Life, ricostruire i pacchetti e installarli al posto di quelli in uso. È il lavoro di backport che descriviamo nell’articolo su cos’è il backport delle patch di sicurezza.

Due limiti vanno chiariti fin dall’inizio, perché nessun fornitore serio dovrebbe nasconderli. Il primo: il backport chiude le vulnerabilità note, ma la versione resta fuori supporto e ogni nuova CVE richiede una nuova analisi. Il secondo: le librerie dell’applicazione, il CMS e i suoi moduli restano fuori dal perimetro, e su un PHP vecchio spesso sono anch’essi datati. Il supporto esteso è un ponte verso la migrazione e va scelto come tale.

Sei schede numerate con le aree di domande da porre a un fornitore di supporto esteso per PHP. 1 perimetro: quali versioni, distribuzioni e SAPI copre, da quali pacchetti parte. 2 processo sulle CVE: quali fonti segue, come decide se una CVE riguarda il mio ramo. 3 tempi e reperibilità: da quando parte l’orologio, entro quando rilascia, chi risponde di notte. 4 test e rilascio: testa con la mia applicazione, come installa, come si torna indietro. 5 accessi e contratto: chi accede ai server, se c’è un accordo sui dati, quali subfornitori. 6 durata e uscita: fino a quando, cosa resta a me alla fine, come aiuta a migrare. Nota: le risposte vanno chieste per iscritto e devono ritrovarsi nel contratto
Sei aree da coprire prima della firma, con risposte scritte.

1. Il perimetro

La prima domanda è banale e decisiva: il fornitore copre esattamente la tua combinazione di versione di PHP, distribuzione e modalità di esecuzione? PHP 7.4 con PHP-FPM su AlmaLinux 8 e PHP 5.6 con mod_php su CentOS 7 sono situazioni molto diverse. Chiedi inoltre:

  • quali estensioni sono incluse, in particolare quelle che usi davvero, come gd, intl, soap o mbstring;
  • da quali pacchetti parte la ricostruzione: quelli della distribuzione, di Remi, delle Software Collections, di AppStream o di deb.sury.org;
  • se i pacchetti corretti mantengono nomi, percorsi e configurazioni attuali, o se impongono una nuova struttura;
  • se le librerie di sistema da cui PHP dipende, come OpenSSL o libxml2, sono comprese.

Noi ricostruiamo i pacchetti RPM e DEB partendo da quelli già installati, per toccare il meno possibile la configurazione esistente.

2. Il processo sulle CVE

Un servizio di supporto esteso vale quanto il suo processo di analisi. Le domande da fare:

  • quali fonti vengono seguite: avvisi del progetto PHP, database come NVD e cve.org, liste di sicurezza delle distribuzioni;
  • come si stabilisce se una CVE riguarda il ramo in uso, visto che molte correzioni toccano codice che nei rami vecchi non esiste o è diverso;
  • se esiste un elenco, per ogni versione, delle CVE corrette, di quelle non applicabili con il motivo e di quelle ancora aperte;
  • come viene comunicata una nuova vulnerabilità e la decisione presa.

L’elenco delle CVE è il documento più importante: è quello che mostrerai a un auditor o a un cliente. Sul solo PHP 5.6.40 il nostro pacchetto corregge 55 CVE, di cui 11 aggiunte da noi con backport dedicati.

3. Tempi e reperibilità

Ogni offerta promette rapidità. La differenza sta nella definizione. Chiedi da quale momento parte l’orologio (pubblicazione della CVE, tua segnalazione, conferma dell’applicabilità), a quale evento si ferma (analisi, pacchetto pronto, rilascio in produzione) e cosa succede se il termine non viene rispettato. Chiedi anche chi risponde fuori orario e come lo si contatta: un indirizzo email letto il giorno dopo non è reperibilità.

Per un intervento d’urgenza su una singola CVE il nostro obiettivo è di 24 ore dall’analisi al rilascio, con reperibilità H24 al numero +39 340 985 4556. È un obiettivo, e come tale lo scriviamo: il tempo reale dipende dalla complessità della correzione e dai test necessari.

4. Test, rilascio e rollback

Una patch corretta può comunque rompere un’applicazione che dipende da un comportamento particolare. Per questo conta come viene verificata prima di arrivare in produzione:

  1. se esiste un ambiente di prova con la tua applicazione reale, non solo con i test dell’interprete;
  2. chi esegue le verifiche funzionali e con quali criteri di accettazione;
  3. come avviene l’installazione: a mano, con script o con strumenti di automazione;
  4. qual è il piano per tornare alla versione precedente, e in quanto tempo;
  5. quale documentazione resta dopo ogni rilascio.

Il nostro rilascio passa da un ambiente di prova con l’applicazione reale e avviene con Ansible, con un piano di rollback definito prima di toccare la produzione.

5. Accessi, dati e contratto

Un fornitore che installa pacchetti sui tuoi server può accedere, almeno in teoria, ai dati che quei server trattano. Questo ha conseguenze precise. Se ci sono dati personali, il fornitore agisce di norma come responsabile del trattamento e l’articolo 28 del Regolamento (UE) 2016/679 richiede un contratto con contenuti minimi, tra cui istruzioni documentate, riservatezza, misure di sicurezza e regole sui subfornitori. Se la tua organizzazione è soggetta alla NIS2, il fornitore rientra nella sicurezza della catena di approvvigionamento. Se tratti dati di carte di pagamento, PCI DSS chiede accordi scritti con i fornitori terzi e un monitoraggio annuale della loro conformità.

Le domande pratiche riguardano chi accede, con quali credenziali, da dove, per quanto tempo e con quale tracciamento. Ne parliamo in dettaglio nell’articolo su patching su server di altri fornitori, accessi e GDPR. Per la qualificazione dei ruoli nel tuo caso specifico, fai riferimento al tuo consulente privacy.

6. Durata e uscita

Il supporto esteso deve avere una fine prevista. Le domande sull’uscita sono spesso le più trascurate:

  • per quanto tempo il fornitore si impegna a coprire il ramo, e con quale preavviso può interrompere il servizio;
  • cosa resta al cliente alla fine del contratto: pacchetti installati, elenco delle patch applicate, documentazione;
  • se il fornitore offre o supporta la migrazione verso un ramo supportato, e come si integra con il supporto in corso;
  • se esistono vincoli che rendono difficile cambiare fornitore, come pacchetti con nomi o repository proprietari.

Un’offerta che presenta il supporto esteso come soluzione definitiva sta vendendo un rischio come se fosse una garanzia.

Come confrontare due offerte

Due proposte di supporto esteso raramente sono confrontabili a colpo d’occhio: una indica un canone mensile per server, l’altra un prezzo per intervento, una terza un pacchetto annuale con un numero di ore. Prima di guardare il prezzo conviene riportarle allo stesso schema, chiedendo a ogni fornitore la stessa evidenza per ogni voce.

VoceCosa chiedereEvidenza da ottenere
Coperturaversioni, distribuzioni, SAPI ed estensioni incluseelenco scritto, allegato al contratto
CVEelenco delle vulnerabilità corrette e non applicabilidocumento per versione, con motivazioni
Tempiinizio e fine del conteggio, eccezionidefinizioni scritte nel contratto
Qualitàtest eseguiti prima del rilascioesempio di report di un intervento reale
Rilasciomodalità di installazione e ritorno indietroprocedura scritta e tempi di rollback
Datiruolo privacy, accessi, subfornitoriaccordo sul trattamento e registro degli accessi
Uscitadurata, preavviso, materiali lasciati al clienteclausole di fine contratto
Costocosa è compreso nel canone e cosa si paga a parteesempio di fattura per un mese con un’urgenza
Una griglia comune rende confrontabili offerte con strutture di prezzo diverse.

L’ultima riga è la più rivelatrice. Chiedere quanto costerebbe un mese in cui esce una CVE critica, con analisi, ricostruzione, test e rilascio fuori orario, mostra subito se il canone base copre il caso che conta o se lo esclude. Allo stesso modo, conviene chiedere cosa succede quando una correzione non si può portare sul ramo in uso: un fornitore serio lo dice e propone mitigazioni documentate, invece di dichiarare la vulnerabilità chiusa.

Segnali da osservare

Due colonne. Buoni segnali, con un segno di spunta verde acqua: elenco pubblico delle CVE corrette per versione; pacchetti ricostruiti da quelli che usi già; test con la tua applicazione prima del rilascio; tempi scritti, con il punto di partenza definito; piano di rollback per ogni rilascio; accordo sul trattamento dei dati e accessi tracciati; data di fine e piano di migrazione. Campanelli d’allarme, con una croce rossa: copriamo tutte le CVE senza un elenco; sostituzione completa dello stack senza analisi; nessun ambiente di prova, si installa in produzione; tempi vaghi o solo il prima possibile; credenziali condivise e accessi permanenti; nessun accordo scritto sui dati personali; supporto senza scadenza presentato come definitivo
Ogni campanello d’allarme merita una risposta scritta prima della firma.

Una verifica utile è chiedere un esempio concreto: una CVE recente che riguardava il tuo ramo, l’analisi fatta, la patch applicata e il pacchetto prodotto. Un fornitore con un processo reale può mostrarlo in pochi minuti; anche il changelog del pacchetto installato dovrebbe citare gli identificativi delle CVE corrette.

In conclusione

Prima di firmare un contratto di supporto esteso per PHP, chiedi per iscritto risposte su sei aree: perimetro coperto, processo di analisi delle CVE, tempi e reperibilità con definizioni precise, test e rollback, accessi e accordi sui dati, durata e uscita. Il documento più importante è l’elenco delle CVE corrette per versione, che serve anche negli audit. Diffida delle promesse generiche, delle installazioni senza ambiente di prova e del supporto presentato come definitivo: il backport chiude le vulnerabilità note e dà tempo, mentre la soluzione stabile resta la migrazione a un ramo supportato. Se vuoi mettere alla prova le nostre risposte, le trovi nella sezione sugli interventi.

IL PROSSIMO PASSO

Mettiamo
in sicurezza.

Indicaci versione di PHP, sistema operativo e cosa ti preoccupa. Ti risponderemo con una valutazione dell’esposizione e una proposta di intervento.

Richiedi supporto

Ti porta al modulo di richiesta, in quattro passi.

PHP LEGACY · MANAGED SERVER S.R.L.info@phplegacy.it +39 02 5656 9681

Lunedì – venerdì · 09:30 – 19:30

Urgenza in corso? Reperibilità H24
+39 340 985 4556 ↗