Note:

Ingesta de conexiones de Oracle Cloud Infrastructure a plataformas SIEM de terceros mediante expedidores de logs

Introducción

Oracle Cloud Infrastructure (OCI) es una plataforma de Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) y Software-as-a-Service (SaaS) en la que confían las grandes empresas. Ofrece una amplia gama de servicios gestionados, incluidos alojamiento, almacenamiento, redes, bases de datos, etc.

La presentación proactiva de registros de eventos relacionados con la seguridad para clasificar los recursos adecuados es crucial para detectar y prevenir incidentes de ciberseguridad. Muchas organizaciones confían en las plataformas de gestión de eventos e información de seguridad (SIEM) para correlacionar, analizar logs y alertas de activos relevantes. La configuración adecuada de la captura de logs, la retención durante la duración adecuada y la supervisión y las alertas casi en tiempo real permiten a los equipos de operaciones de seguridad identificar problemas, centrarse en la información crítica basada en el ajuste del sistema y tomar las medidas oportunas.

Una práctica recomendada para la ingesta de logs de OCI implica enviarlos a OCI Streaming, que es compatible con Apache Kafka, lo que permite que las plataformas SIEM de terceros consuman los logs como consumidores de Kafka. Este enfoque reduce los retrasos, proporciona resiliencia y garantiza la retención en caso de problemas temporales con el consumo de datos en el lado SIEM.

Sin embargo, algunas plataformas SIEM de terceros carecen de conectores por defecto para consumir logs directamente desde los flujos de OCI y no soportan de forma nativa el consumo de datos de los temas de Kafka, la plataforma de transmisión de eventos de código abierto ampliamente utilizada, lo que complica el proceso de integración. En tales casos, los transportistas de troncos sirven como solución para cerrar esta brecha.

Un gestor de logs funciona como una herramienta independiente que recopila logs de varios orígenes y, a continuación, los reenvía a uno o más destinos especificados. Para garantizar una comunicación fluida con OCI Streaming y plataformas SIEM de terceros, el software del remitente de logs debe ejecutarse en una máquina con acceso a Internet. En este tutorial, desplegaremos el software de gestor de logs en una instancia informática de OCI.

El transportista de logs realizará lo siguiente:

Ahora, veamos la representación de alto nivel de la arquitectura de la solución como se muestra en la siguiente imagen.

Diagrama de arquitectura

Nota: Si bien esta solución puede cerrar la brecha, es recomendable considerarla solo como una última opción si otros métodos no son viables. Es importante coordinar estrechamente con su proveedor de SIEM para explorar primero cualquier enfoque nativo o recomendado. Si decide continuar con un remitente de logs, trabajar con su proveedor de SIEM para seleccionar el más adecuado garantizará un mejor soporte de su proveedor de SIEM durante y después de la implementación, lo que ayudará a adaptar la configuración para satisfacer las necesidades específicas de su organización.

Hay diferentes transportistas de logs disponibles y algunos de ellos son:

Objetivos

Requisitos

Nota: Las siguientes tareas (Tarea 1 a Tarea 4) se deben realizar en el extremo de OCI, independientemente del método o el remitente de log seleccionado.

Tarea 1: Configuración de los logs que se van a capturar

El servicio OCI Logging es un panel único altamente escalable y totalmente gestionado para todos los logs del arrendamiento. OCI Logging proporciona acceso a logs de recursos de OCI. Un log es un recurso de OCI de primera clase que almacena y captura eventos de log recopilados en un contexto determinado. Un grupo de logs es una recopilación de logs almacenados en un compartimento. Los grupos de logs son contenedores lógicos de logs. Utilice grupos de logs para organizar y optimizar la gestión de logs mediante la aplicación de la política de Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) o la agrupación de logs para el análisis.

