扫描报告
30 /100
koan-team
Organize AI agents into Koan teams via channelId-based joining and dispatch. Requires an existing Koan identity and runtime signing capability (Ed25519 auth headers) with explicit human approval before create/join/dispatch actions.
合法 AI 协作工具,多 Agent 通过 channelId 编队、签名鉴权通信;核心功能与文档一致,但 Linux/macOS 下私钥明文存储为已知风险,cryptography 依赖无版本锁定存在供应链风险。
可以安装
生产部署前:1) Linux 系统切换至 OS keychain 或加密保管箱存储私钥;2) 在 requirements.txt 中锁定 cryptography 版本;3) 确认 koanmesh.com 为可信服务地址。
安全发现 4 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Linux/macOS 平台私钥明文存储 凭证窃取 | node/koan-sdk.mjs:185-187:185 |
| 中危 | cryptography 依赖无版本锁定 供应链 | python/requirements.txt:1 |
| 低危 | macOS Keychain 凭证以明文存入 keychain 凭证窃取 | node/koan-sdk.mjs:56-58:56 |
| 低危 | 预扫描标记的 Base64 用法为正常加密操作 代码混淆 | node/koan-sdk.mjs:107,132,140,141,202,203,204,205:107 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | WRITE | WRITE | ✓ 一致 | SKILL.md:59-60 文档明确说明将身份持久化至 ~/.koan/identity.json 和 chats/*.jsonl |
| 网络访问 | READ | READ | ✓ 一致 | SKILL.md:79-110 文档列出全部 Koan API 端点,代码实现与之一致 |
| 命令执行 | WRITE | WRITE | ✓ 一致 | node/koan-sdk.mjs:26-28,35-43 调用 spawnSync 执行 security/PowerShell 进行 keychain/DP… |
| 环境变量 | NONE | READ | ✓ 一致 | 代码仅读取 process.env/os.environ 用于平台检测和构建 PowerShell 命令,无凭证遍历 |
| 剪贴板 | NONE | NONE | — | 无剪贴板操作 |
| 浏览器 | NONE | NONE | — | 无浏览器自动化 |
| 数据库 | NONE | NONE | — | 无数据库操作 |
8 严重 14 项发现
严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(recipientPubKeyB64, 'base64' node/koan-sdk.mjs:107 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(ephemeralPubB64, 'base64' node/koan-sdk.mjs:132 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(nonceB64, 'base64' node/koan-sdk.mjs:140 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(ciphertextB64, 'base64' node/koan-sdk.mjs:141 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(signingPrivateKeyB64, 'base64' node/koan-sdk.mjs:202 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(data.signingPublicKey, 'base64' node/koan-sdk.mjs:203 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(encryptionPrivateKeyB64, 'base64' node/koan-sdk.mjs:204 严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(data.encryptionPublicKey, 'base64' node/koan-sdk.mjs:205 中危 外部 URL 外部 URL
https://koanmesh.com SKILL.md:4 中危 外部 URL 外部 URL
https://clawhub.ai/cg0xC0DE/koan-protocol SKILL.md:15 中危 外部 URL 外部 URL
https://koanmesh.com/skill.json SKILL.md:20 中危 外部 URL 外部 URL
https://koanmesh.com/agents/check-key?signingPublicKey= SKILL.md:89 中危 外部 URL 外部 URL
https://koanmesh.com/channels SKILL.md:111 中危 外部 URL 外部 URL
https://koanmesh.com/channels/ SKILL.md:129 目录结构
4 文件 · 46.6 KB · 1224 行 Python 1f · 530L
JavaScript 1f · 487L
Markdown 1f · 206L
Text 1f · 1L
├─
▾
node
│ └─
koan-sdk.mjs
JavaScript
├─
▾
python
│ ├─
koan_sdk.py
Python
│ └─
requirements.txt
Text
└─
SKILL.md
Markdown
依赖分析 1 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
cryptography | >=42.0.0 | pip | 否 | 无版本上限锁定,存在供应链风险;42.0.0 以前版本有已知 CVE,建议确认生产环境中版本 >= 42.0.0 |
安全亮点
✓ 代码功能与 SKILL.md 声明高度一致,无阴影功能(shadow functionality)
✓ 多 Agent 团队操作均有 human approval gate,符合最小权限原则
✓ E2E 加密实现完整(X25519 ECDH + AES-256-GCM),密钥派生使用 HKDF-SHA256
✓ 使用 Ed25519 签名进行请求鉴权,签名算法符合 Koan Protocol 规范
✓ Node.js SDK 零外部依赖,仅使用 Node.js 内置模块
✓ 包含身份迁移逻辑(检测到 plaintext 存储时会自动升级至 keychain/DPAPI)
✓ 无任意命令执行、无凭证外传、无反向 shell