安全决策报告

odds-movement-monitor

硬编码API密钥暴露敏感凭证,且存在SKILL.md未声明的支付功能(payment.py中的shadow billing),但整体代码功能与体育赔率监控描述一致,无RCE或数据外泄证据。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/11
文件 10
IOC 4
越权项 1
发现 3
最直接的威胁证据
高危 凭证窃取
硬编码API密钥暴露

payment.py第12行包含明文API密钥'BILLING_API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"'。这是SkillPay的计费密钥,属于敏感凭证,不应硬编码在代码中。

payment.py:12

为什么得出这个结论

3/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

阻止
隐藏执行与外联

提取到 1 个高危 IOC 或外联信号。

阻止
攻击链与高危发现

报告包含 0 步攻击链,另有 1 项高危或严重发现。

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

硬编码API密钥暴露 +20

payment.py:12 硬编码BILLING_API_KEY='sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2'

未声明的支付功能(阴影功能) +15

SKILL.md未提及payment.py和SkillPay计费,但代码中存在完整的billing集成

文档-行为差异 +10

SKILL.md声明的能力与实际代码功能基本一致,但缺少支付模块的声明

最关键的证据

高危 凭证窃取

硬编码API密钥暴露

payment.py第12行包含明文API密钥'BILLING_API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"'。这是SkillPay的计费密钥,属于敏感凭证,不应硬编码在代码中。

payment.py:12
使用环境变量 os.environ.get('SKILLPAY_API_KEY') 替代硬编码;密钥应通过安全渠道(如密钥管理服务)注入。
中危 文档欺骗

未声明的支付功能(阴影功能)

SKILL.md完全未提及payment.py和SkillPay计费集成,但代码中存在完整的计费验证、扣费、充值链接生成功能。这是典型的阴影功能,用户无法从文档了解实际行为。

SKILL.md:1
在SKILL.md中明确声明:1) 使用SkillPay进行计费;2) 每次调用费用;3) 需要的API Key环境变量。
低危 权限提升

本地数据库写入权限未声明

SKILL.md未声明skill会创建和写入本地SQLite数据库(odds_data.db),属于超出声明范围的文件系统操作。

monitor.py:36
在文档中声明数据持久化行为,说明存储位置和数据保留策略。

声明能力 vs 实际能力

文件系统 阻止
声明 READ
推断 WRITE
monitor.py:36-50 创建SQLite数据库odds_data.db
网络访问 通过
声明 READ
推断 READ
monitor.py:130-150 使用aiohttp请求the-odds-api.com
命令执行 通过
声明 NONE
推断 NONE
无subprocess调用

可疑产物与外联

高危 API 密钥
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"

payment.py:12

中危 外部 URL
https://api.the-odds-api.com/v4

config.json:15

中危 外部 URL
https://the-odds-api.com/

monitor.py:527

中危 外部 URL
https://skillpay.me

payment.py:11

依赖与供应链

包名版本来源漏洞备注
aiohttp >=3.8.0 pip 有版本下限,无上限锁定
requests >=2.28.0 pip 有版本下限,无上限锁定

文件构成

10 个文件 · 1699 行
Python 5 个文件 · 1432 行Markdown 2 个文件 · 194 行JSON 2 个文件 · 71 行Text 1 个文件 · 2 行
需关注文件 · 4
config.json JSON · 49 行
https://api.the-odds-api.com/v4
monitor.py Python · 597 行
本地数据库写入权限未声明 · https://the-odds-api.com/
payment.py Python · 142 行
硬编码API密钥暴露 · API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" · https://skillpay.me
SKILL.md Markdown · 97 行
未声明的支付功能(阴影功能)
其他文件 · change_detector.py · demo.py · README.md · __init__.py · _meta.json · requirements.txt

安全亮点

代码逻辑清晰,主要功能(赔率监控、变化检测)与SKILL.md描述基本一致
无反分析或混淆代码
无网络到外部恶意IP的直连(仅连接the-odds-api.com和skillpay.me)
无凭证外泄代码(POST请求仅用于正常计费验证)
无RCE、反向shell或数据窃取行为