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 una NoLanguage 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