Compartilhar via


Auditando eventos de segurança

Os aplicativos criados com o WCF (Windows Communication Foundation) podem registrar eventos de segurança (êxito, falha ou ambos) com o recurso de auditoria. Os eventos são gravados no log de eventos do sistema Windows e podem ser examinados usando o Visualizador de Eventos.

A auditoria fornece uma forma de um administrador detectar um ataque que já ocorreu ou que está em andamento. A auditoria ainda pode ajudar um desenvolvedor a depurar problemas relacionados à segurança. Por exemplo, se um erro na configuração da política de autorização ou verificação negar acidentalmente o acesso a um usuário autorizado, um desenvolvedor poderá descobrir e isolar rapidamente a causa desse erro examinando o log de eventos.

Para obter mais informações sobre a segurança do WCF, consulte Visão geral de segurança. Para obter mais informações sobre programação do WCF, consulte Programação básica do WCF.

Nível e comportamento de auditoria

Existem dois níveis de auditorias de segurança:

  • Nível de autorização de serviço, no qual um chamador está autorizado.

  • Nível de mensagem, no qual o WCF verifica a validade da mensagem e autentica o chamador.

Você pode verificar os dois níveis de auditoria em relação ao êxito ou falha, conhecido como comportamento de auditoria.

Local do log de auditoria

Depois de determinar um nível de auditoria e comportamento, você (ou um administrador) pode especificar um local para o log de auditoria. As três opções incluem: Padrão, Aplicativo e Segurança. Quando você especifica Padrão, o log real depende de qual sistema você está usando e se o sistema dá suporte à gravação no log de segurança. Para obter mais informações, consulte a seção "Sistema Operacional" mais adiante neste tópico.

Gravar no log de segurança requer o SeAuditPrivilege. Por padrão, somente contas do Sistema Local e do Serviço de Rede têm esse privilégio. Para gerenciar as funções de log de segurança read e delete, é necessário o SeSecurityPrivilege. Por padrão, somente os administradores têm esse privilégio.

Por outro lado, os usuários autenticados podem ler e gravar no log de aplicativos. O Windows XP grava eventos de auditoria no log de aplicativos por padrão. O log também pode conter informações pessoais visíveis para todos os usuários autenticados.

Suprimindo falhas de auditoria

Outra opção durante a auditoria é suprimir qualquer falha de auditoria. Por padrão, uma falha de auditoria não afeta um aplicativo. Se necessário, no entanto, você pode definir a opção como false, o que faz com que uma exceção seja gerada.

Auditoria de Programação

Você pode especificar o comportamento de auditoria programaticamente ou por meio da configuração.

Classes de auditoria

A tabela a seguir descreve as classes e as propriedades usadas para programar o comportamento de auditoria.

Classe Descrição
ServiceSecurityAuditBehavior Habilita as opções de configuração para auditoria como um comportamento de serviço.
AuditLogLocation Enumeração para especificar em qual log gravar. Os valores possíveis são Padrão, Aplicativo e Segurança. Quando você seleciona Padrão, o sistema operacional determina o local real do log. Consulte a seção "Escolha do log de eventos de segurança ou aplicativo" mais adiante neste tópico.
MessageAuthenticationAuditLevel Especifica quais tipos de eventos de autenticação de mensagem são auditados no nível da mensagem. As opções sãoNone, , FailureSuccesse SuccessOrFailure.
ServiceAuthorizationAuditLevel Especifica quais tipos de eventos de autorização de serviço são auditados no nível do serviço. As opções sãoNone, , FailureSuccesse SuccessOrFailure.
SuppressAuditFailure Especifica o que acontece com a solicitação do cliente quando a auditoria falha. Por exemplo, quando o serviço tenta gravar no log de segurança, mas não tem SeAuditPrivilege. O valor true padrão indica que as falhas são ignoradas e a solicitação do cliente é processada normalmente.

Para obter um exemplo de como configurar um aplicativo para registrar eventos de auditoria, consulte Como: Auditoria de eventos de segurança.

Configuração

Você também pode usar a configuração para especificar o comportamento de auditoria adicionando um <serviceSecurityAudit> em <behaviors>. Você deve adicionar o elemento a um <behavior>, conforme mostrado no código a seguir.

<configuration>  
  <system.serviceModel>  
    <behaviors>  
      <behavior>  
        <!-- auditLogLocation="Application" or "Security" -->  
        <serviceSecurityAudit  
                  auditLogLocation="Application"  
                  suppressAuditFailure="true"  
                  serviceAuthorizationAuditLevel="Failure"  
                  messageAuthenticationAuditLevel="SuccessOrFailure" />
      </behavior>  
    </behaviors>  
  </system.serviceModel>  
</configuration>  

Se a auditoria estiver habilitada e auditLogLocation não for especificado, o nome padrão do log será "log de Segurança" para a plataforma que dá suporte à gravação no log de segurança; caso contrário, será o "log de Aplicativo". Somente os sistemas operacionais Windows Server 2003 e Windows Vista dão suporte à gravação no log de segurança. Para obter mais informações, consulte a seção "Sistema Operacional" mais adiante neste tópico.

Considerações de segurança

Se um usuário mal-intencionado souber que a auditoria está habilitada, esse invasor poderá enviar mensagens inválidas que fazem com que as entradas de auditoria sejam gravadas. Se o log de auditoria for preenchido dessa maneira, o sistema de auditoria falhará. Para atenuar isso, defina a SuppressAuditFailure propriedade como true e use as propriedades do Visualizador de Eventos para controlar o comportamento de auditoria.

Os eventos de auditoria gravados no Log de Aplicativos no Windows XP são visíveis para qualquer usuário autenticado.

Escolhendo entre logs de eventos de aplicativo e segurança

As tabelas a seguir fornecem informações para ajudá-lo a escolher se deseja fazer logon no aplicativo ou no log de eventos de segurança.

Sistema Operacional

Sistema Log do aplicativo Log de segurança
Windows XP SP2 ou posterior Suportado Sem suporte
Windows Server 2003 SP1 e Windows Vista Suportado O contexto do thread deve possuir SeAuditPrivilege

Outros fatores

Além do sistema operacional, a tabela a seguir descreve outras configurações que controlam a habilitação do registro em log.

Fator Log do aplicativo Log de segurança
Gerenciamento de política de auditoria Não aplicável. Junto com a configuração, o log de segurança também é controlado pela política da autoridade de segurança local (LSA). A categoria "Acesso ao objeto de auditoria" também deve ser habilitada.
Experiência do usuário padrão Todos os usuários autenticados podem gravar no log de aplicativos, portanto, nenhuma etapa de permissão adicional é necessária para processos de aplicativo. O processo do aplicativo (contexto) deve ter SeAuditPrivilege.

Consulte também