Utilize o Universal Feed do InfoSphere Guardium para Criar uma Solução Customizada de Monitoramento de Atividades de Dados, Parte 2: Criando um feed para uma origem de dados definida pelo usuário

Novos bancos de dados e novos aplicativos são criados e adotados continuamente devido às necessidades das organizações. A proteção de dados e recursos de auditoria são obrigatórios e mais essenciais do que nunca. A solução de proteção de dados InfoSphere® Guardium® é extensível para permitir a integração de diversos novos bancos de dados e origens em sua plataforma, sendo assim uma solução corporativa de monitoramento consistente. Nesta série, você aprende a integrar logs de eventos de qualquer software no InfoSphere Guardium usando o Universal Feed do Guardium. Parte 1 descreve como criar um feed para uma origem de dados relacionais. Neste artigo, você aprenderá a criar um feed para qualquer origem de dados arbitrária. Aprenda a fazer upload de descrições de eventos para o repositório do Guardium e a usar os recursos de relatórios para dados de evento. Este artigo inclui um arquivo de amostra de descrição do evento e um programa de amostra.

Indrani Ghatare, Software Engineer, InfoSphere Guardium, IBM

Indrani GhatareIndrani Ghatare é desenvolvedora de software da IBM há mais de 11 anos. Atualmente, é membro da equipe de Research and Development do InfoSphere Guardium Collector. Indrani trabalhou no desenvolvimento do componente de backend do Universal Feed Tipo 3.



Joe DiPietro, IBM InfoSphere Data Governance Center of Excellence Leader, IBM

Joe DiPietroJoe DiPietro é líder do Centro de Excelência do IBM InfoSphere Data Governance. Joe possui mais de 25 anos de experiência em design e implementação de segurança e redes. Antes da IBM e do Guardium, ele trabalhou na Check Point Software, pioneira em segurança, por mais de oito anos. Antes disso, DiPietro era engenheiro de sistemas corporativos da SynOptics Communications e membro do World Wide Technical Counsel (WWTC) da empresa. Joe possui mestrado em ciência da computação, mestrado e bacharelado em engenharia mecânica.



Kathryn Zeidenstein, InfoSphere Guardium Evangelist, IBM

Photo of Kathryn ZeidensteinKathy Zeidenstein trabalha na IBM há bilhões de anos. Atualmente, trabalha como divulgadora de tecnologia do monitoramento de dados do InfoSphere Guardium, no Silicon Valley Lab. Anteriormente, foi Information Development Manager para as ferramentas de ciclo de vida do InfoSphere Optim. Ela exerceu funções de ativação técnica e gerenciamento e marketing de produtos nas organizações Information Management e ECM na IBM.



Ury Segal, Senior Technical Staff Member, InfoSphere Guardium, IBM

Ury SegalUry Segal é membro da equipe técnica senior da IBM desde que a Guardium foi adquirida pela empresa em 2009. Ele trabalha na Guardium desde 2003. Atualmente, Ury dedica-se à coleta de eventos universais e outros recursos avançados do Guardium.



30/Nov/2012

Introdução

InfoSphere Guardium é uma solução abrangente de monitoramento de atividade de dados e proteção, incluindo suporte para diversos bancos de dados, compartilhamentos de arquivos e outros sistemas, como Hadoop e Microsoft® Sharepoint. Na maioria dos casos, a solução conta com análises de software leves (S-TAPs) para monitorar transações, incluindo as de usuários privilegiados. A atividade monitorada é enviada ao dispositivo do InfoSphere Guardium e armazenada em seu banco de dados interno. As informações podem ser usadas para relatórios de auditoria, alertas em tempo real e muito mais.

O segredo para a separação de obrigações é que os logs de segurança e de eventos devem ser armazenados fora do banco de dados ou do sistema de aplicativos de origem. Com InfoSphere Guardium, os dados de evento são enviados para um dispositivo seguro, chamado coletor, e armazenados em um banco de dados interno para relatórios e alertas. Com o recurso Universal Feed, incluído no InfoSphere Guardium, é possível integrar dados de evento auditáveis em um ambiente atual de Data Activity Monitoring (DAM), bastando enviá-los ao coletor para armazená-los lá.

