安全决策报告
clawhub-security-scan
安全扫描工具存在未声明的系统交互和硬编码凭证示例,意图看似良性但代码质量存在问题
最直接的威胁证据
为什么得出这个结论
2/4 个维度触发 阻止
声明与实际能力
发现 3 项声明之外的能力或越权行为。
阻止
隐藏执行与外联
提取到 1 个高危 IOC 或外联信号。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
未声明的网络请求 +15
代码使用urllib调用skillpay.me API但SKILL.md未声明
未声明的环境变量访问 +10
代码读取SKILLPAY_API_KEY但文档未提及
subprocess模块使用未声明 +5
代码导入subprocess用于模式检测但文档未提及
代码包含硬编码凭证示例 +10
review.py:24 包含示例凭证文本'secretkeyhere123'
最关键的证据
中危
未声明的网络外部通信
代码通过urllib向skillpay.me API发送计费请求,但SKILL.md未声明此外部通信行为
scripts/scan.py:22 在SKILL.md中明确声明:本技能会调用skillpay.me API进行计费
中危
未声明的环境变量访问
代码读取SKILLPAY_API_KEY环境变量用于API认证,但SKILL.md未声明此环境变量依赖
scripts/scan.py:43 在SKILL.md中声明:本技能需要SKILLPAY_API_KEY环境变量
低危
代码包含凭证示例文本
review.py文档字符串中包含'secretkeyhere123'作为反面教材示例,虽非真实密钥但属不良实践
scripts/review.py:24 移除代码中的凭证示例,改用占位符如'<YOUR_API_KEY>'
低危
MEDIUM_RISK_PATTERNS覆盖自身
代码的高危模式列表(eval/exec/subprocess等)会触发自身扫描结果,用户运行扫描时可能看到误报
scripts/scan.py:56 在扫描时自动排除scripts/目录自身,或在文档中说明扫描工具自身会被标记
声明能力 vs 实际能力
文件系统 阻止
声明 NONE
→ 推断 READ
scripts/scan.py:scan_file() 逐行读取目标文件 网络访问 阻止
声明 NONE
→ 推断 READ
scripts/scan.py:skillpay_charge() 调用skillpay.me API 环境变量 阻止
声明 NONE
→ 推断 READ
scripts/scan.py:43 读取SKILLPAY_API_KEY 命令执行 通过
声明 NONE
→ 推断 READ
scripts/scan.py:import subprocess 仅用于检测模式,非实际执行 可疑产物与外联
高危 API 密钥
api_key = "secretkeyhere123" scripts/review.py:24
中危 外部 URL
https://skillpay.me/api/v1 scripts/precheck.py:24
依赖与供应链
没有结构化依赖告警。
文件构成
5 个文件 · 847 行
Python 3 个文件 · 769 行Markdown 1 个文件 · 73 行JSON 1 个文件 · 5 行
需关注文件 · 3
scripts/scan.py 未声明的网络外部通信 · 未声明的环境变量访问 · MEDIUM_RISK_PATTERNS覆盖自身
scripts/precheck.py https://skillpay.me/api/v1
scripts/review.py 代码包含凭证示例文本 · api_key = "secretkeyhere123"
其他文件 · SKILL.md · _meta.json
安全亮点
功能看似良性:提供代码安全扫描服务
使用标准库实现,无第三方依赖风险
无实际恶意行为(无凭证外泄、无远程代码执行)
代码结构清晰,意图是帮助开发者而非攻击
高危模式检测逻辑合理,包含常见CVE模式