扫描报告
15 /100
scnet-chat
通过自然语言交互管理 SCNet Chat 超算平台,支持区域切换、用户信息查询、账户余额查询、作业管理和文件管理
SCNet Chat 超算平台管理工具,代码结构清晰,无恶意行为。subprocess 使用安全(无 shell=True),凭证仅存储在本地配置文件和缓存中,外部网络请求仅限于 SCNet 官方域名,存在轻微的文档-行为差异(filesystem:WRITE 未声明)。
可以安装
建议补充 SKILL.md 中关于缓存文件写入能力的说明。建议锁定 aiohttp 依赖版本以避免依赖漏洞风险。
安全发现 4 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 低危 | 文档未声明缓存写入能力 | scripts/cache.py:634 |
| 低危 | aiohttp 依赖无版本上限 | SKILL.md:31 |
| 提示 | subprocess 调用模式合规 | scnet.py:661 |
| 提示 | 凭证存储于用户本地配置文件 | scripts/config.py:17 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | WRITE | ✓ 一致 | scripts/cache.py:634 — CacheManager.save() 写缓存到 ~/.scnet-chat-cache-*.json; scri… |
| 网络访问 | READ | READ | ✓ 一致 | 所有请求发往官方域名 api.scnet.cn / www.scnet.cn / ksefile.hpccube.com,无外部泄露 |
| 命令执行 | NONE | NONE | — | scnet.py:661 — subprocess.run() 使用列表传参,无 shell=True,无命令注入风险 |
| 环境变量 | NONE | NONE | — | grep 未发现 os.environ 遍历或凭证收割 |
| 技能调用 | NONE | NONE | — | 未发现动态 skill 加载或远程执行 |
| 剪贴板 | NONE | NONE | — | 未使用剪贴板 API |
| 浏览器 | NONE | NONE | — | 未使用浏览器自动化 |
| 数据库 | NONE | NONE | — | 无数据库访问 |
16 项发现
中危 外部 URL 外部 URL
https://api.scnet.cn SECURITY.md:57 中危 外部 URL 外部 URL
https://www.scnet.cn SECURITY.md:58 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/ SECURITY.md:144 中危 外部 URL 外部 URL
https://tools.ietf.org/html/rfc7519 SECURITY.md:145 中危 外部 URL 外部 URL
https://www.scnet.cn/ui/console/index.html#/personal/auth-manage SKILL.md:84 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/jobmanager/job.html SKILL.md:238 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/safecertification/get-user-tokens-aksk.html scripts/cache.py:295 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/safecertification/get-center-info.html scripts/cache.py:335 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/jobmanager/list-cluster.html scripts/cache.py:350 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/jobmanager/query-user-queue.html scripts/cache.py:365 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/userresource/get-common-user.html scripts/cache.py:380 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/jobmanager/query-user-quota.html scripts/cache.py:395 中危 外部 URL 外部 URL
https://www.scnet.cn/ac/openapi/doc/2.0/api/jobmanager/query-used-time.html scripts/cache.py:411 中危 外部 URL 外部 URL
https://ksefile.hpccube.com:65241/efile scripts/cache.py:657 中危 外部 URL 外部 URL
https://ksefile.hpccube.com:65241 scripts/cache.py:657 中危 外部 URL 外部 URL
https://ksefile.hpccube.com:65241/ scripts/cache.py:658 目录结构
11 文件 · 266.3 KB · 7099 行 Python 8f · 6400L
Markdown 2f · 677L
Env 1f · 22L
├─
▾
scripts
│ ├─
cache.py
Python
│ ├─
compat.py
Python
│ ├─
config.example.env
Env
│ ├─
config.py
Python
│ ├─
file.py
Python
│ ├─
job.py
Python
│ ├─
user.py
Python
│ └─
utils.py
Python
├─
scnet.py
Python
├─
SECURITY.md
Markdown
└─
SKILL.md
Markdown
依赖分析 1 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
aiohttp | >=3.7.0 | pip | 否 | 无版本上限约束,建议锁定版本范围 |
安全亮点
✓ 所有网络请求发往 SCNet 官方域名(api.scnet.cn / www.scnet.cn / ksefile.hpccube.com),无第三方域名或数据外泄
✓ subprocess.run 使用列表参数,无 shell=True,无命令注入风险
✓ HMAC-SHA256 签名用于 AK/SK 认证,凭证不直接暴露在请求路径中
✓ 无 base64|bash 管道、裸 IP 网络请求、eval(atob(...)) 等高危模式
✓ 无遍历 os.environ 收割敏感凭证行为
✓ base64 仅用于 JWT token 解码(提取 computeUser),用途合法
✓ 使用 ssl.create_default_context() 进行 TLS 连接
✓ 代码结构良好,模块化清晰,易于审计