Controllo degli eventi di sicurezza
Le applicazioni create in Windows Communication Foundation (WCF) possono utilizzare una funzionalità di controllo che consente di registrare gli eventi di sicurezza in base all'esito: è possibile registrare solo gli eventi con esito positivo, solo gli eventi con esito negativo o entrambi. Gli eventi vengono scritti nel registro eventi del sistema Windows e possono essere esaminati tramite 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 ulteriori informazioni su sistemi di sicurezza di WCF, vedere Cenni preliminari sulla sicurezza. Per ulteriori informazioni su programmazione di WCF, vedere Programmazione WCF di base.
Livelli e comportamenti di controllo
Esistono due livelli di controllo di sicurezza:
Livello Autorizzazione servizio, che prevede l'autorizzazione di un chiamante.
Livello Messaggio, in cui WCF verifica la validità del messaggio e autentica il chiamante.
È possibile verificare l'esito di un controllo su entrambi i livelli, ovvero definire un comportamento di controllo.
Posizione del registro di controllo
Dopo aver determinato un livello e un comportamento di controllo, è possibile specificare la posizione del registro di controllo. Sono disponibili tre opzioni: Predefinito, Applicazione e Protezione. Quando si specifica l'opzione Predefinito, la posizione effettiva del registro di controllo varia in base al sistema utilizzato e alla possibilità di quest'ultimo di supportare la scrittura nel registro protezione. Per ulteriori informazioni, vedere la sezione "Sistema operativo" di questo argomento.
Per scrivere nel registro protezione è necessario disporre del privilegio SeAuditPrivilege. Per impostazione predefinita, solo gli account Sistema locale e Servizio di rete dispongono di questo privilegio. Per gestire le funzioni del registro protezione read e delete è necessario disporre del privilegio SeSecurityPrivilege. Per impostazione predefinita, solo gli amministratori dispongono di questo privilegio.
Gli utenti autenticati possono invece leggere e scrivere nel registro applicazioni. Per impostazione predefinita, il sistema operativo Windows XP scrive eventi di controllo in tale registro. Il registro applicazioni può inoltre contenere informazioni personali a cui tutti gli utenti autenticati sono in grado di accedere.
Soppressione degli errori di controllo
Durante il controllo è inoltre disponibile un'opzione che consente di sopprimere tutti gli errori di controllo. Per impostazione predefinita, gli errori di controllo non influiscono sulle applicazioni. Tuttavia, se occorre, è possibile impostare tale opzione su false. In questo modo, se si verifica un errore di controllo, viene generata un'eccezione.
Programmazione del controllo
Il comportamento di controllo può essere specificato a livello di programmazione o tramite configurazione.
Classi di controllo
Nella seguente tabella sono descritte le classi e le proprietà utilizzate per programmare un comportamento di controllo.
Classe | Descrizione |
---|---|
Consente di impostare le opzioni di controllo come comportamento di servizio. |
|
Enumerazione che consente di specificare la posizione del registro in cui scrivere. I valori possibili sono Predefinito, Applicazione e Protezione. Quando si seleziona Predefinito, il sistema operativo determina la posizione effettiva del registro. Per ulteriori informazioni, vedere la sezione "Scelta fra registro eventi Applicazione o Protezione" del presente argomento. |
|
Specifica il livello Messaggio utilizzato per i controlli a livello di messaggio. Sono disponibili le opzioni None, Failure, Success, e SuccessOrFailure. |
|
Specifica il livello Autorizzazione servizio utilizzato per i controlli a livello di servizio. Sono disponibili le opzioni None, Failure, Success, e SuccessOrFailure. |
|
Specifica la modalità di elaborazione della richiesta del client quando un controllo ha esito negativo. Ciò ad esempio si verifica quando il servizio tenta di scrivere nel registro protezione senza tuttavia disporre del privilegio SeAuditPrivilege. Il valore predefinito true indica che gli errori vengono ignorati e che la richiesta del client viene elaborata normalmente. |
Per un esempio di come configurare un'applicazione affinché registri eventi di controllo, vedere Procedura: controllare gli eventi di sicurezza di Windows Communication Foundation.
Configurazione
I comportamenti di controllo possono inoltre essere specificati tramite configurazione aggiungendo un elemento serviceSecurityAudit element nell'Behaviors element. L'elemento deve essere aggiunto in un Behavior element, come mostrato 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 è attivo e non è stata specificata alcuna posizione auditLogLocation, la posizione predefinita del registro è "Protezione" se la piattaforma supporta la scrittura in tale registro. In caso contrario, tale posizione è "Applicazione". Solo i sistemi operativi Windows Server 2003 e Windows Vista supportano la scrittura nel registro protezione. Per ulteriori informazioni, vedere la sezione "Sistema operativo" di questo argomento.
Considerazioni sulla protezione
Un utente malintenzionato a conoscenza del fatto che il controllo è attivo può inviare messaggi non validi che comportano la scrittura di voci di controllo. Ciò comporta a sua volta la generazione di errori nel sistema di controllo. Per limitare questo problema, impostare la proprietà SuppressAuditFailure su true e utilizzare le proprietà del Visualizzatore eventi per controllare il comportamento di controllo. Per ulteriori informazioni, vedere l'articolo del supporto tecnico Microsoft sulla visualizzazione e sulla gestione dei registri eventi tramite il Visualizzatore eventi in Windows XP, disponibile all'indirizzo How to: Visualizzare e gestire i registri eventi nel Visualizzatore eventi in Windows XP.
Gli eventi di controllo scritti nel registro applicazioni in Windows XP sono visualizzabili da qualsiasi utente autenticato.
Scelta fra registro eventi Applicazione o Protezione
Nelle tabelle seguenti sono fornite informazioni per scegliere se eseguire la registrazione nel registro eventi Applicazione o nel registro eventi Protezione.
Sistema operativo
Sistema | Registro applicazioni | Registro protezione |
---|---|---|
Windows XP SP2 o versione successiva |
Supportato |
Non supportato |
Windows Server 2003 SP1 e Windows Vista |
Supported |
Il contesto del thread deve disporre del privilegio SeAuditPrivilege |
Altri fattori
Oltre al sistema operativo, nella tabella seguente sono descritte le altre impostazioni che controllano l'attivazione della registrazione.
Fattore | Registro applicazioni | Registro protezione |
---|---|---|
Gestione dei criteri di controllo |
Non applicabile. |
Insieme alla configurazione, il registro protezione viene controllato anche in base ai criteri LSA (Local Security Authority, autorità di sicurezza locale). È inoltre necessario attivare la categoria "Controlla accesso agli oggetti". |
Esperienza utente predefinita |
Tutti gli utenti autenticati possono scrivere nel registro applicazioni. Di conseguenza, per i processi delle applicazioni non è necessario eseguire alcun passaggio aggiuntivo di autorizzazione. |
Il processo dell'applicazione (ovvero il relativo contesto) deve disporre del privilegio SeAuditPrivilege. |
Vedere anche
Attività
Procedura: controllare gli eventi di sicurezza di Windows Communication Foundation
Riferimento
ServiceSecurityAuditBehavior
AuditLogLocation
Concetti
Cenni preliminari sulla sicurezza
Altre risorse
Programmazione WCF di base
serviceSecurityAudit element
Behaviors element
Sicurezza e protezione