跳轉到主要內容
  1. 安全洞察與公告/

把資料與系統分開:以不可變性設計

大多數機構保護伺服器的方式,就好像伺服器才是值錢的東西。給它們做映象、做備份、提心吊膽地打補丁,等一臺死掉或被攻陷了,再投入大量時間把它原樣恢復。而真正值錢的資料,就躺在這些伺服器上,享受的不過是那臺伺服器碰巧得到的保護。

把這個關係倒過來,很多安全問題會變簡單。把系統當成耗材,把資料當成寶貝。用程式碼構建伺服器,讓它們幾分鐘能被替換而不是幾天被恢復。然後把真正的保護精力集中在它該在的地方:資料本身:全程追蹤生命週期、有目的地備份,而且越來越多地,乾脆不放在處理它的系統上。

系統用來重新部署,不是用來修理 #

舊模式把伺服器當寵物養。每一臺都有名字、有脾氣、有一段沒人完整記錄的手工修補史。寵物伺服器一死,恢復就成了考古:靠記憶、筆記和希望去重建幾年積累下來的變更。

現代模式把伺服器當牛群:借用那個比無數流行詞活得更久的 DevOps 說法。你不會搶救一頭病入膏肓的奶牛;你換掉它,繼續往前走。落到實踐中:

基礎設施即程式碼。 每臺伺服器、每個容器、每份配置都以宣告式定義:Terraform 管平臺層,Ansible 或 cloud-init 管主機層,容器映象管工作負載。一個執行中的例項只是這份定義的一次例項化,與其他任何例項沒有區別。

不可變部署。 不是登進伺服器改配置,而是構建新版本、測試後滾動釋出,整批替換舊例項。什麼都不累積。配置漂移:那些讓每個環境都獨一無二且無法解釋的手工改動悄悄堆積:從結構上就不可能發生。

重新部署取代恢復。 這是讓很多人意外的收益:一支正確搭建的"牛群"艦隊幾乎不需要備份。如果一臺伺服器被攻陷、損壞或乾脆丟了,你不去恢復它,而是按程式碼重新部署,幾分鐘的事,因為那份定義就是備份。事故中的對話不再是"怎麼把這臺機器救回來?",而是"替換例項能起多快?":在真實事件裡,這是個好得多的對話。

這也大幅縮小了勒索軟體的打擊面。加密只能傷害難以重現的東西。由 Git 倉庫定義的可拋棄機器,恰恰最容易重現。

所有的注意力轉向資料 #

一旦系統變成耗材,一切不可替代的東西都在資料裡。資料值得擁有自己的紀律,而這始於一個多陣列織從未精確回答過的問題:我們持有哪些資料、存在哪裡、誰在接觸、隨時間如何流轉?

全生命週期追蹤資料。 建立、處理、複製、歸檔、銷燬:每個階段都應該被知曉且是有意的。生命週期追蹤反覆帶來回報:它告訴你監管義務附著在哪裡(PDPA 及同類法規跟隨資料而非機器);它暴露那些無人認賬的遺忘副本:洩露真正發生的地方;它還告訴你今天就能刪什麼,這往往是最便宜的風險削減:不存在的資料無法洩露。

有目的地備份資料,而不是無意識地備份機器。 當系統以程式碼定義,備份變得聚焦而誠實:資料庫轉儲、物件儲存複製、配置倉庫、金鑰保險庫。一小批真正重要的東西,可驗證,而不是每晚對一切(包括垃圾)做整機映象。

考慮讓資料根本不在處理它的系統上。 應用可以幾乎不在本地持有任何東西:狀態放託管資料庫,檔案放物件儲存,機密放保險庫。這樣處理層就沒有值得偷的東西,一臺被攻陷的應用伺服器就從"需上報事件"降級成"運營麻煩"。附帶的好處是,專為儲存設計的資料服務通常內建更強的保護:版本控制、不可變選項、細粒度訪問控制:比任何通用伺服器能做到的都好。

運營一支機隊,而不是三支 #

這裡面還藏著第二重簡化,關於機隊本身。看看任何 Windows 與 Linux 混合環境的成本結構,數一數重複建設:

  • 兩套技能。 Windows 管理和 Linux 管理是兩個職業。兩頭都支援意味著要麼各聘專家,要麼接受兩頭都不深。粗略地說,同樣數量的機器,兩倍的團隊。
  • 兩套工具鏈。 補丁、監控、配置管理、加固基線、Agent 部署:每樣都有兩份,各自採購、維護、升級。雙倍預算、雙倍的管理面攻擊面、雙倍可能悄悄掉隊的東西。
  • 兩套失效模式。 事件響應手冊、取證能力、災備流程全都按平臺分叉。事故發生時,這個分叉消耗的恰好是你最缺的時間。

航空公司的類比在這裡站得住腳。沒有哪家成功的航司什麼機型都飛:每多一種機型,維護專案、備件庫存、機組資質、培訓管線和機庫裝置都會成倍增加,而且這些成本永遠迴圈,遠在採購決定被遺忘之後。所以航空公司無情地把機型標準化到覆蓋航線所需的最小集合。IT 機隊值得同樣的算術。選定你的標準作業系統並守住陣線,就把所有"兩份"變成了"一份",而節省逐年複利。

標準化還直接強化安全。一支機隊意味著一條吃透了的加固基線;一條調校到位、可以信賴的補丁流水線;一套貼合實際機隊的檢測規則。深度每一次都勝過覆蓋面。

從哪裡開始 #

  1. 挑一個工作負載,讓它可拋棄。 反覆用程式碼重建,直到完整替換隻需幾分鐘、沒有任何東西是手工配的。
  2. 誠實地盤點資料。 在哪、在哪臺系統上、歸誰管、哪些明天就能刪。
  3. 把狀態移出應用伺服器, 放進帶合適訪問控制和不可變選項的專業儲存。
  4. 誠實計算機隊的分叉成本。 把重複的許可、工具和人頭加總,對照整合的價格。像航司評估航線一樣呈報領導層:經常性成本對經常性收入。
  5. 立下今後的標準: 新系統一律加入標準機隊、以程式碼定義、儘量無狀態。例外必須寫下理由。

關注點分離是工程界最古老的教訓之一,安全完全可以字面地受益於它:系統是短暫的,資料是永久的,按各自的真面目保護兩者,比為兩者都保護不好更省錢。

想知道你的關鍵資料能否在所有相關伺服器全部丟失的情況下倖存? 歡迎聯絡我們做一個直接的可行性判斷。透過 LINE(@PureSecurity)或電子郵件(hello@puresecurity.com)聯絡我。

我們的配置與架構評估 會梳理資料存放與處理的分佈並設計分離路徑, Linux 加固實踐則幫你打下讓標準化產生回報的單機隊基線。 或者 schedule an Engineering & Scoping Session,和團隊一起規劃。