Skip to main content
策略引擎為您的 Guard 代理設備群組提供集中化設定管理。它支援適用於所有代理的全域策略、針對特定端點的個別代理覆蓋,以及搭配廣播佇列的版本控制分發。

策略如何運作

Admin ──> POST /api/policy ──> PolicyEngine ──> Broadcast Queue
                                                      |
                                    Agent Poll (每 5 分鐘)
                                                      |
                               ┌──────────┬──────────┬──────────┐
                             Agent 1    Agent 2    Agent 3
  1. 管理員透過 REST API 或 CLI 建立或更新策略
  2. PolicyEngine 遞增版本號並儲存策略
  3. 策略被加入廣播佇列
  4. 代理每 5 分鐘輪詢更新,並在本地版本過期時下載新策略

策略結構

策略是帶有版本號和設定區段的 JSON 文件:
{
  "version": 3,
  "scope": "global",
  "updatedAt": "2025-01-15T14:23:01Z",
  "thresholds": {
    "autoRespond": 90,
    "notifyAndWait": 70
  },
  "blocklist": {
    "ips": ["203.0.113.50", "198.51.100.0/24"]
  },
  "allowlist": {
    "ips": ["10.0.0.0/8"],
    "processes": ["nginx", "postgres"]
  },
  "monitors": {
    "enabled": ["log", "network", "process", "file"],
    "advanced": ["falco", "suricata"]
  },
  "alerting": {
    "minimumSeverity": "medium",
    "channels": ["slack"]
  },
  "response": {
    "actions": ["block_ip", "notify", "log_only"],
    "escalation": {
      "repeatThreshold": 3,
      "repeatBlockDuration": "24h"
    }
  }
}

策略設定區段

區段欄位描述
thresholdsautoRespondnotifyAndWait自動化回應的信心門檻
blocklistipsdomains推送至所有代理的全設備群組封鎖清單
allowlistipsprocesses免於回應的白名單 IP 和處理程序
monitorsenabledadvanced每個代理上要啟動的監控器
alertingchannelsseverity通知的最低嚴重性、管道路由
responseactionsescalation允許的回應動作和升級參數
rulessigmayara自訂規則分發

規則類型

類型描述值格式
block_ip將 IP 或 CIDR 加入全設備群組封鎖清單IP 位址或 CIDR 表示法
alert_threshold設定警報的最低信心值數字(0-100)
auto_respond啟用/停用自動回應布林值 + 信心門檻
custom自訂鍵值設定字串

block_ip

將 IP 位址或 CIDR 範圍加入所有目標代理的封鎖清單:
{
  "type": "block_ip",
  "value": "203.0.113.50",
  "duration": "24h",
  "reason": "Cross-agent correlation: scanning 5 agents"
}

auto_respond

控制 RespondAgent 是否可以採取自動化動作。在維護期間很有用:
{
  "type": "auto_respond",
  "value": false,
  "reason": "Maintenance window: disable auto-response"
}

策略範圍

全域策略適用於所有已註冊的代理:
panguard manager policies set --global --file policy.json
每個代理在策略輪詢期間都會收到全域策略。

策略解析順序

當代理輪詢其策略時,Manager 合併設定:
Defaults ──> Global Policy ──> Per-Agent Policy
後面的值覆蓋前面的值。

版本控制

每次策略變更都會遞增版本號。代理在每次輪詢週期中將其本地版本與 Manager 的目前版本進行比較。
事件版本行為
新策略建立版本遞增
策略更新版本遞增
新增個別代理覆蓋代理特定版本遞增
代理以目前版本輪詢Manager 回傳 304(無變更)
代理以過期版本輪詢Manager 回傳新策略

廣播佇列

當策略變更需要立即行動時,Manager 立即將更新推送至所有在線代理:
傳遞模式觸發條件延遲
輪詢非緊急策略變更最多 5 分鐘
廣播block_ip 規則、auto_respond 停用立即(透過下次心跳,約 30 秒)

緊急策略

ThreatAggregator 偵測到跨代理威脅模式時,它會觸發緊急策略推送:
觸發條件緊急動作
同一 IP 攻擊 3+ 個代理全設備群組 IP 封鎖
同一惡意軟體雜湊出現在 2+ 個代理全設備群組檔案隔離規則
偵測到協調攻擊在全設備群組提升自動回應門檻
緊急策略繞過正常的輪詢間隔,透過廣播佇列分發。

CLI 參考

panguard manager policies <command> [options]

Commands:
  list               顯示目前策略規則
  set                新增或更新策略規則
  remove             移除策略規則
  history            顯示策略版本歷史
  broadcast          強制立即策略推送
  get                取得特定代理的策略

Options:
  --global           適用於所有代理(預設)
  --agent <id>       適用於特定代理
  --rule <json>      規則定義(JSON)
  --file <path>      策略檔案(JSON)
停用 auto_respond 的策略變更透過廣播立即生效。在計畫性維護期間使用此功能,以防止 Guard 採取可能干擾您工作的動作。