附註:

使用日誌託運人擷取 Oracle Cloud Infrastructure 日誌到第三方 SIEM 平台

簡介

Oracle Cloud Infrastructure (OCI) 是受大規模企業信任的基礎架構即服務 (IaaS)、平台即服務 (PaaS) 和軟體即服務 (SaaS) 平台。它提供全方位的託管服務,包括託管、儲存、網路、資料庫等。

主動呈現安全相關事件日誌,以利追蹤適當的資源,對於偵測和防止網路安全事件至關重要。許多組織都仰賴安全資訊和事件管理 (SIEM) 平台,從相關資產建立關聯、分析日誌和警示。正確的日誌擷取組態、保留適當的時間,以及近乎即時的監控與警示功能,可讓安全作業團隊識別問題、根據系統調整著重於重要資訊,並及時採取行動。

擷取 OCI 日誌的最佳做法包括將日誌傳送至與 Apache Kafka 相容的 OCI Streaming,讓第三方 SIEM 平台能夠將日誌作為 Kafka 用戶使用。此方法可減少延遲、提供抗逆力,並確保在 SIEM 端發生資料耗用暫時問題時保留。

不過,部分第三方 SIEM 平台缺乏直接從 OCI 串流使用日誌的預設連線器,且原生不支援來自 Kafka 主題 (廣泛使用的開放原始碼事件串流平台) 的資料消耗,使整合流程變得複雜。在此情況下,日誌託運人可作為填補此差距的解決方案。

日誌託運人是以獨立工具的方式運作,從各種來源收集日誌,然後將它們轉送至一或多個指定的目的地。為了確保與 OCI Streaming 和第三方 SIEM 平台的無縫通訊,日誌託運人軟體應在具有網際網路存取權限的機器上執行。在本教學課程中,我們將在 OCI 中的運算執行處理上部署日誌託運人軟體。

日誌託運人將:

現在,讓我們來查看解決方案架構的高階表示法,如下圖所示。

架構圖

備註:雖然此解決方案可以填補缺口,但建議您只將它視為其他方法不可行的最後一個選項。請務必與 SIEM 提供者密切協調,先探索任何原生或建議的方法。如果您決定繼續處理日誌託運人,與您的 SIEM 提供者合作,選擇最適合的提供者,將確保在導入期間和之後從 SIEM 提供者獲得更好的支援,協助量身打造符合您組織特定需求的設定。

有不同的紀錄託運人,有些是 :

目標

必要條件

注意:無論所選的方法或日誌託運人為何,都應該在 OCI 端執行下列作業 (作業 1 到作業 4)。

工作 1:設定要擷取的日誌

OCI 日誌記錄服務是高度可擴充且完全受管理的單一虛擬管理平台,適用於您租用戶中的所有日誌。OCI 日誌記錄可讓您從 OCI 資源存取日誌。日誌是第一級 OCI 資源,可儲存及擷取在指定相關資訊環境中收集的日誌事件。日誌群組是儲存在區間中的日誌集合。日誌群組是日誌的邏輯容器。使用日誌群組可套用 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 原則或群組日誌進行分析,以組織及簡化日誌管理。

若要開始使用,請啟用資源的日誌。服務會針對資源可用的不同類型日誌提供日誌類別。例如,OCI Object Storage 服務支援下列儲存的儲存桶日誌類別:讀取和寫入存取事件。讀取存取事件會擷取下載事件,而寫入存取事件則會擷取寫入事件。每個服務都可以有不同的資源日誌類別。

  1. 登入 OCI 主控台,瀏覽至可觀測性與管理日誌記錄以及日誌群組

  2. 選取您的區間,按一下建立日誌群組並輸入以下資訊。

    • 名稱:輸入 SIEM_log_group
    • 描述 ( 選擇性 ):輸入描述。
    • 標記 ( 選擇性 ):輸入標記。
  3. 按一下建立以建立新日誌群組。

  4. 資源底下,按一下日誌

  5. 視需要按一下建立自訂日誌啟用服務日誌。

    例如,若要啟用 OCI Object Storage 貯體的寫入日誌,請依照以下步驟進行:

    1. 按一下啟用服務日誌

    2. 選取您的資源區間,然後在搜尋服務中輸入物件儲存

    3. 按一下啟用日誌,然後在資源中選取您的 OCI 物件儲存的儲存桶名稱。

    4. 選取在「工作 1.2」中建立的日誌群組 (SIEM_log_group),以及日誌類別中的寫入存取事件。選擇性地輸入 SIEM_bucket_write 作為日誌名稱

    5. 按一下啟用即可建立新的 OCI 日誌。

