fir3storm/MeetGuard-AI
GitHub: fir3storm/MeetGuard-AI
MeetGuard AI 是一款视频会议安全助手,通过多模态检测实时识别 Zoom、Teams、Meet 通话中的 deepfake 冒充、声纹伪造及社会工程学欺诈行为。
Stars: 0 | Forks: 0
MeetGuard AI
专为视频会议设计的实时 deepfake 与社会工程学检测工具。
由 Abhirup Guha — Info Security Solution 创建
**MeetGuard AI** 是一款实时安全助手,可监控 Zoom、Microsoft Teams 和 Google Meet 通话。它通过屏幕捕获和系统音频环回(loopback)获取会议的音视频,然后每 3 秒运行五个并行检测器,以标记高管冒充尝试——包括 deepfake 面部、声音伪造、唇音不同步、欺诈性付款指令以及社会工程学施压策略。
该工具由 **Info Security Solution** 的 **Abhirup Guha** 构建和维护,旨在为企业提供针对视频会议中日益泛滥的 AI 驱动冒充欺诈的企业级保护。
## 检测内容
| 威胁 | 检测器 | 识别目标 | 评分 |
|---|---|---|---|
| **合成面部** | Deepfake 面部 (3DCNN) | 逐帧 deepfake 生成——CEO 的实时换脸 | 0–1 |
| **声音伪造** | 声音不匹配 (ECAPA-TDNN) | 说话者与已录入声纹不符——使用不同声音的冒充者 | 0–1 |
| **音视频不同步** | 唇音同步 (SyncNet) | 音频与嘴唇动作不匹配——常见于低质量 deepfake | 0–1 |
| **欺诈指令** | 可疑 NLP (regex + Sentence-BERT) | "将供应商账户更改为这个新的路由号码" | 0–1 |
| **施压策略** | 紧急用语 (加权关键词) | "立即转账——不要告诉任何人——这是机密" | 0–1 |
### 使用场景
- **CFO 欺诈** —— 冒充者假扮 CEO 要求紧急电汇
- **供应商付款重定向** —— 虚假供应商要求将付款信息更新为新账户
- **高管猎杀(Whaling)** —— 通过社会工程学施压绕过审批流程
- **董事会会议安全** —— 监控敏感通话,查找任何冒充迹象
## 快速开始
### 1. 音频环回(需执行一次)
MeetGuard 捕获的是**扬声器输出**(即您听到的声音),而不是您的麦克风。您需要一个虚拟音频设备:
| 操作系统 | 工具 | 设置 |
|---|---|---|
| **Windows** | [VB-Cable](https://vb-audio.com/Cable/) | 安装 → 将“CABLE Input”设置为您的会议应用程序的扬声器输出 |
| **macOS** | [BlackHole](https://github.com/ExistentialAudio/BlackHole) | `brew install blackhole-2ch` → 在“音频 MIDI 设置”中创建多输出设备 |
| **Linux** | PulseAudio monitor | `pactl load-module module-loopback` |
运行设置向导进行验证:
```
meetguard --setup-audio
```
### 2. 安装
```
pip install -r requirements/base.txt
```
可选:安装 GPU 支持以实现更快的推理:
```
pip install -r requirements/gpu.txt
```
### 3. 下载模型
```
python scripts/download_models.py
```
### 4. 录入高管声纹
录制一段约 30 秒的高管正常说话的样本:
```
meetguard --enroll CEO ceo_voice.wav
meetguard --enroll CFO cfo_voice.wav
```
### 5. 运行
```
meetguard # Opens dashboard at http://127.0.0.1:7860
```
检测到严重威胁时,您将收到桌面通知、声音警报,并有一段 30 秒的音视频片段保存至 `~/.meetguard/sessions/`。
## CLI 参考
```
meetguard [command] [options]
Commands:
status Show engine status and last session summary
alerts List recent detection alerts
report Generate session report
--setup-audio Interactive audio loopback setup wizard
Options:
-c, --config FILE Path to YAML config file
-v, --verbose Debug logging level
--profile PROFILE Config profile: high-security, balanced, low-resource
--dry-run Validate config + check dependencies, then exit
--headless Run without Gradio dashboard
--list-audio-devices List available audio input devices
--enroll NAME FILE Enrol a voiceprint from a WAV file
--version Print version and exit
```
### 示例
```
meetguard status # Check if engine is running
meetguard alerts --limit 20 --json # Last 20 alerts as JSON
meetguard report --output report.json # Generate session report
meetguard --profile high-security # Run with stricter thresholds
meetguard --dry-run # Validate config and exit
```
## 配置文件
无需编辑 YAML 即可在不同操作模式间快速切换:
| 配置文件 | FPS | 阈值 | 唇音同步 | LLM | 说话人分离 | 使用场景 |
|---|---|---|---|---|---|---|
| **high-security** | 15 | 0.10 / 0.30 / 0.60 | ✅ | ✅ | ✅ | 关键会议、董事会通话 |
| **balanced** | 5 | 0.20 / 0.45 / 0.75 | ✅ | ❌ | ❌ | 默认——日常使用 |
| **low-resource** | 3 | 0.30 / 0.55 / 0.85 | ❌ | ❌ | ❌ | 笔记本电脑、有限的 CPU |
```
meetguard --profile high-security
```
## 架构
```
Every 200ms: screen grab (5 FPS) + audio loopback (16kHz)
│
▼ Every 3 seconds
┌─────────────────────┐
│ Diarization (opt) │── isolate speakers → per-speaker voice scoring
│ │
│ 5 Detectors │
│ • Face (3DCNN) │──→ deepfake score
│ • Voice (ECAPA) │──→ mismatch score
│ • Lip (SyncNet) │──→ drift score
│ • NLP (BERT) │──→ suspicious score
│ • Urgency (RE) │──→ pressure score
└────────┬────────────┘
▼
┌─────────────────────┐
│ Fusion Engine │──→ total_risk (weighted sum)
│ Classifier │──→ SAFE / MONITOR / SUSPICIOUS / CRITICAL
└────────┬────────────┘
▼
┌─────────────────────┐
│ Alerting │
│ • Desktop popup │
│ • Sound alert │
│ • Save 30s clip │
│ • Webhooks │
│ • SQLite log │
└─────────────────────┘
```
## API
运行时,MeetGuard 会在端口 **8573** 上提供 REST API:
```
curl http://127.0.0.1:8573/api/v1/status
curl http://127.0.0.1:8573/api/v1/status/risk
curl http://127.0.0.1:8573/api/v1/alerts?limit=10
curl http://127.0.0.1:8573/api/v1/voiceprints
```
位于 `ws://127.0.0.1:8573/ws` 的 WebSocket 会流式传输实时更新。
## 配置
所有阈值和权重均位于 `config/default.yaml` 中:
```
fusion:
weights:
face: 0.30 # 30% weight in total risk score
voice: 0.25
lip: 0.15
nlp: 0.20
urgency: 0.10
thresholds:
monitor: 0.20
suspicious: 0.45
critical: 0.75 # ≥ 0.75 triggers desktop alert + clip + webhooks
```
用于实时警报的 Webhook 集成:
```
alerting:
webhooks:
slack_url: "https://hooks.slack.com/services/T00/B00/xxx"
discord_url: "https://discord.com/api/webhooks/xxx"
email:
smtp_host: "smtp.gmail.com"
from_addr: "meetguard@yourcompany.com"
to_addrs: ["security@yourcompany.com"]
```
## 项目结构
```
meetguard/
├── cli/ # CLI subcommands (status, alerts, report)
├── capture/ # Screen + audio capture, ring buffers, audio wizard
├── processing/ # Face extraction, voiceprint, transcription, diarization
├── detectors/ # 5 detection modules + LLM fallback
├── fusion/ # Risk aggregation, classification, alert rules
├── alerting/ # Notifications, webhooks, recording, dashboard server
├── api/ # REST API (FastAPI router)
├── storage/ # SQLite voiceprints + session logs
├── ui/ # Gradio dashboard (with performance metrics)
├── utils/ # Data models, logging
├── config.py # YAML config loader + validator
├── profiles.py # Configuration profiles
└── main.py # Entry point, engine, CLI
```
## 关于作者
由 **Info Security Solution** 的 **Abhirup Guha** 构建。
Info Security Solution 专注于检测 AI 驱动威胁的网络安全工具,包括企业沟通渠道中的 deepfake 冒充、社会工程学和财务欺诈。
- GitHub: [@fir3storm](https://github.com/fir3storm)
- 项目: [MeetGuard AI](https://github.com/fir3storm/MeetGuard-AI)
## 许可证
MIT — 详见 [LICENSE](LICENSE)。
版权所有 (c) 2026 Abhirup Guha — Info Security Solution
标签:AI安全, Chat Copilot, ESC8, 凭据扫描, 欺诈检测, 深度伪造检测, 社会工程学, 视频会议, 逆向工具, 音频/视频分析