跳至內容

關於 Security-Guard

Security-Guard 透過監控使用者容器和事件的行為,提供已部署 Knative 服務的安全狀態可見性。Security-Guard 還支援根據行為選擇性地封鎖事件和終止使用者容器執行個體。

Security-Guard 設定檔和準則

Security-Guard 會建立每個使用者容器行為和每個事件行為的設定檔。然後將這些行為與預定義的準則進行比較。如果設定檔不符合準則,Security-Guard 可以記錄警報、封鎖行為不當的事件或停止行為不當的服務執行個體,具體取決於使用者設定。

與設定檔比較的準則由一組微規則組成。這些規則描述了事件和使用者容器的預期行為,包括預期的回應。您可以選擇手動設定微規則,或使用 Security-Guard 的機器學習功能來自動建立微規則。

守護者

每個服務的微規則組會以 Guardian 物件的形式儲存在 Kubernetes 系統中。在 Knative 下,Security-Guard 會使用 guardians.guard.security.knative.dev CRD 儲存 Guardian。

若要列出所有 CRD Guardian,請使用

kubectl get guardians.guard.security.knative.dev

範例輸出

NAME            AGE
helloworld-go   10h

使用 Security-Guard

Security-Guard 會將警報寫入服務佇列 Proxy 記錄,以提供情境感知。您可以觀察佇列 Proxy 以查看警報。

安全警報會出現在佇列 Proxy 記錄檔中,並以字串 SECURITY ALERT! 開頭。Security-Guard 的預設設定是在報告任何新模式後學習該模式。依預設,Security-Guard 永遠不會封鎖事件,也永遠不會停止服務執行個體。

當部署新的服務且該服務正在主動處理請求時,Security-Guard 通常需要約 30 分鐘的時間來學習服務請求和回應的模式,並建立對應的微規則。在初始學習期間之後,Security-Guard 會更新服務 Guardian 中的微規則,隨後,只會在偵測到行為變更時才傳送警報。

請注意,在預設設定中,Security-Guard 會繼續學習任何新行為,因此避免在新行為再次發生時重複報告警報。正確的安全程序應包括檢閱 Security-Guard 偵測到的任何新行為。

Security-Guard 也可以設定為在其他操作模式下運作,例如

  • 在初始學習期間後,從自動學習轉換為手動微規則管理
  • 當請求/回應不符合微規則時封鎖它們

如需更多資訊或疑難排解協助,請參閱 Knative Slack 中的 #knative-security 頻道。

Security-Guard 使用案例

從安全角度來看,Security-Guard 支援 Knative 服務生命週期中的四個不同階段。

  • 零日
  • 易受攻擊
  • 可被利用
  • 遭濫用

接下來,我們將詳細說明每個階段,以及如何使用 Security-Guard 來管理該階段服務的安全性。

零時差

在正常情況下,擁有服務的 Knative 使用者不知道服務中的任何已知漏洞。然而,假設服務存在弱點是合理的。

Security-Guard 為 Knative 使用者提供偵測/封鎖作為傳入事件一部分傳送的模式的能力,這些模式可能被用來利用未知的零時差服務漏洞。

易受攻擊

一旦發佈了描述服務中漏洞的 CVE,擁有該服務的 Knative 使用者就需要啟動一個流程,以透過引入新的服務修訂版來消除漏洞。這個消除已知漏洞的過程可能需要數週才能完成。

Security-Guard 使 Knative 使用者能夠設定微規則來偵測/封鎖包含可能用作未來針對已發現漏洞的攻擊一部分的模式的傳入事件。這樣一來,即使服務存在已知漏洞,使用者仍能夠繼續提供服務。

可利用

當發現已知的漏洞可以有效地損害服務時,擁有該服務的 Knative 使用者需要一種方法來篩選包含特定漏洞的傳入事件。這通常發生在成功攻擊期間,其中可運作的漏洞能夠損害使用者容器。

Security-Guard 使 Knative 使用者能夠設定微規則來偵測/封鎖包含特定漏洞的傳入事件,同時允許處理其他事件。

濫用

當攻擊者建立能夠接管服務執行個體的攻擊模式時,首先利用一個或多個漏洞,然後開始濫用服務執行個體,停止服務執行個體需要攻擊者重複該攻擊模式。在任何給定時間,某些服務執行個體可能會被損害和濫用,而其他執行個體則會按設計運作。

Security-Guard 使 Knative 使用者能夠偵測/移除被濫用的服務執行個體,同時允許其他執行個體繼續處理事件。

其他資源

請參閱 Security-Guard Github 儲存庫中的 Readme 檔案。

我們使用分析和 Cookie 來瞭解網站流量。關於您使用我們網站的資訊會與 Google 分享,以便達到此目的。 瞭解更多。