---
title: '風險評分'
description: 'Panguard Scan 怎麼算出 0-100 風險分數和 A-F 等級。'
icon: 'chart-bar'
---

每次 Panguard Scan 都會產出一個 0 到 100 的風險分數，配一個 A 到 F 的等級。這頁說明分數怎麼算、每個等級代表什麼。

## 分數長這樣

```
Score: 62/100 [████████████░░░░░░░░] Grade: C
```

這是一個**風險分數**：越高代表風險越大。算法是把所有弱點依嚴重度加權後加總（再做情境調整），clamp 在 0--100 之間。

## 等級門檻

| 等級  | 分數範圍  | 代表什麼                                       |
| ----- | --------- | ---------------------------------------------- |
| **A** | 90 -- 100 | 很好。風險極低，所有 CRITICAL 和 HIGH 都修了。 |
| **B** | 75 -- 89  | 不錯。還剩幾個 MEDIUM 的項目。                 |
| **C** | 60 -- 74  | 普通。有多個弱點需要處理。                     |
| **D** | 40 -- 59  | 偏差。有明顯的安全缺口。                       |
| **F** | 0 -- 39   | 危險。需要馬上處理。                           |

## 計分方式

風險分數來自所有掃描器找到的弱點，依嚴重度和數量計算。每個弱點根據嚴重度加分（扣安全分）：

| 嚴重度   | 每個弱點的點數 |
| -------- | -------------- |
| CRITICAL | 25             |
| HIGH     | 15             |
| MEDIUM   | 5              |
| LOW      | 1              |
| INFO     | 0              |

點數加總就是原始風險分數（越高 = 越危險），clamp 到 0--100。

### 去重

如果多個弱點有相同 ID（例如同一條規則在不同輸入上觸發），只算嚴重度最高的那個。避免重複偵測灌水分數。

### 情境乘數

原始分數會被一個**情境乘數**調整，這個乘數反映環境中的額外訊號：

| 乘數  | 意義               | 效果     |
| ----- | ------------------ | -------- |
| > 1.0 | 偵測到惡意情境訊號 | 分數拉高 |
| 1.0   | 中性（預設）       | 不調整   |
| < 1.0 | 偵測到合理情境訊號 | 分數降低 |

最終分數 = `min(100, round(rawScore * contextMultiplier))`。

### 計算範例

| 弱點               | 嚴重度   | 點數   |
| ------------------ | -------- | ------ |
| SSH 綁定 0.0.0.0   | HIGH     | 15     |
| 弱密碼策略         | MEDIUM   | 5      |
| SSL 憑證過期       | CRITICAL | 25     |
| 沒開防火牆         | HIGH     | 15     |
| kernel 過舊（CVE） | MEDIUM   | 5      |
|                    | **合計** | **65** |

情境乘數為中性（1.0）的話，風險分數就是 **65**（等級：**C**）。

### 風險等級強制覆寫

只要有 CRITICAL 弱點，不管數字分數多少，風險等級至少會被拉到 HIGH。如果情境乘數很低（< 0.6），覆寫會減弱成 MEDIUM。

## 10 大評分類別

除了總分以外，分數還會拆到 10 個類別：

| 類別         | 衡量什麼                                |
| ------------ | --------------------------------------- |
| **系統**     | OS patch 等級、kernel 版本、架構        |
| **網路**     | 開放 port、綁定位址、防火牆狀態         |
| **認證**     | 密碼策略強度、帳戶鎖定                  |
| **加密**     | SSL/TLS 憑證、cipher suite、key 強度    |
| **存取控制** | 共享資料夾、檔案權限、匿名存取          |
| **服務**     | 執行中的服務、不必要的 daemon           |
| **排程任務** | cron job、可疑 script、持久化手法       |
| **安全工具** | 有沒有裝防毒、IDS、防火牆、audit daemon |

## 怎麼提升分數

<Steps>
  <Step title="先修 CRITICAL">一個 CRITICAL 就扣 25 分。修掉一個就可能升一個字母等級。</Step>
  <Step title="再處理 HIGH">HIGH 是下一個優先，每個扣 15 分。</Step>
  <Step title="看看 MEDIUM">通常是一些 config 改善，會慢慢累積。</Step>
  <Step title="重新掃一次確認">改完之後再跑 `panguard scan` 確認新分數。</Step>
</Steps>

<Tip>
  跑 `panguard scan --json` 可以拿到機器可讀的輸出，裡面有每個弱點的個別分數，方便接進 CI/CD
  pipeline。
</Tip>
