Observação:

Ingira Logs do Oracle Cloud Infrastructure em Plataformas SIEM de Terceiros usando Log Shippers

Introdução

A Oracle Cloud Infrastructure (OCI) é uma plataforma Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) e Software-as-a-Service (SaaS) confiável para empresas de grande escala. Ele oferece uma ampla variedade de serviços gerenciados, incluindo hospedagem, armazenamento, rede, bancos de dados e muito mais.

A apresentação proativa de logs de eventos relacionados à segurança para triagem para os recursos apropriados é crucial para detectar e prevenir incidentes de segurança cibernética. Muitas organizações confiam nas plataformas de gerenciamento de eventos e informações de segurança (SIEM) para correlacionar, analisar logs e alertas de ativos relevantes. A configuração adequada de captura de log, retenção pela duração apropriada e monitoramento e alerta quase em tempo real permitem que as equipes de operações de segurança identifiquem problemas, concentrem-se em informações críticas com base no ajuste do sistema e tomem medidas oportunas.

Uma prática recomendada para a ingestão de logs do OCI envolve enviá-los ao OCI Streaming, que é compatível com Apache Kafka, permitindo que plataformas SIEM de terceiros consumam os logs como consumidores do Kafka. Essa abordagem reduz atrasos, fornece resiliência e garante retenção em caso de problemas temporários com o consumo de dados no SIEM.

No entanto, algumas plataformas SIEM de terceiros não têm conectores padrão para consumir logs diretamente de fluxos da OCI e não suportam nativamente o consumo de dados de tópicos do Kafka, a plataforma de streaming de eventos de código aberto amplamente usada, complicando o processo de integração. Nesses casos, os remetentes de log servem como uma solução para preencher essa lacuna.

Um remetente de log funciona como uma ferramenta independente que coleta logs de várias origens e os encaminha para um ou mais destinos especificados. Para garantir uma comunicação perfeita com o OCI Streaming e plataformas SIEM de terceiros, o software do remetente de logs deve ser executado em uma máquina com acesso à internet. Neste tutorial, implantaremos o software de log shipper em uma Instância de Computação na OCI.

O remetente do log:

Agora, vejamos a representação de alto nível da arquitetura da solução, conforme mostrado na imagem a seguir.

Diagrama de Arquitetura

Observação: Embora essa solução possa preencher a lacuna, é aconselhável considerá-la apenas como uma última opção se outros métodos não forem viáveis. É importante coordenar de perto com seu provedor SIEM para explorar qualquer abordagem nativa ou recomendada primeiro. Se você decidir continuar com um remetente de log, trabalhar com seu provedor SIEM na seleção do mais adequado garantirá um melhor suporte de seu provedor SIEM durante e após a implementação, ajudando a adaptar a configuração para atender às necessidades específicas de sua organização.

Existem diferentes expedidores de log disponíveis e alguns deles são:

Objetivos

Pré-requisitos

Observação: as tarefas a seguir (Tarefa 1 a Tarefa 4) devem ser executadas no final do OCI, independentemente do método escolhido ou do remetente do log.

Tarefa 1: Configurar os Logs para Captura

O serviço OCI Logging é um painel único altamente escalável e totalmente gerenciado para todos os logs na sua tenancy. O OCI Logging fornece acesso a logs de recursos do OCI. Um log é um recurso de primeira classe do OCI que armazena e captura eventos de log coletados em um determinado contexto. Um grupo de logs é um conjunto de logs armazenados em um compartimento. Grupos de logs são contêineres lógicos para logs. Use grupos de logs para organizar e simplificar o gerenciamento de logs aplicando a política do OCI IAM (Oracle Cloud Infrastructure Identity and Access Management) ou agrupando logs para análise.