O Universal Feed tem algumas opções para oferecer suporte a diferentes origens de monitoramento de atividade:

  • A primeira opção, descrita na Parte 1, é voltada para atividades que podem ser facilmente integradas nas tabelas internas atuais do InfoSphere Guardium. Isso às vezes é chamado de feed Tipo 1. É geralmente algum tipo de origem de banco de dados, pois InfoSphere Guardium é especializado em suporte à atividade de bancos de dados. Para mais informações sobre as entidades e atributos do sistema InfoSphere Guardium, consulte o Apêndice sobre esse assunto no livro de ajuda do produto.
  • A outra opção, descrita aqui, permite integrar as atividades de qualquer origem de dados arbitrária, permitindo criar uma estrutura de tabela no banco de dados Guardium para armazenar mensagens de feed. Isso às vezes é chamado de feed Tipo 3. O código de amostra neste artigo é um agente de Universal Feed para um log SSH.

Há algumas vantagens em usar o Universal Feed para armazenar os dados de auditoria fora do dispositivo sendo monitorado:

  • Não é possível apagar as informações de auditoria e log para encobrir violações ao dispositivo.
  • É possível manter a separação de obrigações para garantir que as informações de auditoria corretas sejam capturadas.
  • Usuários privilegiados não têm acesso aos logs de auditoria caso decidam alterar ou adulterar essas informações.

O agente Universal Feed, executado no host, enviará informações ao dispositivo InfoSphere Guardium, como mostra a Figura 1. Este artigo e o código de amostra incluso irão ajudá-lo a desenvolver seu próprio agente.

Figura 1. Visão geral de Universal Feed
Visão geral de Universal Feed

Neste artigo, você irá:

  • Aprender a desenvolver um agente Universal Feed usando o protocolo de mensagens do InfoSphere Guardium e o formato de arquivo de descrição de evento dinâmica nos buffers do protocolo. Este artigo foi escrito para programadores de Java™ com nível de conhecimento e experiência de iniciante a intermediário. É necessário conhecer um pouco o InfoSphere Guardium e os Buffers de Protocolo do Google.
  • Aprender a fazer upload de um buffer de protocolo de mensagens usando a UI da web, para configurar um coletor do InfoSphere Guardium para criar uma estrutura de tabelas.
  • Aprender a criar relatórios customizados na UI do InfoSphere Guardium para visualizar dados de auditoria.

Este artigo contém instruções passo a passo para desenvolver e configurar o agente. Para executar os agentes de amostra, é possível fazer o download do arquivo universal_3.zip (consulte a seção Downloads). O arquivo README contém instruções para compilar e executar o código. O programa de amostra foi desenvolvido e testado em um ambiente Linux®. Pode ser necessário modificar alguns scripts para executar em um sistema operacional diferente.


Requisitos do agente

Para testar o código e criar relatórios, é necessário ter um dispositivo InfoSphere Guardium configurado como coletor, Versão 9.0 ou posterior.

O agente Universal Feed que você criará é executado no sistema onde estão os dados de auditoria. O agente conecta-se à porta 16016 (a porta padrão do InfoSphere Guardium em sistemas UNIX®) e pode manter a conexão para enviar um grande número de mensagens. É importante que as portas de firewall entre o sistema do agente e o coletor estejam abertas para que eles possam se conectar.

O agente precisará usar mensagens de Handshake, Ping e Evento. As mensagens do evento, usadas pelo agente para enviar os dados de monitoramento, têm o seguinte formato:

  • Um cabeçalho de 60 bytes, mais dados do tamanho especificado no cabeçalho.
  • O tipo de mensagem deve ser g. O g minúsculo distingue-a de uma mensagem de feed Tipo 1 (tipo de banco de dados). Observe que as mensagens de Handshake e Ping usam G maiúsculo, como descritas abaixo.
  • O ID do fornecedor deve ser > 10000. (As mensagens de Handshake e Ping usam o ID de fornecedor 0, como descrito abaixo.)
  • Os dados devem ser uma mensagem protobuf serializada.
  • A mensagem protobuf pode ser qualquer mensagem com o nome de Evento, contendo o que você quiser.

