PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY struttura (winnt.h)
Contiene le impostazioni dei criteri di mitigazione dei processi per la modalità utente Hardware-enforced Stack Protection (HSP). Le funzioni GetProcessMitigationPolicy e SetProcessMitigationPolicy usano questa struttura.
Sintassi
typedef struct _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY {
union {
DWORD Flags;
struct {
DWORD EnableUserShadowStack : 1;
DWORD AuditUserShadowStack : 1;
DWORD SetContextIpValidation : 1;
DWORD AuditSetContextIpValidation : 1;
DWORD EnableUserShadowStackStrictMode : 1;
DWORD BlockNonCetBinaries : 1;
DWORD BlockNonCetBinariesNonEhcont : 1;
DWORD AuditBlockNonCetBinaries : 1;
DWORD CetDynamicApisOutOfProcOnly : 1;
DWORD SetContextIpValidationRelaxedMode : 1;
DWORD ReservedFlags : 22;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
} PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY, *PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY;
Members
DUMMYUNIONNAME
DUMMYUNIONNAME.Flags
Questo membro è riservato per l'uso del sistema.
DUMMYUNIONNAME.DUMMYSTRUCTNAME
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EnableUserShadowStack
Se TRUE, la protezione dello stack applicata dall'utente è abilitata per il processo in modalità di compatibilità. Ciò significa che la CPU verifica gli indirizzi restituiti della funzione in fase di esecuzione usando un meccanismo dello stack shadow, se supportato dall'hardware. In modalità di compatibilità, solo le violazioni dello stack shadow che si verificano nei moduli considerati compatibili con gli stack shadow (CETCOMPAT) sono irreversibili. Per considerare CETCOMPAT un modulo, deve essere compilato con CETCOMPAT per i file binari o contrassegnato usando SetProcessDynamicEnforcedCetCompatibleRanges per il codice dinamico. Impossibile modificare questo campo tramite SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.AuditUserShadowStack
Se TRUE, le violazioni dello stack shadow che sarebbero state irreversibili vengono invece considerate non irreversibili e gli eventi di diagnostica vengono registrati nel registro eventi. Quando questo campo è TRUE, EnableUserShadowStack deve essere TRUE e EnableUserShadowStackStrictMode può essere TRUE, a seconda che sia in corso il controllo o la modalità rigorosa. Impossibile modificare questo campo tramite SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.SetContextIpValidation
Se TRUE, quando si chiamano API che modificano il contesto di esecuzione di un thread, ad esempio SetThreadContext e RtlRestoreContext, la convalida viene eseguita nel puntatore istruzioni specificato nel nuovo contesto di esecuzione. Impossibile modificare questo campo tramite SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.AuditSetContextIpValidation
Se TRUE, i puntatori alle istruzioni che avrebbero causato l'esito negativo della convalida sono invece consentiti e gli eventi di diagnostica vengono registrati nel registro eventi. Quando questo campo è TRUE, SetContextIpValidation deve essere TRUE e SetContextIpValidationRelaxedMode può essere TRUE, a seconda della modalità in cui la convalida del puntatore istruzione è attualmente operativa. Impossibile modificare questo campo tramite SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.EnableUserShadowStackStrictMode
Se TRUE, la protezione dello stack applicata in modalità utente è abilitata per il processo in modalità rigorosa. Tutte le violazioni dello stack shadow sono irreversibili. Quando questo campo è TRUE, EnableUserShadowStack deve essere TRUE. Se HSP è abilitato in modalità di compatibilità, può essere aggiornato alla modalità rigorosa in fase di esecuzione impostando questo campo su TRUE e chiamando SetProcessMitigationPolicy. HSP non può essere downgrade o disabilitato tramite SetProcessMitigationPolicy. Se HSP è disabilitato, non può essere abilitato tramite SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BlockNonCetBinaries
Se TRUE, i file binari non compilati con CETCOMPAT non vengono caricati nel processo. Questo criterio può essere abilitato dopo l'avvio di un processo chiamando SetProcessMitigationPolicy. Non può essere disabilitato una volta abilitato.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BlockNonCetBinariesNonEhcont
Se TRUE, i file binari non compilati con CETCOMPAT o non contengono metadati di continuazione di gestione delle eccezioni (/guard:ehcont) vengono bloccati dal caricamento nel processo. Quando questo campo è TRUE, BlockNonCetBinaries deve essere TRUE. Questo criterio può essere abilitato dopo l'avvio di un processo chiamando SetProcessMitigationPolicy. Non può essere disabilitata o sottoposta a downgrade una volta abilitata.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.AuditBlockNonCetBinaries
Se TRUE, i carichi binari che sarebbero stati bloccati sono invece consentiti e gli eventi di diagnostica vengono registrati nel registro eventi. Quando questo campo è TRUE, BlockNonCetBinaries deve essere TRUE e BlockNonCetBinariesNonEhcont può essere TRUE, a seconda dei tipi di file binari attualmente bloccati dal caricamento nel processo. Impossibile modificare questo campo tramite SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.CetDynamicApisOutOfProcOnly
Se TRUE, alcune API HSP usate per specificare le proprietà di sicurezza del codice dinamico possono essere chiamate solo dall'esterno del processo a scopo di sicurezza. Queste API sono SetProcessDynamicEHContinuationTargets e SetProcessDynamicEnforcedCetCompatibleRanges. Questo criterio può essere abilitato dopo l'avvio di un processo chiamando SetProcessMitigationPolicy. Non può essere disabilitato una volta abilitato.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.SetContextIpValidationRelaxedMode
Se TRUE, la convalida del puntatore istruzione del processo viene sottoposta a downgrade alla modalità rilassata, che consente a tutti i puntatori di istruzione presenti nel codice dinamico o nei file binari che non contengono metadati di continuazione di gestione delle eccezioni. Quando questo campo è TRUE, SetContextIpValidation deve essere TRUE. Il processo può essere aggiornato dalla modalità rilassata alla modalità normale in fase di esecuzione impostando questo campo su FALSE e chiamando SetProcessMitigationPolicy.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.ReservedFlags
Questo membro è riservato per l'uso del sistema.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 versione 2004 (10.0; Build 19041) |
Server minimo supportato | Windows Server, versione 2004 (10.0; Build 19041) |
Intestazione | winnt.h |