Nota

Includi Oracle Cloud Infrastructure esegue il login a piattaforme SIEM di terze parti utilizzando gli spedizionieri di log

Introduzione

Oracle Cloud Infrastructure (OCI) è una piattaforma Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) e Software-as-a-Service (SaaS) affidabile dalle grandi aziende. Offre una gamma completa di servizi gestiti, tra cui hosting, storage, networking, database e altro ancora.

Presentare in modo proattivo i registri degli eventi relativi alla sicurezza per il triage alle risorse appropriate è fondamentale per rilevare e prevenire gli incidenti di sicurezza informatica. Molte organizzazioni si affidano alle piattaforme di Security Information and Event Management (SIEM) per correlare, analizzare log e avvisi da asset pertinenti. Una corretta configurazione dell'acquisizione dei log, della conservazione per la durata appropriata e del monitoraggio e degli avvisi quasi in tempo reale consente ai team addetti alle operazioni di sicurezza di identificare i problemi, concentrarsi su informazioni critiche basate sull'ottimizzazione del sistema e intraprendere azioni tempestive.

Una best practice per l'inclusione dei log OCI prevede l'invio a OCI Streaming, compatibile con Apache Kafka, che consente alle piattaforme SIEM di terze parti di utilizzare i log come consumer Kafka. Questo approccio riduce i ritardi, fornisce resilienza e garantisce la retention in caso di problemi temporanei con il consumo dei dati sul lato SIEM.

Tuttavia, alcune piattaforme SIEM di terze parti non dispongono di connettori predefiniti per l'utilizzo dei log direttamente dai flussi OCI e non supportano in modo nativo il consumo dei dati dagli argomenti Kafka, la piattaforma di streaming di eventi open source ampiamente utilizzata, complicando il processo di integrazione. In questi casi, i log shipper servono come soluzione per colmare questa lacuna.

Lo spedizioniere di log funziona come uno strumento autonomo che raccoglie i log da varie origini e li inoltra a una o più destinazioni specificate. Per garantire una comunicazione perfetta sia con le piattaforme di streaming OCI che con le piattaforme SIEM di terze parti, il software di log shipper deve essere eseguito su un computer con accesso a Internet. In questa esercitazione verrà distribuito il software di log shipper su un'istanza di computazione all'interno di OCI.

Lo spedizioniere log:

Ora, diamo un'occhiata alla rappresentazione di alto livello dell'architettura della soluzione, come mostrato nella seguente immagine.

Diagramma di architettura

Nota: sebbene questa soluzione sia in grado di colmare il divario, è consigliabile considerarla solo come ultima opzione se altri metodi non sono realizzabili. È importante coordinarsi strettamente con il provider SIEM per esplorare prima gli approcci nativi o consigliati. Se decidi di procedere con uno spedizioniere di log, lavorare con il tuo fornitore SIEM per selezionare quello più adatto garantirà un migliore supporto dal tuo fornitore SIEM durante e dopo l'implementazione, contribuendo a personalizzare l'impostazione in base alle esigenze specifiche della tua organizzazione.

Ci sono diversi log shipper disponibili e alcuni di loro sono:

Obiettivi

Prerequisiti

Nota: i task seguenti (Task da 1 a Task 4) devono essere eseguiti sull'estremità OCI, indipendentemente dal metodo scelto o dallo spedizioniere di log.

Task 1: configurare i log da acquisire

Il servizio OCI Logging è un singolo pannello di controllo altamente scalabile e completamente gestito per tutti i log nella tenancy. OCI Logging fornisce l'accesso ai log dalle risorse OCI. Un log è una risorsa OCI di prima classe che memorizza e acquisisce gli eventi di log raccolti in un determinato contesto. Un gruppo di log è una raccolta di log memorizzati in un compartimento. I gruppi di log sono contenitori logici per i log. Utilizza i gruppi di log per organizzare e semplificare la gestione dei log applicando i criteri Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) o i log di raggruppamento per l'analisi.

