czantoine/smap-ai-recon-center
GitHub: czantoine/smap-ai-recon-center
一个结合被动侦察引擎、本地大模型分析与 Grafana 可视化的轻量级安全威胁情报平台,用于实现攻击面可见性与 AI 辅助风险评估。
Stars: 1 | Forks: 0
Smap AI Recon Center
基于 Smap、SQLite、Grafana 和 Ollama 构建的 AI 驱动的被动网络侦察与威胁情报平台。
## 概述 **Smap AI Recon Center** 是一个轻量级、容器化的平台,用于**被动攻击面可见性**、**威胁情报探索**和**AI 辅助的风险分析**。 它结合了: - [**Smap**](https://github.com/s0md3v/Smap),一个基于 **Shodan InternetDB** 构建的被动式 Nmap 替代方案 - 一个基于 Python 的 **SQLite 导入器和数据富化 pipeline** - 一个用于可视化和运营分析的 **Grafana 仪表板** - 一个由 **Ollama** 提供支持的可选**本地 AI 分析层** 该平台将被动侦察输出转化为结构化的安全数据集,并进行了以下富化: - **CVSS 评分** - **严重性分类** - **基于主机的风险评分** - **基于 CPE 的技术指纹识别** - **主机自动打标签** - **SSL/TLS 元数据提取** - **地理信息富化** - **跨扫描的漂移检测** - **AI 生成的执行摘要和主机级别的威胁评估** 最终的结果是一个紧凑但强大的侦察和情报技术栈,适用于: - 安全监控 - 暴露面审查 - 资产可见性 - 轻量级 SOC 工作流 - 红队侦察跟踪 - 教育、实验室和演示  ## 核心功能 ### 被动侦察与富化 - 使用 **Shodan InternetDB** 进行被动主机和服务发现 - 支持 **JSON、JSONL、XML 和 nmap 风格输出**的导入 pipeline - **CVSS 标准化**和严重性映射 - **基于主机的风险计算** - 从 CPE 字符串中**提取技术** - **自动为主机打标签** - **地理和 ASN 信息富化** - **SSL/TLS 元数据提取** - 防止重复并支持增量 schema 迁移 ### AI 辅助威胁分析 - 通过 **Ollama** 实现完全本地的 **基于 LLM 的分析** - **基于主机的 AI 风险评估** - **扫描级别的执行摘要** - **结构化的建议和修复提示** - AI 输出直接存储在 **SQLite** 中 - 不依赖外部的 AI SaaS 平台 ### 可视化与运营 - Grafana 仪表板 [(ID: **24085**)](https://grafana.com/grafana/dashboards/24085) - 以威胁为中心和以资产为中心的视图 - 操作历史和漂移跟踪 - 可过滤的表格和交互式可视化 - 在现有侦察工作流程之上分层的 AI 专属仪表板区域 ## 架构 ``` ┌────────────┐ │ targets.txt│ └─────┬──────┘ │ ▼ ┌──────────────────────────────┐ │ smap-importer │ │------------------------------│ │ passive recon via Smap │ │ CVSS + severity scoring │ │ CPE tech fingerprinting │ │ host auto-tagging │ │ SSL/TLS extraction │ │ geo enrichment │ │ writes smap.db │ └──────────────┬───────────────┘ │ ▼ ┌────────────────┐ │ SQLite DB │ │ smap.db │ └──────┬─────────┘ │ ┌──────────┴──────────┐ ▼ ▼ ┌───────────────┐ ┌────────────────┐ │ Grafana │ │ AI Analyzer │ │---------------│ │----------------│ │ dashboard │ │ Ollama-powered │ │ threat views │ │ host analysis │ │ asset views │ │ scan summaries │ └───────────────┘ └────────────────┘ ``` ## 数据流 1. **Smap** 查询 **Shodan InternetDB** 以获取每个目标的被动情报。 2. **`import_smap.py`** 解析并富化结果,然后将其写入 **`smap.db`**。 3. **Grafana** 通过 `frser-sqlite-datasource` 插件读取 SQLite 并渲染仪表板。 4. 可选的 **AI 分析器**读取同一个数据库,将上下文主机和扫描数据发送给 **Ollama**,并将结果存储回 SQLite。 5. 该仪表板同时展示**原始被动侦察情报**和**AI 生成的上下文分析**。 ## 技术栈 | 组件 | 角色 | |---|---| | **Smap** | 被动的主机、服务和漏洞枚举 | | **Python** | 导入、富化、schema 迁移、AI 编排 | | **SQLite** | 轻量级的单文件数据存储 | | **Grafana** | 仪表板展示和运营可见性 | | **Ollama** | 用于 AI 分析的本地 LLM runtime | | **Docker Compose** | 可复现的部署 | ## 数据库 Schema 该平台使用单个 SQLite 数据库:**`smap.db`**。 ### 核心表 ``` scans hosts ports vulnerabilities technologies host_tags ``` ### AI 表 ``` ai_scan_analysis ai_host_analysis ```核心 schema 参考
| 表 | 主要用途 | |---|---| | **scans** | 每次扫描/导入存储一行记录 | | **hosts** | 存储富化后的主机级别情报 | | **ports** | 存储开放端口和服务元数据 | | **vulnerabilities** | 存储 CVE、CVSS、严重性和参考信息 | | **technologies** | 存储解析出的基于 CPE 的技术 | | **host_tags** | 存储生成的标签及其来源 |AI schema 参考
| 表 | 主要用途 | |---|---| | **ai_scan_analysis** | AI 扫描执行摘要和建议 | | **ai_host_analysis** | 包含评分和操作建议的基于主机的 AI 评估 |标签:AI风险缓解, Grafana, Smap, 威胁情报, 安全可视化, 实时处理, 开发者工具, 插件系统, 本地大模型, 版权保护, 逆向工具