O fragmento de código do programa de amostra na Lista 1 mostra o cabeçalho e dados do protocolo de mensagem.

Lista 1. Cabeçalho e dados do protocolo de mensagem
public ByteBuffer toByteBuffer() {
    byte[]  bytes = message.toByteArray();
    ByteBuffer bb = ByteBuffer.allocate(Pos.Body.pos +  bytes.length);
                
                                        // Offset (bytes)
    bb.put(msgType);                    // 0  Must be 'g'
    bb.put((byte) 0x00);                // 1  padding, must be 0
    bb.putShort((short)  bytes.length); // 2-3 dataLen
    bb.putInt(0x01000000);              // 4-7 mark
    bb.putInt(getUnixTime(date));       // 8-11 time stamp in seconds
    bb.putInt(0x00000007);              // 12-15 protocol_version
    bb.putInt(vendor);                  // 16-19 vendor must be 
                                        // greater than 10000
    bb.put(new byte[40]);               // 20-59 legacy
    bb.put(bytes);			            // Put the serialized 
                                        // protobuf message here
    bb.rewind();
                
    return bb;
}

A mensagem de Handshake:

  • Deve ter um cabeçalho de 60 bytes, além de dados do tamanho especificado no cabeçalho.
  • Deve usar o tipo de mensagem de G (G maiúsculo) e ID do fornecedor 0.
  • Permite que o coletor registre o nome do agente Universal Feed.
  • Deixa o agente "verde" na visualização de sistema da UI do InfoSphere Guardium, para que o usuário saiba que está operacional. Para acessar o monitor de status como administrador, acesse a guia System View e selecione S-TAP Status Monitor, como mostra a Figura 2:
    Figura 2. Linha no relatório System View mostrando o agente Universal Feed operacional
    Linha no relatório System View mostrando o agente Universal Feed operacional

A mensagem de Ping do InfoSphere Guardium ajuda a manter a conexão entre o agente e o coletor. A mensagem de Ping:

  • Deve ter um cabeçalho de 60 bytes, além de dados do tamanho especificado no cabeçalho.
  • Deve usar o tipo de mensagem de G (G maiúsculo) e ID de fornecedor 0.
  • Deve ser enviada a cada 30-60 segundos.

NOTA: O agente precisa ler tudo que o dispositivo InfoSphere Guardium enviar-lhe. Por exemplo, após a mensagem de handshake, o dispositivo enviará a política de auditoria atual do dispositivo ao agente Universal Feed. O agente pode então ignorar essas mensagens ou (para agentes mais avançados) processar essas informações para identificar detalhes relevantes sobre como configurar o comportamento do agente Universal Feed.

Figura 3 é um diagrama do fluxo de mensagem.

Figura 3. Visão geral do processamento de mensagens do Universal Feed
Visão geral do processamento de mensagens do Universal Feed

Etapa 1: Identificar as informações de auditoria para notificação de evento

Identifique o que você deseja auditar. As informações de auditoria podem ser qualquer coisa no sistema.

O agente de log de SSHD de amostra deste artigo envia eventos do log de SSHD /var/log/secure em um sistema Linux. O número de eventos a ser enviados pode ser alterado. É possível enviar eventos das últimas n entradas em /var/log/secure.


Etapa 2: Preparar a mensagem de Evento

