Condividi tramite


Controllo degli eventi di protezione

Le applicazioni create in Windows Communication Foundation (WCF) possono utilizzare una funzionalità di controllo che consente di registrare gli eventi di protezione 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 protezione. 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 sui sistemi di protezione di WCF, vedere Cenni preliminari sulla protezione. Per ulteriori informazioni sulla programmazione di WCF, vedere Programmazione WCF di base.

Livelli e comportamenti di controllo

Esistono due livelli di controllo di protezione:

  • 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

ServiceSecurityAuditBehavior

Consente di impostare le opzioni di controllo come comportamento di servizio.

AuditLogLocation

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.

MessageAuthenticationAuditLevel

Specifica il livello Messaggio utilizzato per i controlli a livello di messaggio. Sono disponibili le opzioni None, Failure, Success, e SuccessOrFailure.

ServiceAuthorizationAuditLevel

Specifica il livello Autorizzazione servizio utilizzato per i controlli a livello di servizio. Sono disponibili le opzioni None, Failure, Success, e SuccessOrFailure.

SuppressAuditFailure

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 protezione 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 https://go.microsoft.com/fwlink/? LinkId=89150 (il contenuto potrebbe essere in inglese).

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 protezione 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 protezione di Windows Communication Foundation

Riferimenti

ServiceSecurityAuditBehavior
AuditLogLocation

Concetti

Cenni preliminari sulla protezione

Altre risorse

Programmazione WCF di base
serviceSecurityAudit element
Behaviors element