作業 2:使用 OCI 串流建立串流

OCI Streaming 服務為開發人員和資料科學家提供即時、無伺服器、與 Apache Kafka 相容的事件串流平台。它提供完全受管理、可擴展且持久的解決方案,可即時擷取及使用大量資料串流,例如日誌。在任何使用案例中,我們都可以使用 OCI Streaming 在發布 - 訂閱訊息模型中以連續和循序方式產生和處理資料。

  1. 移至 OCI 主控台,瀏覽至 Analytics & AIMessagingStreaming

  2. 按一下建立串流以建立串流。

  3. 輸入下列資訊,然後按一下建立

    • 名稱:輸入串流名稱。此教學課程為 SIEM_Stream
    • 串流集區:選取現有的串流集區,或使用公用端點建立新的串流集區。
    • 保留 (小時):輸入此串流中保留訊息的小時數。
    • 分割區數目:輸入串流的分割區數目。
    • 寫入速率總計讀取速率總計:根據需要處理的資料量輸入。

您可以從預設值開始進行測試。如需詳細資訊,請參閱分割串流

作業 3:設定 OCI 連線器中心

OCI Connector Hub 可協調 OCI 中服務之間的資料移動。OCI Connector Hub 提供一個集中位置,用於描述、執行和監控服務之間的資料移動,例如 OCI 日誌記錄、OCI 物件儲存、OCI 串流、OCI 日誌記錄分析和 OCI 監控。它也可以觸發 OCI 函數進行輕量資料處理,以及觸發 OCI 通知以設定警示。

  1. 前往 OCI 主控台,瀏覽至可觀測性與管理日誌記錄以及連線器

  2. 按一下建立連線器即可建立連線器。

  3. 請輸入下列資訊。

    • 名稱:輸入 SIEM_SC
    • 描述 ( 選擇性 ):輸入描述。
    • 區間: 選取您的區間。
    • 來源:選取日誌記錄
    • 目標:選取串流
  4. 設定來源連線底下,選取區間名稱日誌群組日誌 (在「工作 1」中建立的日誌群組和日誌)。

  5. 如果您也想要傳送稽核日誌,請按一下 +Another 日誌,然後選取相同的區間,同時取代 _Audit 作為您的日誌群組。

  6. 設定目標下,選取區間串流 (在「工作 2」中建立的串流)。

  7. 若要接受預設原則,請按一下為每個預設原則提供的建立連結。提供預設原則,供此連線器存取來源、工作和目標服務所需的任何授權使用。

  8. 按一下建立

工作 4:設定日誌託運人的存取控制以擷取日誌

若要允許日誌託運人存取 OCI 串流的資料,請建立使用者並授予擷取日誌的串流提取權限。

  1. 建立 OCI 使用者。如需詳細資訊, 請參閱管理使用者.

  2. 建立名為 SIEM_User_Group 的 OCI 群組,並將 OCI 使用者新增至該群組。如需詳細資訊,請參閱管理群組

  3. 建立下列 OCI IAM 原則。

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

現在,我們將探索如何安裝日誌託運人,並提供一些如何將它們與 SIEM 平台整合的範例。

個案 1:使用 Filebeat 作為日誌託運人

Filebeat 是用於轉寄和集中記錄資料的輕量型託運人。Filebeat 可透過使用模組進行高度擴充,以收集來自 Apache Kafka、Amazon Web Services (AWS) 等來源的日誌。Filebeat 以 Go 撰寫,提供單一二進位檔案以進行直接部署。它擅長處理大量資料,同時耗用最少的資源。

安裝 Filebeat

Filebeat 可以安裝在各種作業系統 (例如 Linux 和 Windows) 上,也可以安裝在虛擬機器、Docker 容器和 Kubernetes 叢集等平台上。本教學課程安裝在 Oracle Linux 8 運算執行處理上。如需詳細資訊,請參閱 Filebeat quick start:安裝與組態