Para empezar, active un log para un recurso. Los servicios proporcionan categorías de log para los diferentes tipos de logs disponibles para los recursos. Por ejemplo, el servicio OCI Object Storage soporta las siguientes categorías de log para cubos de almacenamiento: eventos de acceso de lectura y escritura. Los eventos de acceso de lectura capturan eventos de descarga, mientras que los eventos de acceso de escritura capturan eventos de escritura. Cada servicio puede tener diferentes categorías de log para los recursos.

  1. Conéctese a la consola de OCI y vaya a Observación y gestión, Registro y Grupos de logs.

  2. Seleccione el compartimento, haga clic en Crear grupo de logs e introduzca la siguiente información.

    • Nombre: introduzca SIEM_log_group.
    • Descripción (Opcional): introduzca la descripción.
    • Etiquetas (opcionales): introduzca las etiquetas.
  3. Haga clic en Crear para crear un nuevo grupo de logs.

  4. En Resources, haga clic en Logs.

  5. Haga clic en Crear log personalizado o en Activar log de servicio como desee.

    Por ejemplo, para activar los logs de escritura para un cubo de OCI Object Storage, siga estos pasos:

    1. Haga clic en Activar log de servicio.

    2. Seleccione el compartimento de recursos e introduzca Object Storage en Buscar servicios.

    3. Haga clic en Activar logs y seleccione el nombre del cubo de OCI Object Storage en el recurso.

    4. Seleccione el grupo de logs (SIEM_log_group) creado en la tarea 1.2 y Escribir eventos de acceso en la categoría de log. Opcionalmente, introduzca SIEM_bucket_write como Nombre de log.

    5. Haga clic en Activar para crear el nuevo log de OCI.

Tarea 2: Creación de un flujo con OCI Streaming

El servicio OCI Streaming es una plataforma de transmisión de eventos en tiempo real, sin servidor y compatible con Apache Kafka para desarrolladores y científicos de datos. Proporciona una solución duradera, escalable y totalmente gestionada para la ingesta y el consumo de flujos de datos de gran volumen en tiempo real, como los logs. Podemos utilizar OCI Streaming para cualquier caso de uso en el que se produzcan y procesen datos de forma continua y secuencial en un modelo de mensajería de publicación y suscripción.

  1. Vaya a la consola de OCI, vaya a Analytics & AI, Messaging y Streaming.

  2. Haga clic en Crear flujo para crear un flujo.

  3. Introduzca la siguiente información y haga clic en Crear.

    • Nombre: introduzca el nombre del flujo. Para este tutorial, es SIEM_Stream.
    • Pool de flujos: seleccione el pool de flujos existente o cree uno nuevo con el punto final público.
    • Retención (en horas): introduzca el número de horas de retención de los mensajes en este flujo.
    • Número de particiones: introduzca el número de particiones para el flujo.
    • Ratio total de escrituras y Ratio total de lecturas: introduzca en función de la cantidad de datos que necesita procesar.

Puede comenzar con los valores por defecto para la prueba. Para obtener más información, consulte Partición de un flujo.

Tarea 3: Configuración de OCI Connector Hub

OCI Connector Hub organiza el movimiento de datos entre servicios de OCI. OCI Connector Hub proporciona un lugar central para describir, ejecutar y supervisar los movimientos de datos entre servicios, como OCI Logging, OCI Object Storage, OCI Streaming, OCI Logging Analytics y OCI Monitoring. También puede disparar OCI Functions para el procesamiento de datos ligero y OCI Notifications para configurar alertas.

  1. Vaya a la consola de OCI, vaya a Observación y gestión, Registro y Conectores.

  2. Haga clic en Crear conector para crear el conector.

  3. Introduzca la siguiente información.

    • Nombre: introduzca SIEM_SC.
    • Descripción (Opcional): introduzca la descripción.
    • Compartimento: seleccione el compartimento.
    • Origen: seleccione Logging.
    • Target: seleccione Streaming.
  4. En Configurar conexión de origen, seleccione un nombre de compartimento, un grupo de logs y un log (grupo de logs y log creados en la tarea 1).

  5. Si también desea enviar Logs de auditoría, haga clic en Log de +Another y seleccione el mismo compartimento mientras sustituye a _Audit como grupo de logs.

  6. En Configurar destino, seleccione un compartimento y un flujo (flujo creado en la tarea 2).

  7. Para aceptar políticas por defecto, haga clic en el enlace Crear proporcionado para cada política por defecto. Las políticas por defecto se ofrecen para cualquier autorización necesaria para que este conector acceda a los servicios de origen, tarea y destino.

  8. Haga clic en Crear.

