Personalizzare la protezione dagli exploit
Si applica a:
- Microsoft Defender per endpoint Piano 1
- Microsoft Defender per endpoint Piano 2
- Microsoft Defender XDR
Si desidera provare Microsoft Defender per endpoint? iscriversi a una versione di valutazione gratuita.
La protezione dagli exploit applica automaticamente una serie di tecniche di mitigazione degli exploit sia nei processi del sistema operativo sia nelle singole app.
Configurare queste impostazioni usando l'app Sicurezza di Windows in un singolo dispositivo. Esportare quindi la configurazione come file XML in modo che possa essere distribuita in altri dispositivi. Usare Criteri di gruppo per distribuire il file XML a più dispositivi contemporaneamente. È anche possibile configurare le mitigazioni con PowerShell.
Questo articolo elenca tutte le mitigazioni disponibili nella protezione dagli exploit. Indica se la mitigazione può essere applicata a livello di sistema o a singole app e fornisce una breve descrizione del funzionamento della mitigazione.
Descrive anche come abilitare o configurare le mitigazioni usando Sicurezza di Windows, PowerShell e provider di servizi di configurazione MDM (Mobile Device Management). Questo è il primo passaggio nella creazione di una configurazione che è possibile distribuire nella rete. Il passaggio successivo prevede la generazione, l'esportazione, l'importazione e la distribuzione della configurazione in più dispositivi.
Avviso
Alcune tecnologie di mitigazione della sicurezza possono presentare problemi di compatibilità con alcune applicazioni. È consigliabile testare la protezione dagli exploit in tutti gli scenari di utilizzo di destinazione usando la modalità di controllo prima di distribuire la configurazione in un ambiente di produzione o nel resto della rete.
Mitigazioni della protezione dagli exploit
Tutte le mitigazioni possono essere configurate per singole app. Alcune mitigazioni possono essere applicate anche a livello di sistema operativo.
È possibile impostare ognuna delle mitigazioni su on, off o sul relativo valore predefinito. Alcune mitigazioni includono opzioni aggiuntive indicate nella descrizione nella tabella.
I valori predefiniti vengono sempre specificati tra parentesi quadre nell'opzione Usa impostazione predefinita per ogni mitigazione. Nell'esempio seguente il valore predefinito per la prevenzione dell'esecuzione dei dati è "On".
La configurazione predefinita Usa per ognuna delle impostazioni di mitigazione indica la raccomandazione relativa a un livello di protezione di base per l'utilizzo quotidiano per gli utenti privati. Le distribuzioni aziendali devono considerare la protezione necessaria per le proprie esigenze individuali e potrebbe essere necessario modificare la configurazione lontano dalle impostazioni predefinite.
Per i cmdlet di PowerShell associati per ogni mitigazione, vedere la tabella di riferimento di PowerShell nella parte inferiore di questo articolo.
Mitigazione | Descrizione | Può essere applicato a | Modalità di controllo disponibile |
---|---|---|---|
Protezione del flusso di controllo (CFG) | Garantisce il controllo dell'integrità di flusso per chiamate indirette. Può facoltativamente eliminare le esportazioni e usare criteri di ricerca rigorosi. | A livello di sistema e di app | No |
Protezione esecuzione programmi (DEP) | Impedisce l'esecuzione del codice da pagine di memoria solo dati, ad esempio heap e stack. Configurabile solo per le app a 32 bit (x86), abilitata in modo permanente per tutte le altre architetture. Può facoltativamente abilitare l'emulazione thunk ATL. | A livello di sistema e di app | No |
Forza l'assegnazione casuale per le immagini (ASLR obbligatorio) | Sposta forzatamente le immagini non compilate con /DYNAMICBASE. Facoltativamente, può non riuscire a caricare immagini che non dispongono di informazioni sulla rilocazione. | A livello di sistema e di app | No |
Utilizza le allocazioni di memoria casuali (ASLR bottom-up) | Utilizza i percorsi casuali per le allocazioni di memoria virtuale. Include heap della struttura di sistema, stack, TEB e PEB. Può facoltativamente usare una varianza di randomizzazione più ampia per i processi a 64 bit. | A livello di sistema e di app | No |
Convalida catene di eccezione (SEHOP) | Garantisce l'integrità di una catena di eccezioni durante l'invio delle eccezioni. Configurabile solo per applicazioni a 32 bit (x86). | A livello di sistema e di app | No |
Convalida l'integrità dell'heap | Termina un processo quando viene rilevato il danneggiamento dell'heap. | A livello di sistema e di app | No |
Controllo arbitrario di codice (ACG) | Impedisce l'introduzione di codice eseguibile non supportato da immagini e impedisce la modifica delle tabelle codici. Può facoltativamente consentire il rifiuto esplicito del thread e il downgrade remoto (configurabile solo con PowerShell). | Solo a livello app | Sì |
Blocca immagini con bassa integrità | Impedisce il caricamento di immagini contrassegnate da bassa integrità. | Solo a livello app | Sì |
Blocca immagini remote | Impedisci il caricamento di immagini da dispositivi remoti. | Solo a livello app | No |
Blocca i tipi di carattere non attendibili | Impedisce il caricamento di tipi di carattere basati su GDI non installati nella directory dei tipi di carattere di sistema, in particolare i tipi di carattere dal Web. | Solo a livello app | Sì |
Controllo integrità codice | Limita il caricamento delle immagini firmate da Microsoft, WHQL o versione successiva. Può facoltativamente consentire immagini firmate di Microsoft Store. | Solo a livello app | Sì |
Disabilita i punti di estensione | Disabilita vari meccanismi di estendibilità che consentono l'inserimento di DLL in tutti i processi, ad esempio DLL AppInit, hook di finestre e provider di servizi Winsock. | Solo a livello app | No |
Disabilita le chiamate di sistema Win32k | Impedisce a un'app di usare la tabella delle chiamate di sistema Win32k. | Solo a livello app | Sì |
Non consente i processi figlio | Impedisce a un'app di creare processi figlio. | Solo a livello app | Sì |
Filtro di indirizzi da esportare (EAF) | Rileva le operazioni pericolose risolte da codice dannoso. Può facoltativamente convalidare l'accesso da moduli comunemente usati dagli exploit. | Solo a livello app | Sì |
Filtro di indirizzi da importare (IAF) | Rileva le operazioni pericolose risolte da codice dannoso. | Solo a livello app | Sì |
Simula l'esecuzione (SimExec) | Assicura che le chiamate alle API sensibili vengano restituite a chiamanti legittimi. Configurabile solo per applicazioni a 32 bit (x86). Non compatibile con ACG. | Solo a livello app | Sì |
Convalida chiamata di API (CallerCheck) | Garantisce che le API sensibili vengano richiamate da chiamanti legittimi. Configurabile solo per applicazioni a 32 bit (x86). Non compatibile con ACG | Solo a livello app | Sì |
Convalida l'uso di handle | Causa la generazione di un'eccezione per qualsiasi riferimento a handle non valido. | Solo a livello app | No |
Convalida l'integrità di dipendenza dell'immagine | Applica la firma del codice per il caricamento delle dipendenze delle immagini di Windows. | Solo a livello app | No |
Convalida l'integrità della pila (StackPivot) | Assicura che lo stack non sia stato reindirizzato per le API sensibili. Non compatibile con ACG. | Solo a livello app | Sì |
Importante
Se si aggiunge un'app alla sezione Impostazioni del programma e si configurano le singole impostazioni di mitigazione, tali impostazioni verranno anteposte alla configurazione per le stesse mitigazioni specificate nella sezione Impostazioni di sistema. La matrice e gli esempi seguenti consentono di illustrare il funzionamento delle impostazioni predefinite:
Abilitato nelle Impostazioni del programma | Abilitato nelle Impostazioni di sistema | Comportamento |
---|---|---|
Sì | No | Come definito nelle Impostazioni del programma |
Sì | Sì | Come definito nelle Impostazioni del programma |
No | Sì | Come definito nelle Impostazioni di sistema |
No | No | Impostazione predefinita come determinato nell'opzione Usa predefinito |
Esempio 1 Luca configura la Protezione esecuzione programmi (DEP) nella sezione delle impostazioni di sistema in modo che sia disattivata per impostazione predefinita. Luca aggiunge quindi l'app test.exe alla sezione Impostazioni programma. Nelle opzioni per l'app, in Protezione dell'esecuzione dei dati, abilita l'opzione Ignora impostazioni di sistema e imposta l'interruttore su Attivato. Nella sezione Impostazioni del programma non sono elencate altre app. Il risultato sarà che DEP verrà abilitato solo per test.exe. A tutte le altre app non verrà applicato DEP.
Esempio 2 Luca configura la Protezione esecuzione programmi (DEP) nella sezione delle impostazioni di sistema in modo che sia disattivata per impostazione predefinita. Luca aggiunge l'app test.exe alla sezione Impostazioni programma. Nelle opzioni per l'app, in Protezione dell'esecuzione dei dati, abilita l'opzione Ignora impostazioni di sistema e imposta l'interruttore su Attivato. Martina aggiunge anche l'app miles.exe alla sezione Impostazioni del programma e configura Protezione del flusso di controllo (Control Flow Guard, CFG) su Attivato. Martina non abilita l'opzione Ignora impostazioni di sistema per DEP o altre mitigazioni per l'app. Il risultato sarà che DEP verrà abilitato per test.exe. DEP non verrà abilitato per altre app, incluso miles.exe. La CFG verrà abilitata per miles.exe.
Nota
Se sono stati rilevati problemi in questo articolo, è possibile segnalarlo direttamente a un partner client Windows Server/Windows o usare i numeri di supporto tecnico Microsoft per il proprio paese/area geografica.
Configurare le mitigazioni a livello di sistema con l'app Sicurezza di Windows
Aprire l'app Sicurezza di Windows selezionando l'icona a forma di scudo nella barra delle applicazioni o eseguendo la ricerca di Sicurezza nel menu Start.
Selezionare il riquadro Controllo app e browser, o l'icona dell'app sulla barra dei menu a sinistra, e selezionare quindi Protezione dagli exploit.
Nella sezione Impostazioni di sistema, individuare la mitigazione che si desidera configurare e selezionare una delle opzioni seguenti. Le app che non sono configurate singolarmente nella sezione Impostazioni programma useranno le impostazioni configurate qui:
- Attivata per impostazione predefinita: la mitigazione è abilitata per le app per cui la mitigazione non è impostata nella sezione Impostazioni programma specifica dell'app
- Disattivata per impostazione predefinita: la mitigazione è abilitata per le app per cui la mitigazione non è impostata nella sezione Impostazioni programma specifica dell'app
- Usa l'impostazione predefinita: la mitigazione è abilitata o disabilitata, a seconda della configurazione predefinita configurata dall'installazione di Windows 10 o Windows 11. Il valore predefinito (Attivata o Disattivata) viene sempre specificato accanto all'etichetta Usa predefinita per ogni mitigazione
Nota
Quando si modificano alcune impostazioni, potrebbe essere visualizzata una finestra di controllo dell'account utente. Immettere le credenziali di amministratore per applicare l'impostazione.
La modifica di alcune impostazioni potrebbe richiedere un riavvio.
Ripetere questo per tutte le mitigazioni a livello di sistema da configurare.
Andare alla sezione Impostazioni del programma e scegliere l'app a cui si desidera applicare le mitigazioni a:
- Se l'app che si desidera configurare è già elencata, selezionarla poi scegliere Modifica.
- Se l'app non è elencata, nella parte superiore dell'elenco selezionare Aggiungi programma da personalizzare e quindi scegliere come si desidera aggiungere l'app:
- Usare Aggiungi per nome programma per applicare la mitigazione a qualsiasi processo in esecuzione con tale nome. È necessario specificare un file con estensione. È possibile immettere un percorso completo per limitare la mitigazione solo all'app con questo nome in quella posizione.
- Usare Scegli il percorso esatto del file per utilizzare una finestra di selezione file Esplora risorse standard per trovare e selezionare il file desiderato.
Dopo aver selezionato l'app, verrà visualizzato un elenco di tutte le mitigazioni che è possibile applicare. Per abilitare la mitigazione, selezionare la casella di controllo e quindi impostare il dispositivo di scorrimento suAttivato. Selezionare le altre opzioni. La scelta di Controllo applicherà la mitigazione solo in modalità di controllo. Si riceverà una notifica se è necessario riavviare il processo o l'app oppure se è necessario riavviare Windows.
Ripetere questi passaggi per tutte le app e le mitigazioni da configurare. Al termine della configurazione, selezionare Applica.
È ora possibile esportare queste impostazioni come file XML o continuare a configurare le mitigazioni specifiche dell'app.
L'esportazione della configurazione come file XML consente di copiare la configurazione da un dispositivo in altri dispositivi.
Riferimenti a PowerShell
È possibile usare l'app Sicurezza di Windows per configurare protezione dagli exploit oppure i cmdlet di PowerShell.
Le impostazioni di configurazione modificate più di recente verranno sempre applicate, indipendentemente dal fatto che si usi PowerShell o Sicurezza di Windows. Questo significa che se si usa l'app per configurare una mitigazione, quindi si usa PowerShell per configurare la stessa mitigazione, l'app verrà aggiornata per visualizzare le modifiche apportate con PowerShell. Se si dovesse quindi usare l'app per modificare di nuovo la mitigazione, tale modifica verrebbe applicata.
Importante
Tutte le modifiche distribuite in un dispositivo tramite Criteri di gruppo sostituiranno la configurazione locale. Quando si configura una configurazione iniziale, usare un dispositivo a cui non verrà applicata una configurazione Criteri di gruppo per assicurarsi che le modifiche non vengano sostituite.
È possibile usare il verbo di PowerShell Get
o Set
con il cmdlet ProcessMitigation
. L'uso di Get
elencherà lo stato di configurazione corrente di tutte le mitigazioni abilitate nel dispositivo. Aggiungere il cmdlet -Name
e il file exe per visualizzare le mitigazioni solo per l'app:
Get-ProcessMitigation -Name processName.exe
Importante
Le mitigazioni a livello di sistema che non sono state configurate mostreranno lo stato di NOTSET
.
Per le impostazioni a livello di sistema, NOTSET
indica che è stata applicata l'impostazione predefinita per tale mitigazione.
Per le impostazioni a livello di app, NOTSET
indica che è stata applicata l'impostazione a livello di sistema per tale mitigazione.
L'impostazione predefinita per ogni mitigazione a livello di sistema può essere visualizzata in sicurezza di Windows.
Usare Set
per configurare ciascuna mitigazione nel formato seguente:
Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>
Dove:
-
<Ambito>:
-
-Name
per indicare che le mitigazioni devono essere applicate a un'app specifica. Specificare l'eseguibile dell'app dopo questo flag. -
-System
per indicare che la mitigazione deve essere applicate a livello di sistema
-
-
<Azione>:
-
-Enable
per abilitare la mitigazione -
-Disable
per disabilitare la mitigazione
-
-
<Mitigazione>:
- Il cmdlet della mitigazione, come definito nella tabella dei cmdlet di mitigazione seguente, insieme a eventuali sottoopzioni (racchiuse tra spazi). Ogni mitigazione è separata da una virgola.
Ad esempio, per abilitare la mitigazione DEP (Data Execution Prevention) con l'emulazione thunk ATL e per un file eseguibile denominato testing.exe nella cartella C:\Apps\LOB\tests e per impedire a tale eseguibile di creare processi figlio, è consigliabile usare il comando seguente:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation
Importante
Separare ogni opzione di mitigazione con virgole.
Se si vuole applicare DEP a livello di sistema, usare il comando seguente:
Set-Processmitigation -System -Enable DEP
Per disabilitare le mitigazioni, è possibile sostituire -Enable
con -Disable
. Tuttavia, per le mitigazioni a livello di app, questo forzerà la disabilitazione della mitigazione solo per l'app.
Se è necessario ripristinare l'impostazione predefinita di sistema per la mitigazione, è necessario includere anche il cmdlet -Remove
, come nell'esempio seguente:
Set-Processmitigation -Name test.exe -Remove -Disable DEP
È anche possibile impostare alcune mitigazioni sulla modalità di controllo. Anziché usare il cmdlet di PowerShell per la mitigazione, usare il cmdlet della modalità di controllo come specificato nella tabella dei cmdlet di mitigazione riportata di seguito.
Ad esempio, per abilitare il controllo arbitrario di codice (ACG) nella modalità di controllo per testing.exe, usato in precedenza, usare il comando seguente:
Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode
È possibile disabilitare la modalità di controllo usando lo stesso comando, ma sostituendo -Enable
con -Disable
.
Tabella di riferimento di PowerShell
Questa tabella elenca i cmdlet di PowerShell (e i cmdlet della modalità di controllo associati) che possono essere usati per configurare ogni mitigazione.
Mitigazione | Si applica a | Cmdlet di Microsoft PowerShell | Cmdlet per la modalità di controllo |
---|---|---|---|
Protezione del flusso di controllo (CFG) | A livello di sistema e di app | CFG, StrictCFG, SuppressExports | Controllo non disponibile |
Protezione esecuzione programmi (DEP) | A livello di sistema e di app | DEP, EmulateAtlThunks | Controllo non disponibile |
Forza l'assegnazione casuale per le immagini (ASLR obbligatorio) | A livello di sistema e di app | ForceRelocateImages | Controllo non disponibile |
Utilizza le allocazioni di memoria casuali (ASLR bottom-up) | A livello di sistema e di app | BottomUp, HighEntropy | Controllo non disponibile |
Convalida catene di eccezione (SEHOP) | A livello di sistema e di app | SEHOP, SEHOPTelemetry | Controllo non disponibile |
Convalida l'integrità dell'heap | A livello di sistema e di app | TerminateOnError | Controllo non disponibile |
Controllo arbitrario di codice (ACG) | Solo a livello app | DynamicCode | AuditDynamicCode |
Blocca immagini con bassa integrità | Solo a livello app | BlockLowLabel | AuditImageLoad |
Blocca immagini remote | Solo a livello app | BlockRemoteImages | Controllo non disponibile |
Blocca i tipi di carattere non attendibili | Solo a livello app | DisableNonSystemFonts | AuditFont, FontAuditOnly |
Controllo integrità codice | Solo a livello app | BlockNonMicrosoftSigned, AllowStoreSigned | AuditMicrosoftSigned, AuditStoreSigned |
Disabilita i punti di estensione | Solo a livello app | ExtensionPoint | Controllo non disponibile |
Disabilita le chiamate di sistema Win32k | Solo a livello app | DisableWin32kSystemCalls | AuditSystemCall |
Non consentire processi figlio | Solo a livello app | DisallowChildProcessCreation | AuditChildProcess |
Filtro di indirizzi da esportare (EAF) | Solo a livello app | EnableExportAddressFilterPlus, EnableExportAddressFilter [1] | Controllo non disponibile[2] |
Filtro di indirizzi da importare (IAF) | Solo a livello app | EnableImportAddressFilter | Controllo non disponibile[2] |
Simula l'esecuzione (SimExec) | Solo a livello app | EnableRopSimExec | Controllo non disponibile[2] |
Convalida chiamata di API (CallerCheck) | Solo a livello app | EnableRopCallerCheck | Controllo non disponibile[2] |
Convalida l'uso di handle | Solo a livello app | StrictHandle | Controllo non disponibile |
Convalida l'integrità di dipendenza dell'immagine | Solo a livello app | EnforceModuleDepencySigning | Controllo non disponibile |
Convalida l'integrità della pila (StackPivot) | Solo a livello app | EnableRopStackPivot | Controllo non disponibile[2] |
[1]: usare il formato seguente per abilitare i moduli EAF per le DLL per un processo:
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
[2]: il controllo per questa mitigazione non è disponibile tramite i cmdlet di PowerShell.
Personalizzare la notifica
Per altre informazioni sulla personalizzazione della notifica quando viene attivata una regola che blocca un'app o un file, vedere Sicurezza di Windows.
Vedere anche
- Proteggere i dispositivi dagli exploit
- Valutare la protezione dagli exploit
- Abilitare la protezione dagli exploit
- Importare, esportare e distribuire configurazioni di protezione da exploit
Consiglio
Per saperne di più, Engage con la community Microsoft Security nella community tech: Microsoft Defender per endpoint Tech Community.