Use Buffers de Protocolo do Google para implementar o agente. Prepare a mensagem de Evento em um arquivo .proto, de acordo com os requisitos descritos:

  • O arquivo .proto contém uma mensagem com o nome Event, que é uma coleção de mensagens possíveis, como mostrado aqui:
    Lista 2. Definição da mensagem Evento em um arquivo .proto
    message Event {
    optional message_A m1 = 1;
    optional message_B m2 = 2;	
    }
    message message_A {
    optional string name = 1;
    }
    message message_B {
    optional string name = 1;
    }
  • Os campos da mensagem de Evento devem ser definidos como opcionais e não como obrigatórios ou repetidos.
  • É possível definir apenas uma interface por arquivo .proto ou ID de fornecedor.
  • O nome da mensagem e o nome do enumerador são exclusivos para cada arquivo .proto.
  • Todas as mensagens relacionadas a uma interface devem ser definidas em um único arquivo .proto.
  • NOTA: Cada arquivo .proto deve estar em um pacote Java separado.

A Listagem 3 mostra o arquivo .proto definido para o agente de log de SSHD.

Lista 3. Arquivo .proto de amostra para um evento de log de SSHD
package com.guardium.proto.datasource.test.type3.events10002;
                
message Event {
optional SSHDLogEvent sshde = 1; //SSHD Log  Message
                }
                
message SSHDLogEvent {
optional string timestamp = 1;    // timestamp example: 07/30/2012 16:24
optional string hostName = 2;     // Hostname of computer where event 
                                  // occurred.
optional string processName = 3;  // Process name. Example: sshd
optional int32 processID = 4;     // Process ID. Example: 32573
optional string messageFromSSHDaemon = 5;
                                  // Message from SSH daemon. 
                                  // Example:Accepted password for root 
                                  // from 9.30.150.211 port 56394 ssh2
                }

Etapa 3: Compilar o arquivo .proto

Compile o arquivo .proto com protoc, o compilador de Buffer de Protocolo desenvolvido pelo Google, para produzir código na tecnologia Java. O programa de agente de amostra usa protoc para produzir código Java. Também é possível produzir C++ para implementar o agente em C++. Para produzir o código na tecnologia Java, execute o seguinte comando protoc:

protoc -I=.
--java_out=.protoFileName

Para o agente de log de SSHD, usamos o nome events10002.proto para produzir código Java executando o comando abaixo. Isso produzirá um arquivo Java chamado Events10002.java no diretório com base no nome do pacote usado em events10002.proto. Por exemplo, se o nome do pacote Java usado no arquivo .proto for com.guardium.proto.datasource.test.type3.events10002, o comando a seguir criará com/guardium/proto/datasource/test/type3/events10002/Events10002.java.

protoc -I=. --java_out=.events10002.proto

Etapa 4: Usar o arquivo Java criado para desenvolver o agente Universal Feed

É possível usar o código de amostra fornecido para desenvolver seu próprio agente. O código de amostra inclui código utilitário/de infraestrutura genérico e código específico para o agente de log de SSHD.

Código utilitário e de infraestrutura

O código genérico consiste nas seguintes classes:

  • src/com/guardium/proto/datasource/DatasourceMessageUtil.java— Essa classe é usada para ajudar a desenvolver mensagens Guardium para enviar do agente Universal Feed ao dispositivo. É possível usar outras classes Java para chamar os métodos nessa classe para desenvolver facilmente mensagens Guardium.
  • src/com/guardium/proto/datasource/Socket.java— Essa classe é usada para abrir um soquete TCP do agente Universal Feed para o dispositivo Guardium.
  • src/com/guardium/proto/datasource/Wrapper.java— Essa classe é usada para "envolver" os dados no formato de mensagem apropriado.

Código específico do aplicativo do agente

O código específico do agente de log de SSHD está nos seguintes arquivos:

  • src/com/guardium/proto/datasource/test/type3/protofiles/events10002.proto contém as definições de mensagem.
  • src/com/guardium/proto/datasource/test/type3/events10002/Events10002.java é gerado a partir de events10002.proto.
  • src/com/guardium/proto/datasource/test/type3/AddEvent2.java contém código de envio de evento do agente de log de SSHD.
  • README contém informações sobre como configurar o ambiente e executar o agente de log.
  • RunAddEvent2.sh é o script para executar o agente de log de SSHD.
  • src/com/guardium/proto/datasource/test/type3/SendPingMessage.java pode enviar uma mensagem Ping do Guardium a cada 30 segundos. Se você mantiver esse programa em execução, a entrada NewUniversalFeedLogger continuará verde no console da web do Guardium.

