Aggiornamento php, versioni supportate e non supportate

Quali versione di php è in uso nei vostri server e verifica della sicurezza

Fine supporto php 7.4 ovvero EOL (End Of Life)

Dal 28 Novembre 2022 e’ terminato il supporto di sicurezza al PHP 7.4 (nella sua ultima release 7.4.33) (fonte Unsupported Branches php.net).

Versioni PHP in uso

Nonostante sia finito il supporto a php 7.4 da mesi, le statistiche di rilevamento, a maggio 2023 (fonte W3techs) indicano che oltre l’88% dei server usa versioni non piu’ supportate per la sicurezza, ovvero PHP dal 7.4 a versioni ancora più obsolete. Solo una piccola percentuale ha adottato le nuove versioni tra cui la 8.0 che ricevera’ supporto fino a Novembre 2023.

Queste le percentuali di uso delle versioni PHP

  • Versione PHP 8 11.9%
  • Versione PHP 7 66.4%
  • Versione PHP 5 21.5%
  • Versione PHP 4 0.2%

Tra gli utenti di php 8 troviamo la maggioranza degli utenti che usano una versione che scadra’ a breve.

  • Versione PHP 8.0 54.6%
  • Version PHP 8.1 39.9%
  • Version PHP 8.2 5.5%
  • Version PHP 8.4 <0.1%

Nel frattempo, dal 28 Novembre scorso, sono stati scoperti per il PHP 8 numerosi nuovi problemi di sicurezza (fonte changelog php.net) che molto probabilmente affliggono anche le versioni precedenti (PHP 7.4, 7.3, 7.2, 7.0, etc.).
Alcuni di questi problemi di sicurezza sono stati classificati secondo il sistema CVSS (versione 3) anche come gravi.

Problemi di sicurezza PHP

Ecco alcuni esempi di problemi di sicurezza riscontrati nelle ultime versioni del php.

SAPI: DOS vulnerability when parsing multipart request body. (CVE-2023-0662)
PDO/SQLite: PDO::quote() may return unquoted string. (CVE-2022-31631)
GD: bug #81739: OOB read due to insufficient input validation in imageloadfont(). (CVE-2022-31630)
Hash: bug #81738: buffer overflow in hash_update() on long parameter. (CVE-2022-37454)
Phar: bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628)
Mysqlnd: bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626)
Pgsql: bug #81720: Uninitialized array in pg_query_params(). (CVE-2022-31625)
XML: bug #79971 special character is breaking the path in xml function. (CVE-2021-21707)
FPM: bug #81026 PHP-FPM oob R/W in root process leading to privilege escalation (CVE-2021-21703).

Oltre a beneficiare dei fix sulla sicurezza, disporre di una versione aggiornata del php offre, in genere, dei miglioramenti nelle prestazioni del sito web. In alcuni casi si possono ottenere riduzioni nei tempi di risposta rilevanti, anche superiori al 100% di richieste al secondo in più a parità di risorse.
Dal sito di Kinsta si possono rilevare i risultati di test eseguiti sulle prestazioni di WordPress con diverse versioni di PHP.

Se non avete ancora applicato i fix di sicurezza sui vostri sistemi e’ urgente aggiornare PHP o affidare a sistemisti esperti le procedure di aggiornamento dei server web.
SicurezzaRete offre assistenza per eseguire l’aggiornamento del php a versioni sicure e supportate sui vostri sistemi.

Fine supporto e migrazione CentOS 7

Quando termina il supporto CentOS 7?

La fine del supporto, o EOL (End-Of-Life), per CentOS 7 è fissata al 30 giugno 2024

CentOS 7 è installato oggi su milioni di server. Purtroppo dopo giugno 2024 non ci saranno più aggiornamenti di sicurezza. Questo potrebbe essere un problema per numerosi server in produzione.

Cosa cambia con CentOS 7?

Nel dicembre 2020 Red Hat Software, la società che ha sponsorizzato il progetto della comunità CentOS, ha annunciato che non produrrà più versioni stabili del progetto CentOS, il clone libero della versione di Red Hat Enterprise Linux (RHEL). Red Hat ora supporta solo CentOS Stream, che è una versione di sviluppo di RHEL.

La versione principale di CentOS 8 doveva essere l’ultima versione stabile della comunità del clone RHEL e Red Hat ha anticipato la sua data di fine vita a dicembre 2021. Questo significa che CentOS 8 ha già raggiunto la fine del supporto. Il supporto di CentOS 7 continua fino a giugno 2024, ma non ci sarà una successiva versione stabile di CentOS a cui passare in seguito.

Che fare quando cessa il supporto a CentOS 7?

Rimane poco più di 1 anno per migrare, ma il tempo corre. Normalmente si dovrebbe migrere a CentOS 8 entro il periodo di tempo disponibile, ovvero prima di luglio 2024. Ma CentOS 8 ora è già EOL ovvero End-Of-Life, non è più supportato, quindi il passaggio a CentOS 8 non è un’opzione e non ci sarà neppure una versione di CentOS 9.

Per la maggior parte degli utenti aziendali e dei server in produzione, CentOS Stream non è un’opzione. La sua natura “rolling” significa che non è una copia esatta della versione RHEL corrispondente, quindi la compatibilità delle applicazioni può facilmente interrompersi o nuovi bugs essere introdotti. Devi passare a un’altra distribuzione Linux o trovare un modo per estendere il supporto di CentOS 7.

