Una vulnerabilità in Windows Defender Application Control (WDAC), classificata con una gravità elevata e identificata come CVE-2019-1167, potrebbe consentire ad un attaccante di eludere le misure di sicurezza imposte da WDAC e aggirare le restrizioni del PowerShell Core Constrained Language Mode (una modalità di sicurezza che, lo ricordiamo, limita l’accesso a determinate API di Windows).
La vulnerabilità, in particolare, affligge le seguenti versioni di PowerShell Core:
- PowerShell Core 6.1: versioni precedenti la 6.1.5
- PowerShell Core 6.2: versioni precedenti la 6.2.2
Indice degli argomenti
Vulnerabilità in Windows Defender Application Control: dettagli
Se sfruttata, la vulnerabilità consentirebbe ad un criminal hacker di bypassare le limitazioni che il Windows Defender Application Control impone alle applicazioni che gli utenti possono eseguire e al codice che viene eseguito in modalità kernel. Inoltre, consentirebbe anche di superare il blocco che WDAC applica ad eventuali script dannosi e all’esecuzione di installer in formato MSI non firmati.
In poche parole, la vulnerabilità in Windows Defender Application Control potrebbe consentire ad un eventuale attaccante di eseguire programmi non attendibili anche sui sistemi in cui WDAC è abilitato.
Per poter sfruttare questa vulnerabilità, l’attaccante deve prima ottenere un accesso come amministratore alla macchina bersaglio sulla quale è in esecuzione PowerShell in modalità Constrained Language Mode.
Superata questa prima fase, l’attaccante potrebbe sfruttare lo strumento di debug degli script per abusare dei moduli firmati ed eseguire qualunque tipo di codice senza più alcuna restrizione.
Come scoprire se il proprio sistema è vulnerabile
Per capire se il nostro sistema è vulnerabile, è sufficiente seguire queste semplici istruzioni:
- innanzitutto, eseguiamo il comando pwsh -v per conoscere la versione di PowerShell Core installata nel sistema; quindi, controlliamo la versione del software interessato per vedere se la nostra è interessata dalla vulnerabilità;
- se stiamo eseguendo una versione di PowerShell Core interessata, colleghiamoci alla pagina delle release e scarichiamo una delle versioni più recenti, che sono la 6.2.2.2 o la 6.1.5;
- come ulteriore verifica, proviamo ad eseguire il comando pwsh.exe: se non funziona, allora stiamo usando PowerShell Core 6.0 ed è quindi necessario procedere quanto prima con l’aggiornamento ad una versione più recente.
Correggere la vulnerabilità in Windows Defender Application Control
Vista la gravità della vulnerabilità presente nel modulo Windows Defender Application Control, Microsoft ha prontamente rilasciato un aggiornamento per PowerShell Core che risolve il problema.
Prima di installarlo, verifichiamo se il nostro sistema operativo è a 32 o a 64 bit:
- Windows 10 e Windows 8.1
- clicchiamo sul pulsante Start e spostiamoci in Impostazioni/Sistema/Informazioni su;
- nella nuova schermata spostiamoci in Specifiche dispositivo e individuiamo la versione del sistema operativo nella sezione Tipo sistema.
- Windows 7
- clicchiamo sul pulsante Start, selezioniamo col pulsante destro del mouse la voce Computer e scegliamo Proprietà dal menu contestuale che appare;
- nella nuova schermata spostiamoci nella sezione Sistema e individuiamo la versione di Windows installata nel computer.
Fatto questo, possiamo scaricare il security update per PowerShell Core 6.1 o per PowerShell Core 6.2. Nelle stesse pagine dei security update sono disponibili anche gli aggiornamenti di PowerShell Core per tutti gli altri sistemi operativi supportati.
Come installare l’aggiornamento di PowerShell Core
Per procedere con l’aggiornamento ad una nuova versione di PowerShell è possibile seguire le semplici istruzioni riportate direttamente sul sito Microsoft e disponibili per i vari sistemi operativi supportati:
- installazione di PowerShell Core in Windows
- installazione di PowerShell Core in Linux
- installazione di PowerShell Core in macOS
- installazione di PowerShell Core in ARM