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), 欺诈检测, 逆向工具, 配置审计, 隐写分析