评估报告

案例 1:Agent 只读范围

1.评估概要

评估结论

发现 2 项工具目标范围配置问题。

http_probe 被声明为 allowed,目标范围为 *;当前规则因此识别出该工具的目标范围没有被具体限定,同时该能力也被授予了 research-agent。

发现了哪些关注点

  1. 工具 http_probe 允许任意目标

    建议将 http_probe 的目标范围限制为业务实际需要访问的最小范围,并明确其授权边界。

  2. Agent research-agent 被授予任意目标工具 http_probe

    建议将 Agent research-agent 可使用的 http_probe 能力限制在业务实际需要的最小目标范围,并确保 Agent 的工具授权与该范围一致。

本次重点关注

工具 http_probe 允许任意目标

建议将 http_probe 的目标范围限制为业务实际需要访问的最小范围,并明确其授权边界。

本次先从这一项发现讲起(这只是讲解的先后顺序,不代表对风险做任何评价或排序)。

下面先解释工具本身的目标范围,再解释 Agent 获得的能力范围,帮助你理解这两项发现之间的关系。

这次看了什么

本次评估实际读取了 1 份材料。

覆盖情况

本次评估共涉及 8 个主题:已评估 1 个,未提供 3 个,当前规则未覆盖 4 个。

2.发现了什么

本次共有 2 项配置关注点,均来自 http_probe 的 target_scope = ["*"]:一项检查工具本身的目标范围,另一项检查该能力是否被授予 Agent。

这不是两个独立的配置事实,而是同一项 target_scope=["*"] 配置从工具边界和 Agent 能力边界两个层面得到的检查结果。

关注程度说明

  • 深红色:表示重点关注,建议优先处理或进一步确认。
  • 橙色:表示需要关注,建议进一步确认。
  • 绿色:表示可暂时忽略或后续再查看。

工具 http_probe 允许任意目标

发现:http_probe 的目标范围配置为 ["*"],未限制为具体目标。

材料事实:http_probe 的 target_scope 被声明为 ["*"]。

为什么值得关注:该工具未在配置层限定允许访问的具体目标,声明的目标范围较宽。

建议:根据实际业务需求,将目标范围限制为必要的最小范围,并明确该工具允许访问的目标边界。

Agent research-agent 被授予任意目标工具 http_probe

发现:research-agent 被授予了目标范围未限定的 http_probe。

材料事实:材料中 agent.tools 声明 research-agent 可以使用 http_probe,而 http_probe 的 target_scope 为 ["*"]。

为什么值得关注:该工具的目标边界较宽,同时被授予 research-agent,因此该 Agent 声明可用的能力范围也随之变宽。

建议:将 research-agent 可使用的 http_probe 能力限制在必要的最小目标范围,并确保 Agent 的工具授权与范围一致。

3.为什么值得关注

相关案例

下面的案例用于帮助你理解当前发现所涉及的安全边界。它们是辅助理解材料,不属于本次评估结果。

CAS-001 — 工具允许访问任意目标

真实性:可复现示例主题:tool来源:人工整理

HTTP 探测工具的目标范围写成 *,等于没有说清它到底只能访问哪里。

场景:一个 AI Agent 可以调用 HTTP 探测工具。工具配置里的目标范围写成了 *,没有明确规定允许访问哪些主机、域名或资源。

为什么值得关注:一个工具本身可能只是「发一个请求」,但如果目标范围是任意的,它实际能接触到的外部对象可能比设计时预想的多。这里真正值得关注的是:这个工具的能力边界到底有没有被限制住。

可以参考的判断:工具不仅要说明「能做什么」,还要明确限制「可以对谁做」。

来源说明:安全评估引擎 内部可复现技术示例(无外部公开来源)

CAS-002 — 邮件或通知工具可以发给任意收件人

真实性:模拟/教学案例主题:tool来源:人工整理

模拟/教学案例:这是为教学准备的示例,不是真实发生的安全事件。

模拟 / 教学案例:通知工具没有限制收件人,可能把内容发到设计范围之外。

场景:Agent 可以调用邮件或通知工具。工具没有限制允许发送的目标(收件人)。

为什么值得关注:即使 Agent 本身没有恶意行为,一个没有收件人边界的通知工具,也可能把数据发送给设计范围之外的对象。

可以参考的判断:外发能力需要同时限制三件事:能不能发、发什么、发给谁。

来源说明:安全评估引擎 模拟 / 教学示例(非真实安全事件)

CAS-003 — 声明了用途,却没有限制 host

真实性:模拟/教学案例主题:tool来源:人工整理

模拟/教学案例:这是为教学准备的示例,不是真实发生的安全事件。

模拟 / 教学案例:工具说自己用于 HTTP 探测,但没有限制它探测哪些主机。

场景:一个工具声明:「允许进行 HTTP 探测」,但没有明确限制 host。

为什么值得关注:「工具用途声明」不等于「实际访问边界」。声明一个工具用于安全测试,并不能自动证明它只能访问安全测试目标。