Etapa 5: Fazer upload do arquivo .proto para o coletor do Guardium

Guardium armazena informações de evento do feed Tipo 3 em um banco de dados interno chamado DIST_INT (distributed interface). Para configurar o banco de dados DIST_INT para suas mensagens, é necessário fazer upload do arquivo .proto que você definiu anteriormente. Siga estas instruções para fazer upload do arquivo .proto para o banco de dados. A Figura 4 mostra os campos que precisam ser inseridos.

  1. Faça login no console da web do InfoSphere Guardium como administrador.
  2. Acesse Administration Console > Guardium Definitions > Distributed Interface > New.
  3. Insira as informações corretas do agente, como mostrado abaixo:
    Figura 4. Detalhes da interface da web do coletor do Guardium para upload do arquivo .proto para o banco de dados DIST_INT
    Detalhes da interface da web do coletor do Guardium para upload do arquivo .proto para o banco de dados DIST_INT

    Vendor ID— Deve ser maior que 10.000 e deve ser o mesmo valor usado para ID de fornecedor no protocolo de mensagem no aplicativo do agente para enviar mensagens ao coletor. No evento de amostra de log de SSHDL, o valor usado é 10.002. É possível alterar o valor e passá-lo através da opção da linha de comando de AddEvent2, mas lembre-se que o mesmo valor é usado ao fazer upload do arquivo através da interface da web.

    Domain name— Qualquer nome pode ser usado para esse domínio customizado. Esse domínio estará disponível para criar relatórios customizados dos dados de auditoria. O domínio contém todas as entidades para criar relatórios.

    File name— É o nome do arquivo no qual você definiu a mensagem de evento e do qual gerou código Java para usar na implementação do agente.

    Database name— É o banco de dados interno do Guardium no qual as informações do evento serão armazenadas. O nome do banco de dados é DIST_INT. É necessário sempre inserir o nome DIST_INT.

  4. Clique em OK para salvar o arquivo. Quando o processamento for concluído, clique em Apply.

Etapa 6: Reiniciar os mecanismos de inspeção

Um mecanismo de inspeção no Guardium define qual tráfego deve ser monitorado no Guardium e qual deve ser ignorado. Para garantir que os mecanismos de inspeção saibam da existência da nova origem (ou seja, o agente Universal Feed), é necessário reiniciá-los. Isso pode ser feito no Console da Web do Guardium ou usando um comando da interface da linha de comandos.

Para reiniciar os mecanismos de inspeção no Console da Web do Guardium, navegue até o Administration Console e clique em Inspection Engines e depois em Restart Inspection Engines, como mostra a Figura 5.

Figura 5. Reiniciar Mecanismo de Inspeção no Console da Web
Reiniciar Mecanismo de Inspeção no Console da Web

Também é possível fazer login no dispositivo como usuário da CLI e executar o seguinte comando: restart inspection-core.


Etapa 7: Executar o agente

Você agora está pronto para executar o aplicativo agente que desenvolveu para enviar eventos ao coletor. Quando os eventos são enviados ao coletor, eles são processados e suas informações são armazenadas no banco de dados do Guardium (DIST_INT). Essas informações podem ser acessadas para criar relatórios de auditoria, alertas e mais.

Para enviar um evento, execute o seguinte comando:

Java com/guardium/proto/datasource/test/type3/AddEvent2 -host 9.70.145.62 
    -vendorID 10002 -log sampleSecureSSHDLog.txt

Ou:

./RunAddEvent2.sh

Não deixe de substituir o IP do host pelo IP do coletor do Guardium ao executar o agente. Consulte o arquivo README para mais informações e para ver o comando necessário para executar o agente de SSHD.

