扫描报告
20 /100
amber-hunter
Universal AI memory backend for Huper琥珀 — local E2E encrypted memory capture and recall with optional cloud sync
A legitimate, well-documented local AI memory backend with strong E2E encryption. Minor documented fallbacks for headless Linux do not constitute hidden malicious behavior.
可以安装
Consider pinning dependency versions in requirements.txt. For headless Linux, warn users about the config.json plaintext fallback for master_password. Otherwise safe to use.
安全发现 5 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Unpinned Python dependencies | requirements.txt:1 |
| 低危 | Linux headless stores master_password in plaintext | core/keychain.py:164 |
| 低危 | master_password also written to config.json as fallback on all platforms | amber_hunter.py:2063 |
| 提示 | Reads API keys from OpenClaw config | core/llm.py:524 |
| 提示 | Session file access for proactive capture | core/session.py:60 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | READ | ✓ 一致 | SKILL.md allowed-tools maps Read→filesystem:READ; code reads ~/.amber-hunter/, ~… |
| 命令执行 | WRITE | WRITE | ✓ 一致 | install.sh/freeze.sh are shell scripts; LLM providers use subprocess.run with cu… |
| 网络访问 | READ | READ | ✓ 一致 | SKILL.md declares huper.org cloud sync; core/llm.py makes API calls to minimaxi.… |
| 数据库 | READ | WRITE | ✓ 一致 | SKILL.md: Memory write via /ingest is a core capability; code writes to SQLite a… |
| 环境变量 | NONE | READ | ✓ 一致 | core/llm.py:361 reads MINIMAX_API_KEY env var; core/keychain.py:115 reads AMBER_… |
8 项发现
中危 外部 URL 外部 URL
https://huper.org CHANGELOG.md:275 中危 外部 URL 外部 URL
https://huper.org/dashboard README.md:33 中危 外部 URL 外部 URL
https://huper.org/api README.md:43 中危 外部 URL 外部 URL
https://huper.org/api/ingest SKILL.md:68 中危 外部 URL 外部 URL
http://127.0.0.1:18998 amber_hunter.py:619 中危 外部 URL 外部 URL
https://api.minimaxi.com/anthropic/v1/messages core/llm.py:130 中危 外部 URL 外部 URL
https://api.groq.com/openai/v1/chat/completions core/llm.py:624 中危 外部 URL 外部 URL
https://api.minimaxi.com/anthropic core/llm.py:692 目录结构
29 文件 · 240.0 KB · 6548 行 Python 14f · 4387L
Markdown 7f · 1057L
JavaScript 3f · 606L
Shell 3f · 325L
TypeScript 1f · 161L
Text 1f · 12L
├─
▾
core
│ ├─
__init__.py
Python
│ ├─
crypto.py
Python
│ ├─
db.py
Python
│ ├─
keychain.py
Python
│ ├─
llm.py
Python
│ ├─
models.py
Python
│ └─
session.py
Python
├─
▾
proactive
│ ├─
▾
hooks
│ │ └─
▾
openclaw
│ │ ├─
handler.js
JavaScript
│ │ ├─
handler.ts
TypeScript
│ │ └─
HOOK.md
Markdown
│ ├─
▾
scripts
│ │ └─
proactive-check.js
JavaScript
│ ├─
proactive-check.js
JavaScript
│ └─
README.md
Markdown
├─
▾
tests
│ ├─
▾
test_api
│ │ ├─
__init__.py
Python
│ │ ├─
test_recall.py
Python
│ │ └─
test_status.py
Python
│ ├─
__init__.py
Python
│ ├─
conftest.py
Python
│ └─
test_crypto.py
Python
├─
amber_hunter.py
Python
├─
CHANGELOG.md
Markdown
├─
CLAUDE.md
Markdown
├─
freeze.sh
Shell
├─
install.sh
Shell
├─
README.md
Markdown
├─
RELEASE_CHECKLIST.md
Markdown
├─
release.sh
Shell
├─
requirements.txt
Text
└─
SKILL.md
Markdown
依赖分析 8 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
fastapi | 0.115.0 | pip | 否 | Lower bound only, no upper cap |
uvicorn | 0.30.0 | pip | 否 | Lower bound only |
pydantic | 2.9.0 | pip | 否 | Lower bound only |
cryptography | 43.0.0 | pip | 否 | Lower bound only |
httpx | 0.27.0 | pip | 否 | Lower bound only |
sentence-transformers | >=2.2.0 | pip | 否 | Version not pinned, ~90MB ML model download at install time |
numpy | >=1.24.0 | pip | 否 | Version not pinned |
pytest | >=8.0.0 | pip | 否 | Test only, not shipped |
安全亮点
✓ E2E AES-256-GCM encryption with PBKDF2-HMAC-SHA256 key derivation (100k iterations)
✓ master_password stored in OS Keychain (macOS security, Linux secret-tool, Windows cmdkey)
✓ Local service restricted to localhost:18998 — no remote exposure
✓ Cloud sync payload is E2E encrypted before upload; huper.org never sees plaintext
✓ No base64/eval obfuscation or dynamic code execution patterns
✓ No reverse shell, C2 infrastructure, or data exfiltration to unexpected hosts
✓ All external network IOCs map to declared API endpoints (huper.org, LLM providers)
✓ Review queue requires user approval before memories become permanent
✓ SKILL.md is comprehensive and accurately describes capabilities
✓ Comprehensive CORS restrictions to declared origins only