# Learning Mode / 7 天學習期

> Guard 先花 7 天認識你的系統，才開始保護。這不是偷懶，是為了不亂叫。

---

## 為什麼需要學習期？

傳統安全工具裝好就開始告警，結果：

- 正常的 cron job 被標為可疑程序
- 合法的內部服務被視為異常連線
- 每天數百條告警，全部是誤報
- 使用者關掉通知，等於沒裝

Panguard Guard 用 7 天觀察你的系統**正常長什麼樣**，之後才判斷什麼是**不正常**。

---

## 學習期間做了什麼

### Day 1-3：收集基線

Guard 靜默觀察並記錄：

- **程序基線** — 哪些程式正常運行、啟動時間、資源用量
- **網路基線** — 正常的連線模式、常用 port、流量特徵
- **檔案基線** — 關鍵目錄的檔案變化模式
- **使用者基線** — 登入時間、來源 IP、操作模式

### Day 4-7：建立模型

- 統計正常行為的範圍（均值 + 標準差）
- 識別週期性模式（每日備份、週期性更新）
- 標記已知安全行為（避免誤報）

### Day 8+：進入保護模式

- 自動切換到保護模式
- 偏離基線的行為觸發告警
- 持續學習，基線隨環境演進

---

## 學習模式 vs 保護模式

| 項目     | 學習模式         | 保護模式       |
| -------- | ---------------- | -------------- |
| 啟動條件 | 安裝後自動       | 7 天後自動切換 |
| 告警     | 不產生           | 偏離基線時產生 |
| 自動回應 | 不執行           | 依信心度執行   |
| 通知     | 每日學習進度摘要 | 即時威脅通知   |
| AI 分析  | 僅記錄           | 完整三層漏斗   |

---

## 查看學習進度

```bash
panguard guard status
```

輸出範例（學習期間）：

```
  ── Guard Status ───────────────────────

  Mode:       Learning (Day 3/7)
  Uptime:     3d 14h 22m
  Events:     12,847 observed
  Baseline:   42% complete
  Processes:  187 baselined
  Networks:   34 patterns learned
```

---

## 保護模式的信心度機制

進入保護模式後，Guard 根據信心度決定回應方式：

| 信心度 | 動作                 | 範例                     |
| ------ | -------------------- | ------------------------ |
| > 90%  | 自動執行回應         | 已知惡意 IP，自動封鎖    |
| 70-90% | 透過 Chat 確認後執行 | 可疑程序，問你要不要終止 |
| < 70%  | 僅通知，不執行       | 輕微異常，告知你觀察即可 |

這確保：高確定性威脅立即處理，不確定的交由你判斷。

---

## 重置學習

如果你的系統環境有重大變更（換了伺服器、大量部署新服務），可以重置學習：

```bash
panguard guard stop
# 清除資料目錄中的基線檔案
panguard guard start
```

Guard 會重新進入 7 天學習模式。

---

## 相關文件

- [Panguard Guard 使用指南](../guides/guard.md)
- [安全分數系統](security-score.md)
- [三層 AI 架構](three-layer-ai.md)