若要在指定為日誌託運人的運算執行處理上安裝 Filebeat,請依照下列步驟進行:

  1. 新增 YUM 的 beats 儲存區域。如需詳細資訊,請參閱 APT 和 YUM 的儲存區域

  2. 下載並安裝公開簽署金鑰。

    sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
    
  3. /etc/yum.repos.d/ 目錄中建立一個副檔名為 .repo 的檔案 (例如 elastic.repo),然後新增下列行:

    [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. 您的儲存區域現已可供使用。執行下列指令以安裝 Filebeat。

    sudo yum install filebeat
    
  5. 執行下列指令,將 Filebeat 配置為在啟動期間自動啟動。

    sudo systemctl enable filebeat
    

設定 Filebeat

在下列組態中,Filebeat 設定為從 OCI 串流擷取日誌,並將其另存為日誌託運人 (運算執行處理) 的本機檔案系統中的檔案。這可讓第三方 SIEM 平台收集器從本機檔案系統讀取這些日誌。

  1. /etc/filebeat/filebeat.yml 的內容取代為下列範例組態 (請務必將 hosts, topics, username, and password 取代為您的詳細資訊)。此外,請建立用來儲存日誌的資料夾,例如 /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. 執行下列命令以測試組態。

    filebeat test config
    
  3. 更新組態之後,請重新啟動 Filebeat 服務。

    sudo systemctl restart Filebeat
    
  4. 成功設定之後,您應該會在 /home/opc/oci_logs 資料夾中看到 OCI 日誌作為檔案。

範例:使用 Filebeat 進行 OCI 和 Rapid7 InsightIDR 整合

在此範例中,Rapid7 InsightIDR 設定為擷取儲存在日誌託運人 Filebeat 之本機檔案系統中的 OCI 日誌。

  1. 在日誌託運人執行處理上安裝 Rapid7 收集器。

    Rapid7 收集器會收集日誌,並將它們傳送到您的 Rapid7 InsightIDR 帳戶進行處理。若要安裝 Rapid7 Collector,請從您的 Rapid7 InsightIDR 帳戶下載套裝程式,然後將它安裝在日誌託運人運算執行處理上。如需詳細資訊,請參閱 Rapid7 Collector Installation and Deployment

  2. 設定 Rapid7 InsightIDR 以從事件來源收集資料。雖然 Rapid7 InsightIDR 隨附各種雲端服務的預先建置連接器,但原生不支援 OCI。不過,您可以依照下列步驟來擷取及處理原始資料:

    1. 前往 Rapid7 InsightIDR,導覽至資料收集設定事件來源,然後按一下新增事件來源

    2. 按一下新增原始資料自訂日誌

    3. 輸入名稱事件來源,然後選取收集器 (運算執行處理)。

    4. 選取符合事件來源日誌位置的時區

    5. 選取收集方法作為監看目錄,然後使用本機資料夾中的 OCI 日誌路徑 /home/opc/oci_logs

    Rapid7 自訂日誌

    日誌收集將會開始,而資料可以在 Rapid7 InsightIDR 中檢視。

案例 2:使用流動位元作為日誌託運人

Fluent Bit 是輕量級的高效能記錄傳送器,可作為 Fluentd 的替代選擇。Fluent Bit 因應不斷成長的需求,提供最佳解決方案,能夠從眾多來源收集日誌,同時有效處理及篩選日誌。顯然,Fluent Bit 在資源受限的環境中 (例如容器或嵌入式系統) 表現出色。

若要使用 Fluent 位元,我們將在位於 /etc/fluent-bit/fluent-bit.conf 的組態檔中定義 inputsfiltersoutputsglobal configurations。讓我們詳細檢查這些元件:

Fluent 位元輸入和輸出外掛程式:

安裝並設定 Fluent 位元

Fluent Bit 可以安裝在各種作業系統 (例如 Linux 和 Windows) 上,也可以安裝在虛擬機器、Docker 容器和 Kubernetes 叢集等平台上。本教學課程安裝在 Oracle Linux 8 運算執行處理上。若要在指定為日誌託運人的運算執行處理上安裝 Fluent Bit,請執行下列步驟:

  1. 在您的 /etc/yum.repos.d/ 目錄中建立副檔名為 .repo 的儲存區域檔案 (例如 fluentbit.repo),然後新增下列行。如需詳細資訊,請參閱設定 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. 設定儲存區域之後,請執行下列命令來安裝 Fluent Bit。

    sudo yum install fluent-bit
    
  3. Fluent Bit 的預設配置檔案位於 /etc/fluent-bit/fluent-bit.conf。依照預設,它會收集 CPU 使用狀況測量結果,並將輸出傳送至標準日誌。您可以檢視 /var/log/messages 檔案中的外送資料。

  4. 若要從 OCI Streaming 服務收集日誌並將其傳送至標準輸出,請將輸入設定為 Kafka,並將輸出設定為 stdout。請務必將 Brokerstopicsusernamepassword 取代為您的詳細資訊。

    [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
    

範例:使用 Fluent Bit 進行 OCI 和 Rapid7 InsightIDR 整合

在此範例中,我們將透過在執行 Fluent Bit 的日誌託運人執行處理上安裝 Rapid7 Collector 來整合 OCI 與 Rapid7 InsightIDR。Fluent Bit 會使用 OCI Streaming 的日誌,使用 Kafka 作為輸入,並將其傳送至本機 TCP 連接埠,Rapid7 收集器會監聽內送資料。

  1. 在現有的日誌託運人執行處理上安裝 Rapid7 Collector。

    Rapid7 收集器會收集日誌,並將它們傳送到您的 Rapid7 InsightIDR 帳戶進行處理。若要安裝收集器,請從您的 Rapid7 InsightIDR 帳戶下載封裝項目,然後將它安裝在日誌託運人運算執行處理上。如需安裝步驟的詳細資訊,請參閱 Rapid7 Collector Installation and Deployment

  2. 設定 Rapid7 InsightIDR 以從事件來源收集資料。雖然 Rapid7 InsightIDR 隨附各種雲端服務的預先建置連接器,但原生不支援 OCI。不過,您可以依照下列步驟來擷取及處理原始資料:

    1. 前往 Rapid7 InsightIDR,導覽至資料收集設定事件來源,然後按一下新增事件來源

    2. 按一下新增原始資料自訂日誌

    3. 輸入名稱事件來源,然後選取收集器 (運算執行處理)。

    4. 選取符合事件來源日誌位置的時區

    5. 選取收集方法作為在網路連接埠上監聽,輸入連接埠號碼協定

    Rapid7 自訂日誌

  3. Rapid7 InsightIDR 整合的 Fluent 位元輸入和輸出組態範例。請務必將 Brokerstopicsusernamepassword 取代為您的詳細資訊。

    [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. 修改 Fluent Bit 組態之後,請使用下列命令重新啟動 Fluent Bit。

    sudo systemctl restart fluent-bit
    

    Fluent 位元重新啟動後,您應該會在 Rapid7 主控台中看到 OCI 日誌。

範例:使用 Fluent Bit 進行 OCI 和 Datadog 整合。

在此範例中,在日誌託運人執行處理上執行的 Fluent Bit 會使用使用 Kafka 作為輸入的 OCI 串流日誌,並使用 HTTP 輸出將日誌傳送至 Datadog 的 HTTP 端點。

  1. 使用 Datadog HTTP 日誌記錄端點將日誌傳送至 Datadog。如需詳細資訊,請參閱記錄日誌端點

  2. 必須要有 Datadog API 金鑰,才能將日誌傳送至 Datadog HTTP 端點。如需詳細資訊,請參閱 Datadog API 和應用程式金鑰

    若要產生 API 金鑰,請依照下列步驟進行:

    1. 在您的 Datadog 帳戶中,瀏覽至組織設定值

    2. 按一下 API 金鑰

    3. 按一下新建金鑰,輸入金鑰的名稱,然後按一下建立 API 金鑰

    DataDog API 金鑰

  3. Datadog 整合的 Fluent 位元輸入和輸出組態範例。請務必將 BrokerstopicsusernamepasswordAPI Key 取代為您的詳細資訊。

    [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. 修改 Fluent Bit 組態之後,請重新啟動 Fluent Bit。

    sudo systemctl restart fluent-bit
    

    您現在應該會在 Datadog 帳戶中看到 OCI 日誌。

接下來的步驟

本教學課程示範如何使用日誌託運人將 OCI 日誌擷取至第三方 SIEM 平台。雖然有多種可用的日誌託運人,以及使用它們整合 OCI 與第三方 SIEM 平台的多種方法,但透過仔細評估每個日誌託運人支援的輸入和輸出選項,選擇正確的日誌託運人和整合方法至關重要。請務必與 SIEM 供應商協調,以確保解決方案符合您的特定環境和需求。

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center