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 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:
Postar um comentário