Auditoria de eventos

Auditoria de eventos

O objetivo deste artigo é apresentar uma visão geral de auditoria de eventos (log management).

 Auditoria de eventos consiste em coletar registros de fatos ocorridos em recursos de informática, como por exemplo aplicativos.
O processo de auditoria ocorre normalmente por meio de aplicações ou agentes de auditoria enviando eventos para bancos de dados ou servidores de auditoria.

O que auditar?


Todo processo de identificação para entrada e saida de um sistema deve ser auditado, considerando os seguintes dados:
  • Endereço IP de origem
  • Maquina utilizada na origem
  • Identificação unica de usuário
  • Data e Hora de entrada na aplicação
  • Data e Hora de saida da aplicação
  • Identificador de sessão do usuário
Exemplo de evento:
IDEvento
IP
Maquina
IDOrigem
IDAlvo
DataHora
Sessão
Descricao
501
127.0.0.1
XPTO1
USER01
USER01
01012008170000
1234556
Logon com sucesso

Eventos de administração de usuários, devem ser auditados, incluindo o usuário que está administrando (IDOrigem), exemplos:
  • Usuário criado
  • Senha de usuário trocada
  • Usuário bloqueado
  • Usuário desbloqueado
Exemplo de evento:
IDEvento
IP
Maquina
IDOrigem
IDAlvo
DataHora
Sessão
Descricao
508
127.0.0.1
XPTO1
ADM01
USER01
01012008170000
1234556
Criado com sucesso

Eventos transacionais também devem ser auditados para identificar por exemplo, que usuário realizou uma determinada venda, ou concedeu um crédito.
Exemplos de eventos transacionais:
IDEvento
IP
Maquina
IDOrigem
Alvo
DataHora
Sessão
Descricao
602
127.0.0.1
XPTO1
USER01
Modulo01
01012008170000
1234556
Concedido credito para o CPF 000000001
602
127.0.0.1
XPTO1
USER01
Modulo01
01012008170000
1234556
Concedido credito para o CPF 000000002
603
127.0.0.1
XPTO1
USER01
Modulo02
01012008170000
1234556
Venda produto XPTO para o CPF 000000001

Todo registro de auditoria deve possuir um identificador unico por tipo de evento(IDEvento), exemplos:
  • 501 – Logon com sucesso
  • 502 – Tentativa de logon sem sucesso
  • 503 – Logoff do sistema
  • 504 – Usuário bloqueado
IDEvento
IP
Maquina
IDOrigem
IDAlvo
DataHora
Sessão
Descricao
501
127.0.0.1
XPTO1
USER01
USER01
01012008170000
1234556
Logon com sucesso
503
127.0.0.1
XPTO1
USER01
USER01
01012008170000
1234556
Logoff do sistema

Niveis de auditoria


Um aplicativo pode possuir diversos níveis de auditoria, normalmente configuraveis.  A idéia disso é que, em momentos que um sistema precisa de maior performance, a auditoria seja baixada para um nível menos rigoroso, ou seja, registrando menos eventos.
Exemplo de tabela de nível de auditoria:
Nível de auditoria
ID Evento
1
501
1
503
2
518
3
520

No exemplo acima, nível 1 registraria os eventos 501 e 503 e o nivel 3 registraria os eventos 501,503,518 e 520.


Não repudio


Os eventos registrados precisam ser controlados para que não ocorra o repudio às evidencias.
Usuários fraudadores estarão negando as ações auditadas e as empresas precisam de controles para evitar isso. Este tipo de controle é conhecido por “Controle de Não Repudio”.
Dois controles são aplicáveis neste caso:
  • Certificação de eventos
  • Sequenciamento de eventos
Certificação de eventos, consiste em certificar digitalmente cada registro gravado em banco de dados, para distinguir de inclusões diretas no banco de dados.
Sequenciamento de eventos consiste em numerar sequenciamente cada linha de evento para identificar se algum evento certificado foi apagado.
Exemplo de certificação de evento e sequenciamento:
ID Evento
Descricao
Certificado
Sequencia
501
Logon
dshdjhkjkllhlkçkçllk
1
501
Logon
Shglgoysdfoysodsho
2
518
Logout
uoisdyosdyuiguifgtf
3

Exemplos de bases de auditoria violadas:
1)   Exemplo de inclusão de evento não autorizado diretamente na base:
ID Evento
Descricao
Certificado
Sequencia
501
Logon
dshdjhkjkllhlkçkçllk
1
502
Bloqueio


518
Logout
uoisdyosdyuiguifgtf
2

2)   Exemplo de exclusão de evento(Sequencia 2):
ID Evento
Descricao
Certificado
Sequencia
501
Logon
dshdjhkjkllhlkçkçllk
1
502
Bloqueio
Shglgoysdfoysodsho
3
518
Logout
uoisdyosdyuiguifgtf
4