可以参考的判断:用途声明不能代替访问边界;两者要分别声明、分别检查。

来源说明:安全评估引擎 模拟 / 教学示例(非真实安全事件)

4.本次评估使用的材料

以下为本次评估实际收到的原始材料。安全评估引擎只读取文本内容,不执行材料中的任何代码,也不连接、不扫描其中提到的任何目标。

安全评估引擎实际读取了什么

这份材料告诉安全评估引擎:

以上只是安全评估引擎在材料中识别到的对象;下面是这份材料的原文,可自行核对。

材料清单

DOC路径类型
DOC-001config/agent.jsonjson

原始材料

config/agent.json json

{
  "agent": {
    "name": "research-agent",
    "model": "gpt-oss-120b",
    "environment": "staging",
    "tools": [
      {
        "name": "search_documents",
        "permission": "allowed",
        "target_scope": ["internal-kb"],
        "side_effect": "READ_ONLY"
      },
      {
        "name": "http_probe",
        "permission": "allowed",
        "target_scope": ["*"],
        "side_effect": "READ_ONLY"
      }
    ]
  }
}

5.评估范围与覆盖情况

已评估

工具配置:已提供相关材料,并完成当前规则支持的检查。

工具配置 evaluated

未提供

Prompt:本次材料未提供,因此没有 Prompt 相关评估结果。

Prompt not_provided

MCP:本次材料未提供,因此没有 MCP 相关评估结果。

MCP not_provided

RAG:本次材料未提供,因此没有 RAG 相关评估结果。

RAG not_provided

当前规则未覆盖

Agent 整体配置:当前规则未覆盖该主题,因此本次没有对应评估结果。

Agent 整体配置 unsupported

模型:当前规则未覆盖该主题,因此本次没有对应评估结果。

模型 unsupported

数据来源:当前规则未覆盖该主题,因此本次没有对应评估结果。

数据来源 unsupported

外部系统:当前规则未覆盖该主题,因此本次没有对应评估结果。

外部系统 unsupported

以上结论基于本次提交的材料与当前规则。本次发现属于配置评估结果,不代表已确认存在漏洞,也不代表发生了实际安全事件。未提供材料、当前规则未覆盖的主题,本次没有对应评估结果。

6.详细证据(Evidence)

以下是材料中实际存在、可定位、可复核的事实片段。证据只承载事实,不承载任何安全结论。

关注点证据

EVID-004 config_declaration

文件: config/agent.json · 定位: agent.tools[1]#L14 · 文档: DOC-001 · 提取方式: deterministic

对应关注点:PF-001、PF-002

"name": "http_probe",
        "permission": "allowed",
        "target_scope": ["*"],
        "side_effect": "READ_ONLY"
      }

sha256: 6af0c5d85f2346cfae736318acf09b896577c8729f8c4ea03beb74365765fa7d

其他材料事实证据

EVID-001 config_declaration

文件: config/agent.json · 定位: agent#L3 · 文档: DOC-001 · 提取方式: deterministic

"name": "research-agent",
    "model": "gpt-oss-120b",
    "environment": "staging",
    "tools": [
      {
        "name": "search_documents",
        "permission": "allowed",
        "target_scope": ["internal-kb"],

sha256: 6af0c5d85f2346cfae736318acf09b896577c8729f8c4ea03beb74365765fa7d

EVID-002 config_declaration

文件: config/agent.json · 定位: agent.model#L4 · 文档: DOC-001 · 提取方式: deterministic

"model": "gpt-oss-120b",
    "environment": "staging",
    "tools": [
      {
        "name": "search_documents",
        "permission": "allowed",
        "target_scope": ["internal-kb"],
        "side_effect": "READ_ONLY"

sha256: 6af0c5d85f2346cfae736318acf09b896577c8729f8c4ea03beb74365765fa7d

EVID-003 config_declaration

文件: config/agent.json · 定位: agent.tools[0]#L8 · 文档: DOC-001 · 提取方式: deterministic

"name": "search_documents",
        "permission": "allowed",
        "target_scope": ["internal-kb"],
        "side_effect": "READ_ONLY"
      },

sha256: 6af0c5d85f2346cfae736318acf09b896577c8729f8c4ea03beb74365765fa7d

7.技术复核信息

以下信息用于复核本次评估过程和原始产物,不属于面向用户的风险结论。

评估基本信息

项目值
Assessment IDASMT-001
评估方法deterministic
规则集版本0.2.0
created_atn/a
pack_root/home/ae1/ae1/app/demo/fixtures/tool_scope_boundary
pack_idPACK-001

潜在关注点(Potential Finding)技术明细(供复核)

内部评估标记:POTENTIAL。该标记表示规则命中后的内部评估状态,不等同于已经确认存在漏洞。

关注点规则置信度内部评估建议(非判定)证据
PF-001R-TARGET-WILDCARDdeclaredmediumEVID-004
PF-002R-AGENT-WILDCARD-CAPdeclaredmediumEVID-004