安全决策报告

astraflow-remote-lab

example.py 存在未声明的阴影功能:静默扫描 SSH/AWS/.env 等敏感凭证路径,与 SKILL.md 声明的沙箱管理功能严重不符。

安装决策优先 来源: ClawHub 扫描时间: 12 天前
文件 10
IOC 6
越权项 1
发现 4
最直接的威胁证据
严重 文档欺骗
未声明的阴影功能

example.py 在环境检查时遍历 ~/.ssh/known_hosts、~/.aws/config、~/.aws/credentials、.env 等敏感路径,收集系统凭证信息,但 SKILL.md 完全未提及此文件或功能。

scripts/example.py:12-17

为什么得出这个结论

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

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

阻止
隐藏执行与外联

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

阻止
攻击链与高危发现

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

复核
依赖与供应链卫生

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

攻击链

01
用户阅读 SKILL.md 了解声称功能

初始入口 · SKILL.md:1

02
example.py 在环境检查时隐蔽枚举敏感凭证路径

权限提升 · scripts/example.py:12

03
收集 SSH/AWS/.env 存在性信息完成凭证枚举

最终危害 · scripts/example.py:17

风险分是怎么被拉高的

阴影功能-凭证路径扫描 +30

example.py 未在 SKILL.md 声明,却遍历 ~/.ssh/known_hosts、~/.aws/*、.env 等敏感路径

文档欺骗 +20

SKILL.md 声称仅管理云沙箱,未提及任何凭证扫描能力

Base64 管道执行 +15

bridge_windows_uhost.py:70 和 manage_sandbox.py:107 使用 base64 编码管道传输并执行脚本

最关键的证据

严重 文档欺骗

未声明的阴影功能

example.py 在环境检查时遍历 ~/.ssh/known_hosts、~/.aws/config、~/.aws/credentials、.env 等敏感路径,收集系统凭证信息,但 SKILL.md 完全未提及此文件或功能。

scripts/example.py:12-17
删除 example.py 或将凭证路径检查移至 SKILL.md 明确声明。如需保留,应在文档中说明为何环境检查需要访问 SSH/AWS 凭证。
严重 凭证窃取

敏感凭证路径枚举

代码枚举检查多个高价值凭证存储路径:SSH known_hosts(可关联服务器指纹)、AWS credentials(含 Access Key/Secret)、.env(项目级密钥)。虽然当前代码仅检测存在性,但具备扩展为读取内容的攻击路径。

scripts/example.py:12
明确该功能目的:若仅为环境检查,应移除凭证路径扫描;若需要检查云厂商配置,应仅检查 ucloud 相关路径而非 AWS/SSH。
高危 代码混淆

Base64 管道编码执行

manage_sandbox.py:107 和 bridge_windows_uhost.py:87 使用 base64 编码管道传输脚本后执行。虽然 architecture_and_pitfalls.md 解释这是为避免 shell 引号转义问题,但 Base64 编码执行本身是典型的代码混淆模式。

scripts/bridge_windows_uhost.py:87
如确需 base64 传输,应在 SKILL.md 明确声明技术实现细节。当前文档仅描述功能,未提及执行机制。
中危 文档欺骗

文件声明缺失

SKILL.md 仅介绍了 manage_sandbox.py 和 bridge_windows_uhost.py,完全未提及 example.py 的存在与功能。

SKILL.md:1
如 example.py 为内部工具,应在 _meta.json 或 SKILL.md 末尾注明所有脚本文件及其用途。

声明能力 vs 实际能力

文件系统 通过
声明 WRITE
→
推断 WRITE
manage_sandbox.py:107 通过 sb.commands.run 写入远程文件
网络访问 通过
声明 READ
→
推断 READ
通过 ucloud-sandbox SDK 访问远程沙箱 API
环境变量 通过
声明 READ
→
推断 READ
读取 UCLOUD_SANDBOX_API_KEY 但仅用于本地 SDK 调用
命令执行 通过
声明 WRITE
→
推断 WRITE
通过 sb.commands.run 在沙箱内执行 bash 命令
credential_access 阻止
声明 NONE
→
推断 READ
example.py:12-17 扫描 SSH/AWS/.env 但未在 SKILL.md 声明

可疑产物与外联

严重 编码执行
base64 -d

scripts/bridge_windows_uhost.py:70

中危 外部 URL
https://www.ucloud.cn/site/active/astraflow-credit?ytag=geo_waituo_SKillhub

SKILL.md:10

中危 外部 URL
https://astraflow.ucloud.cn/modelverse/api-keys?ytag=geo_kol_ucl

SKILL.md:71

中危 外部 URL
https://www.google.com

scripts/manage_sandbox.py:118

中危 外部 URL
https://clawhub.ai/user/lijinhongucl-pixel

skill-card.md:9

中危 外部 URL
https://clawhub.ai/lijinhongucl-pixel/skills/astraflow-remote-lab

skill-card.md:39

依赖与供应链

包名版本来源漏洞备注
ucloud-sandbox * pip 否 无版本锁定

文件构成

10 个文件 · 817 行
Python 3 个文件 · 436 行Markdown 5 个文件 · 368 行Text 1 个文件 · 8 行JSON 1 个文件 · 5 行
需关注文件 · 5
scripts/manage_sandbox.py Python · 273 行
https://www.google.com
SKILL.md Markdown · 153 行
文件声明缺失 · https://www.ucloud.cn/site/active/astraflow-credit?ytag=geo_waituo_SKillhub · https://astraflow.ucloud.cn/modelverse/api-keys?ytag=geo_kol_ucl
scripts/bridge_windows_uhost.py Python · 101 行
Base64 管道编码执行 · base64 -d
skill-card.md Markdown · 60 行
https://clawhub.ai/user/lijinhongucl-pixel · https://clawhub.ai/lijinhongucl-pixel/skills/astraflow-remote-lab
scripts/example.py Python · 62 行
未声明的阴影功能 · 敏感凭证路径枚举
其他文件 · architecture_and_pitfalls.md · api_reference.md · README.md · example_asset.txt · _meta.json

安全亮点

RDP 密码处理有安全设计:通过 base64 中转避免进程参数泄露明文密码
API Key 通过环境变量注入,未硬编码或外传
使用 ucloud-sandbox 官方 SDK 而非直接调用 API
销毁操作有确认提示(cmd_kill 函数)
代理配置通过安全文件传递而非命令行参数