Microsoft ha rilasciato, in tempi record, un aggiornamento di sicurezza ufficiale per correggere la vulnerabilità zero-day PrintNightmare del servizio Windows Print Spooler che ha un impatto su tutte le versioni di Windows.
Anche se al momento il fix è parziale risolvendo solo lo sfruttamento remoto (la vulnerabilità può infatti ancora essere sfruttata localmente per ottenere i privilegi di SISTEMA) e gli aggiornamenti di sicurezza non sono ancora stati rilasciati per Windows 10 versione 1607/1803, Windows Server 2016 e Windows Server 2012, è comunque un’ottima notizia.
Microsoft assicura che gli aggiornamenti completi e per tutte le versioni di Windows verranno pubblicati al più presto.
I dettagli d’installazione di questi aggiornamenti di sicurezza sono disponibili sul portale di supporto Microsoft:
- Windows 10, versione 21H1 (KB5004945)
- Windows 10, versione 20H1 (KB5004945)
- Windows 10, versione 2004 (KB5004945)
- Windows 10, versione 1909 (KB5004946)
- Windows 10, versione 1809 e Windows Server 2019 (KB5004947)
- Windows 10, versione 1803 (KB5004949), non ancora disponibile
- Windows 10, versione 1507 (KB5004950)
- Windows 8.1 e Windows Server 2012 (aggiornamento cumulativo mensile KB5004954/solo protezione KB5004958)
- Windows 7 SP1 e Windows Server 2008 R2 SP1 (aggiornamento cumulativo mensile KB5004953/solo protezione KB5004951)
- Windows Server 2008 SP2 (aggiornamento cumulativo mensile KB5004955/solo protezione KB5004959)
Microsoft, invita i propri clienti a installare immediatamente questi aggiornamenti di sicurezza fuori banda per affrontare nel migliore dei modi la vulnerabilità di PrintNightmare e di applicare anche le misure di mitigazione suggerite nei precedenti comunicati.
Indice degli argomenti
Disponibili anche le patch non ufficiali su 0patch
Sul sito 0patch, inoltre, sono disponibili anche le prime patch non ufficiali per PrintNightmare.
Gli esperti di 0patch hanno infatti messo insieme le misure di mitigazione indicate da Microsoft per bloccare gli attaccanti dal compromettere i sistemi vulnerabili e ha rilasciato due micropatch gratuite per le versioni di Windows Server 2019, 2016, 2012 (aggiornati con gli aggiornamenti di giugno 2021) e 2008 R2 (con gli aggiornamenti di gennaio 2020 installati e nessun aggiornamento di sicurezza esteso).
I responsabili di 0patch, comunque, hanno pubblicato un post su Twitter per avvisare gli utenti che l’applicazione dell’aggiornamento ufficiale rilasciato da Microsoft modifica alcuni elementi del sistema che rendono inutili le micro patch “unofficial”.
PrintNightmare, storia di un incubo per la sicurezza
La vulnerabilità PrintNightmare, lo ricordiamo, può consentire a un attore malevolo di prendere il controllo remoto di un sistema target. Mentre l’aggiornamento del Patch Tuesday di giugno non avrebbe risolto il problema di sicurezza, Microsoft conferma che il bug PrintNightmare classificato come critico coinvolgerebbe tutte le versioni di Windows.
La vulnerabilità identificata come CVE-2021-1675, inizialmente valutata importante da Microsoft, sembrava risolta dagli aggiornamenti di sicurezza del Patch Tuesday dello scorso 8 giugno . Si trattava di una falla di elevazione dei privilegi (EoP) che avrebbe permesso a un utente malintenzionato già autenticato sul sistema di ottenerne il relativo controllo completo.
È solo con l’aggiornamento del bollettino di sicurezza del 21 giugno che tale vulnerabilità, già abbastanza grave di per sé, è diventata ancora più critica a causa delle nuove possibilità di sfruttamento rilevate e che consentirebbero anche l’esecuzione di codice da remoto (RCE, Remote Code Execution).
Il giallo nascosto dietro la vicenda sembrerebbe collegato alla decisione presa dai ricercatori della società di sicurezza informatica cinese Sangfor di divulgare sulla piattaforma Github il proprio Proof-of-Concept riguardo al bug correlato allo spooler di stampa (ritenuto già risolto), prima della conferenza Black Hat prevista per il prossimo mese di agosto 2021.
In realtà, il lavoro di analisi divulgato avrebbe involontariamente documentato un bug RCE non ancora rivelato (né tantomeno risolto con il Patch Tuesday di giugno), scatenando così inconsapevolmente un exploit zero-day. Successivamente, anche se i ricercatori hanno eliminato le informazioni, una volta scoperto l’errore, ormai era troppo tardi, perché il codice dell’exploit era già stato scaricato e condiviso.
Questo zero-day è stato soprannominato per l’appunto PrintNightmare da Microsoft e classificato con un nuovo identificativo CVE-2021-34527 in un aggiornamento di protezione emanato proprio agli inizi di luglio.
I dettagli della vulnerabilità PrintNightmare
Nell’ultimo aggiornamento, Microsoft ha confermato che “esiste una vulnerabilità legata all’esecuzione di codice in modalità remota quando il servizio Spooler di stampa di Windows esegue in modo improprio operazioni sui file con privilegi. Sfruttando questa vulnerabilità, un utente malintenzionato può eseguire codice arbitrario con privilegi SYSTEM. Un utente malintenzionato può quindi installare programmi, visualizzare, modificare o eliminare dati o creare nuovi account con diritti utente completi. Un attacco deve coinvolgere un utente autenticato che chiama RpcAddPrinterDriverEx()”.
Pur essendo ancora una situazione in evoluzione e che verrà aggiornata non appena saranno disponibili ulteriori informazioni, Microsoft precisa, cercando di fare chiarezza sulla questione, che PrintNightmare, con un vettore di attacco diverso, è una vulnerabilità simile ma distinta da quella identificata con l’indice CVE-2021-1675 e risolta dall’aggiornamento di sicurezza rilasciato l’8 giugno 2021.
È importante sottolineare, anche, che PrintNightmare impatta su tutte le versioni di Windows e ne è stata già rilevato lo sfruttamento in natura.
Le soluzioni di mitigazione alternative
Nel frattempo, fino a quando Microsoft non rilascerà gli aggiornamenti di sicurezza di PrintNightmare anche la US Cybersecurity and Infrastructure Security Agency (CISA) ha emesso un avviso incoraggiando gli amministratori a disabilitare il servizio spooler di stampa di Windows nei controller di dominio e nei sistemi non utilizzati per la stampa e ad applicare le necessarie soluzioni alternative, riferendosi anche alle best practice di sicurezza già rilasciate da Microsoft all’inizio del 2021.
Inoltre, il Centro di coordinamento del CERT (CERT/CC) in una nota di vulnerabilità punta i riflettori sulla responsabilità della funzione RPC di Windows, utilizzata per installare i driver di stampa sui sistemi: Con privilegi elevati su un sistema vulnerabile “inviando una richiesta RPC RpcAddPrinterDriverEx(,) ad esempio tramite SMB, un utente malintenzionato remoto e autenticato potrebbe essere in grado di eseguire codice arbitrario”.
“I sistemi Microsoft Windows”, continua la nota, “configurati per essere controller di dominio e quelli in cui il Point and Print è configurato con l’opzione “NoWarningNoElevationOnInstall” sono ancora vulnerabili.”
Nell’ultimo bollettino di sicurezza Microsoft suggerisce:
- agli amministratori di rete di disabilitare Windows Print Spooler e la stampa remota disattivando il criterio di gruppo Consenti allo spooler di stampa di accettare connessioni client, configurando le impostazioni per la gestione delle stampanti in Active Directory (Computer Configuration / Administrative Templates / Printers);
- agli utenti di disattivare il servizio di spooler localmente tramite dei comandi Powershell nel modo seguente:
- Usare la barra delle applicazioni o il menu Start di Windows per cercare la voce Powershell;
- Fare clic con il pulsante destro del mouse su Powershell e selezionare Esegui come amministratore;
- nel prompt di Powershell, eseguire il comando per disabilitare lo spooler di stampa di Windows: Stop-Service -Name Spooler -Force;
- successivamente, eseguire questo comando per impedire a Windows di riattivare i servizi di spooler di stampa all’avvio: Set-Service -Name Spooler -StartupType Disabled. I servizi di spooler potranno essere riattivati in seguito usando i comandi Set-Service -Name Spooler -StartupType Automatic e Start-Service -Name Spooler.
In alternativa, il ricercatore Paul Ducklin di Sophos consiglia agli utenti locali attraverso la finestra del prompt dei comandi “cmd.exe” eseguita come amministratore:
- di vedere se il servizio spooler è in esecuzione localmente sul computer, utilizzando il comando Windows Service Control (sc) digitando sc query Spooler;
- di impedire allo spooler di avviarsi in automatico, anche dopo un riavvio, digitando sc config spooler start= disabled;
- di consultare il registro di sistema Windows regedit.exe per trovare i dati del servizio spooler nella chiave di registro Hkey_Local_MachineSystemCurrentControlSetServicesSpoole”. Il valore numerico della variabile di registro “Start” consente, infatti, di determinare l’abilitazione e l’avvio del servizio (0 all’avvio, 1 durante il caricamento di Windows, 2 automaticamente quando il software Windows System Control Manager è in esecuzione, 3 solo quando richiesto esplicitamente, 4 disabilitato)
Considerazioni finali
La concomitante mancanza momentanea di un fix risolutivo, l’esistenza di un PoC in circolazione e l’impostazione predefinita del servizio di spooler su client e server Windows rendono PrintNightmare una vulnerabilità estremamente pericolosa.
Fino a quando non saranno disponibili degli aggiornamenti di sicurezza ufficiali, l’implementazione delle mitigazioni suggerite rappresentano al momento l’unico modo ragionevole per impedire che un attore malevolo non colga l’occasione propizia per violare la sicurezza di una rete e la privacy dei relativi utenti.
Articolo aggiornato in seguito al rilascio delle patch ufficiali Microsoft.