Para começar, ative um log para um recurso. Os serviços fornecem categorias de log para os diferentes tipos de logs disponíveis para recursos. Por exemplo, o serviço OCI Object Storage suporta as seguintes categorias de log para buckets de acesso de leitura e gravação. Os eventos de acesso de leitura capturam eventos de download, e os eventos de acesso de gravação capturam eventos de gravação. Cada serviço pode ter diferentes categorias de log para recursos.

  1. Faça log-in na Console do OCI, navegue até Observabilidade e Gerenciamento, Logging e Grupos de Logs.

  2. Selecione seu compartimento, clique em Criar Grupo de Logs e digite as informações a seguir.

    • Nome: Informe SIEM_log_group.
    • Descrição (Opcional): Digite a descrição.
    • Tags (Opcional): Digite as tags.
  3. Clique em Criar para criar um novo grupo de logs.

  4. Em Recursos, clique em Logs.

  5. Clique em Criar log personalizado ou Ativar log de serviço, conforme desejado.

    Por exemplo, para ativar logs de gravação para um bucket do OCI Object Storage, siga as etapas:

    1. Clique em Ativar Log de Serviços.

    2. Selecione seu compartimento de recursos e digite Object Storage nos Serviços de pesquisa.

    3. Clique em Ativar Logs e selecione o nome do bucket do OCI Object Storage no Recurso.

    4. Selecione o grupo de logs (SIEM_log_group) criado na Tarefa 1.2 e Eventos de Acesso de Gravação na Categoria de Log. Opcionalmente, informe SIEM_bucket_write como Nome do log.

    5. Clique em Ativar para criar seu novo log do OCI.

Tarefa 2: Criar um Stream usando o OCI Streaming

O serviço OCI Streaming é uma plataforma de streaming de eventos em tempo real, sem servidor e compatível com Apache Kafka para desenvolvedores e cientistas de dados. Ele fornece uma solução totalmente gerenciada, escalável e durável para ingestão e consumo de streams de dados de alto volume em tempo real, como logs. Podemos usar o OCI Streaming para qualquer caso de uso em que os dados sejam produzidos e processados de maneira contínua e sequencial em um modelo de mensagens de publicação-assinatura.

  1. Vá para a Console do OCI, navegue até Analytics & AI, Messaging e Streaming.

  2. Clique em Criar Stream para criar o stream.

  3. Especifique as seguintes informações e clique em Criar.

    • Nome: Digite o nome do fluxo. Para este tutorial, é SIEM_Stream.
    • Pool de Streams: Selecione o pool de streams existente ou crie um novo com ponto final público.
    • Retenção (em horas): Informe o número de horas para reter as mensagens neste fluxo.
    • Número de Partições: Informe o número de partições para o stream.
    • Taxa de Gravação Total e Taxa de Leitura Total: Informe com base na quantidade de dados que você precisa processar.

Você pode começar com valores padrão para teste. Para obter mais informações, consulte Particionando um Stream.

Tarefa 3: Configurar um OCI Connector Hub

O OCI Connector Hub orquestra a movimentação de dados entre serviços no OCI. O OCI Connector Hub fornece um local central para descrever, executar e monitorar movimentações de dados entre serviços, como OCI Logging, OCI Object Storage, OCI Streaming, OCI Logging Analytics e OCI Monitoring. Ele também pode acionar o OCI Functions para processamento de dados leve e o OCI Notifications para configurar alertas.

  1. Vá para a Console do OCI, navegue até Observabilidade e Gerenciamento, Log e Conectores.

  2. Clique em Criar Conector para criar o conector.

  3. Digite as seguintes informações.

    • Nome: Informe SIEM_SC.
    • Descrição (Opcional): Digite a descrição.
    • Compartimento: Selecione seu compartimento.
    • Origem: Selecione Logging.
    • Alvo: Selecione Streaming.
  4. Em Configurar Conexão de Origem, selecione um Nome do compartimento, um Grupo de Logs e um Log (grupo de logs e log criados na Tarefa 1).

  5. Se você também quiser enviar Logs de Auditoria, clique em +Another Log e selecione o mesmo compartimento ao substituir _Audit como seu grupo de logs.

  6. Em Configurar destino, selecione um Compartimento e um Stream (stream criado na Tarefa 2).

  7. Para aceitar políticas padrão, clique no link Criar fornecido para cada política padrão. As políticas padrão são oferecidas para qualquer autorização necessária para que este conector acesse os serviços de origem, tarefa e destino.

  8. Clique em Criar.

Tarefa 4: Configurar um Controle de Acesso para Remetentes de Log Recuperar Logs

Para permitir que os remetentes de log acessem dados de um fluxo do OCI, crie um usuário e conceda permissões de extração de fluxo para recuperar logs.

  1. Criar um usuário do OCI. Para obter mais informações, consulte Gerenciando Usuários.

  2. Crie um grupo do OCI chamado SIEM_User_Group e adicione o usuário do OCI ao grupo. Para obter mais informações, consulte Gerenciando grupos.

  3. Criar a seguinte política do OCI IAM.

    Allow group <SIEM_User_Group> to use stream-pull in compartment <compartment_of_stream>
    

