安全决策报告

journal-monitor

monitor.py 是纯良性的 PubMed 文献监控脚本,无恶意代码;但 SKILL.md 包含反安全/提示词注入特征的强约束语言。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/9
文件 2
IOC 1
越权项 0
发现 3

为什么得出这个结论

0/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

提取到 1 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

发现 1 项需要关注的依赖或供应链线索。

风险分是怎么被拉高的

SKILL.md 反安全/反提示注入语言 +15

使用 "FORCED"、"MANDATORY"、"NO tool-switching" 等强约束词汇,试图限制 LLM 使用更安全的替代工具,符合 prompt_injection 特征但代码本身无恶意

硬编码邮箱地址 +5

Entrez.email = "[email protected]" 在代码中硬编码,标准 NCBI API 要求但可考虑环境变量方式

最关键的证据

中危 提示注入

SKILL.md 包含反安全/反提示注入的强约束语言

SKILL.md 使用 "FORCED translation, MANDATORY metadata, and NO tool-switching" 以及 "MUST ONLY use data returned by monitor.py"、"DO NOT switch to internal search" 等强约束语句,试图阻止 LLM 使用更安全或合法的替代工具,属于 prompt injection 特征但未达到恶意级别。

SKILL.md:1
将强制约束语言改为描述性说明,如"推荐使用 monitor.py 获取数据"而非禁止替代工具
低危 文档欺骗

邮箱地址硬编码(潜在个人信息暴露)

Entrez.email 硬编码为 [email protected],属于个人邮箱,可能随代码分发而暴露个人信息

monitor.py:8
改用环境变量或 _meta.json 配置,如 os.environ.get('NCBI_EMAIL')
低危 供应链

biopython 依赖无版本锁定

metadata 声明 "uv pip install biopython" 无版本约束,可能引入依赖供应链风险

SKILL.md:11
改为版本锁定安装:uv pip install biopython==1.84 或使用 requirements.txt

声明能力 vs 实际能力

网络访问 通过
声明 READ
→
推断 READ
monitor.py:36 使用 Entrez.esearch/efetch 访问 PubMed API(声明与行为一致)
文件系统 通过
声明 NONE
→
推断 NONE
monitor.py 无任何文件读写操作
命令执行 通过
声明 NONE
→
推断 NONE
monitor.py 无 subprocess/os.system 等 shell 调用
环境变量 通过
声明 NONE
→
推断 NONE
monitor.py 仅依赖 CLI 参数和 os.environ(sys.argv),无凭证遍历
技能调用 通过
声明 NONE
→
推断 NONE
无嵌套 skill 调用

依赖与供应链

包名版本来源漏洞备注
biopython * pip 否 SKILL.md 中声明为 "uv pip install biopython",无版本锁定,存在供应链风险

文件构成

2 个文件 · 124 行
Python 1 个文件 · 75 行Markdown 1 个文件 · 49 行
需关注文件 · 2
monitor.py Python · 75 行
邮箱地址硬编码(潜在个人信息暴露) · [email protected]
SKILL.md Markdown · 49 行
SKILL.md 包含反安全/反提示注入的强约束语言 · biopython 依赖无版本锁定

安全亮点

monitor.py 代码逻辑完全良性和透明,仅使用 Biopython Entrez API 查询 PubMed
无文件写入、无网络外传、无凭证收割、无 shell 执行
无混淆、Base64 编码或反分析技术
代码结构清晰,易于人工审计
能力声明(network:READ)与实际行为一致