securient/ideviewer-oss
GitHub: securient/ideviewer-oss
一款针对开发者工作站的跨平台安全扫描工具,专注检测 IDE 扩展风险、AI 工具权限、明文密钥及供应链漏洞。
Stars: 0 | Forks: 0
# IDEViewer
一款跨平台安全工具,用于扫描开发者工作站的供应链威胁——危险的 IDE 扩展、存在漏洞的依赖项、明文 secrets、不安全的 AI 工具配置以及 MCP 服务器权限。构建为单个 Go 二进制文件,并包含一个可选的自托管门户,以实现团队范围的可见性。
**[文档](https://securient.github.io/ideviewer-oss)** | **[发布版本](https://github.com/securient/ideviewer-oss/releases)** | **[Portal 容器](https://github.com/securient/ideviewer-oss/pkgs/container/ideviewer-oss-portal)**
## 为什么选择 IDEViewer?
开发者工作站是权限最高且监控最少的攻击面之一。IDE 扩展以完整的进程权限运行,npm 包静默执行生命周期钩子,AI 编程助手连接到外部服务,而 secrets 以明文形式存在于配置文件中。EDR 和 SCA 工具无法看到这些内容。但 IDEViewer 可以。
## 主要功能
| 功能 | 描述 |
|---------|-------------|
| **IDE 扩展分析** | 扫描 7 种以上的 IDE,根据 4 级风险模型(严重/高/中/低)分析扩展权限 |
| **AI 工具检测** | 发现 Claude Code、Cursor、OpenClaw——包括其技能、MCP 服务器、云集成和已授予的权限 |
| **AI 风险评分** | 标记不安全的配置:通配符 bash 访问、明文 API 密钥、自主执行、未加密传输 |
| **扩展依赖扫描** | 盘点 VS Code `node_modules` 和 JetBrains 插件 JAR 中捆绑的包——标准 SCA 无法看到这些内容 |
| **Secrets 检测** | 在 `.env` 文件和 git 历史记录中查找明文凭据。从不传输实际值——仅传输类型和位置 |
| **CVE 关联** | 所有包(项目 + 扩展捆绑)都根据 OSV.dev 检查已知漏洞 |
| **实时监控** | 文件系统监控器在 30 秒内检测到扩展变更 |
| **篡改检测** | 对 daemon 二进制文件、配置和服务文件进行 SHA-256 校验,并即时报警 |
| **Git Hook 绕过检测** | 检测 `--no-verify` 的使用情况并报告到门户 |
| **SARIF 输出** | 集成 GitHub Code Scanning、CodeQL 和 CI/CD 流水线 |
## 截图
| 仪表盘 | 主机详情 |
|-----------|------------|
|  |  |
| 扩展分析 | Secrets 检测 |
|-------------------|-------------------|
|  |  |
## 快速开始
### 选项 A:下载预构建二进制文件
从 [Releases](https://github.com/securient/ideviewer-oss/releases) 页面下载:
| 平台 | 文件 |
|----------|------|
| macOS (Apple Silicon) | `IDEViewer-*-arm64.pkg` |
| Windows (64-bit) | `IDEViewer-Setup-*.exe` |
| Linux (amd64) | `ideviewer_*_amd64.deb` |
| Linux (arm64) | `ideviewer_*_arm64.deb` |
### 选项 B:从源代码构建
```
git clone https://github.com/securient/ideviewer-oss.git
cd ideviewer-oss
make build # Single platform
make build-all # All platforms
```
### 独立扫描(无 Portal)
```
ideviewer scan # Scan IDEs and extensions
ideviewer secrets # Detect plaintext secrets
ideviewer packages # Inventory all packages
ideviewer dangerous # List high-risk extensions
ideviewer scan --output-sarif > results.sarif # SARIF for CI/CD
```
## Portal 设置
Portal 是一个自托管的 Web 仪表盘,用于监控多台开发者机器。它是可选的——CLI 可以独立工作。
### 一键启动
```
./start.sh # Local dev (SQLite, zero config)
./start.sh --docker # Docker + PostgreSQL
./start.sh --aws # Deploy to AWS (ECS + RDS + ALB)
```
默认登录:`admin` / `ideviewer`(系统将提示您更改密码)。
### 连接 Daemon
```
ideviewer register \
--customer-key YOUR-KEY \
--portal-url http://localhost:5000
```
Daemon 在注册后自动启动并在后台持续运行。
### Portal 容器
```
docker pull ghcr.io/securient/ideviewer-oss-portal:latest
docker run -p 8080:8080 \
-e SECRET_KEY=$(openssl rand -base64 32) \
-e DATABASE_URL=postgresql://user:pass@host:5432/ideviewer \
ghcr.io/securient/ideviewer-oss-portal:latest
```
## 检测内容
### 支持的 IDE
| IDE | 扩展路径 |
|-----|----------------|
| VS Code | `~/.vscode/extensions` |
| Cursor | `~/.cursor/extensions` |
| VSCodium | `~/.vscode-oss/extensions` |
| JetBrains (IntelliJ, PyCharm, WebStorm, GoLand, CLion, Rider, PhpStorm, RubyMine, DataGrip) | `~/.config/JetBrains/*/plugins` |
| Sublime Text | `~/Library/Application Support/Sublime Text/Packages` |
| Vim / Neovim | `~/.vim`, `~/.config/nvim` |
| Xcode | `/Applications/Xcode.app` |
### 支持的包管理器
| 语言 | 管理器 | 检测范围 |
|----------|---------|-----------|
| Python | pip, pipenv, poetry | 全局 + 项目级 |
| Node.js | npm | 全局 + 项目 + 扩展捆绑 |
| Go | go | `~/go/bin` + `go.mod` |
| Rust | cargo | 全局 + `Cargo.lock` |
| Ruby | gem | 全局 + `Gemfile.lock` |
| PHP | composer | `composer.lock` |
| Java | maven | JetBrains 插件 JAR |
| macOS | Homebrew | Formula + casks |
### AI 工具与 MCP 检测
| 工具 | 检测内容 |
|------|----------------|
| **Claude Code** | 已启用的技能/插件、云 MCP 服务器(Gmail、Calendar 等)、按项目权限(Bash、Read、Write、MCP 工具)、API 密钥(已脱敏) |
| **Cursor** | 来自 `mcp.json` 和 VS Code 设置的 MCP 服务器配置、环境变量、权限 |
| **OpenClaw** | LLM 提供商、Slack/Telegram 集成、机器人令牌(已脱敏)、自主执行标志、不安全传输 |
每个组件按类型(`skill`、`mcp-server`、`cloud-mcp`、`integration`、`permission`)分类并分配风险评分:
| 风险 | 示例 |
|------|---------|
| **Critical** | 通配符 bash 访问(`Bash(*)`)、明文 API 密钥 |
| **High** | 启用自主执行、外部集成、不安全的 HTTP 传输 |
| **Medium** | 具有数据访问权限的云 MCP、shell 命令权限 |
| **Low** | 具有网络访问权限的技能 |
### 扩展风险模型
| 级别 | 标准 | 示例 |
|-------|----------|----------|
| **Critical** | 潜在的全面系统入侵 | 通配符激活(`*`)、文件系统 + shell |
| **High** | 提升的权限 | 身份验证、终端访问、URI 处理程序 |
| **Medium** | 潜在风险 | 启动执行、调试器访问 |
| **Low** | 标准权限 | 命令、按键绑定、主题 |
## Portal 功能
- **仪表盘**——所有注册机器的安全态势概览
- **主机详情**——选项卡视图:扩展、包、Secrets、AI 工具
- **AI 工具选项卡**——所有 AI 组件的统一表格,包含类型/风险过滤器和风险评分
- **扩展详情**——市场数据、权限、风险评估、跨主机安装
- **包详情**——来源追踪(项目 vs 扩展捆绑)、生命周期钩子、CVE
- **多选过滤器**——组合过滤器(例如,“有漏洞”+“扩展依赖”)
- **全局搜索**——跨主机、扩展、包、AI 工具和 MCP 服务器搜索
- **实时更新**——当文件系统监控器检测到变更时的实时更新指示器
- **按需扫描**——从 Portal UI 触发扫描
- **篡改警报**——daemon 文件修改/删除时即时报警
- **CSV 导出**——导出任何数据视图
- **Google OAuth**——可选的 SSO,与用户名/密码并存
- **数据库迁移**——由 Alembic 管理的 schema,用于安全升级
## 部署
### AWS (ECS Fargate + RDS)
```
./start.sh --aws # Guided wizard with cost estimates
```
创建:VPC、ALB(可选 HTTPS)、ECS Fargate(自动伸缩 1-4)、RDS PostgreSQL、Secrets Manager、CloudWatch、ECR。参见 [deploy/README.md](deploy/README.md)。
### MDM (JAMF / Mosyle / Kandji)
对于受管机群,首先部署 PPPC 配置文件(静默授予完全磁盘访问权限),然后部署 .pkg:
```
# 1. 部署 PPPC profile:deploy/mdm/ideviewer-tcc.mobileconfig
# 2. 通过 MDM 部署 .pkg installer
# 3. 通过 post-install script 静默注册
```
分步 JAMF 说明请参见 [deploy/mdm/README.md](deploy/mdm/README.md)。
### Linux (systemd)
```
sudo dpkg -i ideviewer_0.3.0_amd64.deb
ideviewer register --customer-key KEY --portal-url URL
sudo systemctl enable --now ideviewer
```
## 隐私设计
- Secret 值**从不被传输**——仅传输类型、位置和脱敏指示符
- AI 对话内容**从不被读取**——仅配置元数据和权限集
- 所有扫描均在开发者本地机器上进行
- Daemon 仅向 Portal 报告与安全相关的元数据
## 卸载
```
# macOS
sudo ideviewer-uninstall
# Linux
sudo dpkg -P ideviewer
# Windows
Settings > Apps > IDE Viewer > Uninstall
```
## 贡献
我们欢迎各种贡献!指南请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
Apache License 2.0 — 版权所有 2024-2026 Securient
全文请参见 [LICENSE](LICENSE)。
标签:AI安全, Chat Copilot, Cursor, DNS 反向解析, EDR替代, EVTX分析, Go语言, IDE安全, JetBrains, MCP服务器, OSV, StruQ, Vercel, VS Code, WSL, 云安全监控, 依赖扫描, 团队管理, 威胁情报, 开发者工具, 插件安全, 文件监控, 文档安全, 日志审计, 模型提供商, 测试用例, 程序破解, 篡改检测, 网络安全, 自托管, 请求拦截, 逆向工具, 隐私保护, 静态分析