Tarea 4: Configuración de un control de acceso para que los expedidores de logs recuperen logs

Para permitir que los expedidores de logs accedan a los datos de un flujo de OCI, cree un usuario y otorgue permisos de extracción de flujos para recuperar logs.

  1. Crear un usuario de OCI. Para obtener más información, consulte Gestión de usuarios.

  2. Cree un grupo de OCI denominado SIEM_User_Group y agregue el usuario de OCI al grupo. Para obtener más información, consulte Gestión de Grupos.

  3. Cree la siguiente política de OCI IAM.

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

Ahora, exploraremos cómo instalar cargadores de registros y proporcionaremos algunos ejemplos de cómo integrarlos con plataformas SIEM.

Caso 1: Uso de Filebeat como remitente de logs

Filebeat es un cargador ligero para reenviar y centralizar datos de log. Filebeat es altamente extensible mediante el uso de módulos, lo que le permite recopilar logs de orígenes como Apache Kafka, Amazon Web Services (AWS) y más. Escrito en Go, Filebeat proporciona un único archivo binario para una implementación sencilla. Destaca en el manejo de volúmenes de datos sustanciales al tiempo que consume recursos mínimos.

Instalar latido de archivo

Filebeat se puede instalar en varios sistemas operativos, como Linux y Windows, así como en plataformas como máquinas virtuales, contenedores de Docker y clusters de Kubernetes. En este tutorial, se instala en una instancia informática de Oracle Linux 8. Para obtener más información, consulte Filebeat quick start: installation and configuration.