Agora, exploraremos como instalar remetentes de log e forneceremos alguns exemplos de como integrá-los às plataformas SIEM.

Caso 1: Usar o Filebeat como um Log Shipper

Filebeat é um expedidor leve para encaminhamento e centralização de dados de log. O Filebeat é altamente extensível por meio do uso de módulos, permitindo coletar logs de fontes como Apache Kafka, Amazon Web Services (AWS) e muito mais. Escrito em Go, o Filebeat fornece um único arquivo binário para implantação direta. Ele se destaca no manuseio de volumes de dados substanciais, consumindo recursos mínimos.

Instalar Filebeat

O Filebeat pode ser instalado em vários sistemas operacionais, como Linux e Windows, bem como em plataformas como máquinas virtuais, contêineres Docker e clusters Kubernetes. Neste tutorial, ele é instalado em uma instância de computação do Oracle Linux 8. Para obter mais informações, consulte Filebeat quick start: installation and configuration.

Para Instalar o Filebeat na instância de computação designada como remetente de log, siga as etapas:

  1. Adicione o repositório de beats para YUM. Para obter mais informações, consulte Repositórios para APT e YUM.

  2. Faça download e instale a chave de assinatura pública.

    sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    
  3. Crie um arquivo com uma extensão .repo (por exemplo, elastic.repo) no diretório /etc/yum.repos.d/ e adicione as seguintes linhas:

    [elastic-8.x]
    name=Elastic repository for 8.x packages
    baseurl=https://artifacts.elastic.co/packages/8.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    
  4. Seu repositório agora está pronto para uso. Execute os comandos a seguir para instalar o Filebeat.

    sudo yum install filebeat
    
  5. Execute os comandos a seguir para configurar o Filebeat para iniciar automaticamente durante a inicialização.

    sudo systemctl enable filebeat
    

Configurar o Filebeat

Na configuração a seguir, o Filebeat é configurado para ingerir logs de fluxos do OCI e salvá-los como arquivos no sistema de arquivos local do remetente de log (instância de computação). Isso permite que coletores de plataforma SIEM de terceiros ingiram esses logs lendo os arquivos do sistema de arquivos local.

  1. Substitua o conteúdo de /etc/filebeat/filebeat.yml pela configuração de amostra a seguir (certifique-se de substituir hosts, topics, username, and password por seus detalhes). Além disso, crie uma pasta para armazenar os logs, como /home/opc/oci_logs.

    filebeat.inputs:
    - type: kafka
      hosts: ["cell-1.streaming.us-ashburn-1.oci.oraclecloud.com:9092"]
      topics: ["SIEM_Stream"]
      group_id: "filebeat"
      username: <username>
      password: <Auth Token>
      ssl.enabled: true
      sasl.mechanism: PLAIN
    
    output.file:
      path: "/home/opc/oci_logs"
      filename: "oci_logs"
      rotate_every_kb: 5000 # 5 MB
      codec.format:
        string: '%{[@timestamp]} %{[message]}'
    
  2. Execute o comando a seguir para testar a configuração.

    filebeat test config
    
  3. Reinicie o serviço Filebeat após atualizar a configuração.

    sudo systemctl restart Filebeat
    
  4. Após a configuração bem-sucedida, você deverá ver os logs do OCI como arquivos na pasta /home/opc/oci_logs.

Exemplo: Integração do OCI e do Rapid7 InsightIDR usando o Filebeat

Neste exemplo, Rapid7 InsightIDR é configurado para ingerir os logs do OCI salvos no sistema de arquivos local do Filebeat do remetente de log.

  1. Instale o Coletor Rapid7 na instância do remetente de log.

    O Coletor Rapid7 coleta logs e os envia para sua conta Rapid7 InsightIDR para processamento. Para instalar o Coletor Rapid7, faça download do pacote na sua conta Rapid7 InsightIDR e instale-o na instância de computação do remetente de log. Para obter mais informações, consulte Rapid7 Instalação e Implantação do Collector.

  2. Configure Rapid7 InsightIDR para coletar dados da origem do evento. Embora o Rapid7 InsightIDR venha com conectores pré-criados para vários serviços de nuvem, a OCI não é suportada nativamente. No entanto, você pode ingerir e processar dados brutos seguindo estas etapas:

    1. Vá para Rapid7 InsightIDR, navegue até Coleção de Dados, Configurar Origem do Evento e clique em Adicionar Origem do Evento.

    2. Clique em Adicionar Dados Brutos e Logs Personalizados.

    3. Informe a Origem do Evento de Nome e selecione o Coletor (instância de computação).

    4. Selecione o Fuso Horário que corresponde ao local dos logs de origem de evento.

    5. Selecione o Método de Coleta como Diretório de Observação e use o caminho de logs do OCI /home/opc/oci_logs em Pasta Local.

    Rapid7 Logs personalizados

    A coleta de logs começará e os dados poderão ser exibidos em Rapid7 InsightIDR.

