lexicone42/rustmachineguard
GitHub: lexicone42/rustmachineguard
一款用 Rust 重写的开发机器安全扫描工具,快速发现 AI 代理、MCP、IDE 扩展、云凭证与 SSH 密钥等敏感组件并提供多格式报告。
Stars: 0 | Forks: 0
# Dev Machine Guard (Rust)
在几秒钟内扫描您的开发机器,查找 AI 代理、MCP 服务器、IDE 扩展、云凭证、SSH 密钥等。
传统的端点防护(EDR、MDM)无法看到开发者专用工具层:AI 编码助手、模型上下文协议服务器、拥有广泛权限的 IDE 扩展以及本地运行的推理框架。本工具填补了这一空白。
## 快速开始
```
# 从源代码构建
cargo build --release
# 运行扫描
./target/release/dev-machine-guard
# JSON 输出
./target/release/dev-machine-guard --format json
# HTML 报告
./target/release/dev-machine-guard --format html --output report.html
# 跳过特定类别
./target/release/dev-machine-guard --skip ssh,cloud
# 扫描额外的家目录根(例如同一台机器上的另一个用户配置文件)
./target/release/dev-machine-guard --search-dirs /home/alice,/home/bob
```
## 扫描内容
| 类别 | 检测内容 | 示例 |
|---|---|---|
| **AI 代理与工具** | CLI 工具和桌面应用 | Claude Code、Claude Cowork、GitHub Copilot(`copilot`、`gh-copilot`)、Codex、Gemini、Amazon Q、Kiro、Microsoft AI Shell(`aish`)、OpenCode、Aider、Goose、Open Interpreter、Tabby 以及各类代理(ClawdBot、MoltBot、MoldBot、OpenClaw、GPT-Engineer) |
| **AI 框架** | 本地推理服务器 | Ollama、LocalAI、LM Studio、llama.cpp、vLLM、HuggingFace TGI、oobabooga text-generation-webui |
| **IDE 安装** | 开发者编辑器 | VS Code、Cursor、Windsurf、Zed、Antigravity |
| **IDE 扩展** | 已安装的扩展 | 支持 VS Code 风格和 Zed 格式解析,并包含版本信息 |
| **MCP 配置** | 模型上下文协议服务器 | Claude Desktop、Claude Code(`settings.json` + `~/.claude.json` 项目范围)、Cursor、Windsurf、Antigravity、Zed、VS Code、Open Interpreter(YAML)、Codex(TOML) |
| **包管理器** | Node.js 生态 | npm、yarn、pnpm、bun、Node.js |
| **Shell 配置**\* | 与 AI 相关的环境变量 | API 密钥(脱敏)、工具别名 |
| **SSH 密钥**\* | 带口令审计的密钥清单 | RSA、ECDSA、Ed25519/OpenSSH,支持口令检测 |
| **云凭证**\* | 云服务商凭证 | AWS(配置文件、SSO)、GCP(ADC、服务账户)、Azure(令牌、订阅) |
| **容器工具**\* | 容器运行时 | Docker、Podman、nerdctl、Lima、Colima、Finch |
| **笔记本服务器**\* | 计算型笔记本 | Jupyter、JupyterLab、Marimo |
\* 新增检测类别,源自原始 Bash 版本。
## 输出格式
- **`terminal`**(默认)— 带状态指示符(● 运行中、○ 已停止)的彩色易读报告
- **`json`** — 结构化数据,便于程序消费、CI 流水线或 SIEM 摄入
- **`html`** — 深色主题报告,适合分享或归档
## 平台支持
| 平台 | 状态 |
|---|---|
| Linux | 支持(XDG 路径、`/etc/os-release`、`pgrep`) |
| macOS | 支持(`/Applications/`、`sw_vers`、`defaults read`) |
## 安全考量
本工具本身是一个高敏感安全程序。设计决策如下:
- **不泄露密钥**:Shell 配置扫描仅报告变量*名称*(例如 `OPENAI_API_KEY=`),从不暴露值
- **SSH 口令检测**:使用 `ssh-keygen` 探针检测 OpenSSH 格式密钥(现代密钥格式的 PEM `ENCRYPTED` 标记并不可靠)
- **HTML 防 XSS**:报告数据在脚本标签中进行 base64 编码以防止注入;所有用户内容均进行 HTML 转义,包括单引号
- **输入验证**:`--format` 与 `--skip` 参数在解析时进行验证,并提供清晰的错误信息
- **无 `/tmp` 回退**:若 `$HOME` 无法确定则快速失败,而非扫描共享目录
- **读取限制**:超过 1MB 的 Shell 配置文件将被跳过
## 与上游的差异
| 功能 | 原始(Shell) | 本重写(Rust) |
|---|---|---|
| 平台 | 仅 macOS | macOS + Linux |
| 语言 | Shell 脚本 | 编译后的 Rust 二进制文件 |
| 新增扫描器 | — | Shell 配置、SSH 密钥、云凭证、容器、笔记本 |
| SSH 检测 | — | 使用 `ssh-keygen` 探针实现准确的口令检测 |
| 密钥处理 | — | 仅变量名称,绝不暴露值 |
| 输出验证 | 静默回退 | 严格的格式/跳过参数验证 |
| 依赖项 | bash、curl、base64 | 零运行时依赖(静态二进制文件) |
## CLI 参考
```
Usage: dev-machine-guard [OPTIONS]
Options:
-f, --format Output format [default: terminal]
[possible values: terminal, json, html]
-o, --output
标签:AI代理检测, DevSecOps, IDE安全, MCP服务器检测, Rust, SSH密钥扫描, 上游代理, 云凭证扫描, 云安全监控, 代码安全, 凭证泄露检测, 可视化界面, 威胁情报, 安全扫描, 安全监测, 开发者工具, 开发者生产力工具, 扩展安全, 时序注入, 本地安全审计, 漏洞枚举, 终端安全, 网络流量审计, 通知系统, 静态分析