前篇提到了一個健康的機群的控制措施,包含硬體資產管理、軟體配置管理、安全策略、分層防禦、用戶和設備驗證、遠程監控等。在討論如何達到健康的狀態或如何維護平臺之前,我們首先需要討論如何啓動平臺。
只有可信賴的設備才可訪問敏感服務。我們將系統和設備的信任分為不同層級,設備可以根據其特性和行為獲得不同的信任級別。
不幸的是,這種方法導致了一個是先有蛋還是先有雞的問題:將設備過渡到可信狀態需要訪問客戶端軟件庫 (client software repository),然而客戶端軟件庫是一個敏感服務。爲了解決這個問題,我們在 untrusted 到 trusted 的過程中加入一個 "identified state",表示 "庫存系統認爲該設備狀態良好,但由於某些原因而不受信任"。這些處於 "identified state" 的設備可以訪問客戶端軟件庫的一個子集以便安裝修復軟件,而這個修復軟件可以使設備報告自身的設備狀態、下載需要的補丁 (patch)、並採取一切必要措施以達到 trusted 層級。
努力建構 healthy fleet 的過程中會讓你更好地瞭解你的環境,讓你在授予訪問權限的時候更有信心。接下來的挑戰是在技術和業務不斷變化的情況下保持這種狀態。
下面的章節將討論如何在環境不斷變化的過程中保持 fleet 處在良好的狀態,以及當健康狀態下降時如何快速修復。
(好傢夥,熵都出現了)
設備一旦落入用戶手中,隨著時間的推移,安全保障會逐漸減弱,設備的安全性也會隨之降低。在與熵的鬥爭中,我們發現了一些有用的策略。
第一個也是最有效的策略是將訪問決策與庫存系統整合在一起。在允許訪問內部資源之前,所有設備都應該被識別並獲得信任。在Google,我們在接收和鏡像處理過程中將 fleet 中的每台設備都添加到我們的公司庫存中。對於任何被報告為遺失、被盜或丟失的設備,我們會迅速取消其訪問權限。為了鼓勵及時回報遺失或被盜設備,我們要求用戶在獲得替代設備之前進行 self-report。
同時,對於訪問您環境的任何設備的狀態,具備強大的遙測數據也非常重要。Facebook 的 OSQuery 是一個出色的開源遙測工具,適用於 Linux、OS X 和 Windows 操作系統:它允許您測量設備屬性,如機器的操作系統版本、關鍵軟件的補丁級別以及加密狀態。
最後,補丁和配置管理工具能夠讓您更改設備的安全狀態,將一個不受信任的設備變成一個可信賴的設備。BeyondCorp 使用訪問限制來推動用戶采取行動,如重新啟動或更新系統。
在主機的整個生命週期中,有所爲或有所不爲都有可能導致設備被判定爲不健康的狀態。我們的 trust inference 會動態地對設備進行信任等級的評估,檢測設備狀態變化。一旦設備無法滿足我們的信任標準時,我們會將其信任等級降級。我們會通知設備的擁有者並提供相關的修復說明。
此外,我們有一個 Detection and Response Team 作爲信任決策的附加數據源,這個部門可以對任何表現惡意的設備撤銷信任。
乍看之下會覺得定義機群健不健康是一項簡單的任務。然而就像大多數 IT 環境一樣,魔鬼藏在細節裡(還有例外裡)。當處理衆多不同的操作系統和各種用例時,你會遇到許多細節。
隨著控制措施不斷地推出,我們不是制定絕對的要求,而是嘗試引入策略合規的閾值 (threshold of policy compliance) 。這種策略允許用戶在良好狀態內更靈活地運作,避免了嚴厲的規則集,which 可能會導致用戶尋找解決辦法或繞過規則。
我們還認為,設計預防性的安全控制非常重要,因為它們可以向我們的事件檢測和應對團隊提供關鍵信息。為了實現這一目標,我們努力將這些控制措施融入到我們的安全信息和事件管理系統中,以便它們能夠匯報和記錄與安全策略相關的數據。這有助於未來的取證工作和事件檢測。