samitkoya/Agentic-Honey-Pot

GitHub: samitkoya/Agentic-Honey-Pot

一个基于 FastAPI 和 Google Gemini 构建的 AI 蜜罐 API,通过模拟轻信受害者与诈骗分子持续对话,自动检测诈骗类型并提取威胁情报。

Stars: 0 | Forks: 0

# Agentic Honey-Pot 一个 AI 驱动的蜜罐,当诈骗分子主动联系时,它会伪装成一个轻信的受害者。它能让对方一直聊下去,提取有用的情报(如电话号码、UPI ID、银行账户和网络钓鱼链接),并记录所有内容以供分析。 基于 FastAPI 和 Google Gemini 构建。 ## 工作原理 当诈骗分子的消息发送至 API 时,会依次发生以下三件事: 1. **诈骗检测** - Gemini 会分析消息和对话历史,判断其是否为诈骗、诈骗类型以及置信度。 2. **情报提取** - 基于 Regex 的提取器会从原始文本中提取银行账号、UPI ID、电话号码、可疑 URL 和已知的诈骗关键词。 3. **回复生成** - Gemini 会生成一条简短且可信的回复,听起来就像一个困惑且轻信他人的人。其目的是让诈骗分子保持参与度,从而透露更多信息。 如果 Gemini 不可用或 API key 配额已耗尽,系统将回退到一组轮换的硬编码 prompt,用于询问付款详情、电话号码和链接。 ## 安装说明 **前置条件:** Python 3.10 或更高版本以及 Google Gemini API key。 ``` git clone https://github.com/samitkoya/Agentic-Honey-Pot.git cd Agentic-Honey-Pot ``` 根据模板创建一个 `.env` 文件并填入你的密钥: ``` cp .env.example .env ``` ``` API_KEY=your-api-key-here GEMINI_API_KEY=your-gemini-api-key-here ``` 安装依赖并启动服务器: ``` pip install -r requirements.txt python main.py ``` 服务器将在 `http://localhost:8000` 启动。 ## API 参考 除了 `/` 和 `/health` 之外,每个 endpoint 都需要提供 `X-API-Key` header。 ### GET / 返回服务状态和信息。无需身份验证。 **响应:** ``` { "service": "Agentic Honey-Pot API", "version": "1.0.0", "status": "active" } ``` ### POST /api/honeypot 主要 endpoint。发送诈骗分子的消息并获取令人信服的受害者回复。 **请求:** ``` { "sessionId": "session-abc-123", "message": { "sender": "scammer", "text": "Your account is blocked. Send OTP to reactivate.", "timestamp": "2026-07-27T12:00:00Z" }, "conversationHistory": [], "metadata": { "channel": "SMS", "language": "English", "locale": "IN" } } ``` - `sessionId` -- 任意唯一的字符串,用于将同一对话中的消息关联起来。 - `message.sender` -- `"scammer"` 或 `"user"`。 - `message.timestamp` -- ISO-8601 字符串或 epoch 毫秒数。 - `conversationHistory` -- 可选,用于在首次请求时提供上下文的过往消息。 - `metadata` -- 可选的键值对字典,用于提供上下文(例如渠道、语言、区域设置)。 **响应:** ``` { "status": "success", "reply": "Oh no, what do I do? Which number should I call to fix this?" } ``` ### GET /api/session/{sessionId} 返回完整的 session 状态,包括提取的情报、诈骗检测结果以及内部 agent 备注。这对于调试和审查系统捕获的内容非常有用。 **响应:** ``` { "session_id": "session-abc-123", "message_count": 4, "scam_detected": true, "scam_type": "bank_fraud", "confidence": 0.92, "callback_sent": false, "intelligence": { "bankAccounts": ["1234567890123"], "upiIds": ["fraud@ybl"], "phishingLinks": ["https://fake-bank.xyz/verify"], "phoneNumbers": ["+919876543210"], "suspiciousKeywords": ["blocked", "otp", "verify"] }, "agent_notes": [ "Scam detected: bank_fraud (confidence: 0.92)", "Extracted: 1 accounts, 1 UPIs, 1 links, 1 phones" ] } ``` ### GET /api/rate-limit 检查您的剩余请求数。 **响应:** ``` { "limits": { "requests_per_minute": 10, "requests_per_day": 100 }, "remaining": { "remaining_per_minute": 9, "remaining_per_day": 98 } } ``` ### GET /health 如果服务器正在运行,则返回 `{"status": "healthy"}`。无需身份验证。 ## 项目结构 ``` Agentic-Honey-Pot/ ├── main.py # FastAPI app, routes, rate limiter ├── app/ │ ├── agent.py # Gemini-powered response generation │ ├── config.py # Environment variable loading │ ├── intelligence_extractor.py # Regex-based intel extraction │ ├── models.py # Pydantic request/response models │ ├── scam_detector.py # Gemini-powered scam classification │ └── session_manager.py # In-memory session state ├── requirements.txt ├── .env.example ├── .gitignore └── README.md ``` ## 速率限制 请求按每个 API key 进行限流: - 每分钟 10 个请求 - 每天 100 个请求 超出任一限制将返回 `429` 状态码及提示需等待多久的消息。 ## 错误 | 状态码 | 含义 | |--------|---------| | 401 | 无效或缺失的 `X-API-Key` header | | 422 | 格式错误的请求体 | | 429 | 超出速率限制 | ## 许可证 MIT
标签:AV绕过, DLL 劫持, FastAPI, Web API, 大语言模型, 威胁情报, 实时处理, 开发者工具, 蜜罐, 证书利用, 逆向工具