Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
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:
-
Extraia logs de streams do OCI usando a origem Kafka.
-
Roteie os logs para a plataforma SIEM de terceiros usando qualquer tipo de destino ou plug-in suportado, como porta TCP, HTTP ou um arquivo no coletor SIEM de terceiros.
Agora, vejamos a representação de alto nível da arquitetura da solução, conforme mostrado na imagem a seguir.
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:
- Sequência de arquivos
- Bit Fluente
- Fluentd
- Vetor
- Logstash
Objetivos
- Este tutorial se concentra em como os logs podem ser consumidos de fluxos da OCI usando os remetentes de log Filebeat e Fluent Bit e exemplos de como eles podem se integrar a plataformas SIEM de terceiros são fornecidos.
Pré-requisitos
-
Os usuários no OCI devem ter as políticas necessárias para os serviços OCI Streaming, OCI Connector Hub e OCI Logging para gerenciar os recursos. Para obter mais informações sobre a referência da política de todos os serviços, consulte Referência de Políticas.
-
Uma instância de computação designada como o remetente do log deve estar disponível com acesso à internet para acessar fluxos do OCI. Para obter mais informações, consulte Criando uma Instância.
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.
-
Faça log-in na Console do OCI, navegue até Observabilidade e Gerenciamento, Logging e Grupos de Logs.
-
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.
- Nome: Informe
-
Clique em Criar para criar um novo grupo de logs.
-
Em Recursos, clique em Logs.
-
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:
-
Clique em Ativar Log de Serviços.
-
Selecione seu compartimento de recursos e digite Object Storage nos Serviços de pesquisa.
-
Clique em Ativar Logs e selecione o nome do bucket do OCI Object Storage no Recurso.
-
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, informeSIEM_bucket_write
como Nome do log. -
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.
-
Vá para a Console do OCI, navegue até Analytics & AI, Messaging e Streaming.
-
Clique em Criar Stream para criar o stream.
-
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.
- Nome: Digite o nome do fluxo. Para este tutorial, é
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.
-
Vá para a Console do OCI, navegue até Observabilidade e Gerenciamento, Log e Conectores.
-
Clique em Criar Conector para criar o conector.
-
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.
- Nome: Informe
-
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).
-
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. -
Em Configurar destino, selecione um Compartimento e um Stream (stream criado na Tarefa 2).
-
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.
-
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.
-
Criar um usuário do OCI. Para obter mais informações, consulte Gerenciando Usuários.
-
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. -
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.
-
Tipos de Entrada Filebeat: As entradas determinam como o Filebeat localiza e processa os dados que ele coleta. Para obter uma lista completa dos tipos de entrada suportados, consulte Tipos de Entrada Filebeat.
-
Tipos de Saída Filebeat: O Filebeat é configurado para enviar logs para um destino específico definindo opções na seção Saídas do arquivo de configuração
filebeat.yml
. Observe que apenas uma única saída pode ser definida por vez. Para obter mais informações sobre os tipos de saída disponíveis, consulte Configurar a saída.
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:
-
Adicione o repositório de beats para YUM. Para obter mais informações, consulte Repositórios para APT e YUM.
-
Faça download e instale a chave de assinatura pública.
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
-
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
-
Seu repositório agora está pronto para uso. Execute os comandos a seguir para instalar o Filebeat.
sudo yum install filebeat
-
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.
-
Substitua o conteúdo de
/etc/filebeat/filebeat.yml
pela configuração de amostra a seguir (certifique-se de substituirhosts, 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]}'
-
Execute o comando a seguir para testar a configuração.
filebeat test config
-
Reinicie o serviço Filebeat após atualizar a configuração.
sudo systemctl restart Filebeat
-
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.
-
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.
-
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:
-
Vá para Rapid7 InsightIDR, navegue até Coleção de Dados, Configurar Origem do Evento e clique em Adicionar Origem do Evento.
-
Clique em Adicionar Dados Brutos e Logs Personalizados.
-
Informe a Origem do Evento de Nome e selecione o Coletor (instância de computação).
-
Selecione o Fuso Horário que corresponde ao local dos logs de origem de evento.
-
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.
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:
- Serviço: Contém definições globais para o serviço em execução.
- Entrada: Especifica origens de registros de log para o Fluent Bit a ser coletado.
- Filtro: Aplica transformações a registros de log.
- Saída: Determina o destino em que o Fluent Bit envia os logs processados.
Plug-ins de entradas e saídas de bits fluentes:
-
Plug-ins de Entradas de Bit Fluente: O Fluent Bit oferece uma ampla variedade de plug-ins de entrada adaptados a diferentes fontes de log. Para obter mais informações, consulte Entradas.
-
Plug-ins de saídas de bits fluentes: para despachar logs com eficiência para diferentes destinos, o Fluent Bit fornece um array versátil de plug-ins de saída. Para obter mais informações, consulte Saídas.
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:
-
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
-
Depois que o repositório estiver configurado, execute o comando a seguir para instalar o Fluent Bit.
sudo yum install fluent-bit
-
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
. -
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
epassword
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.
-
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.
-
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:
-
Vá para Rapid7 InsightIDR, navegue até Coleção de Dados, Configurar Origem do Evento e clique em Adicionar Origem do Evento.
-
Clique em Adicionar Dados Brutos e Logs Personalizados.
-
Informe uma Origem do Evento de Nome e selecione o Coletor (instância de computação).
-
Selecione o Fuso Horário que corresponde ao local dos logs de origem de evento.
-
Selecione o Método de Coleta como Ouvir na Porta de Rede, digite um Número da Porta e um Protocolo.
-
-
Amostra de configuração de entrada e saída de Bit Fluente para integração Rapid7 InsightIDR. Certifique-se de substituir
Brokers
,topics
,username
epassword
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
-
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.
-
Use os pontos finais de log HTTP do Datadog para enviar logs ao Datadog. Para obter mais informações, consulte Pontos Finais de Log.
-
É 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:
-
Na sua conta do Datadog, navegue até Definições da Organização.
-
Clique em Chaves de API.
-
Clique em Nova Chave, informe um nome para sua chave e clique em Criar Chave de API.
-
-
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
eAPI 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
-
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.
Links Relacionados
Confirmações
- Autor - Chaitanya Chintala (Consultor de Segurança na Nuvem)
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.
Ingest Oracle Cloud Infrastructure Logs into Third-Party SIEM Platforms using Log Shippers
G20582-01
November 2024