harshal0704/Oscanft
GitHub: harshal0704/Oscanft
由 Gemini 驱动的六 Agent 自主威胁情报集群,集成多源网络数据采集与 MITRE ATT&CK 映射,为企业 SOC 提供实时风险态势评估。
Stars: 0 | Forks: 0
# 🔥 OSCANFT
### *开源网络自主取证与威胁情报*
[](https://fastapi.tiangolo.com)
[](https://deepmind.google/technologies/gemini/)
[](https://brightdata.com)
[](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, 威胁情报, 安全运营中心, 实时处理, 开发者工具, 数据泄露, 网络安全, 网络映射, 自动化情报收集, 逆向工具, 隐私保护