Trovare un’alternativa significa testare tutti i tuoi workloads su una distribuzione diversa, e questa è un’operazione a lungo termine che richiede una pianificazione approfondita.

Fine supporto CentOS7 EOL migrazione centos 7
Fine supporto CentOS7 EOL migrazione centos 7

Devo migrare CentOS 7?

Per avere un sistema aggiornato e sicuro devi migrare CentOS7 visto che non ci saranno aggiornamenti di sicurezza dopo il 30 giugno 2024.
Puoi migrare ad Almalinux 8 o Oracle Linux 8 oppure Rocky Linux 8.

Negli anni scorsi non era possibile migrare i sistemi operativi basati su RHEL, tra cui CentOS, da una Major release al quella successiva.
Visti gli ultimi sviluppi imposti dalla casa produttrice di questo OS si sono affacciate nuovi progetti che oggi permettono la migrazione.

Come posso migrare da CentOS 7 ad un nuovo sistema operativo aggiornato?

Il progetto piu’ importante che lo permette si chiama ELevate.
La migrazione può essere eseguita “sul posto” ovvero conservando dati e configurazioni. In altre parole le applicazioni installate e le impostazioni rimarranno inalterate. In ogni caso è obbligatorio eseguire un completo backup di dati e del sistema prima di procedere all’aggiornamento.

Alcune note importanti:
1) e’ obbligatorio eseguire un backup di sistema e dati prima di procedere
2) l’upgrade richiedera’ di eseguire dei riavvi di sistema
3) Poichè ELevate e’ un tool ancora in fase di test si consiglia, prima di procedere sui server in produzione, di eseguire dei test interni su sistemi di prova.

GLI AUTORI DEL PRESENTE ARTICOLO DECLINANO OGNI RESPONSABILITA’ DERIVANTE DALL’ USO DI QUANTO DESCRITTO.
LA MIGRAZIONE DEL SISTEMA OPERATIVO E’ UNA OPERAZIONE CHE PRESENTA POTENZIALI RISCHI E LA POSSIBILE PERDITA DI DATI O DI INTERRUZIONE DEL FUNZIONAMENTO DEI SERVIZI. QUESTO POICHE’ OGNI INSTALLAZIONE E CONFIGURAZIONE SOFTWARE ED HARDWARE E’ SPECIFICA.
SE NON SI DESIDERA CORRERE I RISCHI DI COMPIERE UNA OPERAZIONE POTENZIALMENTE DANNOSA E/O BLOCCANTE SI CONSIGLIA DI FAR EFFETTUARE LA MIGRAZIONE DI CENTOS 7 DA SISTEMISTI ESPERTI.
Il nostro suggerimento è di affidarti a sicurezzarete.com

La procedura per migrare CentOS,

Di seguito saranno descritti i passa da eseguire per passare da CentOS 7 a un sistema derivato da RHEL8 come AlmaLinux, CentOS Stream, Oracle e Rocky Linux. Useremo l’utente root.

1) aggiornare CentOS 7
Come prima cosa occorre avere un sistema con CentOS 7 installato e funzionante.
Successivamente, se già non lo fosse, occorre aggiornare all’ultima versione il sistema CentOS 7 e riavviare il server, cosi’ da caricare il nuovo kernel.

yum update -y
reboot

2) installare ELevate
Ora si deve installare il tool di aggiornamento scaricando il software necessario

yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm

Installiamo anche i pacchetti leapp rispettivamente richiesti per il sistema verso cui vogliamo migrare. Le possibili scelte sono:

leapp-data-almalinux
leapp-data-centos
leapp-data-eurolinux
leapp-data-oraclelinux
leapp-data-rocky

Nel nostro caso migreremo un sistema CentOS 7 ad Almalinux 8 usando il comando:

yum install -y leapp-upgrade leapp-data-almalinux

Avviamo ora un check di pre-upgrade che creera’ un file di report utile a capire eventuali problemi e soluzioni da adottare per completare la procedura.

leapp preupgrade

Il file generato è:
/var/log/leapp/leapp-report.txt

In questa fase il sistema non verra’ ancora modificato.

CONSIGLI:
In alcune configurazioni, Leapp genera /var/log/leapp/answerfile con domande vero/falso. L’utilità Leapp richiede risposte a tutte queste domande per poter procedere con l’aggiornamento.

Le correzioni dal file /var/log/leapp/leapp-report.txt sono obbligatorie, ma puoi anche rivedere le altre se necessario.

Avviso:
Il controllo di pre-aggiornamento potrebbe avere esito negativo poiché CentOS 7 in installazione minima non soddisfa tutti i requisiti per la migrazione.

rmmod pata_acpi
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config
leapp answer –section remove_pam_pkcs11_module_check.confirm=True

Controlla la pagina
https://wiki.almalinux.org/elevate/ELevate-frequent-issues
per problemi noti e frequenti e istruzioni per risolverli.

Avvia l’aggiornamento. Ti verrà offerto di riavviare il sistema al termine di questo processo.

leapp upgrade
reboot

Apparirà una nuova voce in GRUB chiamata ELEvate-Upgrade-Initramfs. Il sistema verrà avviato automaticamente al suo interno. Guarda come va il processo di aggiornamento nella console.

Dopo il riavvio, accedi al sistema e controlla come è andata la migrazione. Verifica che il sistema operativo corrente sia quello che ti serve.

cat /etc/redhat-release
cat /etc/os-release
rpm -qa | grep centos