Auditoria de eventos de segurança
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, confira 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 quanto a êxito ou a falha, o que é conhecido como comportamento de auditoria.
Local do log de auditoria
Depois de determinar um nível e um comportamento de auditoria, 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 o 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. O gerenciamento das funções de log de segurança read
e delete
requer 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 do aplicativo. O Windows XP grava eventos de auditoria no log do aplicativo por padrão. O log também pode conter informações pessoais visíveis para todos os usuários autenticados.
Suprimir 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 lançada.
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 de log real. 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ão None , Failure , Success e 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ão None , Failure , Success e 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 padrão de true 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 em log, consulte Como auditar 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 <comportamento>, 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 um auditLogLocation
não for especificado, o nome do log padrão será "Segurança" para a plataforma que dá suporte à gravação no log de segurança; caso contrário, será o log "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 propriedade SuppressAuditFailure como true
e use as propriedades do visualizador de eventos para controlar o comportamento de auditoria.
Eventos de auditoria gravados no Log de Aplicativos no Windows XP são visíveis para qualquer usuário autenticado.
Escolher entre logs de eventos de Segurança e Aplicativo
As tabelas a seguir fornecem informações para ajudá-lo a escolher se deseja fazer logon no log de evento de Aplicativo ou de Segurança.
Sistema operacional
Sistema | Log do aplicativo | Log de segurança |
---|---|---|
Windows XP SP2 ou posterior | Com suporte | Sem suporte |
Windows Server 2003 SP1 e Windows Vista | Com suporte | 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 da política de auditoria | Não aplicável. | Junto com a configuração, o log de Segurança também é controlado pela política de LSA (autoridade de segurança local). 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 Aplicativo e, portanto, nenhuma etapa de permissão adicional é necessária para processos de aplicativos. | O processo de aplicativos (contexto) deve ter SeAuditPrivilege . |