Per iniziare, abilitare un log per una risorsa. I servizi forniscono categorie di log per i diversi tipi di log disponibili per le risorse. Ad esempio, il servizio di storage degli oggetti OCI supporta le seguenti categorie di log per i bucket di storage: eventi di accesso in lettura e scrittura. Gli eventi di accesso in lettura acquisiscono gli eventi di download, mentre gli eventi di accesso in scrittura acquisiscono gli eventi di scrittura. Ogni servizio può avere categorie di log diverse per le risorse.

  1. Eseguire il login a OCI Console, passare a Osservabilità e gestione, Log e Gruppi di log.

  2. Selezionare il compartimento, fare clic su Crea gruppo di log e immettere le informazioni riportate di seguito.

    • Nome: immettere SIEM_log_group.
    • Descrizione (Facoltativo): immettere la descrizione.
    • Tag (Facoltativo): immettere le tag.
  3. Fare clic su Crea per creare un nuovo gruppo di log.

  4. In Risorse fare clic su Log.

  5. Fare clic sul log Crea log personalizzato o Abilita servizio in base alle esigenze.

    Ad esempio, per abilitare i log di scrittura per un bucket di storage degli oggetti OCI, attenersi alla procedura riportata di seguito.

    1. Fare clic su Abilita log servizio.

    2. Selezionare il compartimento delle risorse e immettere Storage degli oggetti nei servizi di ricerca.

    3. Fare clic su Abilita log e selezionare il nome del bucket di storage degli oggetti OCI nella risorsa.

    4. Selezionare il gruppo di log (SIEM_log_group) creato nel task 1.2 e Scrivi eventi di accesso nella categoria di log. Se si desidera, immettere SIEM_bucket_write come nome log.

    5. Fare clic su Abilita per creare il nuovo log OCI.

Task 2: Creare un flusso utilizzando OCI Streaming

Il servizio di streaming OCI è una piattaforma di streaming di eventi in tempo reale, serverless e compatibile con Apache Kafka per sviluppatori e data scientist. Offre una soluzione completamente gestita, scalabile e duratura per l'inclusione e l'utilizzo di flussi di dati ad alto volume in tempo reale, come i log. Possiamo utilizzare lo streaming OCI per qualsiasi caso d'uso in cui i dati vengono prodotti ed elaborati in modo continuo e sequenziale in un modello di messaggistica di pubblicazione/sottoscrizione.

  1. Andare alla console OCI, andare a Analytics e AI, Messaggistica e Streaming.

  2. Fare clic su Crea flusso per creare il flusso.

  3. Immettere le informazioni seguenti e fare clic su Crea.

    • Nome: immettere il nome del flusso. Per questo tutorial, è SIEM_Stream.
    • Pool di streaming: selezionare un pool di flussi esistente o crearne uno nuovo con un endpoint pubblico.
    • Conservazione (in ore): immettere il numero di ore di conservazione dei messaggi in questo flusso.
    • Numero di partizioni: immettere il numero di partizioni per il flusso.
    • Tasso di scrittura totale e Tasso di lettura totale: immettere il valore in base alla quantità di dati da elaborare.

È possibile iniziare con i valori predefiniti per i test. Per ulteriori informazioni, vedere Partizionamento di un flusso.

Task 3: impostare un hub connettore OCI

OCI Connector Hub orchestra lo spostamento dei dati tra i servizi in OCI. OCI Connector Hub offre un luogo centrale per descrivere, eseguire e monitorare gli spostamenti di dati tra servizi, come OCI Logging, OCI Object Storage, OCI Streaming, OCI Logging Analytics e OCI Monitoring. Può anche attivare OCI Functions per un'elaborazione più leggera dei dati e OCI Notifications per impostare gli avvisi.

  1. Andare alla console OCI, andare a Osservabilità e gestione, Log e Connettori.

  2. Fare clic su Crea connettore per creare il connettore.

  3. Immettere le informazioni riportate di seguito.

    • Nome: immettere SIEM_SC.
    • Descrizione (Facoltativo): immettere la descrizione.
    • Compartimento: selezionare il compartimento.
    • Origine: selezionare Log.
    • Destinazione: selezionare Streaming.
  4. In Configura connessione di origine, selezionare un nome compartimento, un gruppo di log e un log (gruppo di log e log creati nel task 1).

  5. Se si desidera anche inviare i log di audit, fare clic su +Another log e selezionare lo stesso compartimento durante la sostituzione di _Audit del gruppo di log.

  6. In Configura destinazione, selezionare un compartimento e Via (flusso creato nel task 2).

  7. Per accettare i criteri predefiniti, fare clic sul collegamento Crea fornito per ogni criterio predefinito. I criteri predefiniti vengono offerti per consentire a questo connettore di accedere ai servizi di origine, task e destinazione.

  8. Fare clic su Crea.

