iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0
AI 自動化

從漏洞告警到 AI 決策:Wazuh × RAG × n8n 實作自動化資安漏洞驗證與智慧通報系列 第 21 篇

Day 21 | 備戰資安稽核 — 實作 SOAR 日誌封存與雲端自動備份

  • 分享至 

  • xImage
  •  

這份是為你準備的第 21 天草稿!延續前面的技術實作風格,今天我們要把焦點放在資安維運的「生命週期管理(Lifecycle Management)」。

這篇實作會帶入資料封存與備份的觀念,這在真實企業中對於符合稽核規範(如 ISO 27001 要求日誌需保存特定期限)非常重要。

你可以直接複製這篇內容發布:


Day 21:溫故而知新 —— 實作 SOAR 資安日誌雲端備份與自動封存

大家好!歡迎來到鐵人賽第二十一天。

在昨天的實作中,我們完成了「日常資安巡檢」的自動化,讓系統每天早上主動回報伺服器的健康狀態。隨著我們的 SOAR 系統穩定運作,Wazuh 告警與 Day 17 建立的 Google Sheets 資安工單將會快速累積。

在企業實務與資安稽核規範(如 ISO 27001)中,資安事件的日誌通常被要求必須保存 6 個月到 1 年以上。然而,如果把所有歷史紀錄都一直堆積在正在運作的工單表或主要資料庫中,不僅會拖慢系統效能,也不利於管理。

因此,今天我們要實作「資安日誌自動封存(Log Archiving)」。我們將透過 n8n,在每個月底自動把 Google Sheets 裡「已結案」的工單撈出來,轉換成 CSV 檔案,並自動備份到 Google Drive 雲端硬碟中妥善保存。


封存情境設定

我們希望 n8n 在每個月的 1 號執行以下任務:

  1. 讀取「SecOps 資安自動化稽核日誌」試算表。
  2. 篩選出上個月所有狀態為 ✅ 已完成修補 或 ✅ 已完成聯防封鎖 的結案工單。
  3. 將這些資料打包轉換成 .csv 檔案。
  4. 自動上傳到 Google Drive 的專屬備份資料夾。
  5. 發送備份完成通知到 LINE 群組。

第一步:設定每月排程觸發器

在 n8n 中建立一個全新的工作流(Workflow)。
加入一個 Schedule Trigger 節點:

  • Trigger Interval:選擇 Months(每個月)。
  • Execution Time:設定在每個月 1 號的凌晨 02:00(避開白天系統繁忙時段)。

這個觸發器會成為我們定期執行封存任務的發條。


第二步:讀取並篩選結案工單

接著,我們要去 Google Sheets 把資料撈出來。

  1. 新增一個 Google Sheets 節點。
  2. Action 選擇:Read Rows(讀取資料)。
  3. 選擇你在 Day 17 建立的工單試算表。
  4. 為了只備份已經處理完畢的事件,我們可以在節點中設定 Filter(篩選條件),或者在後面接一個 Filter 節點,設定條件為:
    Status 包含 ✅ 已完成。

這樣一來,我們就成功把需要歸檔的歷史資料全部提取出來了。


第三步:將 JSON 資料轉換為 CSV 檔案

n8n 節點之間傳遞的資料格式是 JSON,為了方便未來的稽核人員透過 Excel 開啟與查閱,我們需要將它轉換為 CSV 格式。

  1. 新增一個 Spreadsheet File 節點(這是 n8n 內建專門處理試算表檔案的強大節點)。
  2. Operation 選擇:To File(將資料轉換成檔案)。
  3. File Format 選擇:CSV。
  4. Binary Property:輸入 data(這代表轉換後的二進位檔案會存放在這個變數名稱中)。

執行過這個節點後,原本結構化的 JSON 數據,就會被瞬間打包成一個實體的 CSV 檔案。


第四步:自動上傳至 Google Drive 雲端硬碟

有了實體檔案後,我們要把它傳送到安全的雲端空間存放。

  1. 新增一個 Google Drive 節點。
  2. 完成 Google 帳號授權連線。
  3. Action 選擇:Upload(上傳檔案)。
  4. File Name:為了方便日後尋找,我們可以用變數動態命名檔案,例如:
    SecOps_Archive_{{ $now.minus({months: 1}).toFormat('yyyy-MM') }}.csv
    (這會自動生成如 SecOps_Archive_2026-09.csv 這樣帶有月份的檔名)
  5. Binary Data:開啟此選項,並填入剛剛設定的 data。
  6. Parent Folder ID:填入你 Google Drive 中準備用來存放備份的資料夾 ID(可以從資料夾網址最後面那串代碼找到)。

第五步:發送封存完成通知

最後,我們一樣要讓團隊知道備份任務已經順利完成。

新增一個 LINE HTTP Request 節點:

  • Method: POST
  • URL: [https://api.line.me/v2/bot/message/push](https://api.line.me/v2/bot/message/push)
  • Body (JSON):
{
  "to": "你的_LINE_群組_ID",
  "messages": [
    {
      "type": "text",
      "text": "🗄️ 【系統通知】上月份資安工單已自動封存\n\n備份檔案已成功上傳至 Google Drive 安全存放區。確保符合資安日誌保存規範!"
    }
  ]
}


完整流程

將今天的節點串接起來,我們的封存自動化管線如下:

Schedule Trigger (每月 1 號凌晨觸發)
 ↓
Google Sheets (讀取歷史結案工單)
 ↓
Filter (篩選出已完成的紀錄)
 ↓
Spreadsheet File (將資料轉為 CSV 實體檔案)
 ↓
Google Drive (上傳 CSV 檔案至雲端硬碟)
 ↓
LINE 通知 (發送封存成功訊息)

你可以點擊 Test Workflow 進行測試。當你在 Google Drive 資料夾中看到名為 SecOps_Archive_2026-XX.csv 的檔案成功出現,且打開後裡面的欄位整整齊齊時,就代表實作大功告成了!


今天的成果

今天我們將 SOAR 系統的拼圖擴展到了「資料生命週期管理」。

在真實企業中,很多時候「保存證據」跟「防禦攻擊」是一樣重要的。透過 n8n,我們不僅省下了每個月手動匯出資料、上傳備份的繁瑣人工時間,更確保了資安維運的流程符合稽核標準,不會因為人為疏失而遺失重要的歷史威脅情報。

明天(Day 22),我們將轉換一下防禦的視角。除了伺服器漏洞與網路攻擊,企業最常遇到的資安破口其實是「社交工程(Phishing)」。我們將實作如何讓 n8n 自動接收員工回報的可疑郵件,並透過 AI 進行釣魚信件分析。我們明天見!


上一篇
Day 20 | 防患於未然 —實作 SOAR 日常資安巡檢與報表自動化
下一篇
Day 22 | 識破社交工程 — 實作 SOAR 釣魚郵件自動化分析
系列文
從漏洞告警到 AI 決策:Wazuh × RAG × n8n 實作自動化資安漏洞驗證與智慧通報 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言