harshal0704/Oscanft

GitHub: harshal0704/Oscanft

由 Gemini 驱动的六 Agent 自主威胁情报集群,集成多源网络数据采集与 MITRE ATT&CK 映射,为企业 SOC 提供实时风险态势评估。

Stars: 0 | Forks: 0

# 🔥 OSCANFT ### *开源网络自主取证与威胁情报* [![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge&logo=fastapi)](https://fastapi.tiangolo.com) [![Google Gemini](https://img.shields.io/badge/Google%20Gemini-8E75C2?style=for-the-badge&logo=google-gemini&logoColor=white)](https://deepmind.google/technologies/gemini/) [![Bright Data](https://img.shields.io/badge/Bright%20Data-FF8C38?style=for-the-badge&logo=data-grip&logoColor=white)](https://brightdata.com) [![Neon](https://img.shields.io/badge/Neon%20Database-00E599?style=for-the-badge&logo=postgresql&logoColor=black)](https://neon.tech) **OSCANFT** 是一个自主的、工业级的网络威胁情报和取证平台,专为现代安全运营中心 (SOC) 设计。它部署了由 **Google Gemini 2.5** 驱动的协作式 **6-Agent 自主集群**,可同时扫描开放网络、暗网、社交媒体、代码仓库、数据代理和监管机构——通过高级的毛玻璃效果指挥中心提供实时威胁态势评估。 通过利用 **Bright Data 的 10 个基于 MCP 的数据收集工具** 进行防反爬虫网络情报收集,带有 19 种威胁分类的 **IOC 富化与 MITRE ATT&CK 映射引擎**,以及用于持久化存储的 **Neon Serverless Postgres**,OSCANFT 提供统一的威胁评分、跨源去重和实时的 WebSocket 遥测数据——所有这些都以令人惊叹的琥珀金祖母绿主题仪表板呈现。 ## 💎 是什么让 OSCANFT 与众不同? | 功能 | 描述 | |:---|:---| | 🤖 **6-Agent 自主集群** | 通过 `asyncio.gather` 运行的 Gemini 驱动的并行扫描器——6倍并发情报收集 | | 🌐 **10个 Bright Data MCP 工具** | SERP 搜索、网页抓取、社交监控、暗网扫描、GitHub 密钥、域名情报、新闻聚合、数据代理检查、批量抓取、AI 发现 | | 🛡️ **MITRE ATT&CK 映射** | 将 19 种发现类型映射到企业 ATT&CK 战术和技术,并呈现为交互式 SOC 热力图 | | 🧠 **自动化 IOC 富化** | 针对IP、URL、域名、电子邮件、CVE、SHA256/MD5 哈希的正则分类器,并带有 MITRE 关联 | | 🔍 **数据暴露监控** | 专门的 Agent 扫描社交媒体、暗网、数据代理和 GitHub,查找泄露的 PII 和凭证 | | 💾 **双数据库架构** | 在 Neon serverless 上自动配置 PostgreSQL,并带有即时的 SQLite 回退机制 | | 📺 **实时 SOC 控制台** | 基于 WebSocket 的实时遥测,带有动态仪表、热力图和滑动抽屉界面 | | 🔔 **Slack 告警集成** | AI 格式化的 Block Kit 摘要,带有严重性编码的威胁总结 | | 📊 **历史趋势分析** | 跟踪扫描历史中风险评分变化的 SVG 迷你图 | | 🎨 **高级琥珀金主题** | 带有毛玻璃效果、粒子动画和微交互的鲜艳暖色调方案 | ## 🌐 Bright Data 集成 — 10 个 MCP 数据源 OSCANFT 利用 **Bright Data 的 MCP (Model Context Protocol)** 基础设施,通过 10 个专门的数据收集工具为其情报收集提供动力: | # | 工具 | API 方法 | 描述 | 用例 | |:--|:---|:---|:---|:---| | 1 | `brightdata__search_engine` | SERP API | 返回自然搜索结果的结构化 Google/Bing 搜索 | 常规威胁情报查询 | | 2 | `brightdata__scrape_as_markdown` | Web Unlocker | 抓取绕过机器人防护的任何网页,返回干净的 Markdown | 对特定威胁页面的深度分析 | | 3 | `brightdata__discover` | AI 排序搜索 | 基于意图的网络发现,返回上下文相关的页面 | 智能威胁发现 | | 4 | `brightdata__scrape_batch` | 并行 Unlocker | 同时并发抓取最多 10 个 URL | 大规模证据收集 | | 5 | `brightdata__social_monitor` | 社交 SERP | 监控 Twitter/X、Reddit、Telegram 上的品牌提及和威胁讨论 | 社交媒体 OSINT | | 6 | `brightdata__dark_web_scanner` | 深度网络 SERP | 扫描暗网论坛、市场和粘贴网站以获取数据列表 | 暗网威胁情报 | | 7 | `brightdata__github_secrets_scanner` | 代码 SERP | 搜索 GitHub 上暴露的 API 密钥、凭证和配置文件 | 代码泄露检测 | | 8 | `brightdata__domain_intelligence` | 域名 SERP | WHOIS、DNS、SSL 证书透明度、子域名发现、域名抢注 | 基础设施侦察 | | 9 | `brightdata__news_aggregator` | 新闻 SERP | 聚合 CVE 订阅源、安全公告和威胁态势报告 | 威胁感知 | | 10 | `brightdata__data_broker_check` | 人物 SERP | 扫描数据代理网站,查找暴露的员工 PII 和企业数据 | PII 暴露监控 | ### 连接架构 - **MCP SSE Endpoint**: `https://mcp.brightdata.com/sse?token={token}&pro=1` - **SERP API**: `https://api.brightdata.com/serp/google` - **Web Unlocker Proxy**: `brd.superproxy.io:22225` (住宅/数据中心代理轮换) - **回退模式**: 用于离线/演示/沙盒环境的综合模拟数据引擎 ## 🤖 自主 Agent 集群 — 6个专业单元 | Agent | 代号 | 范围 | 关键数据源 | |:---|:---|:---|:---| | 🔴 **威胁情报** | `threat_intel` | 凭证泄露、代码暴露、暗网档案、恶意软件指标 | SERP, Web Scraper, Social Monitor | | 📜 **监管** | `regulatory` | CISA 公告、SEC 裁决、GDPR 简报、FTC 执法行动 | News Aggregator, SERP, Web Scraper | | 🏢 **第三方风险** | `third_party_risk` | 供应商违规、CVE、停机、供应链漏洞 | News Aggregator, SERP, Batch Scraper | | 🛡️ **品牌监控** | `brand_monitor` | 域名抢注、高管冒充、钓鱼工具包 | Domain Intelligence, SERP, Web Scraper | | 📋 **合规解析器** | `compliance_parser` | 策略差距分析、框架一致性审计 (SOC2, GDPR, ISO27001) | SERP, Web Scraper, News Aggregator | | 🔍 **数据暴露** | `data_exposure` | 社交媒体泄露、暗网列表、GitHub 密钥、数据代理 PII | Social Monitor, Dark Web Scanner, GitHub Scanner, Data Broker Check | 所有 Agent 均通过 `asyncio.gather()` **并发**运行,每个都由 **Google Gemini 2.5** 提供动力,通过 MCP 工具调用实现自主的网络情报收集。 ## 🏗️ 架构与数据流 ``` graph TD classDef client fill:#FF8C38,stroke:#CC6600,stroke-width:2px,color:#fff; classDef agent fill:#10B981,stroke:#059669,stroke-width:2px,color:#fff; classDef core fill:#F59E0B,stroke:#D97706,stroke-width:2px,color:#fff; classDef db fill:#00cc99,stroke:#009966,stroke-width:2px,color:#fff; classDef notify fill:#ff3366,stroke:#cc0033,stroke-width:2px,color:#fff; UI[Ember-Gold Glassmorphism Dashboard]:::client -->|Dispatch Trigger| API[FastAPI Orchestrator]:::core Cron[4-Hour Scheduler]:::core -->|Auto-Run| API API -->|Spin Up Swarm| Swarm[Agentic Swarm Cluster]:::core subgraph Swarm [6-Agent Autonomous Swarm] A1[Threat Intel Agent]:::agent A2[Regulatory Agent]:::agent A3[Third-Party Risk Agent]:::agent A4[Brand Monitor Agent]:::agent A5[Compliance Parser Agent]:::agent A6[Data Exposure Agent]:::agent end Swarm -->|10 MCP Tools| BD[Bright Data MCP Client]:::core BD -->|SERP Searches| Google((Google/Bing)) BD -->|Web Unlocker| Sites((Paste Sites, Forums)) BD -->|Social Monitor| Social((Twitter, Reddit, Telegram)) BD -->|Dark Web Scanner| DarkWeb((Dark Web Markets)) BD -->|GitHub Scanner| GitHub((GitHub Repos)) BD -->|Domain Intel| DNS((WHOIS, DNS, SSL)) BD -->|News Aggregator| News((CVE Feeds, Advisories)) BD -->|Data Broker Check| Brokers((People Search, Brokers)) Swarm -->|Raw Findings| IOC[IOC Enrichment Engine]:::core IOC -->|19 MITRE Mappings| Scorer[Gemini Risk Correlation Engine]:::core Scorer -->|Deduplicate & Score 0-100| Report[Risk Report & Roadmap]:::core Report -->|Store Schema| Neon[(Neon Postgres / SQLite)]:::db Report -->|Broadcast Progress| WS[WebSocket Manager]:::core WS -->|Real-Time Streams| UI Report -->|Slack Blocks Formatter| Slack[Slack Alert Service]:::notify Slack -->|Live Webhook| SlackChannel((Slack #oscanft-alerts)) ``` ## 🛡️ MITRE ATT&CK 覆盖范围 — 19种威胁分类 OSCANFT 将所有发现结果与 **MITRE ATT&CK 企业** 框架进行映射: | 发现类型 | 战术 | 技术 | Agent 来源 | |:---|:---|:---|:---| | `credential_leak` | TA0006 凭证访问 | T1552 不安全的凭证 | 威胁情报 | | `code_leak` | TA0009 收集 | T1213 来自信息存储库的数据 | 威胁情报 | | `typosquat` | TA0001 初始访问 | T1566 网络钓鱼 | 品牌监控 | | `dark_web_mention` | TA0043 侦察 | T1593 搜索开放网站 | 威胁情报 | | `infrastructure_exposure` | TA0043 侦察 | T1595 主动扫描 | 品牌监控 | | `compliance_gap` | TA0005 防御规避 | T1562 损害防御 | 合规解析器 | | `vendor_breach` | TA0001 初始访问 | T1199 受信任的关系 | 第三方风险 | | `regulatory_update` | TA0043 侦察 | T1592 收集受害者身份信息 | 监管 | | `exec_impersonation` | TA0001 初始访问 | T1566.002 鱼叉式网络钓鱼链接 | 品牌监控 | | `phishing_kit` | TA0001 初始访问 | T1566.003 鱼叉式网络钓鱼附件 | 品牌监控 | | `outage` | TA0040 影响 | T1499 端点 DoS | 第三方风险 | | `cve_vulnerability` | TA0001 初始访问 | T1190 利用面向公众的应用 | 第三方风险 | | `policy_violation` | TA0005 防御规避 | T1562 损害防御 | 合规解析器 | | `social_media_exposure` | TA0043 侦察 | T1593.001 社交媒体 | 数据暴露 | | `dark_web_listing` | TA0043 侦察 | T1597 搜索封闭来源 | 数据暴露 | | `pii_exposure` | TA0009 收集 | T1530 来自云存储的数据 | 数据暴露 | | `github_secret_leak` | TA0006 凭证访问 | T1552.004 私钥 | 数据暴露 | | `subdomain_takeover` | TA0001 初始访问 | T1584 破坏基础设施 | 品牌监控 | | `news_cve_alert` | TA0001 初始访问 | T1190 利用面向公众的应用 | 监管 | ## 👁️ 网络指挥中心仪表板 OSCANFT 采用高级琥珀金主题的 SOC 控制台: - **统一威胁仪表盘** — 显示企业威胁指数 (0–100) 的动态圆锥环 - **MITRE ATT&CK 热力图网格** — 具有递进热量级别的 7 种战术企业覆盖范围 - **战术行动路线图** — 自动优先排列 *立即* 与 *防御* 补救队列 - **6-Agent 状态板** — 每个扫描器的实时 运行/完成/失败 状态 - **矢量迷你图** — 映射历史扫描结果的 SVG 趋势线 - **滑入式详情抽屉** — 完整的证据块、MITRE 标签和 JSON 导出 - **实时控制台日志** — 带有彩色编码输出的终端风格 WebSocket 进度 - **粒子背景** — 带有琥珀色节点和连接的动态网络网格 ## 📡 API 文档 | 端点 | 方法 | 描述 | |:---|:---|:---| | `/api/scan` | `POST` | 并发调度 6-Agent 自主集群 | | `/api/scans` | `GET` | 列出最近完成的安全评估 | | `/api/scans/{scan_id}` | `GET` | 特定扫描的完整发现数据集 | | `/api/scans/{scan_id}/export` | `GET` | JSON 或 RFC-4180 CSV 报告导出 | | `/api/findings` | `GET` | 带有可选 `agent` 和 `severity` 过滤器的活动发现 | | `/api/risk-score` | `GET` | 当前风险评分、执行简报和趋势数据 | | `/api/agents/status` | `GET` | 所有 6 个扫描器的连接状态和范围 | | `/api/health` | `GET` | 系统健康状况、数据库类型和扫描状态 | | `/api/stats` | `GET` | 聚合遥测:严重性分布、Agent 计数 | | `/ws/scan-progress` | `WS` | 后台扫描期间的实时 WebSocket 流 | ## ⚙️ 技术栈 | 层级 | 技术 | 用途 | |:---|:---|:---| | **AI 引擎** | Google Gemini 2.5 Flash | 自主 Agent 推理、威胁分析、风险评分 | | **数据收集** | Bright Data MCP | 10 个具有防反爬虫功能的网络情报工具 | | **后端** | FastAPI + Uvicorn | 支持 WebSocket 的异步 REST API | | **数据库** | Neon Serverless Postgres | 带有 SQLite 本地回退的云原生存储 | | **前端** | 原生 HTML/CSS/JS | 零依赖的毛玻璃效果 SOC 仪表板 | | **通知** | Slack Block Kit API | AI 格式化的安全摘要告警 | | **调度** | Python `schedule` | 4小时自动扫描编排 | | **容器化** | Docker + Compose | 一键部署 | ### Python 依赖项 ``` google-genai>=1.14.0 # Google Gemini SDK mcp>=1.2.0 # Model Context Protocol fastapi>=0.115.0 # Async web framework uvicorn>=0.34.0 # ASGI server python-dotenv>=1.0.0 # Environment config pydantic>=2.10.0 # Data validation schedule>=1.2.2 # Cron scheduling httpx>=0.28.0 # Async HTTP client websockets>=14.0 # WebSocket support psycopg2-binary>=2.9.9 # PostgreSQL driver rich>=13.9.0 # Console formatting aiofiles>=24.0 # Async file I/O ``` ## ⚙️ 环境配置 在根目录下一个 `.env` 文件: ``` # API Keys & Endpoints (需要 Google GenAI API Key) GEMINI_API_KEY=your_gemini_api_key_here # Bright Data MCP Client (留空则回退至 mock 模式) BRIGHT_DATA_MCP_TOKEN=your_bright_data_mcp_token_here BRIGHT_DATA_MCP_URL=https://mcp.brightdata.com/mcp?token=your_token_here # Database URL (可选:留空则回退至本地 SQLite) NEON_API_KEY= DATABASE_URL= # Notifications (可选:如果为空,则向控制台输出 Blocks markup) SLACK_BOT_TOKEN= SLACK_CHANNEL=#oscanft-alerts PORT=8000 # Target Profile (根据您的组织进行自定义) TARGET_ORG=Acme SaaS TARGET_DOMAINS=acme-saas.com,acme-security.net TARGET_BRAND_TERMS=Acme,AcmeSaaS,AcmeCorp TARGET_IP_RANGES=192.168.1.0/24,10.0.0.0/16 TARGET_VENDORS=[{"name": "Stripe", "criticality": "critical", "data_access": "payment_data"}, {"name": "Auth0", "criticality": "critical", "data_access": "identity"}, {"name": "AWS", "criticality": "high", "data_access": "infrastructure"}] ``` ## 🚀 快速开始 ### 步骤 1:安装依赖项 ``` pip install -r requirements.txt ``` ### 步骤 2:设置 API 凭证 从 Google AI Studio 生成官方的 Gemini API Key,并将其放在 `.env` 文件中。 ### 步骤 3:启动 OSCANFT ``` python main.py ``` ### 步骤 4:打开指挥中心 👉 **[http://localhost:8000](http://localhost:8000)** ## 🐳 Docker 部署 ### Docker Compose (推荐) ``` docker-compose up -d --build ``` ### Docker CLI ``` docker build -t oscanft . docker run -d -p 8000:8000 --env-file .env -v oscanft-data:/app/data --name oscanft oscanft ``` ## 🔍 代码库结构 ``` oscanft/ ├── main.py # Orchestrator (Cron scheduler + FastAPI boot) ├── config.py # Organization and API parameters loader ├── requirements.txt # Python dependencies ├── Dockerfile # Container config ├── docker-compose.yml # Compose with persistent volumes ├── .dockerignore # Build exclusions ├── mcp_bridge/ │ ├── bright_data.py # 10 Bright Data MCP tools with offline mock engines │ ├── neon.py # Neon PG client & SQLite DDL fallback │ └── gemini_adapter.py # Gemini/AIMLAPI bridge with tool calling ├── agents/ │ ├── base_agent.py # Swarm skeleton with prompt interpolation & retries │ ├── threat_intel.py # Credential leak and code exposure monitor │ ├── regulatory.py # Legal, CISA, and SEC directive crawler │ ├── third_party_risk.py # Vendor breach and CVE analyzer │ ├── brand_monitor.py # Typosquat and phishing kit hunter │ ├── compliance_parser.py # SOC2/GDPR alignment auditor │ └── data_exposure.py # Social/dark web/PII exposure monitor ├── engine/ │ ├── models.py # Pydantic schemas (Finding, RiskReport, AgentRun) │ ├── ioc_enrichment.py # Regex classifiers & 19 MITRE ATT&CK mappings │ ├── risk_scorer.py # Gemini deduplicator and rating compiler │ ├── report_generator.py # JSON/CSV export formatters │ └── slack_alerts.py # Slack Block Kit generator ├── prompts/ # 7 agent system prompts + MCP tools instructions ├── db/ │ ├── repository.py # Data access layer │ └── schema.sql # PostgreSQL/SQLite DDL └── dashboard/ ├── index.html # SOC command center layout ├── styles.css # Ember-gold-emerald design system (1800+ lines) └── dashboard.js # WebSocket controller & UI renderer ``` ## 📄 许可证 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE)。
标签:AI智能体, AV绕过, FastAPI, 威胁情报, 安全运营中心, 实时处理, 开发者工具, 数据泄露, 网络安全, 网络映射, 自动化情报收集, 逆向工具, 隐私保护