附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用日誌託運人擷取 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 中的運算執行處理上部署日誌託運人軟體。
日誌託運人將:
-
使用 Kafka 來源從 OCI 串流提取日誌。
-
使用任何支援的目的地類型或外掛程式 (例如 TCP 連接埠、HTTP 或第三方 SIEM 收集器上的檔案) 將日誌遞送至第三方 SIEM 平台。
現在,讓我們來查看解決方案架構的高階表示法,如下圖所示。
備註:雖然此解決方案可以填補缺口,但建議您只將它視為其他方法不可行的最後一個選項。請務必與 SIEM 提供者密切協調,先探索任何原生或建議的方法。如果您決定繼續處理日誌託運人,與您的 SIEM 提供者合作,選擇最適合的提供者,將確保在導入期間和之後從 SIEM 提供者獲得更好的支援,協助量身打造符合您組織特定需求的設定。
有不同的紀錄託運人,有些是 :
- 檔案擊敗
- 流動位元
- 流體
- 向量
- Logstash
目標
- 本教學課程著重於如何使用日誌託運人 Filebeat 和 Fluent Bit 從 OCI 串流使用日誌,以及如何與第三方 SIEM 平台整合的範例。
必要條件
-
OCI 使用者必須具備必要的 OCI Streaming、OCI Connector Hub 和 OCI Logging 服務原則,才能管理資源。如需有關所有服務原則參照的詳細資訊,請參閱原則參照。
-
指定為日誌託運人的運算實例應可透過網際網路存取 OCI 串流。如需詳細資訊,請參閱建立執行處理。
注意:無論所選的方法或日誌託運人為何,都應該在 OCI 端執行下列作業 (作業 1 到作業 4)。
工作 1:設定要擷取的日誌
OCI 日誌記錄服務是高度可擴充且完全受管理的單一虛擬管理平台,適用於您租用戶中的所有日誌。OCI 日誌記錄可讓您從 OCI 資源存取日誌。日誌是第一級 OCI 資源,可儲存及擷取在指定相關資訊環境中收集的日誌事件。日誌群組是儲存在區間中的日誌集合。日誌群組是日誌的邏輯容器。使用日誌群組可套用 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 原則或群組日誌進行分析,以組織及簡化日誌管理。
若要開始使用,請啟用資源的日誌。服務會針對資源可用的不同類型日誌提供日誌類別。例如,OCI Object Storage 服務支援下列儲存的儲存桶日誌類別:讀取和寫入存取事件。讀取存取事件會擷取下載事件,而寫入存取事件則會擷取寫入事件。每個服務都可以有不同的資源日誌類別。
-
登入 OCI 主控台,瀏覽至可觀測性與管理、日誌記錄以及日誌群組。
-
選取您的區間,按一下建立日誌群組並輸入以下資訊。
- 名稱:輸入
SIEM_log_group
。 - 描述 ( 選擇性 ):輸入描述。
- 標記 ( 選擇性 ):輸入標記。
- 名稱:輸入
-
按一下建立以建立新日誌群組。
-
在資源底下,按一下日誌。
-
視需要按一下建立自訂日誌或啟用服務日誌。
例如,若要啟用 OCI Object Storage 貯體的寫入日誌,請依照以下步驟進行:
-
按一下啟用服務日誌。
-
選取您的資源區間,然後在搜尋服務中輸入物件儲存。
-
按一下啟用日誌,然後在資源中選取您的 OCI 物件儲存的儲存桶名稱。
-
選取在「工作 1.2」中建立的日誌群組 (
SIEM_log_group
),以及日誌類別中的寫入存取事件。選擇性地輸入SIEM_bucket_write
作為日誌名稱。 -
按一下啟用即可建立新的 OCI 日誌。
-
作業 2:使用 OCI 串流建立串流
OCI Streaming 服務為開發人員和資料科學家提供即時、無伺服器、與 Apache Kafka 相容的事件串流平台。它提供完全受管理、可擴展且持久的解決方案,可即時擷取及使用大量資料串流,例如日誌。在任何使用案例中,我們都可以使用 OCI Streaming 在發布 - 訂閱訊息模型中以連續和循序方式產生和處理資料。
-
移至 OCI 主控台,瀏覽至 Analytics & AI 、 Messaging 和 Streaming 。
-
按一下建立串流以建立串流。
-
輸入下列資訊,然後按一下建立。
- 名稱:輸入串流名稱。此教學課程為
SIEM_Stream
。 - 串流集區:選取現有的串流集區,或使用公用端點建立新的串流集區。
- 保留 (小時):輸入此串流中保留訊息的小時數。
- 分割區數目:輸入串流的分割區數目。
- 寫入速率總計和讀取速率總計:根據需要處理的資料量輸入。
- 名稱:輸入串流名稱。此教學課程為
您可以從預設值開始進行測試。如需詳細資訊,請參閱分割串流。
作業 3:設定 OCI 連線器中心
OCI Connector Hub 可協調 OCI 中服務之間的資料移動。OCI Connector Hub 提供一個集中位置,用於描述、執行和監控服務之間的資料移動,例如 OCI 日誌記錄、OCI 物件儲存、OCI 串流、OCI 日誌記錄分析和 OCI 監控。它也可以觸發 OCI 函數進行輕量資料處理,以及觸發 OCI 通知以設定警示。
-
前往 OCI 主控台,瀏覽至可觀測性與管理、日誌記錄以及連線器。
-
按一下建立連線器即可建立連線器。
-
請輸入下列資訊。
- 名稱:輸入
SIEM_SC
。 - 描述 ( 選擇性 ):輸入描述。
- 區間: 選取您的區間。
- 來源:選取日誌記錄。
- 目標:選取串流。
- 名稱:輸入
-
在設定來源連線底下,選取區間名稱、日誌群組和日誌 (在「工作 1」中建立的日誌群組和日誌)。
-
如果您也想要傳送稽核日誌,請按一下 +Another 日誌,然後選取相同的區間,同時取代
_Audit
作為您的日誌群組。 -
在設定目標下,選取區間和串流 (在「工作 2」中建立的串流)。
-
若要接受預設原則,請按一下為每個預設原則提供的建立連結。提供預設原則,供此連線器存取來源、工作和目標服務所需的任何授權使用。
-
按一下建立。
工作 4:設定日誌託運人的存取控制以擷取日誌
若要允許日誌託運人存取 OCI 串流的資料,請建立使用者並授予擷取日誌的串流提取權限。
-
建立 OCI 使用者。如需詳細資訊, 請參閱管理使用者.
-
建立名為
SIEM_User_Group
的 OCI 群組,並將 OCI 使用者新增至該群組。如需詳細資訊,請參閱管理群組。 -
建立下列 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 如何尋找及處理所收集的資料。如需支援之輸入類型的完整清單,請參閱 Filebeat Input Types 。
-
Filebeat 輸出類型: Filebeat 設定為透過設定
filebeat.yml
組態檔之輸出區段中的選項,將日誌傳送至特定目的地。請注意,一次只能定義一個輸出。如需可用輸出類型的詳細資訊,請參閱設定輸出。
安裝 Filebeat
Filebeat 可以安裝在各種作業系統 (例如 Linux 和 Windows) 上,也可以安裝在虛擬機器、Docker 容器和 Kubernetes 叢集等平台上。本教學課程安裝在 Oracle Linux 8 運算執行處理上。如需詳細資訊,請參閱 Filebeat quick start:安裝與組態。
若要在指定為日誌託運人的運算執行處理上安裝 Filebeat,請依照下列步驟進行:
-
新增 YUM 的 beats 儲存區域。如需詳細資訊,請參閱 APT 和 YUM 的儲存區域。
-
下載並安裝公開簽署金鑰。
sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
-
在
/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
-
您的儲存區域現已可供使用。執行下列指令以安裝 Filebeat。
sudo yum install filebeat
-
執行下列指令,將 Filebeat 配置為在啟動期間自動啟動。
sudo systemctl enable filebeat
設定 Filebeat
在下列組態中,Filebeat 設定為從 OCI 串流擷取日誌,並將其另存為日誌託運人 (運算執行處理) 的本機檔案系統中的檔案。這可讓第三方 SIEM 平台收集器從本機檔案系統讀取這些日誌。
-
將
/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]}'
-
執行下列命令以測試組態。
filebeat test config
-
更新組態之後,請重新啟動 Filebeat 服務。
sudo systemctl restart Filebeat
-
成功設定之後,您應該會在
/home/opc/oci_logs
資料夾中看到 OCI 日誌作為檔案。
範例:使用 Filebeat 進行 OCI 和 Rapid7 InsightIDR 整合
在此範例中,Rapid7 InsightIDR 設定為擷取儲存在日誌託運人 Filebeat 之本機檔案系統中的 OCI 日誌。
-
在日誌託運人執行處理上安裝 Rapid7 收集器。
Rapid7 收集器會收集日誌,並將它們傳送到您的 Rapid7 InsightIDR 帳戶進行處理。若要安裝 Rapid7 Collector,請從您的 Rapid7 InsightIDR 帳戶下載套裝程式,然後將它安裝在日誌託運人運算執行處理上。如需詳細資訊,請參閱 Rapid7 Collector Installation and Deployment 。
-
設定 Rapid7 InsightIDR 以從事件來源收集資料。雖然 Rapid7 InsightIDR 隨附各種雲端服務的預先建置連接器,但原生不支援 OCI。不過,您可以依照下列步驟來擷取及處理原始資料:
-
前往 Rapid7 InsightIDR,導覽至資料收集、設定事件來源,然後按一下新增事件來源。
-
按一下新增原始資料和自訂日誌。
-
輸入名稱事件來源,然後選取收集器 (運算執行處理)。
-
選取符合事件來源日誌位置的時區。
-
選取收集方法作為監看目錄,然後使用本機資料夾中的 OCI 日誌路徑
/home/opc/oci_logs
。
日誌收集將會開始,而資料可以在 Rapid7 InsightIDR 中檢視。
-
案例 2:使用流動位元作為日誌託運人
Fluent Bit 是輕量級的高效能記錄傳送器,可作為 Fluentd 的替代選擇。Fluent Bit 因應不斷成長的需求,提供最佳解決方案,能夠從眾多來源收集日誌,同時有效處理及篩選日誌。顯然,Fluent Bit 在資源受限的環境中 (例如容器或嵌入式系統) 表現出色。
若要使用 Fluent 位元,我們將在位於 /etc/fluent-bit/fluent-bit.conf
的組態檔中定義 inputs
、filters
、outputs
和 global configurations
。讓我們詳細檢查這些元件:
- 服務:包含執行中服務的全域設定值。
- 輸入:指定要收集之 Fluent Bit 的日誌記錄來源。
- 篩選:將轉換套用至日誌記錄。
- 輸出:決定 Fluent Bit 傳送已處理日誌的目的地。
Fluent 位元輸入和輸出外掛程式:
-
Fluent Bit Inputs Plugin: Fluent Bit 提供針對不同日誌來源量身打造的各種輸入 Plugin。如需詳細資訊,請參閱輸入。
-
流體位元輸出 Plugin:為了有效地將日誌分派到不同的目的地,Fluent Bit 提供多種輸出 Plugin 陣列。如需詳細資訊,請參閱輸出。
安裝並設定 Fluent 位元
Fluent Bit 可以安裝在各種作業系統 (例如 Linux 和 Windows) 上,也可以安裝在虛擬機器、Docker 容器和 Kubernetes 叢集等平台上。本教學課程安裝在 Oracle Linux 8 運算執行處理上。若要在指定為日誌託運人的運算執行處理上安裝 Fluent Bit,請執行下列步驟:
-
在您的
/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
-
設定儲存區域之後,請執行下列命令來安裝 Fluent Bit。
sudo yum install fluent-bit
-
Fluent Bit 的預設配置檔案位於
/etc/fluent-bit/fluent-bit.conf
。依照預設,它會收集 CPU 使用狀況測量結果,並將輸出傳送至標準日誌。您可以檢視/var/log/messages
檔案中的外送資料。 -
若要從 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 收集器會監聽內送資料。
-
在現有的日誌託運人執行處理上安裝 Rapid7 Collector。
Rapid7 收集器會收集日誌,並將它們傳送到您的 Rapid7 InsightIDR 帳戶進行處理。若要安裝收集器,請從您的 Rapid7 InsightIDR 帳戶下載封裝項目,然後將它安裝在日誌託運人運算執行處理上。如需安裝步驟的詳細資訊,請參閱 Rapid7 Collector Installation and Deployment 。
-
設定 Rapid7 InsightIDR 以從事件來源收集資料。雖然 Rapid7 InsightIDR 隨附各種雲端服務的預先建置連接器,但原生不支援 OCI。不過,您可以依照下列步驟來擷取及處理原始資料:
-
前往 Rapid7 InsightIDR,導覽至資料收集、設定事件來源,然後按一下新增事件來源。
-
按一下新增原始資料和自訂日誌。
-
輸入名稱事件來源,然後選取收集器 (運算執行處理)。
-
選取符合事件來源日誌位置的時區。
-
選取收集方法作為在網路連接埠上監聽,輸入連接埠號碼和協定。
-
-
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
-
修改 Fluent Bit 組態之後,請使用下列命令重新啟動 Fluent Bit。
sudo systemctl restart fluent-bit
Fluent 位元重新啟動後,您應該會在 Rapid7 主控台中看到 OCI 日誌。
範例:使用 Fluent Bit 進行 OCI 和 Datadog 整合。
在此範例中,在日誌託運人執行處理上執行的 Fluent Bit 會使用使用 Kafka 作為輸入的 OCI 串流日誌,並使用 HTTP 輸出將日誌傳送至 Datadog 的 HTTP 端點。
-
使用 Datadog HTTP 日誌記錄端點將日誌傳送至 Datadog。如需詳細資訊,請參閱記錄日誌端點。
-
必須要有 Datadog API 金鑰,才能將日誌傳送至 Datadog HTTP 端點。如需詳細資訊,請參閱 Datadog API 和應用程式金鑰。
若要產生 API 金鑰,請依照下列步驟進行:
-
在您的 Datadog 帳戶中,瀏覽至組織設定值。
-
按一下 API 金鑰。
-
按一下新建金鑰,輸入金鑰的名稱,然後按一下建立 API 金鑰。
-
-
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
-
修改 Fluent Bit 組態之後,請重新啟動 Fluent Bit。
sudo systemctl restart fluent-bit
您現在應該會在 Datadog 帳戶中看到 OCI 日誌。
接下來的步驟
本教學課程示範如何使用日誌託運人將 OCI 日誌擷取至第三方 SIEM 平台。雖然有多種可用的日誌託運人,以及使用它們整合 OCI 與第三方 SIEM 平台的多種方法,但透過仔細評估每個日誌託運人支援的輸入和輸出選項,選擇正確的日誌託運人和整合方法至關重要。請務必與 SIEM 供應商協調,以確保解決方案符合您的特定環境和需求。
相關連結
認可
- 作者 - Chaitanya Chintala (雲端安全性顧問)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Ingest Oracle Cloud Infrastructure Logs into Third-Party SIEM Platforms using Log Shippers
G20584-01
November 2024