Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le applicazioni create con Windows Communication Foundation (WCF) possono registrare eventi di sicurezza (esito positivo, negativo o entrambi) con la funzionalità di controllo. Gli eventi vengono scritti nel registro eventi di sistema di Windows e possono essere esaminati usando il Visualizzatore eventi.
La funzionalità di controllo consente a un amministratore di individuare un attacco mentre è ancora in corso o quando è già avvenuto. Tale funzionalità consente inoltre agli sviluppatori di semplificare il debug dei problemi di sicurezza. Ad esempio, se per un errore nella configurazione dei criteri di autorizzazione o di verifica il sistema nega l'accesso a un utente autorizzato, uno sviluppatore può individuare e isolare rapidamente la causa di questo errore esaminando il registro eventi.
Per altre informazioni sulla sicurezza WCF, vedere Panoramica della sicurezza di . Per altre informazioni sulla programmazione wcf, vedere Programmazione WCF di base.
Livello di controllo e comportamento
Esistono due livelli di controllo di sicurezza:
Livello di autorizzazione del servizio, in cui un chiamante è autorizzato.
Livello di messaggio, in cui WCF verifica la validità del messaggio e autentica il chiamante.
È possibile controllare entrambi i livelli di controllo per l'esito positivo o negativo, noto come comportamento di controllo.
Posizione log di controllo
Dopo aver determinato un livello di controllo e un comportamento, l'utente (o un amministratore) può specificare un percorso per il log di controllo. Le tre opzioni includono: Default, Application e Security. Quando si specifica Default, il log effettivo dipende dal sistema in uso e dal fatto che il sistema supporti la scrittura nel log di sicurezza. Per altre informazioni, vedere la sezione "Sistema operativo" più avanti in questo argomento.
Per scrivere nel log di sicurezza è necessario il SeAuditPrivilege. Per impostazione predefinita, solo gli account del sistema locale e del servizio di rete dispongono di questo privilegio. Per gestire le funzioni del log di sicurezza read e delete è necessario il SeSecurityPrivilege. Per impostazione predefinita, solo gli amministratori hanno questo privilegio.
Al contrario, gli utenti autenticati possono leggere e scrivere nel registro applicazioni. Windows XP scrive gli eventi di controllo nel registro applicazioni per impostazione predefinita. Il log può anche contenere informazioni personali visibili a tutti gli utenti autenticati.
Eliminazione degli errori di controllo
Un'altra opzione durante il controllo è se eliminare eventuali errori di controllo. Per impostazione predefinita, un errore di controllo non influisce su un'applicazione. Se necessario, tuttavia, è possibile impostare l'opzione su false, che causa la generazione di un'eccezione.
Controllo della programmazione
È possibile specificare il comportamento di controllo a livello di codice o tramite la configurazione.
Classi di controllo
Nella tabella seguente vengono descritte le classi e le proprietà usate per programmare il comportamento di controllo.
| Classe | Descrizione |
|---|---|
| ServiceSecurityAuditBehavior | Abilita le opzioni di impostazione per il controllo come comportamento del servizio. |
| AuditLogLocation | Enumerazione per specificare a quale log scrivere. I valori possibili sono Default, Application e Security. Quando si seleziona Impostazione predefinita, il sistema operativo determina il percorso effettivo del log. Consultare la sezione "Scelta del registro eventi di applicazione o sicurezza" più avanti in questo argomento. |
| MessageAuthenticationAuditLevel | Specifica i tipi di eventi di autenticazione dei messaggi controllati a livello di messaggio. Le scelte sono None, Failure, Successe SuccessOrFailure. |
| ServiceAuthorizationAuditLevel | Specifica i tipi di eventi di autorizzazione del servizio controllati a livello di servizio. Le scelte sono None, Failure, Successe SuccessOrFailure. |
| SuppressAuditFailure | Specifica cosa accade alla richiesta client quando il controllo ha esito negativo. Ad esempio, quando il servizio tenta di scrivere nel log di sicurezza, ma non dispone di SeAuditPrivilege. Il valore predefinito di true indica che gli errori vengono ignorati e che la richiesta client viene elaborata normalmente. |
Per un esempio di configurazione di un'applicazione per registrare gli eventi di controllo, vedere Procedura: Controllare gli eventi di sicurezza.
Configurazione
È anche possibile usare la configurazione per specificare il comportamento di controllo aggiungendo un <serviceSecurityAudit> sotto i <comportamenti>. È necessario aggiungere l'elemento in un <comportamento> come illustrato nel codice seguente.
<configuration>
<system.serviceModel>
<behaviors>
<behavior>
<!-- auditLogLocation="Application" or "Security" -->
<serviceSecurityAudit
auditLogLocation="Application"
suppressAuditFailure="true"
serviceAuthorizationAuditLevel="Failure"
messageAuthenticationAuditLevel="SuccessOrFailure" />
</behavior>
</behaviors>
</system.serviceModel>
</configuration>
Se il controllo è abilitato e non viene specificato un auditLogLocation valore, il nome del log predefinito è "Sicurezza" per la piattaforma che supporta la scrittura nel log di sicurezza; in caso contrario, è "Registro applicazioni". Solo i sistemi operativi Windows Server 2003 e Windows Vista supportano la scrittura nel log di sicurezza. Per altre informazioni, vedere la sezione "Sistema operativo" più avanti in questo argomento.
Considerazioni sulla sicurezza
Se un utente malintenzionato sa che il controllo è abilitato, l'autore dell'attacco può inviare messaggi non validi che causano la scrittura delle voci di controllo. Se il log di controllo viene compilato in questo modo, il sistema di controllo non riesce. Per attenuare questo problema, impostare la SuppressAuditFailure proprietà su true e utilizzare le proprietà del Visualizzatore eventi per controllare il comportamento di controllo.
Gli eventi di controllo scritti nel registro applicazioni in Windows XP sono visibili a qualsiasi utente autenticato.
Scelta tra registri eventi di sicurezza e applicazione
Le tabelle seguenti forniscono informazioni che consentono di scegliere se accedere all'applicazione o al registro eventi di sicurezza.
Sistema operativo
| Sistema | Registro applicazioni | Registro di sicurezza |
|---|---|---|
| Windows XP SP2 o versione successiva | Sostenuto | Non supportato |
| Windows Server 2003 SP1 e Windows Vista | Sostenuto | Il contesto del thread deve possedere SeAuditPrivilege |
Altri fattori
Oltre al sistema operativo, nella tabella seguente vengono descritte altre impostazioni che controllano l'abilitazione della registrazione.
| Fattore | Registro applicazioni | Registro di sicurezza |
|---|---|---|
| Gestione dei criteri di audit | Non applicabile. | Insieme alla configurazione, il log di sicurezza è controllato anche dai criteri dell'autorità di sicurezza locale . È necessario abilitare anche la categoria "Verifica accesso agli oggetti". |
| Esperienza utente predefinita | Tutti gli utenti autenticati possono scrivere nel registro applicazioni, quindi non è necessario alcun passaggio di autorizzazione aggiuntivo per i processi dell'applicazione. | Il processo dell'applicazione (contesto) deve avere SeAuditPrivilege. |