Task 4: Impostazione di un controllo dell'accesso per gli spedizionieri di log per il recupero dei log

Per consentire agli spedizionieri di log di accedere ai dati da un flusso OCI, creare un utente e concedere autorizzazioni stream-pull per il recupero dei log.

  1. Creare un utente OCI. Per ulteriori informazioni, vedere Gestione degli utenti.

  2. Creare un gruppo OCI denominato SIEM_User_Group e aggiungere l'utente OCI al gruppo. Per ulteriori informazioni, vedere Gestione dei gruppi.

  3. Creare il criterio IAM OCI seguente.

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

Ora, esploreremo come installare i log shipper e forniremo alcuni esempi di come integrarli con le piattaforme SIEM.

Caso 1: utilizzare Filebeat come spedizioniere di log

Filebeat è uno spedizioniere leggero per l'inoltro e la centralizzazione dei dati di log. Filebeat è altamente estensibile attraverso l'uso di moduli, consentendo di raccogliere registri da fonti come Apache Kafka, Amazon Web Services (AWS) e altro ancora. Scritto in Go, Filebeat fornisce un singolo file binario per una distribuzione semplice. Eccelle nella gestione di notevoli volumi di dati, consumando al contempo risorse minime.

Installa Filebeat

Filebeat può essere installato su vari sistemi operativi, come Linux e Windows, nonché su piattaforme come virtual machine, container Docker e cluster Kubernetes. In questa esercitazione viene installata su un'istanza di computazione Oracle Linux 8. Per ulteriori informazioni, vedere Avvio rapido di Filebeat: installazione e configurazione.

