Ran Harel

Aggiornamento del 6 luglio 2021: Microsoft ha rilasciato una patch per CVE 2021-34527, disponibile qui.

Un'altra settimana, un'altra vulnerabilità critica. L'ultima falla di sicurezza critica è denominata "PrintNightmare", un riferimento a due vulnerabilità nel servizio Windows Print Spooler, CVE 2021-1675 e CVE 2021-34527, pubblicate tra giugno e luglio 2021.

CVE 2021-1675 è una vulnerabilità patchata che consente l'esecuzione di codice remoto e l'escalation dei privilegi su server e computer che eseguono lo spooler di stampa. Anche la CVE 2021-34527 consente l'esecuzione di codice remoto e l'escalation dei privilegi sullo stesso servizio attraverso mezzi leggermente diversi. (Aggiornamento del 6 luglio 2021: Microsoft ha rilasciato una patch per CVE-2021-34527) Al momento non è chiara l'esatta relazione tra le due vulnerabilità e se la patch fosse incompleta o se fosse stato scoperto un altro metodo di attacco.

Prima di andare avanti, iniziamo con la linea di fondo, se non l'avete già fatto, disabilitare qualsiasi servizio Windows Print Spooler in esecuzione su un controller di dominio. (Semperis Directory Services Protector (DSP) include indicatori che analizzano continuamente le esposizioni e i segni di compromissione, compresi i Print Spooler abilitati sui controller di dominio).

Semperis Directory Services Protector esegue una scansione continua di AD e segnala gli indicatori di esposizione e compromissione, tra cui un indicatore per la ricerca di controller di dominio con il servizio di spooler di stampa attivo.

Lo spooler di stampa è un servizio di Windows abilitato per impostazione predefinita in tutti i client e server Windows. Il servizio gestisce i lavori di stampa caricando i driver di stampa, ricevendo i file da stampare, accodandoli, pianificandoli e così via.

Il servizio Print Spooler è necessario quando un computer è fisicamente collegato a una stampante che fornisce servizi di stampa ad altri computer della rete. È possibile utilizzare driver e software di terze parti (come quelli offerti dai produttori di stampanti), ma molte organizzazioni si affidano al servizio Print Spooler predefinito.

Sui controller di dominio, gli spooler di stampa sono utilizzati principalmente per la potatura delle stampanti, ovvero per rimuovere lestampanti che sono state pubblicate su Active Directory e che non sono più disponibili sulla rete. La potatura delle stampanti è particolarmente importante in ambienti di grandi dimensioni con molte stampanti, in quanto "pulisce" l'elenco delle stampanti disponibili per gli utenti del dominio. Perché questo approccio funzioni, tuttavia, è necessario che sia presente un Criterio di gruppo appropriato.

Dal punto di vista della sicurezza, lo spooler di stampa di Windows, e le stampanti in generale, sono state per molti anni un obiettivo succulento per lo sfruttamento da parte degli aggressori. Il worm Stuxnet del 2010, utilizzato contro le strutture nucleari iraniane, ha sfruttato una vulnerabilità del servizio per aumentare i privilegi e propagare il malware attraverso la rete. La stessa vulnerabilità del Print Spooler è riemersa nel 2020, quando i ricercatori hanno scoperto nuovi modi per sfruttarla. Se a ciò si aggiunge il fatto che le stampanti sono notoriamente violabili, forse è arrivato il momento di diventare davvero paperless?

Bug di PrintNightmare Zero-Day

L'iterazione di giugno 2021 della vulnerabilità del Print Spooler è iniziata con il Patch Tuesday di giugno 2021 di Microsoft che includeva una patch per la CVE 2021-1675, che all'epoca Microsoft considerava una vulnerabilità di escalation dei privilegi con sfruttamento "meno probabile", con un punteggio CVSS di 6,8 (rischio medio). Il 21 giugno Microsoft ha aggiornato questa CVE per includere l'esecuzione di codice remoto e ha aggiornato il punteggio CVSS a 7,8 (rischio elevato). Pochi giorni dopo, su GitHub è apparso il codice di exploit PoC. Il codice è stato rapidamente messo offline ma è stato già biforcato più volte.

