Auditoria de eventos de segurança
Os aplicativos criados com o Windows Communication Foundation (WCF) 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 maneira para um administrador detetar um ataque que já ocorreu ou está em andamento. Além disso, a auditoria 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 segurança WCF, consulte Visão geral de segurança. Para obter mais informações sobre como programar WCF, consulte Programação básica do WCF.
Existem dois níveis de auditorias de segurança:
Nível de autorização de serviço, no qual um chamador é autorizado.
Nível de mensagem, no qual o WCF verifica a validade da mensagem e autentica o chamador.
Você pode verificar se ambos os níveis de auditoria são bem-sucedidos ou falhados, o que é conhecido como comportamento de auditoria.
Depois de determinar um nível e 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 Padrão, o log real depende de qual sistema você está usando e se o sistema suporta gravação no log de segurança. Para obter mais informações, consulte a seção "Sistema operacional" mais adiante neste tópico.
Para gravar no log de segurança é necessário o SeAuditPrivilege
arquivo . Por padrão, apenas as contas Sistema Local e Serviço de Rede têm esse privilégio. Para gerenciar as funções read
de log de segurança e delete
requer o SeSecurityPrivilege
. Por padrão, apenas 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.
Outra opção durante a auditoria é suprimir ou não 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.
Você pode especificar o comportamento de auditoria programaticamente ou por meio da configuração.
A tabela a seguir descreve as classes e propriedades usadas para programar o comportamento de auditoria.
Classe | Description |
---|---|
ServiceSecurityAuditBehavior | Permite definir opções para auditoria como um comportamento de serviço. |
AuditLogLocation | Enumeração para especificar em qual log gravar. Os valores possíveis são Default, Application e Security. 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 escolhas 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 de serviço. As escolhas 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 indica que as falhas são ignoradas e a solicitação do cliente é processada true normalmente. |
Para obter um exemplo de configuração de um aplicativo para registrar eventos de auditoria, consulte Como auditar eventos de segurança.
Você também pode usar a configuração para especificar o comportamento de auditoria adicionando um serviceSecurityAudit> sob os <comportamentos>.< Você deve adicionar o elemento sob 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 de log padrão será "Segurança" para a plataforma que suporta a gravação no log de Segurança, caso contrário, será o log "Aplicativo". Somente os sistemas operacionais Windows Server 2003 e Windows Vista oferecem suporte à gravação no log de segurança. Para obter mais informações, consulte a seção "Sistema operacional" mais adiante neste tópico.
Se um usuário mal-intencionado souber que a auditoria está habilitada, esse invasor poderá enviar mensagens inválidas que farão 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 e true
use as propriedades do Visualizador de Eventos para controlar o comportamento de auditoria.
Os eventos de auditoria gravados no log do aplicativo no Windows XP são visíveis para qualquer usuário autenticado.
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 | Registo da aplicação | Registo de segurança |
---|---|---|
Windows XP SP2 ou posterior | Suportado | Não suportado |
Windows Server 2003 SP1 e Windows Vista | Suportado | O contexto do thread deve possuir SeAuditPrivilege |
Além do sistema operacional, a tabela a seguir descreve outras configurações que controlam a habilitação do registro em log.
Fator | Registo da aplicação | Registo de segurança |
---|---|---|
Gestão da política de auditoria | Não aplicável. | Junto com a configuração, o log de segurança também é controlado pela diretiva de autoridade de segurança local (LSA). A categoria "Acesso a objetos de auditoria" também deve ser habilitada. |
Experiência de usuário padrão | Todos os usuários autenticados podem gravar no log do aplicativo, portanto, nenhuma etapa de permissão adicional é necessária para os processos do aplicativo. | O processo de candidatura (contexto) deve ter SeAuditPrivilege . |