iT邦幫忙

2026 iThome 鐵人賽

DAY 24
0
佛心分享-IT 人職涯歷練

從網管黑手到資安長思維:一線維運的 30 天防禦進化與證照修煉系列 第 24 篇

Day 24|備份不是求心安,能還原才是真防禦:Linux 排程備份、完整性驗證與災難復原演練

  • 分享至 

  • xImage
  •  

某天,此次值班的是小智同事,估稱為A男
A男接到客服來電
客服:目前遊戲無法運作,且APP看起來都是空的
A男:我確認一下
在A男熟練的操作,赫然發現..............
伺服器共用的NFS資料被清空!!!!!!!!!!!!!!!!!

記得那時大地震,是緊急將每日同步到雲端的備份拉回地端
歷經抓檔案及整個環境重設,約莫看到黎明的晨光
才整個恢復
........................................................................................

在企業日常維運中,備份往往是最被低估、卻也是災難降臨時唯一的「免死金牌」。

許多一線工程師常有一種虛假的安全感:打開 Linux 伺服器的 crontab,看見每天凌晨兩點準時跑 tar 或 rsync 腳本,隔天早上看目錄下確實躺著一顆幾十 GB 的 .tar.gz 檔案,就心滿意足地打勾交差。

直到某天勒索軟體橫向擴散、或是 RAID 陣列無預警崩潰時,殘酷的現實才會浮現:

備份磁碟一直掛載在同台主機上,早已隨正式環境一併被加密。

資料庫熱備份時沒有鎖表或走一致性快照,解開後檔案嚴重損毀、資料庫根本起不來。

備份檔很大,但還原解壓縮需要 16 小時,遠遠超過管理層能容忍的營業中斷極限。

這正是資安界流傳的一句警世名言:「沒有人真的想要備份,所有人要的都只是『還原』。」

在 ISO 27001 控制措施 A.8.13(資訊備份) 與 CISSP 營運安全(Domain 7) 視角下,備份不是一項完成即忘的庶務,而是一套涵蓋「完整性校驗」、「防禦橫向勒索」與「業務連續性演練」的閉環防線。

一、 抵禦勒索軟體的 3-2-1-1 備份現代化架構

傳統隨意指派一顆本機外掛硬碟的作法,在現代針對性勒索軟體面前形同虛設。攻擊者攻入 Linux 主機取得 Root 權限後,第一件事就是下指令 rm -rf /backup 或利用加密工具同步摧毀掛載的備份磁區。

實務架構必須升級為嚴格的 3-2-1-1 架構:

3 份資料副本:

1 份正式生產資料,加上 2 份備份。

2 種不同儲存媒介:

避免單一硬體架構缺陷(例如本機 SSD 陣列搭配獨立 NAS / 物件儲存)。

1 份異地保存:

防範機房火災、水患或實體電力災變(例如地端 IDC 與 GCP Cloud Storage 異地互備)。

關鍵的「+1」—— 不可竄改(Immutable)或隔離存取(Air-Gapped):

拒絕本機常態掛載(No NFS/SMB Mount):生產伺服器絕不可長態掛載備份主機的寫入目錄。

推(Push)改為拉(Pull):由獨立的專屬備份主機「主動拉取(Pull)」生產機器的資料,生產主機本身完全沒有備份儲存池的刪除權限。

開啟 WORM(Write Once, Read Many)特性:在儲存端啟用物件鎖定(Object Lock)或 Linux chattr +i 特性,設定在 30 天內任何帳號(包含 Root)都無法覆寫或刪除該檔案。

二、 拒絕薛丁格的備份:自動化 SHA-256 完整性校驗

一個未經校驗的備份檔,就像盒子裡的貓——在解開前,你永遠不知道它是活的還是死的。

在傳輸與壓縮過程中,網路掉包、磁碟壞軌或記憶體位元翻轉(Bit Flip)都可能造成壓縮檔損壞。合格的 Linux 排程腳本,絕不能以 exit 0 作為唯一成功標準,必須落實完整性(Integrity)雙向校驗:

1. 產生與比對雜湊值

在備份腳本打包完成的當下,立即計算並輸出雜湊清單:

Bash
#打包完成後立即產出 SHA-256 Checksum
sha256sum backup_$(date +%Y%m%d).tar.gz > backup_$(date +%Y%m%d).tar.gz.sha256
 異地同步完成後,在目的端主動驗證雜湊一致性
sha256sum -c backup_$(date +%Y%m%d).tar.gz.sha256

只有在雜湊對齊無誤時,腳本才向監控系統或 Telegram/Slack 通報成功;若比對失敗,立即觸發告警並自動重跑。

2. 資料庫熱備份的一致性保證

面對 MySQL 或 MongoDB,切忌直接 tar 資料庫目錄(/var/lib/...),這會導致未寫入的記憶體髒頁遺失、索引不一致。

MySQL/MariaDB:

應採用具備交易鎖定機制的工具(如 mysqldump --single-transaction)或物理備份工具(Percona XtraBackup)。

MongoDB:

使用 mongodump --oplog 記錄備份期間的變更日誌,確保還原時能重放至同一時間點,達成 Point-in-Time 一致性。

三、 指標化量化:用 RTO 與 RPO 替代「盡快還原」

在向管理層報告時,「我們會盡快修好」是維運團隊最忌諱的模糊語言。在 業務衝擊分析(BIA) 中,必須用兩個關鍵指標界定底線:

RPO(復原點目標,Recovery Point Objective):

意義:企業能承受遺失多少時間的資料?

若 RPO 定為 1 小時,代表每天僅跑一次凌晨備份是不合規的,必須搭配資料庫 Binlog 定期同步或每小時增量快照。

RTO(復原時間目標,Recovery Time Objective):

意義:系統崩潰後,能容忍多久時間內恢復營運?

若高層要求 RTO 為 2 小時,但你的備份檔重構與網路傳輸需要 6 小時,這就是架構設計上的不合格。

四、 災難復原演練(DR Drill):走進無預警的冷開機兵推

在 ISO 27001 稽核實務 中,稽核員最常檢視的一張單據,就是「年度備份還原測試報告」。

光是在測試機上敲指令「解壓縮檔案確認讀得到」不叫演練。高規格的災難復原兵推,必須做到「全流程冷開機還原(Bare-Metal Recovery Simulation)」:

完全隔離的測試環境:準備一個與正式環境網路完全切斷的 Staging VLAN。

模擬主機全毀:

從空白虛擬機開始,只憑異地儲存池拉取的備份檔,執行全自動還原腳本。

業務邏輯驗證:

系統開機、服務啟動後,由品保(QA)或業務單位登入,執行預設的交易驗證測試,確認資料筆數、最新交易紀錄與帳號權限完全無誤。

記錄真實 RTO 耗時:

碼錶從「宣告災難」按下去,到「業務驗證通過」停止,這段真實耗時才是你向上呈報的真實 RTO。

結語:防禦的最後一道救贖

防火牆會被穿透,零日漏洞無法預知,甚至連最資深的維運人員都可能手滑下錯 rm 指令。

資安長與架構操盤手的思維,永遠建立在「假設防線已被突破」的現實之上。把備份與還原的每一個螺絲鎖緊、把雜湊驗證與不可竄改防線立牢,我們守護的不僅是一堆冰冷的二進位檔案,而是在整座企業面臨至暗時刻時,能夠從廢墟之中浴火重生的唯一底氣。


上一篇
Day 23|供應鏈與協力廠商風險:委外維運廠商存取權限的管控盲區
系列文
從網管黑手到資安長思維:一線維運的 30 天防禦進化與證照修煉 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言