Il 30 giugno è emerso che la patch non era sufficiente e che i sistemi completamente patchati erano ancora vulnerabili all'esecuzione di codice remoto e all'escalation dei privilegi a SYSTEM. Il codice di exploit originale è stato modificato, rendendo la patch solo in parte efficace.

Il 1° luglio Microsoft ha creato una nuova vulnerabilità, CVE 2021-34527. (6 luglio 2021 - Microsoft ha rilasciato una patch).

Spooler di stampa ripartizione delle vulnerabilità

La vulnerabilità dell'esecuzione di codice remoto di Print Spooler sfrutta la chiamata di funzione RpcAddPrinterDriver nel servizio Print Spooler che consente ai client di aggiungere file dll arbitrari come driver di stampa e di caricarli come SYSTEM (il contesto del servizio Spooler).

La funzione è stata progettata per consentire agli utenti di aggiornare le stampanti in remoto, ad esempio il personale IT che installa in remoto la nuova stampante dell'ufficio. Tuttavia, una falla logica nel funzionamento consente a qualsiasi utente di iniettare la propria dll non firmata nel processo, aggirando l'autenticazione o la convalida del file.

Attenuare l'incubo della stampa

Aggiornamento del 7 luglio 2021 - Microsoft ha rilasciato una patch per CVE 2021-34527. Si consiglia comunque di disabilitare lo spooler di stampa quando non è necessario. È possibile disattivare il servizio di spooler di stampa in tutti i DC (o in qualsiasi altro computer) utilizzando l'impostazione Criteri di gruppo in Configurazione computerImpostazioni WindowsImpostazioni di sicurezzaServizi di sistema o, meglio ancora, utilizzando Preferenze GP in Configurazione computerPreferenzeImpostazioni pannello di controlloServizi. Un'ulteriore soluzione non ufficiale consiste nel limitare l'accesso alla cartella del driver da cui viene caricato il servizio. Questa operazione deve essere eseguita su ogni server e non è stata testata a fondo per quanto ne so, quindi è da usare a proprio rischio e pericolo.

Protezione dei controller di dominio

I controller di dominio non dovrebbero mai essere utilizzati come server di stampa. L'unica ragione legittima che conosco per avere Print Spooler in esecuzione su un DC è il potenziamento delle stampanti di cui sopra. Oltre alle numerose vulnerabilità del Print Spooler di Windows, un vettore di attacco contro questo servizio noto come "il bug della stampante" consente a un aggressore in grado di compromettere una risorsa con delega Kerberos non vincolata di compromettere anche il DC con privilegi SYSTEM. Una buona spiegazione di questo attacco si trova qui.

Monitoraggio continuo delle vulnerabilità come PrintNightmare

Le vulnerabilità nelle infrastrutture IT comunemente utilizzate vengono riscontrate con cadenza settimanale. I brevi tempi di ciclo che intercorrono tra la divulgazione e l'uso di armi richiedono un approccio di mitigazione rapido che includa il monitoraggio continuo dell'ambiente, unito alla definizione delle priorità e a informazioni di rimedio attuabili.

Il prodotto di Semperis Directory Services Protector (DSP) include indicatori che analizzano continuamente le esposizioni e i segni di compromissione negli ambienti di identità ibridi (compreso il rilevamento degli spooler di stampa abilitati sui controller di dominio) e fornisce priorità, metriche e indicazioni prescrittive per la correzione.

Altre risorse

Volete saperne di più su come affrontare PrintNightmare, PetitPotam e altri nuovi attacchi che prendono di mira Active Directory? Sintonizzatevi su Migliorare le difese di Active Directory: Lezioni apprese da recenti attacchi come PrintNightmareun seminario web gratuito e on-demand tenuto da Sean Deuby, Direttore dei servizi di Semperis.