Caso 2: Usar bit fluente como remetente de log

O Fluent Bit é um transportador de logs leve e de alto desempenho, que serve como uma alternativa ao Fluentd. O Fluent Bit surgiu em resposta à crescente necessidade de uma solução ideal capaz de coletar logs de várias fontes, processando e filtrando-os com eficiência. Notavelmente, o Fluent Bit se destaca em ambientes restritos a recursos, como contêineres ou sistemas incorporados.

Para usar o Fluent Bit, definiremos inputs, filters, outputs e global configurations em um arquivo de configuração localizado em /etc/fluent-bit/fluent-bit.conf. Vamos examinar esses componentes em detalhes:

Plug-ins de entradas e saídas de bits fluentes:

Instalar e configurar o Fluent Bit

O Fluent Bit pode ser instalado em vários sistemas operacionais, como Linux e Windows, bem como em plataformas como máquinas virtuais, contêineres Docker e clusters Kubernetes. Neste tutorial, ele é instalado em uma instância de computação do Oracle Linux 8. Para instalar o Fluent Bit na instância de computação designada como remetente de log, siga as etapas:

  1. Crie um arquivo de repositório com uma extensão .repo (por exemplo, fluentbit.repo) no diretório /etc/yum.repos.d/ e adicione as linhas a seguir. Para obter mais informações, consulte Configurar Yum.

    [fluent-bit]
    name = Fluent Bit
    baseurl = https://packages.fluentbit.io/centos/$releasever/
    gpgcheck=1
    gpgkey=https://packages.fluentbit.io/fluentbit.key
    repo_gpgcheck=1
    enabled=1
    
  2. Depois que o repositório estiver configurado, execute o comando a seguir para instalar o Fluent Bit.

    sudo yum install fluent-bit
    
  3. O arquivo de configuração padrão do Fluent Bit está localizado em /etc/fluent-bit/fluent-bit.conf. Por padrão, ele coleta métricas de uso da CPU e envia a saída para o log padrão. Você pode exibir os dados de saída no arquivo /var/log/messages.

  4. Para coletar logs do serviço OCI Streaming e enviá-los para a saída padrão, configure a entrada como Kafka e a saída como stdout. Certifique-se de substituir Brokers, topics, username e password pelos seus detalhes.

    [INPUT]
       Name        kafka
       Brokers     cell-1.streaming.us-ashburn-1.oci.oraclecloud.com:9092
       Topics      SIEM-Stream
       Format    	json
       group_id    fluent-bit
       rdkafka.sasl.username <User Name>
       rdkafka.sasl.password   <Auth token>  
       rdkafka.security.protocol   SASL_SSL
       rdkafka.sasl.mechanism     PLAIN
    
    [OUTPUT]
       Name        stdout
    

Exemplo: Integração do OCI e do Rapid7 InsightIDR usando o Fluent Bit