Per installare Filebeat nell'istanza di computazione designata come spedizioniere di log, attenersi alla procedura riportata di seguito.

  1. Aggiungere il repository beat per YUM. Per ulteriori informazioni, vedere Repository per APT e YUM.

  2. Scaricare e installare la chiave di firma pubblica.

    sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    
  3. Creare un file con un'estensione .repo (ad esempio, elastic.repo) nella directory /etc/yum.repos.d/ e aggiungere le righe seguenti:

    [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. Il repository è pronto per l'uso. Eseguire i comandi seguenti per installare Filebeat.

    sudo yum install filebeat
    
  5. Eseguire i comandi seguenti per configurare Filebeat per l'avvio automatico durante il boot.

    sudo systemctl enable filebeat
    

Configura filebeat

Nella configurazione riportata di seguito, Filebeat è impostato per includere i log dai flussi OCI e salvarli come file nel file system locale dello spedizioniere di log (istanza di computazione). Ciò consente ai raccoglitori di piattaforme SIEM di terze parti di includere tali log leggendo i file dal file system locale.

  1. Sostituire il contenuto di /etc/filebeat/filebeat.yml con la seguente configurazione di esempio (assicurarsi di sostituire hosts, topics, username, and password con i dettagli). Inoltre, creare una cartella in cui memorizzare i log, ad esempio /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. Eseguire il comando riportato di seguito per eseguire il test della configurazione.

    filebeat test config
    
  3. Riavviare il servizio Filebeat dopo aver aggiornato la configurazione.

    sudo systemctl restart Filebeat
    
  4. Dopo la corretta impostazione, i log OCI dovrebbero essere visualizzati come file nella cartella /home/opc/oci_logs.

Esempio: integrazione di OCI e Rapid7 InsightIDR mediante Filebeat

In questo esempio, Rapid7 InsightIDR è configurato per includere i log OCI salvati nel file system locale dell'ambiente Filebeat dello spedizioniere dei log.

  1. Installare il Collector Rapid7 nell'istanza dello spedizioniere di log.

    Il Collector Rapid7 raccoglie i log e li invia al tuo account Rapid7 InsightIDR per l'elaborazione. Per installare Rapid7 Collector, scaricare il package dall'account Rapid7 InsightIDR e installarlo nell'istanza di computazione dello spedizioniere di log. Per ulteriori informazioni, vedere Rapid7 Installazione e distribuzione del Collector.

  2. Configurare Rapid7 InsightIDR per raccogliere i dati dall'origine dell'evento. Sebbene Rapid7 InsightIDR sia dotato di connettori predefiniti per vari servizi cloud, OCI non è supportato in modo nativo. Tuttavia, è possibile includere ed elaborare i dati di tipo RAW effettuando le operazioni riportate di seguito.

    1. Andare a Rapid7 InsightIDR, andare a Raccolta dati, Imposta origine evento e fare clic su Aggiungi origine evento.

    2. Fare clic su Aggiungi dati non elaborati e su Log personalizzati.

    3. Immettere Origine evento nome e selezionare il Collettore (istanza di computazione).

    4. Selezionare il fuso orario che corrisponde alla posizione dei log di origine dell'evento.

    5. Selezionare il metodo di raccolta come directory di controllo e utilizzare il percorso dei log OCI /home/opc/oci_logs nella cartella locale.

    Rapid7 Log personalizzati

    La raccolta dei log inizierà e i dati potranno essere visualizzati in Rapid7 InsightIDR.

Caso 2: utilizzare un bit fluido come spedizioniere di log

Fluent Bit è uno spedizioniere di log leggero e ad alte prestazioni, che funge da alternativa a Fluentd. Fluent Bit è emerso in risposta alla crescente necessità di una soluzione ottimale in grado di raccogliere registri da numerose fonti, elaborandoli e filtrandoli in modo efficiente. In particolare, Fluent Bit eccelle in ambienti con risorse limitate come container o sistemi embedded.

Per utilizzare Fluent Bit, definiremo inputs, filters, outputs e global configurations in un file di configurazione situato in /etc/fluent-bit/fluent-bit.conf. Esaminiamo questi componenti nel dettaglio:

Fluent Bit ingressi e uscite plugin:

Installazione e configurazione di Fluent Bit

Fluent Bit può essere installato su vari sistemi operativi, come Linux e Windows, nonché su piattaforme come virtual machine, container Docker e cluster Kubernetes. In questa esercitazione viene installata su un'istanza di computazione Oracle Linux 8. Per installare Fluent Bit nell'istanza di computazione designata come spedizioniere di log, attenersi alla procedura riportata di seguito.

  1. Creare un file di repository con un'estensione .repo (ad esempio, fluentbit.repo) nella directory /etc/yum.repos.d/ e aggiungere le righe seguenti. Per ulteriori informazioni, vedere Configurare 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 volta configurato il repository, eseguire il comando seguente per installare Fluent Bit.

    sudo yum install fluent-bit
    
  3. Il file di configurazione predefinito per Fluent Bit si trova in /etc/fluent-bit/fluent-bit.conf. Per impostazione predefinita, raccoglie le metriche di utilizzo della CPU e invia l'output al log standard. È possibile visualizzare i dati in uscita nel file /var/log/messages.

  4. Per raccogliere i log dal servizio di streaming OCI e inviarli all'output standard, configurare l'input come Kafka e l'output come stdout. Assicurarsi di sostituire Brokers, topics, username e password con i dettagli.

    [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
    

Esempio: integrazione di OCI e Rapid7 InsightIDR mediante Fluent Bit

In questo esempio, integreremo OCI con Rapid7 InsightIDR installando il Collector Rapid7 nell'istanza dello spedizioniere di log in cui è in esecuzione Fluent Bit. Fluent Bit utilizzerà i log di OCI Streaming utilizzando Kafka come input e li invierà a una porta TCP locale, dove il collector Rapid7 ascolterà i dati in entrata.

  1. Installare il Collector Rapid7 nell'istanza di log shipper esistente.

    Il Collector Rapid7 raccoglie i log e li invia al tuo account Rapid7 InsightIDR per l'elaborazione. Per installare il Collector, scaricare il package dall'account Rapid7 InsightIDR e installarlo nell'istanza di computazione del log shipper. Per ulteriori informazioni sui passi di installazione, vedere Rapid7 Collector Installation and Deployment.

  2. Configurare Rapid7 InsightIDR per raccogliere i dati dall'origine dell'evento. Sebbene Rapid7 InsightIDR sia dotato di connettori predefiniti per vari servizi cloud, OCI non è supportato in modo nativo. Tuttavia, è possibile includere ed elaborare i dati di tipo RAW effettuando le operazioni riportate di seguito.

    1. Andare a Rapid7 InsightIDR, andare a Raccolta dati, Imposta origine evento e fare clic su Aggiungi origine evento.

    2. Fare clic su Aggiungi dati non elaborati e su Log personalizzati.

    3. Immettere un valore in Origine evento nome e selezionare il Collettore (istanza di computazione).

    4. Selezionare il fuso orario che corrisponde alla posizione dei log di origine dell'evento.

    5. Selezionare il metodo di raccolta come Ascolta sulla porta di rete, immettere un numero di porta e un protocollo.

    Rapid7 Log personalizzati

  3. Configurazione di input e output del bit fluido di esempio per l'integrazione Rapid7 InsightIDR. Sostituire Brokers, topics, username e password con i dettagli.

    [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. Dopo aver modificato la configurazione del bit fluido, riavviare il bit fluido utilizzando il comando seguente.

    sudo systemctl restart fluent-bit
    

    Una volta riavviato Fluent Bit, dovresti vedere i log OCI visualizzati nella console Rapid7.

Esempio: integrazione di OCI e Datadog utilizzando Fluent Bit.

In questo esempio, Fluent Bit in esecuzione nell'istanza dello spedizioniere di log utilizza i log dei flussi OCI utilizzando Kafka come input e li invia all'endpoint HTTP di Datadog utilizzando un output HTTP.

  1. Utilizzare gli endpoint di log HTTP Datadog per inviare i log a Datadog. Per ulteriori informazioni, vedere Endpoint di log.

  2. Per inviare i log all'endpoint HTTP Datadog è necessaria una chiave API Datadog. Per ulteriori informazioni, vedere API Datadog e chiavi applicazione.

    Per generare una chiave API, effettuare le operazioni riportate di seguito.

    1. Nell'account Datadog passare a Impostazioni organizzazione.

    2. Fare clic su Chiavi API.

    3. Fare clic su Nuova chiave, immettere un nome per la chiave e fare clic su Crea chiave API.

    DataDog Chiavi API

  3. Configurazione di input e output Fluent Bit di esempio per l'integrazione di Datadog. Sostituire Brokers, topics, username, password e API Key con i dettagli.

    [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. Dopo aver modificato la configurazione del bit fluido, riavviare il bit fluido.

    sudo systemctl restart fluent-bit
    

    Ora dovresti vedere i log OCI nel tuo account Datadog.

Passi successivi

Questo tutorial ha dimostrato come includere i log OCI nelle piattaforme SIEM di terze parti utilizzando gli spedizionieri di log. Sebbene siano disponibili vari log shipper e diversi modi per integrare OCI con le piattaforme SIEM di terze parti che li utilizzano, è essenziale scegliere il log shipper e il metodo di integrazione giusti valutando attentamente le opzioni di input e output supportate da ogni log shipper. Assicurati di coordinarti con il tuo provider SIEM per assicurarti che la soluzione sia in linea con l'ambiente e i requisiti specifici.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.