附註:

使用日誌託運人擷取 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 & AI 、 Messaging 和 Streaming 。

  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 的組態檔中定義 inputs、filters、outputs 和 global 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。請務必將 Brokers、topics、username 和 password 取代為您的詳細資訊。

    [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 位元輸入和輸出組態範例。請務必將 Brokers、topics、username 和 password 取代為您的詳細資訊。

    [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 位元輸入和輸出組態範例。請務必將 Brokers、topics、username、password 和 API 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 。