Para instalar Filebeat en la instancia informática designada como remitente de logs, siga estos pasos:

  1. Agregue el repositorio beats para YUM. Para obtener más información, consulte Repositorios para APT y YUM.

  2. Descargue e instale la clave de firma pública.

    sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    
  3. Cree un archivo con una extensión .repo (por ejemplo, elastic.repo) en el directorio /etc/yum.repos.d/ y agregue las siguientes líneas:

    [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. El repositorio ya está listo para su uso. Ejecute los siguientes comandos para instalar Filebeat.

    sudo yum install filebeat
    
  5. Ejecute los siguientes comandos para configurar Filebeat para que se inicie automáticamente durante el inicio.

    sudo systemctl enable filebeat
    

Configurar latido de archivos

En la siguiente configuración, Filebeat se configura para ingerir logs de flujos de OCI y guardarlos como archivos en el sistema de archivos local del remitente de logs (instancia informática). Esto permite a los recopiladores de plataformas SIEM de terceros ingerir esos logs leyendo los archivos del sistema de archivos local.

  1. Sustituya el contenido de /etc/filebeat/filebeat.yml por la siguiente configuración de ejemplo (asegúrese de sustituir hosts, topics, username, and password por los detalles). Además, cree una carpeta para almacenar los 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. Ejecute el siguiente comando para probar la configuración.

    filebeat test config
    
  3. Reinicie el servicio Filebeat después de actualizar la configuración.

    sudo systemctl restart Filebeat
    
  4. Una vez configurada correctamente, debería ver los logs de OCI como archivos en la carpeta /home/opc/oci_logs.

Ejemplo: integración de OCI y Rapid7 InsightIDR mediante Filebeat

En este ejemplo, Rapid7 InsightIDR está configurado para ingerir los logs de OCI guardados en el sistema de archivos local del contenedor de logs Filebeat.

  1. Instale el recopilador Rapid7 en la instancia del expedidor de logs.

    El recopilador Rapid7 recopila logs y los envía a la cuenta Rapid7 InsightIDR para su procesamiento. Para instalar el recopilador Rapid7, descargue el paquete de su cuenta Rapid7 InsightIDR e instálelo en la instancia informática del cargador de log. Para obtener más información, consulte Rapid7 Instalación y Despliegue del Recopilador.

  2. Configure Rapid7 InsightIDR para recopilar datos del origen de evento. Aunque Rapid7 InsightIDR incluye conectores incorporados para varios servicios en la nube, OCI no está soportado de forma nativa. Sin embargo, puede ingerir y procesar datos no procesados siguiendo estos pasos:

    1. Vaya a Rapid7 InsightIDR, vaya a Recopilación de datos, Configurar origen de evento y haga clic en Agregar origen de evento.

    2. Haga clic en Agregar datos sin procesar y Logs personalizados.

    3. Introduzca el origen de evento de nombre y seleccione el colector (instancia informática).

    4. Seleccione la zona horaria que coincida con la ubicación de los logs de origen de eventos.

    5. Seleccione el método de recopilación como Directorio de observación y utilice la ruta de acceso de logs de OCI /home/opc/oci_logs en Carpeta local.

    Rapid7 Logs personalizados

    Se iniciará la recopilación de logs y los datos se pueden ver en Rapid7 InsightIDR.

Caso 2: Utilizar un bit fluido como remitente de logs

Fluent Bit es un cargador de logs ligero y de alto rendimiento que sirve como alternativa a Fluentd. Fluent Bit surgió en respuesta a la creciente necesidad de una solución óptima capaz de recopilar registros de numerosas fuentes mientras se procesan y filtran de manera eficiente. En particular, Fluent Bit sobresale en entornos con recursos limitados, como contenedores o sistemas integrados.

Para utilizar Fluent Bit, definiremos inputs, filters, outputs y global configurations en un archivo de configuración ubicado en /etc/fluent-bit/fluent-bit.conf. Examinemos estos componentes en detalle:

Plugins de entradas y salidas de bit fluido:

Instalación y configuración de un bit fluido

Fluent Bit se puede instalar en varios sistemas operativos, como Linux y Windows, así como en plataformas como máquinas virtuales, contenedores de Docker y clusters de Kubernetes. En este tutorial, se instala en una instancia informática de Oracle Linux 8. Para instalar Fluent Bit en la instancia informática designada como remitente de logs, siga estos pasos:

  1. Cree un archivo de repositorio con una extensión .repo (por ejemplo, fluentbit.repo) en el directorio /etc/yum.repos.d/ y agregue las siguientes líneas. Para obtener más información, consulte Configuración de 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. Una vez configurado el repositorio, ejecute el siguiente comando para instalar Fluent Bit.

    sudo yum install fluent-bit
    
  3. El archivo de configuración por defecto para Fluent Bit se encuentra en /etc/fluent-bit/fluent-bit.conf. Por defecto, recopila métricas de uso de CPU y envía la salida al log estándar. Puede ver los datos salientes en el archivo /var/log/messages.

  4. Para recopilar logs del servicio OCI Streaming y enviarlos a la salida estándar, configure la entrada como Kafka y la salida como stdout. Asegúrese de sustituir Brokers, topics, username y password por sus detalles.

    [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
    

Ejemplo: integración de OCI y Rapid7 InsightIDR mediante Fluent Bit

En este ejemplo, integraremos OCI con Rapid7 InsightIDR instalando el recopilador Rapid7 en la instancia del expedidor de logs en la que se está ejecutando Fluent Bit. Fluent Bit consumirá logs de OCI Streaming mediante Kafka como entrada y los enviará a un puerto TCP local, donde el recopilador Rapid7 escuchará los datos entrantes.

  1. Instale el recopilador Rapid7 en la instancia de gestor de logs existente.

    El recopilador Rapid7 recopila logs y los envía a la cuenta Rapid7 InsightIDR para su procesamiento. Para instalar el recopilador, descargue el paquete de su cuenta Rapid7 InsightIDR e instálelo en la instancia informática del cargador de log. Para obtener más información sobre los pasos de instalación, consulte Rapid7 Instalación y Despliegue del Recopilador.

  2. Configure Rapid7 InsightIDR para recopilar datos del origen de evento. Aunque Rapid7 InsightIDR incluye conectores incorporados para varios servicios en la nube, OCI no está soportado de forma nativa. Sin embargo, puede ingerir y procesar datos no procesados siguiendo estos pasos:

    1. Vaya a Rapid7 InsightIDR, vaya a Recopilación de datos, Configurar origen de evento y haga clic en Agregar origen de evento.

    2. Haga clic en Agregar datos sin procesar y Logs personalizados.

    3. Introduzca un origen de evento de nombre y seleccione el colector (instancia informática).

    4. Seleccione la zona horaria que coincida con la ubicación de los logs de origen de eventos.

    5. Seleccione el método de recopilación como Listen on Network Port (Escuchar en puerto de red), introduzca un Port Number (Número de puerto) y un Protocol (Protocolo).

    Rapid7 Logs personalizados

  3. Ejemplo de configuración de entrada y salida de Fluent Bit para la integración de Rapid7 InsightIDR. Asegúrese de sustituir Brokers, topics, username y password por sus detalles.

    [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. Después de modificar la configuración de Fluent Bit, reinicie Fluent Bit con el siguiente comando.

    sudo systemctl restart fluent-bit
    

    Una vez reiniciado Fluent Bit, debería ver los logs de OCI que aparecen en la consola Rapid7.

Ejemplo: integración de OCI y Datadog mediante Fluent Bit.

En este ejemplo, el bit fluido que se ejecuta en la instancia del expedidor de logs consume logs de flujos de OCI mediante Kafka como entrada y los envía al punto final HTTP de Datadog mediante una salida HTTP.

  1. Utilice los puntos finales de registro HTTP de Datadog para enviar logs a Datadog. Para obtener más información, consulte Puntos finales de registro.

  2. Se necesita una clave de API de Datadog para enviar logs al punto final HTTP de Datadog. Para obtener más información, consulte API de Datadog y claves de aplicación.

    Para generar una clave de API, siga estos pasos:

    1. En su cuenta de Datadog, vaya a Configuración de organización.

    2. Haga clic en Claves de API.

    3. Haga clic en Nueva clave, introduzca un nombre para la clave y haga clic en Crear clave de API.

    DataDog Claves de API

  3. Ejemplo de configuración de entrada y salida de Fluent Bit para la integración de Datadog. Asegúrese de sustituir Brokers, topics, username, password y API Key por sus detalles.

    [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. Después de modificar la configuración de Fluent Bit, reinicie Fluent Bit.

    sudo systemctl restart fluent-bit
    

    Ahora debería ver los logs de OCI en su cuenta de Datadog.

Pasos Siguientes

En este tutorial se demostró cómo ingerir logs de OCI en plataformas SIEM de terceros mediante remitentes de logs. Si bien hay varios transportistas de logs disponibles y varias formas de integrar OCI con plataformas SIEM de terceros que las utilizan, es esencial elegir el transportista de logs y el método de integración adecuados evaluando cuidadosamente las opciones de entrada y salida soportadas por cada transportista de logs. Asegúrese de coordinar con su proveedor de SIEM para garantizar que la solución se alinee con su entorno y requisitos específicos.

Agradecimientos

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visita education.oracle.com/learning-explorer para convertirte en un Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.