Neste exemplo, integraremos o OCI com o Rapid7 InsightIDR instalando o Coletor Rapid7 na instância do remetente de log na qual o Fluent Bit está em execução. O Fluent Bit consumirá logs do OCI Streaming usando o Kafka como entrada e os enviará para uma porta TCP local, na qual o coletor Rapid7 fará listening dos dados de entrada.

  1. Instale o Coletor Rapid7 na instância do remetente de log existente.

    O Coletor Rapid7 coleta logs e os envia para sua conta Rapid7 InsightIDR para processamento. Para instalar o coletor, faça download do pacote na sua conta Rapid7 InsightIDR e instale-o na instância de computação do remetente de log. Para obter mais informações sobre etapas de instalação, consulte Rapid7 Instalação e Implantação do Collector.

  2. Configure Rapid7 InsightIDR para coletar dados da origem do evento. Embora o Rapid7 InsightIDR venha com conectores pré-criados para vários serviços de nuvem, a OCI não é suportada nativamente. No entanto, você pode ingerir e processar dados brutos seguindo estas etapas:

    1. Vá para Rapid7 InsightIDR, navegue até Coleção de Dados, Configurar Origem do Evento e clique em Adicionar Origem do Evento.

    2. Clique em Adicionar Dados Brutos e Logs Personalizados.

    3. Informe uma Origem do Evento de Nome e selecione o Coletor (instância de computação).

    4. Selecione o Fuso Horário que corresponde ao local dos logs de origem de evento.

    5. Selecione o Método de Coleta como Ouvir na Porta de Rede, digite um Número da Porta e um Protocolo.

    Rapid7 Logs personalizados

  3. Amostra de configuração de entrada e saída de Bit Fluente para integração Rapid7 InsightIDR. Certifique-se de substituir Brokers, topics, username e password pelos seus detalhes.

    [INPUT]
       Name        kafka
       Brokers     cell-1.streaming.us-ashburn-1.oci.oraclecloud.com:9092
       Topics      SIEM-Stream
       Format    	json
       group_id    fluent-bit
       rdkafka.sasl.username <User Name>
       rdkafka.sasl.password   <Auth token>  
       rdkafka.security.protocol   SASL_SSL
       rdkafka.sasl.mechanism     PLAIN
    
    [OUTPUT]
       Name             tcp
       Match            *
       Host             127.0.0.1
       Port             5170
       Format           json_lines
    
  4. Após modificar a configuração do Fluent Bit, reinicie o Fluent Bit usando o comando a seguir.

    sudo systemctl restart fluent-bit
    

    Depois que o Fluent Bit for reiniciado, você verá os logs do OCI aparecendo na console Rapid7.

Exemplo: Integração de OCI e Datadog usando o Fluent Bit.

Neste exemplo, o Fluent Bit em execução na instância do remetente de log consome logs de streams do OCI usando o Kafka como entrada e os envia para o ponto final HTTP do Datadog usando uma saída HTTP.

  1. Use os pontos finais de log HTTP do Datadog para enviar logs ao Datadog. Para obter mais informações, consulte Pontos Finais de Log.

  2. É necessária uma chave de API do Datadog para enviar logs ao ponto final HTTP do Datadog. Para obter mais informações, consulte API Datadog e Chaves de Aplicativo.

    Para gerar uma chave de API, siga as etapas:

    1. Na sua conta do Datadog, navegue até Definições da Organização.

    2. Clique em Chaves de API.

    3. Clique em Nova Chave, informe um nome para sua chave e clique em Criar Chave de API.

    DataDog Chaves de API

  3. Amostra de configuração de entrada e saída de Bit Fluente para integração com Datadog. Certifique-se de substituir Brokers, topics, username, password e API Key pelos seus detalhes.

    [INPUT]
       Name        kafka
       Brokers     cell-1.streaming.us-ashburn-1.oci.oraclecloud.com:9092
       Topics      SIEM-Stream
       Format    	json
       group_id    fluent-bit
       rdkafka.sasl.username <User Name>
       rdkafka.sasl.password   <Auth token>  
       rdkafka.security.protocol   SASL_SSL
       rdkafka.sasl.mechanism     PLAIN
    
    [OUTPUT]
       Name             http
       Match            *
       Host             http-intake.logs.us5.datadoghq.com
       Port             443
       URI              /api/v2/logs
       Header           DD-API-KEY <API-KEY>
       Format           json
       Json_date_key    timestamp
       Json_date_format iso8601
       tls              On
       tls.verify       Off
    
  4. Após modificar a configuração do Fluent Bit, reinicie o Fluent Bit.

    sudo systemctl restart fluent-bit
    

    Agora você deverá ver os logs do OCI em sua conta do Datadog.

Próximas Etapas

Este tutorial demonstrou como ingerir logs da OCI em plataformas SIEM de terceiros usando expedidores de logs. Embora existam vários remetentes de log disponíveis e várias maneiras de integrar a OCI com plataformas SIEM de terceiros usando-as, é essencial escolher o remetente de log e o método de integração corretos avaliando cuidadosamente as opções de entrada e saída suportadas por cada remetente de log. Certifique-se de coordenar com seu provedor SIEM para garantir que a solução esteja alinhada com seu ambiente e requisitos específicos.

Confirmações

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.