KB3170455 e Warning installazione stampanti condivise

Il 12 luglio 2016 è stata rilasciata la KB3170455 MS16-087: Description of the security update for Windows print spooler components: July 12, 2016 per risolvere vulnerabilità sfruttabili per condurre attacchi man-in-the-middle (MiTM) su workstation o server di stampa o per impostare  server di stampa non autorizzati, la più grave di queste vulnerabilità potrebbe anche consentire l’esecuzione di codice.

Per maggiori informazioni su questa vulnerabilità è possibile vedere il Microsoft Security Bulletin MS16-087 Security Update for Windows Print Spooler Components (3170005) e il post Pwned by your printer! Microsoft patches critical Printer Spooler bug.

Per controllare rapidamente se la KB3170455 è stata installata è possibili utilizzare il seguente comando:

wmic.exe qfe GET HOTFIXID | find “KB3170455”

L’installazione della KB3170455 (dell’aggiornamento cumulativo KB3163912 per Windows 10 o dell’aggiornamento cumulativo KB3172985 per Windows 10  Versione 1511 e Windows Server 2016 Technical Preview 4) può causare alcuni issues descritti nella KB3170005 MS16-087: Security update for Windows print spooler components: July 12, 2016.

Nel caso in cui una stampante condivisa utilizzi driver di stampante V3 non-package-aware agli utenti comparirà il seguente messaggio di avviso quando tentano di aggiungere una stampante condivisa o nel caso sia stato aggiornato il driver sul server:

Nel caso in cui una stampante condivisa utilizzi un driver package-aware non firmato con  un certificato attendibile o che i file del driver non abbiano l’hash nel catalogo il processo di verifica fallisce, il driver viene ritenuto non affidabile e l’installazione bloccata visualizzando il seguente messaggio di errore:

image

La KB3170005 riporta due possibili soluzioni per risolvere il problema che però non sempre sono di semplice applicazioni in determinati scenari.

Soluzione 1: Aggiornare il driver della stampante se il produttore ne ha rilasciato uno che è driver package-aware e firmato con  un certificato attendibile. Purtroppo va detto che al momento alcuni fornitori non hanno rilasciato driver con le caratteristiche richieste, ad esempio Sharp per il modello AR-M450N non ha ancora rilasciato driver V3 package-aware firmati digitalmente, sembra che anche Canon abbia stampanti che hanno il problema e forse rilascerà driver aggiornati a breve, un altro vendor di stampanti che pare abbia driver con il problema in oggetto sembra sia Konica Minolta.

Soluzione 2: Pre installare sul client i driver, ma anche questa soluzione può non essere percorribile in scenari con un gran numero di stampanti con driver diversi ed in ogni caso occorre prevedere l’automazione del deploy dei driver sui client.

Esistono anche altre possibili soluzioni patendo dal fatto che ovviamente in questo scenario la Group Policy Restrizioni di selezione e stampa in Configurazione utente/Criteri/Modelli amministrativi/ Pannello di controllo/Stampanti o in Configurazione computer/Criteri/Modelli amministrativi/Stampanti non può essere utile (per informazioni su tali GPO si veda Allowing Standard Users to Install Network Printers on Windows 7 without Prompting for Administrative Credentials)

Soluzione 3:  Nel caso si abbia un driver V3 non package-aware, ma firmato digitalmente (sembra che sia il caso di alcune stampanti Canon) è possibile modificare l’impostazione package aware intervenendo sulla chiave di registro HKLM\System\CurrentControlSet\Control\Print\Enviroments\Windowsx64\Drivers\Version-3\Nome Driver\PrinterDriverAttributes nel caso di driver a 64 bit o HKLM\System\CurrentControlSet\Control\Print\Enviroments\Windows NT x86\Drivers\Version-3\Nome Driver\PrinterDriverAttributes nel caso di driver a 32 bit.

E’ possibile provare a impostare il flag PRINTER_DRIVER_PACKAGE_AWARE come descritto in

DRIVER_INFO_8 structure impostando a 1 il primo bit, quindi se ad esempio il valore di PrinterDriverAttributes è 0 occorre impostarlo ad 1.

Dopo aver eseguito tale modifica occorre riavviare il server e verificare che il driver risulti impostato come package aware:

image

Ovviamente questa soluzione comporta una serie numerosa di modifiche al registro nel caso di gran numero di stampanti con driver diversi.

In ogni caso come detto precedentemente se il driver non è firmato con un certificato attendibile questa soluzione non risolve il problema del Warning di avviso con conseguente richiesta di credenziali amministrative, come ad esempio nel caso dei driver per la Sharp modello AR-M450N.

Soluzione 4: Consentire agli utenti non amministratori di installare i driver di stampanti, è possibile concedere tale privilegio tramite la Group Policy Configurazione computer/Criteri/Modelli amministrativi/Consenti agli utenti non amministratori di installare i driver per queste classi di installazione dispositivi (a riguardo si veda Configure Computer Policy to Allow Non-Administrators to Install Specific Devices).

Per configurare tale Group Policy occorre impostare il GUID delle classi dei dispositivi che si intende installare senza privilegi amministrativi, è possibile ricavare i GUID dal seguente System-Defined Device Setup Classes Available to Vendors.

Ad esempio il GUID per le stampanti è il seguente:

{4d36e979-e325-11ce-bfc1-08002be10318}

Di seguito altri GUID che potrebbe essere necessario configurare:

{4658ee7e-f050-11d1-b6bd-00c04fa372a7}

Printers, Bus-specific class drivers

Class = PNPPrinters

This class includes SCSI/1394-enumerated printers. Drivers for this class provide printer communication for a specific bus.


{49ce6ac8-6f86-11d2-b1e5-0080c72e74a2}

IEEE 1284.4 Print Functions

Class = Dot4Print

This class includes Dot4 print functions. A Dot4 print function is a function on a Dot4 device and has a single child device, which is a member of the Printer device setup class.


{48721b56-6795-11d2-b1a8-0080c72e74a2}

IEEE 1284.4 Devices

Class = Dot4

This class includes devices that control the operation of multifunction IEEE 1284.4 peripheral devices.

Ovviamente è consigliabile abilitare solo le classi necessarie e utilizzare tale Group Policy solo fino a quando non si hanno a disposizione driver aggiornati e compliance con i requisiti della KB3170455 in quanto di fatto apre la possibilità di installare driver agli utenti che potrebbe contenere codice malevolo.

Se possibile quindi sarebbe opportuno abilitare tale Group Policy solo su specifica necessità.

Nel caso del driver per la stampante Sharp AR-M450N dopo aver configurato tale Group Policy è stato possibile installare la stampante anche se il Warning relativo all’affidabilità della stampante anche se era configurata anche la Group Policy Restrizioni di selezione e stampa, ma senza richiedere credenziali amministrative durante il processo di installazione del driver.