安全與隱私 · Clash 技術部落格

Clash 遠端規則集安全嗎?rule-providers 來源、更新與篡改風險檢查

rule-providers 不會直接讀取帳號密碼,但它能改變網域走哪個出口。用之前至少要確認來源、更新記錄和還原檔案,重要規則更新時還要看差異。

  • rule-providers
  • 規則集
  • 供應鏈
  • 安全
本文目錄

遠端規則集是否安全,先看它能改變什麼

rule-providers 本身只是規則檔案,不能直接讀取帳號密碼;但它可以改變一個網域走直連、代理還是拒絕。來源不明、自動更新又沒有還原的規則,風險就在於敏感請求可能被悄悄送到錯誤出口。

Rule Provider 參與決定網域走代理、直連還是拒絕。一條範圍過寬的 DOMAIN-SUFFIX 規則放在前面,就可能讓銀行、公司背景或內部網路登入突然經過陌生節點。風險來自路由變化,不需要規則檔案擁有讀取密碼的權限。

連線記錄裡出現意外策略時,先切回上一份快取並斷開舊連線,再比較規則檔案。把異常時間、Provider 名稱、命中項目和最終出口放在一起,才能區分維護者誤收網域、本機順序錯誤或遠端內容被替換。

先追到儲存庫與提交,再複製 raw 位址

新增前必須能回答

  • 這個 raw 檔案屬於哪個公開儲存庫和維護者
  • 儲存庫提交記錄是否與規則主題一致
  • 下載內容是 YAML/MRS 文字,而不是登入頁、指令碼或短鏈跳轉
  • 目前設定能否保留上一次下載的本機檔案
  • 出現錯誤時是否知道怎樣停用這一個 Provider

分支位址會隨每次提交變化,適合已經信任且需要更新的規則;提交哈希位址內容固定,適合銀行、公司直連等變化少、影響大的規則。兩者可以並存,不必把所有來源都設成每小時更新。

讓 URL、格式、本機路徑和更新時間都看得見

可審查的 Rule Provider 示例
rule-providers:
  research:
    type: http
    behavior: domain
    format: yaml
    url: https://raw.githubusercontent.com/OWNER/REPO/COMMIT/rules.yaml
    path: ./ruleset/research.yaml
    interval: 86400

rules:
  # REPLACE_WITH_POLICY 必须换成当前配置中已经存在的策略组
  - RULE-SET,research,REPLACE_WITH_POLICY
  - MATCH,DIRECT

OWNER、REPO、COMMIT 和 REPLACE_WITH_POLICY 都是佔位內容,複製後不能直接啟用。把它們換成已經核對過的儲存庫、固定提交和現有策略群組。

behavior、format 必須與遠端內容一致;path 應落在核心有權限寫入的位置。把規則引用放在 MATCH 之前,也要避開公司網段、區域網路和必須直連的高優先級規則。

更新成功後看規則數量與修改時間,再挑幾條熟悉網域檢查命中。只看到頁面提示「更新完成」,還不能證明目前執行設定真的引用了新檔案。

重要規則更新前,用 diff 看它改了什麼

在自己控制的終端比較,先替換 RULE_URL
RULE_URL='https://raw.githubusercontent.com/OWNER/REPO/COMMIT/rules.yaml'
curl -L --fail --show-error -o rules.new.yaml "$RULE_URL"
sha256sum rules.new.yaml
diff -u rules.last.yaml rules.new.yaml | less

macOS 可以用 shasum -a 256 代替 sha256sum。哈希只能證明兩次檔案是否相同,不能證明內容本身可信;真正需要看的仍是新增與刪除項目、儲存庫提交說明和規則主題是否一致。

檔案從幾千行突然變成幾十行、開頭出現 <!doctype html>、或影片規則一次加入大量帳號與銀行網域,都應暫停自動更新。

已經走錯策略時,先還原檔案再處理帳號

如果異常剛好出現在 Provider 更新之後,先恢復上一份規則並斷開舊連線。路由恢復以後,再判斷敏感請求是否真的經過了錯誤出口。

異常處置

  1. 停止該 Provider 更新

    切回上一份快取或暫時移除 RULE-SET 引用。

  2. 重載設定並斷開連線

    新請求應恢復原策略,舊會話不會自動改出口。

  3. 對照儲存庫變更

    確認是誤收項目、位址遷移、格式變化還是來源無法驗證。

  4. 檢查敏感帳號

    如果登入請求曾經過意外出口,查看登入記錄並按風險更換認證資訊。

  5. 改用固定提交或替代來源

    無法解釋的遠端檔案不再恢復自動更新。

參考資料