A Listagem 4 mostra uma saída de amostra do agente de log de SSHD, com mensagem de Handshake, mensagem de Ping e mensagem sshde (SSHDLogEvent). A Listagem 3 mostra o arquivo .proto do evento.

Lista 4. Cabeçalho e dados do protocolo de mensagem
Processing protobuf file eventinfo
*** WRITE ***
Type1, vendor=0
type: HANDSHAKE
handshake {
  timestamp {
    unix_time: 1348939711
  }
  client_identifier: "NewUniversalFeedLogger"
  current_master: "NewUniversalFeedCollector"
  current_master_ip: 16843009
  product: "event"
  transient: false
}
                
*** WRITE ***
Type1, vendor=0
type: PING
ping {
  timestamp {
    unix_time: 1348939711
  }
  client_identifier: "NewUniversalFeedLogger"
  current_master: "NewUniversalFeedCollector"
  current_master_ip: 4027124234
}                
                
*** WRITE ***
Type3, vendor=10002
sshde {
timestamp: "Aug  2 23:04:55"
hostName: "indrani-stap"
processName: "sshd"
processID: 8668
messageFromSSHDaemon: "Invalid user guardium from 9.65.35.38 Aug 2 23:04:55 
                      indrani-stap sshd[8669]: input_userauth_request: 
                      invalid user guardium"
}
                
*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:04:57"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8668
  messageFromSSHDaemon: "Failed none for invalid user guardium from 
                        9.65.35.38 port 52326 ssh2"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:04:58"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8668
  messageFromSSHDaemon: "Failed password for invalid user guardium from 
                        9.65.35.38 port 52326 ssh2"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:00"
  hostName: "indrani-stap"
  processName: "last"
  processID: 0
  messageFromSSHDaemon: "message repeated 4 times Aug 2 23:05:00 indrani-stap 
                        sshd[8669]: Disconnecting: Too many authentication 
                        failures for guardium"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:17"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8674
  messageFromSSHDaemon: "Failed password for root from 9.65.35.38 port 52327 ssh2"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:19"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8674
  messageFromSSHDaemon: "pam_unix(sshd:auth): authentication failure; 
                        logname= uid=0 euid=0 tty=ssh 
                        ruser= rhost=sig-9-65-35-38.mts.ibm.com user=root"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:21"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8674
  messageFromSSHDaemon: "Failed password for root from 9.65.35.38 port 52327 ssh2"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:32"
  hostName: "indrani-stap"
  processName: "last"
  processID: 0
  messageFromSSHDaemon: "message repeated 3 times"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:32"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8675
  messageFromSSHDaemon: "Disconnecting: Too many authentication failures for root"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:32"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8674
  messageFromSSHDaemon: "PAM 3 more authentication failures; 
                        logname= uid=0 euid=0 tty=ssh 
                        ruser= rhost=sig-9-65-35-38.mts.ibm.com user=root"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:32"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8674
  messageFromSSHDaemon: "PAM service(sshd) ignoring max retries; 4 > 3"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:52"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8680
  messageFromSSHDaemon: "Accepted password for root from 9.65.35.38 port 52328 ssh2"
}

*** WRITE ***
Type3, vendor=10002
sshde {
  timestamp: "Aug  2 23:05:52"
  hostName: "indrani-stap"
  processName: "sshd"
  processID: 8680
  messageFromSSHDaemon: "pam_unix(sshd:session): session opened for 
                        user root by (uid=0)"
}

Etapa 8: Criar e visualizar relatórios de auditoria

