Jasurcyb/ScamShield
GitHub: Jasurcyb/ScamShield
面向中亚地区的多模态欺诈检测多 Agent 系统,通过协调视觉、隐写取证和文本分析三个专门 Agent 自动识别诈骗截图、钓鱼链接和隐写威胁。
Stars: 2 | Forks: 0
# ScamShield - 多模态欺诈检测多 Agent 系统
## 问题
近年来,中亚地区——尤其是乌兹别克斯坦——在 Telegram 和 WhatsApp 等消息应用上遭遇了前所未有的金融欺诈、网络钓鱼攻击和社会工程学激增。欺诈者利用本地化的社会工程学(使用乌兹别克语和俄语),精心伪造模仿国内金融机构(如 Kapitalbank、Click、Payme)的域名抢注陷阱,并散布篡改过的交易截图或含有恶意软件的文件。缺乏自动化、本地化和多层次的网络威胁情报,使得普通公民极易成为这些网络诈骗的受害者。
## 解决方案
ScamShield 通过部署一个基于 Band SDK 构建的分布式、多 Agent 协作安全系统来应对这一挑战。ScamShield 并不依赖单一的通用模型,而是在聊天室环境中协调四个专门的 Agent:
- **ScamShield Coordinator**:充当 orchestrator。当用户请求分析可疑消息或文件时,Coordinator 会解析请求并将子任务委托给相应的专门 Agent,汇总它们的发现,并输出结构化的最终裁决。
- **Vision Agent**:使用多模态 LLM 分析图像、屏幕截图和支付收据,检查是否存在编辑痕迹、字体不匹配、叠加篡改或伪造的银行模板。
- **Stego Agent**:执行生产级取证引擎,进行九项并发深度检查(LSB 隐写检测、直方图分析、附加数据检测、熵评分、Word VBA 宏提取、PDF JS 检查、归档扫描、CTF 标志提取和威胁关键字匹配)。
- **Text Agent**:使用本地化的 LLM 分析对话上下文、SMS 文本和 URL,以标记网络钓鱼策略、紧急诱饵、Punycode 攻击和银行域名抢注行为。
## 架构图
```
┌────────────────────────────────────────┐
│ User / Chat Room │
└──────────────────┬─────────────────────┘
│
▼ (Mentions / Request)
┌────────────────────────────────────────┐
│ ScamShield Coordinator │
└────┬─────────────┼───────────────┬─────┘
│ │ │
│ (Delegates) │ (Delegates) │ (Delegates)
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Vision │ │ Stego │ │ Text │
│ Agent │ │ Agent │ │ Agent │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
│ (Inspects) │ (Analyzes) │ (Checks)
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Vision │ │ Forensics │ │ Text/URL│
│ Tool │ │ Engine │ │ Tool │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
(Gemini API) ─┘ │ └─ (Ollama/gemma4)
▼
[ LSB Stego Check ]
[ Histogram Comb ]
[ Appended Data ]
[ File Entropy ]
[ Macro/VBA Check ]
[ JS/PDF Check ]
[ Rar/Zip Scan ]
[ CTF Flags Check ]
[ Threat Keywords ]
```
## 技术栈
| 组件 | 技术 | 描述 |
|-----------|-----------|-------------|
| 多 Agent 编排 | Band SDK | 管理消息路由、多 Agent 聊天室和后台轮询。 |
| LLM 编排 | LangChain & LangGraph | 连接 Agent 工作流、结构化输出和工具调用接口。 |
| 本地文本与 URL Agent | Ollama (gemma4:12b) | 执行保护隐私的本地威胁词汇和社会工程学分类。 |
| 视觉分析 LLM | Gemini API(支持 Anthropic Claude 回退) | 用于高级图形篡改和布局验证的多模态视觉模型。 |
| 取证分析 | 生产级 Stego 引擎 | 纯 Python 的隐写术、梳状效应、宏和归档取证工具。 |
## 关键创新
- **经过实战检验的取证引擎**:改编自真实的网络安全系统(Stego-Shield Bot),该引擎对文件执行九项并行取证检查(分析像素分布、嵌入脚本和 zip 结构偏移),而不仅仅是检查元数据。
- **Levenshtein 域名抢注检测**:专门微调以保护乌兹别克斯坦银行的用户(例如,Kapitalbank、Ipak Yuli Bank、Anorbank、TBC Bank、Click、Payme)。它计算提取域名的编辑距离,以捕捉视觉检查或标准黑名单遗漏的狡猾相似域名(如 kap1talbank.uz 或 anorbank.co)。
## 设置说明
### 1. 安装依赖
确保您已安装 Python 3.11+。运行:
```
pip install -r requirements.txt
```
### 2. 配置环境变量
将 `.env.example` 文件复制到 `.env`:
```
cp .env.example .env
```
打开 `.env` 并填入您的 API 密钥(例如 `GEMINI_API_KEY`、`ANTHROPIC_API_KEY`)。
### 3. 在 Band.ai 上注册 Agent
1. 前往 [app.band.ai](https://app.band.ai) 并登录。
2. 创建四个新的 External Agent:
- Vision Agent
- Stego Agent
- Text Agent
- ScamShield Coordinator
3. 复制为每个 Agent 生成的 Agent ID 和 API Key。
4. 将 `agent_config.yaml.example` 复制到 `agent_config.yaml`:
```
cp agent_config.yaml.example agent_config.yaml
```
5. 打开 `agent_config.yaml` 并粘贴相应的 ID 和 API 密钥。
### 4. 创建聊天室
在 app.band.ai 上,创建一个新的聊天室。邀请所有四个 Agent(ScamShield Coordinator、Vision Agent、Stego Agent、Text Agent)进入该聊天室。
### 5. 拉取 Ollama 模型
对于本地文本分析,请确保已安装并运行 Ollama,然后拉取模型:
```
ollama pull gemma4:12b
```
### 6. 在本地运行系统
运行并发运行脚本以初始化并连接所有四个 Agent:
```
python band_agents/run_all.py
```
### 7. 在聊天室中互动
在您的 Band 聊天室中,提及 Coordinator 以启动验证:
@ScamShield Coordinator 分析此文本:“Urgent! Send $500 to verify your account at kap1talbank.uz within 1 hour or it will be blocked”
Coordinator 会将其委托给 Text Agent,由其执行钓鱼模式检测,并针对已知的乌兹别克斯坦银行域名执行基于 Levenshtein 的域名抢注分析,然后返回结构化裁决(总体风险等级、欺诈概率和解释)。
## 演示
观看系统的实际运行:观看系统的实际运行:[ScamShield 演示](https://youtu.be/TGb8i9Bc2io)
## 团队
**NYX Sec**
- Jasur Mahkamov - 开发者(乌兹别克斯坦费尔干纳盆地)
- Nazirjonov Azizbek - 设计师兼视频编辑
## 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
标签:AI安全, AI风险缓解, Chat Copilot, DNS 反向解析, PyRIT, 反钓鱼, 多智能体系统, 多模态大模型, 搜索语句(dork), 欺诈检测, 逆向工具, 配置审计, 隐写分析