Usare Controllo app per proteggere PowerShell
Windows 10 include due tecnologie, Controllo app per le aziende e AppLocker, che è possibile usare per controllare le applicazioni. Consentono di creare un'esperienza di blocco per proteggere l'ambiente PowerShell.
AppLocker si basa sulle funzionalità di controllo delle applicazioni dei criteri di restrizione software. AppLocker consente di creare regole per consentire o negare le app per utenti o gruppi specifici. Le app vengono identificate in base a proprietà univoce dei file.
Controllo delle applicazioni per le aziende, introdotto in Windows 10 come Windows Defender Application Control (WDAC), consente di controllare quali driver e applicazioni possono essere eseguiti in Windows.
Rilevamento dei criteri di blocco
PowerShell rileva sia i criteri a livello di sistema appLocker che di Controllo app per le aziende. AppLocker non ha modo di eseguire query sullo stato di imposizione dei criteri. Per rilevare se un criterio di controllo delle applicazioni a livello di sistema viene applicato da AppLocker, PowerShell crea due file temporanei e verifica se possono essere eseguiti. I nomi file usano il formato del nome seguente:
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.ps1
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.psm1
Controllo app per le aziende è il sistema di controllo delle applicazioni preferito per Windows. Controllo app fornisce API che consentono di individuare la configurazione dei criteri. Controllo app è progettato come funzionalità di sicurezza in base ai criteri di manutenzione definiti da Microsoft Security Response Center (MSRC). Per altre informazioni, vedere Controlli applicazione per la disponibilità delle funzionalità di Controllo app e Windows e AppLocker.
Nota
Quando si sceglie Controllo app o AppLocker, è consigliabile implementare il controllo delle applicazioni usando Controllo app per le aziende anziché AppLocker. Microsoft non investe più in AppLocker. Anche se AppLocker potrebbe continuare a ricevere correzioni di sicurezza, non riceverà miglioramenti delle funzionalità.
Applicazione dei criteri di controllo delle app
Quando PowerShell viene eseguito con criteri di controllo delle app, il comportamento cambia in base ai criteri di sicurezza definiti. In un criterio di Controllo app PowerShell esegue script e moduli attendibili consentiti dai criteri in FullLanguage
modalità. Tutti gli altri script e blocchi di script non sono attendibili ed eseguiti in ConstrainedLanguage
modalità . PowerShell genera errori quando gli script non attendibili tentano di eseguire azioni non consentite in ConstrainedLanguage
modalità. Può essere difficile sapere perché uno script non è riuscito a essere eseguito correttamente in ConstrainedLanguage
modalità.
Controllo dei criteri di controllo delle app
PowerShell 7.4 ha aggiunto una nuova funzionalità per supportare i criteri di controllo delle app in modalità di controllo . In modalità di controllo PowerShell esegue gli script non attendibili in ConstrainedLanguage
modalità senza errori, ma registra invece i messaggi nel registro eventi. I messaggi di log descrivono quali restrizioni verranno applicate se i criteri fossero in modalità di imposizione .
Cronologia delle modifiche
Windows PowerShell 5.1 è la prima versione di PowerShell a supportare Controllo app. Le funzionalità di sicurezza di Controllo app e AppLocker migliorano con ogni nuova versione di PowerShell. Le sezioni seguenti descrivono come questo supporto è cambiato in ogni versione di PowerShell. Le modifiche sono cumulative, quindi le funzionalità descritte nelle versioni successive includono quelle delle versioni precedenti.
Modifiche in PowerShell 7.4
In Windows, quando PowerShell viene eseguito con criteri di controllo delle app, il comportamento cambia in base ai criteri di sicurezza definiti. In un criterio di Controllo app PowerShell esegue script e moduli attendibili consentiti dai criteri in FullLanguage
modalità. Tutti gli altri script e blocchi di script non sono attendibili ed eseguiti in ConstrainedLanguage
modalità . PowerShell genera errori quando gli script non attendibili tentano di eseguire azioni non consentite. È difficile sapere perché uno script non viene eseguito correttamente in ConstrainedLanguage
modalità.
PowerShell 7.4 supporta ora i criteri di controllo delle app in modalità di controllo . In modalità di controllo PowerShell esegue gli script non attendibili in ConstrainedLanguage
modalità ma registra i messaggi nel registro eventi anziché generare errori. I messaggi di log descrivono quali restrizioni verranno applicate se i criteri fossero in modalità di imposizione .
Modifiche in PowerShell 7.3
- PowerShell 7.3 supporta ora la possibilità di bloccare o consentire file di script di PowerShell tramite l'API Controllo app.
Modifiche in PowerShell 7.2
In AppLocker si è verificato uno scenario in cui sono presenti solo regole di negazione e modalità vincolata non viene usata per applicare i criteri che consentono di ignorare i criteri di esecuzione. A partire da PowerShell 7.2, è stata apportata una modifica per assicurarsi che le regole di AppLocker hanno la precedenza su un
Set-ExecutionPolicy -ExecutionPolicy Bypass
comando.PowerShell 7.2 ora impedisce l'uso del
Add-Type
cmdlet in unaNoLanguage
sessione di PowerShell in modalità in un computer bloccato.PowerShell 7.2 ora impedisce agli script di usare oggetti COM nelle condizioni di blocco del sistema AppLocker. I cmdlet che usano COM o DCOM internamente non sono interessati.
Altre risorse
- Per altre informazioni sul funzionamento di Controllo app e sulle restrizioni applicate, vedere Funzionamento del controllo app con PowerShell.
- Per altre informazioni sulla protezione di PowerShell con Controllo app, vedere Come usare Controllo app.