É possível criar relatórios customizados para visualizar as informações de auditoria que estão sendo enviadas ao coletor. A criação de relatórios no Guardium baseia-se em domínios e entidades. Domínios são visualizações de certo conjunto de informações, e entidades são campos dentro desse domínio. Como você não está usando as tabelas Guardium regulares para armazenar dados de evento, seu relatório será criado com base no domínio customizado criado em uma etapa anterior. As entidades são os campos da mensagem de evento. Aqui estão as instruções:

  1. Acesse Tools > Custom Query Builder > Domain Finder e selecione seu domínio customizado, como mostra a Figura 6.
    Figura 6. Seleção de domínio para criação de relatório
    Seleção de domínio para criação de relatório
  2. Em Custom Query Builder, selecione Query Finder > Main Entity e clique em New, como mostra a Figura 7.
    Figura 7. Custom Query Builder — Query Finder
    Custom Query Builder Query Finder
  3. Na tela New Query — Overall Details, insira informações para Query Name e Main Entity. Para o log de evento de amostra, é possível ver na Figura 8 que selecionamos para Main Entity DI_10002_SSHDLogEvent e demos o Query Name sshd log. Guardium gera as entidades com base na definição de mensagem do arquivo .proto. Na amostra, o arquivo events10002.proto tem uma mensagem chamada SSHDLogEvent. No Guardium, ela recebe o nome de entidade DI_10002_SSHDLogEvent. Clique em Next.
    Figura 8. Custom Query Builder — New query overall details
    Custom Query Builder New query overall details
  4. No Custom Query Builder, para criar um relatório customizado, como mostra a Figura 9 arraste os campos de entidade para a área de janela Query Fields e clique em Save.
    Figura 9. Custom Query Builder — Criar Relatório
    Custom Query Builder Criar Relatório
  5. Por fim, para incluir esse relatório em uma área de janela, clique em Add to Pane e selecione Guardium Monitor, ou qualquer outra área na qual você deseje incluí-lo.

Observe que nas Figura 9 e Figura 10, é possível ver os metadados das entidades que foram geradas no banco de dados DIST_INT a partir do arquivo events10002.proto mostrado na Lista 2.

Figura 10. Metadados gerados
Metadados gerados

Para visualizar o relatório, acesse a guia Guardium Monitor e clique no relatório criado. Figura 11 mostra um relatório criado para um evento de log de SSHD.

Figura 11. Relatório de log de SSHD
Relatório de log de SSHD

(Veja uma versão maior de Figura 11.)


Resolução de problemas

Caso não seja possível visualizar os dados nos relatórios, siga essas dicas para a solução de problemas:

  • Certifique-se de que portas de firewall entre o agente e os sistemas coletores estejam abertas.
  • Certifique-se de ter reiniciado o Mecanismo de Inspeção após o upload do arquivo .proto para Administration Console > Guardium Definitions > Distributed Interface.
  • Certifique-se de que você fez upload do mesmo arquivo .proto usado para criar o código Java para o agente de desenvolvimento.
  • Certifique-se de que Start Date (QUERY_FROM_DATE) e End Date (QUERY_TO_DATE) possuem o valor correto no relatório que você criou.
  • Depure usando tcpdump.
  • Depure usando o utilitário slon. (Consulte o livro de ajuda do InfoSphere Guardium para mais informações sobre esse utilitário de diagnóstico.).

Resumo

Este artigo e o código de amostra devem ajudá-lo a lidar com os desafios dos requisitos de auditoria e conformidade sobre cada vez mais eventos de dados. A solução de proteção de dados e conformidade InfoSphere Guardium é extensível para permitir a integração de diversos novos bancos de dados e origens em sua plataforma, sendo assim uma solução corporativa de monitoramento consistente.


Download

DescriçãoNomeTamanho
Sample Universal Feed agentuniversal_3.zip184KB

Recursos

Aprender

Obter produtos e tecnologias

  • Crie seu próximo projeto de desenvolvimento com o o software de teste IBM, disponível para download diretamente do developerWorks.
  • Agora é possível usar o DB2 grátis. Faça o download do DB2 Express-C, uma versão grátis do DB2 Express Edition para a comunidade, que oferece os mesmos recursos principais do DB2 Express Edition, sendo uma base sólida para desenvolver e implementar aplicativos.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=848084
ArticleTitle=Utilize o Universal Feed do InfoSphere Guardium para Criar uma Solução Customizada de Monitoramento de Atividades de Dados, Parte 2: Criando um feed para uma origem de dados definida pelo usuário
publish-date=11302012