Why this conclusion was reached
0/4 dimensions flagged Pass Declared vs actual capability Declared resources and inferred behavior are broadly aligned.
Review Hidden execution and egress 6 lower-risk artifacts were extracted and still need context.
Pass Attack chain and severe findings There is no explicit malicious chain in the report.
Review Dependencies and supply chain hygiene Dependency information is incomplete, so supply-chain confidence stays limited.
What drove the risk score up
文档-行为偏差 +15
SKILL.md 未明确声明自动更新机制,代码在每次 MCP 调用前静默检查并可能更新包文件
隐蔽权限使用 +5
未声明 filesystem:WRITE(用于自动更新写入包目录)和 network:WRITE(用于更新下载)
Most important evidence
Low Doc Mismatch
自动更新机制未在 SKILL.md 中声明
mcp_client.py 中的 maybe_auto_update() 在每次 MCP 调用前静默执行(最多每24小时一次),会检查并自动下载安装新版本包文件。SKILL.md 仅在底部简要提及,无显式声明权限需求。
scripts/mcp_client.py:1043 在 SKILL.md 权限声明部分明确说明:需要 filesystem:WRITE 用于自动更新写入,network:WRITE 用于下载更新包
Low Supply Chain
自动更新源固定但依赖外部服务可用性
自动更新机制从 cdn.beatra.ai 下载经过 SHA256 验证的 ZIP 包,更新流程包含完整的校验、回滚和恢复机制。风险在于依赖外部服务的可用性和安全性。
scripts/mcp_client.py:31 保持默认启用自动更新以获取安全修复;若需要完全离线隔离环境可使用 'python3 scripts/mcp_client.py update --auto off'
Low Sensitive Access
访问环境变量用于平台检测遥测
代码读取 AI_AGENT、CLAUDECODE、CODEX_* 等环境变量用于识别运行平台并上报至服务器,用于遥测和会话管理。
scripts/authorize.py:420 确认此遥测行为符合组织隐私政策;如需可禁用相关功能
Declared capability vs actual capability
Filesystem Pass
Declared NONE
→ Inferred WRITE
scripts/mcp_client.py:update_package 函数在包目录中写入更新文件 Network Pass
Declared NONE
→ Inferred WRITE
所有脚本均与 api.beatra.ai/mcp.beatra.ai/cdn.beatra.ai 建立 HTTPS 连接 Environment Pass
Declared NONE
→ Inferred READ
detect_host_platform() 和 _detect_host_platform() 读取 AI_AGENT、CLAUDECODE 等环境变量用于遥测
Suspicious artifacts and egress
Medium External URL
https://beatra.ai/skills/game-script-voice-pack manifest.json:5
Medium External URL
https://beatra.ai/textures/icons/game-script-voice-pack-0.1.1.png manifest.json:6
Medium External URL
https://mcp.beatra.ai/mcp manifest.json:66
Medium External URL
https://api.beatra.ai scripts/authorize.py:29
Medium External URL
https://beatra.ai/skills/game-script-voice-pack/channels/clawhub/install.json scripts/mcp_client.py:31
Medium External URL
https://cdn.beatra.ai/agent-packages/game-script-voice-pack/channels/clawhub/v scripts/mcp_client.py:32
Dependencies and supply chain
There are no structured dependency warnings.
File composition
13 files · 4116 lines Python 3 files · 3463 linesMarkdown 9 files · 582 linesJSON 1 files · 71 lines
Files of concern · 3
scripts/mcp_client.py Python · 1688 lines
自动更新机制未在 SKILL.md 中声明 · 自动更新源固定但依赖外部服务可用性 · https://beatra.ai/skills/game-script-voice-pack/channels/clawhub/install.json · https://cdn.beatra.ai/agent-packages/game-script-voice-pack/channels/clawhub/v
scripts/authorize.py Python · 1467 lines
访问环境变量用于平台检测遥测 · https://api.beatra.ai
manifest.json JSON · 71 lines
https://beatra.ai/skills/game-script-voice-pack · https://beatra.ai/textures/icons/game-script-voice-pack-0.1.1.png · https://mcp.beatra.ai/mcp
Other files · uninstall.py · installation-and-auth.md · SKILL.md · billing-errors-and-recovery.md · uninstall-and-disconnect.md · tasks-and-results.md +3
13 files · 164.6 KB · 4116 lines
Python 3f · 3463LMarkdown 9f · 582LJSON 1f · 71L
├─
▾
📁
references
│ ├─
📝
automatic-updates-and-safety.md
Markdown
19L · 1.9 KB
│ ├─
📝
billing-errors-and-recovery.md
Markdown
71L · 3.7 KB
│ ├─
📝
installation-and-auth.md
Markdown
160L · 7.8 KB
│ ├─
📝
installation-registration.md
Markdown
20L · 1.0 KB
│ ├─
📝
mcp-connection.md
Markdown
26L · 1.2 KB
│ ├─
📝
tasks-and-results.md
Markdown
40L · 2.2 KB
│ ├─
📝
uninstall-and-disconnect.md
Markdown
56L · 2.7 KB
│ └─
📝
workflow.md
Markdown
38L · 1.5 KB
├─
▾
📁
scripts
│ ├─
🐍
authorize.py
Python
1467L · 57.6 KB
│ ├─
🐍
mcp_client.py
Python
1688L · 63.3 KB
│ └─
🐍
uninstall.py
Python
308L · 10.8 KB
├─
📝
SKILL.md
Markdown
152L · 7.0 KB
└─
📋
manifest.json
JSON
71L · 3.9 KB
Security positives
代码质量高,包含完整的安全检查和边界验证
所有网络请求使用 HTTPS,拒绝 HTTP 重定向
凭证文件权限设置为 0o600(仅所有者可读写),状态目录为 0o700
自动更新包含 SHA256 校验、manifest 验证、回滚和恢复机制
OAuth 授权流程完整,实现设备码授权和凭证管理
卸载脚本遵循"最后技能"原则,不会误删其他 Beatra 技能的共享凭证
无恶意行为证据:无 base64 执行、无 eval 动态代码、无凭证外泄、无反向 shell