扫描报告
15 /100
LobsterOps
AI Agent Observability & Debug Console - flight recorder and debug console for autonomous AI systems
LobsterOps 是一个合法的 AI Agent 可观测性工具,具有完整的 PII 过滤和本地存储优先设计。存在权限声明不够精确的轻微瑕疵,但不构成安全威胁。
可以安装
可用。建议在文档中更明确声明 filesystem:WRITE(存储后端)和 network:WRITE(Supabase)权限需求。
安全发现 5 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | 存储后端需要文件写入权限但未声明 | src/storage/JsonFileStorage.js:39 |
| 中危 | Supabase 存储会向外部服务发送数据 | src/storage/SupabaseStorage.js:38 |
| 低危 | 声明了但未使用的依赖 | package.json:29 |
| 提示 | PII 过滤实现完整 | src/core/PIIFilter.js:35 |
| 提示 | 本地存储优先设计合理 | src/storage/StorageFactory.js:65 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | WRITE | ✗ 越权 | src/storage/JsonFileStorage.js:39-43 创建 ./lobsterops-data/ 目录 |
| 网络访问 | NONE | WRITE | ✗ 越权 | src/storage/SupabaseStorage.js:38 使用 @supabase/supabase-js 向外部服务发送数据 |
| 命令执行 | NONE | NONE | — | 无 subprocess/child_process 使用 |
| 环境变量 | READ | READ | ✓ 一致 | src/storage/StorageFactory.js:50 读取 LOBSTER_STORAGE/STORAGE_TYPE 环境变量,SKILL.md 已… |
| 技能调用 | NONE | NONE | — | 无动态 skill 调用 |
15 项发现
中危 外部 URL 外部 URL
https://img.shields.io/npm/v/lobsterops.svg README.md:6 中危 外部 URL 外部 URL
https://www.npmjs.com/package/lobsterops README.md:6 中危 外部 URL 外部 URL
https://img.shields.io/badge/License-MIT-yellow.svg README.md:7 中危 外部 URL 外部 URL
https://opensource.org/licenses/MIT README.md:7 中危 外部 URL 外部 URL
https://img.shields.io/badge/built%20by-an%20AI%20agent-e8263a README.md:8 中危 外部 URL 外部 URL
https://x.com/lobsteractual README.md:8 中危 外部 URL 外部 URL
https://lobsterops.dev README.md:10 中危 外部 URL 外部 URL
https://lobsterops.dev/demo README.md:10 中危 外部 URL 外部 URL
https://replit.com/badge/github/noeldelisle/LobsterOps README.md:43 中危 外部 URL 外部 URL
https://replit.com/new/github/noeldelisle/LobsterOps README.md:43 中危 外部 URL 外部 URL
https://openclaw.ai README.md:242 中危 外部 URL 外部 URL
https://claude.ai/code README.md:370 中危 外部 URL 外部 URL
https://x.com/noeldelisle README.md:370 中危 外部 URL 外部 URL
https://your-project.supabase.co SKILL.md:76 提示 邮箱 邮箱地址
[email protected] tests/LobsterOps.test.js:503 目录结构
21 文件 · 159.8 KB · 5256 行 JavaScript 17f · 4681L
Markdown 3f · 542L
JSON 1f · 33L
├─
▾
src
│ ├─
▾
core
│ │ ├─
AlertManager.js
JavaScript
│ │ ├─
Analytics.js
JavaScript
│ │ ├─
DebugConsole.js
JavaScript
│ │ ├─
Exporter.js
JavaScript
│ │ ├─
LobsterOps.js
JavaScript
│ │ ├─
OpenClawInstrumentation.js
JavaScript
│ │ └─
PIIFilter.js
JavaScript
│ └─
▾
storage
│ ├─
JsonFileStorage.js
JavaScript
│ ├─
MemoryStorage.js
JavaScript
│ ├─
SQLiteStorage.js
JavaScript
│ ├─
StorageAdapter.js
JavaScript
│ ├─
StorageFactory.js
JavaScript
│ └─
SupabaseStorage.js
JavaScript
├─
▾
tests
│ └─
LobsterOps.test.js
JavaScript
├─
CONTRIBUTING.md
Markdown
├─
example.js
JavaScript
├─
index.js
JavaScript
├─
jest.config.js
JavaScript
├─
package.json
JSON
├─
README.md
Markdown
└─
SKILL.md
Markdown
依赖分析 6 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
@supabase/supabase-js | ^2.99.2 | npm | 否 | Supabase 客户端,用于云存储 |
express | ^4.22.1 | npm | 否 | 声明但未在核心代码中使用,README 提及用于 dashboard-server.js |
express-session | ^1.19.0 | npm | 否 | 声明但未在核心代码中使用,README 提及用于 dashboard-server.js |
sqlite3 | ^6.0.1 | npm | 否 | SQLite 驱动,用于 SQLite 存储后端 |
uuid | ^9.0.1 | npm | 否 | 唯一 ID 生成,用于事件 ID |
jest | ^29.7.0 | npm | 否 | 测试框架,仅 devDependencies |
安全亮点
✓ PII 过滤实现完整,支持 6 种敏感数据类型(email、phone、ssn、creditCard、ipAddress、apiKey)
✓ 默认使用本地存储(JsonFileStorage),不会自动外传数据
✓ Supabase 需要显式配置和凭据,不会自动发现或推断
✓ 代码结构清晰,使用适配器模式实现多种存储后端
✓ 包含完整的单元测试(tests/LobsterOps.test.js)
✓ 无恶意行为证据:无 eval、child_process、敏感路径遍历或数据外泄代码
✓ 支持事件保留策略自动清理旧数据