Skip to content

checkup 误报自身安全风险 #86

@alu-z

Description

@alu-z

问题描述

执行 agentguard checkup 时,AgentGuard 会把自己(agentguard skill)纳入扫描范围,并报告大量风险项(如 REMOTE_LOADER、AUTO_UPDATE、READ_SSH_KEYS、WEBHOOK_EXFIL、SHELL_EXEC、READ_ENV_SECRETS、SUSPICIOUS_IP 等 87 项发现),导致自身安全评分被严重拉低。

这不符合逻辑:安全工具扫描自己的规则定义文件,把检测特征的元数据当成恶意代码报出来,既不公平也不合理。

具体表现

Overall Health Score: 83/100 (Tier A)

  • code_safety: 85/100 — "agentguard: Found 87 findings: code execution capabilities,
    data exfiltration risks (REMOTE_LOADER, AUTO_UPDATE, READ_SSH_KEYS,
    WEBHOOK_EXFIL, SHELL_EXEC, READ_ENV_SECRETS, SUSPICIOUS_IP)"

87 项风险全部来自 agentguard 的 SKILL.md 文件,**这些"风险"实际上是:

  • 各种检测规则的 pattern 描述(如 0x[a-fA-F0-9]{64} 用于检测私钥)
  • 安全策略的配置字段(如 filesystem-access 路径列表)
  • 合法安全功能的元数据(如 allowed-tools 中列出危险命令本身)
  • 文档字符串中对恶意行为的描述**

问题根因

AgentGuard 的 scan 引擎没有将被扫描的 skill 自身排除在检测规则之外。AgentGuard SKILL.md 中的内容是用于检测恶意行为的规则和描述,不是恶意代码。它应该被作为"白名单信任源"而非扫描目标。

期望行为

  1. checkup 执行时:自动跳过 agentguard 自身 skill 的扫描,因为它的规则文件必然触发大量检测规则匹配,这不是真实风险
  2. scan 子命令:当用户显式执行 agentguard scan 时,应给出明确警告,提示这是自身代码,检测结果仅供参考
  3. 信任注册联动:agentguard skill 应在安装时自动注册为 trusted 级别,因为它本身是安全基础设施,不应被自己的扫描引擎惩罚

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions