安全与隐私 · 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. 改用固定提交或替代来源

    无法解释的远端文件不再恢复自动更新。

参考资料