Logs de navegação - urls


Uma grande ferramenta para identificar brechas em aplicativos web, são os logs de navegação - urls.
Estes logs podem ser obtidos a partir de um Proxy Reverso com autenticação para identificar quem está navegando.

A partir do momento que você possui um registro da navegação dos usuários, você pode identificar comportamentos e entender como um atacante invade o sistema.
Exemplo de log de navegação:
ID Evento
Descricao
ID Alvo
URL
701
Navegacao
USER01
http://www.meusite.com.br/index.jsp
701
Navegacao
USER01
http://www.meusite.com.br/login.jsp
701
Navegacao
USER01
http://www.meusite.com.br/menu.jsp
701
Navegacao
USER01
http://www.meusite.com.br/ativar.jsp

Pelo log acima, você pode identificar um comportamento normal.
Index.jsp – Pagina de logon
Login,jsp – Pagina que processa o logon
Menu.jsp – Pagina com os menus do usuário
Ativar.jsp – Um dos itens do menu

Exemplo de log de navegação suspeito:
ID Evento
Descricao
ID Alvo
URL
701
Navegacao
USER01
http://www.meusite.com.br/index.jsp
701
Navegacao
USER01
http://www.meusite.com.br/login.jsp
701
Navegacao
USER01
http://www.meusite.com.br/menu.jsp
701
Navegacao
USER01
http://www.meusite.com.br/login.jsp
701
Navegacao
USER01
http://www.meusite.com.br/ativar.jsp

Pelo log acima, você pode identificar um comportamento anormal. Porque o usuário após ver o menu, chamou a página de processar logon novamente? Estaria o usuário tentando trocar o logon no aplicativo para fraudar?


Análise de eventos


Análise de eventos consiste em após um incidente (ataque, fraude, etc), o administrador iniciar uma investigação nos dados de auditoria.

Alguns pontos de atenção iniciais a serem validados:
  • Base de dados foi violada com inclusão/alteração (Ver certificação de eventos)
  • Base de dados foi violada com exclusão (Ver sequenciamento de eventos)
Após isso, analisar os eventos basicos de auditoria para identificar os incidentes.
Após identificar os incidentes, verificar o usuário que realizou os eventos.
Sendo uma suspeita de ataque, analisar os logs de navegação para identificar comportamentos estranhos.


Alertas


Sistemas de auditoria podem ser configurados para executar alertas, baseados em condições de eventos.

Estes tipos de alertas podem ser:
  • Aviso em painel de monitoramento
  • Envio de email
  • Envio de SMS
  • Ligação telefonica
Exemplos de condições de eventos:
  • Venda do produto X após as 23:00 horas
  • Concessão de crédito para pessoa em lista negra de crédito
  • Logon fora de horário padrão
Correlação de dados

Correlação de dados corresponde ao cruzamento de informações de auditoria e logs diversos, de forma online ou não.
Desenho de uma solução de correlação:

O objetivo de correlacionar dados é identificar pontos de falha em um processo, fraudes, entre outros problemas.
Um exemplo simples, é a venda, onde por exemplo, quatro sistemas seriam envolvidos na transação, de forma independente:
  • Consulta de crédito no mercado
  • Ferramenta de análise de crédito por comportamento/caracteristicas
  • Concessão efetiva do crédito
  • Liberação do produto
Considerando uma eventual fraude, os dois primeiros passos poderiam ser ignorados, indo diretamente para a concessão do crédito.
Com uma ferramenta de correlação de dados, seria levantado um alerta que ocorreu uma concessão de crédito sem a devida análise de crédito.
Exemplo de logs correlacionáveis:
Análise de crédito:
ID Evento
Descricao
CPF
Resultado
705
Análise
00001
OK
705
Análise
00006
OK
705
Análise
00003
NOK
705
Análise
00008
OK

Concessão de crédito:
ID Evento
Descricao
CPF
Resultado
708
Concessão
00002
OK
708
Concessão
00001
OK
708
Concessão
00003
NOK
708
Concessão
00006
OK
708
Concessão
00007
OK

Efetivação de venda:
ID Evento
Descricao
CPF
Resultado
809
Venda produto X
00002
OK
809
Venda produto Y
00001
OK
809
Venda produto X
00003
NOK
809
Venda produto Y
00006
OK
809
Venda produto X
00007
OK

Pela correlação de eventos acima, podemos constatar que o CPF 00001 teve análise de crédito, concessão de crédito e efetivação de venda ok. Por outro lado, o CPF 00002, conseguiu comprar sem análise de crédito(Podendo ser uma eventual fraude).

Nenhum comentário: