tektegel/AbyssLens

GitHub: tektegel/AbyssLens

海事网络物理情报平台,融合 AIS 船舶追踪、威胁情报、OT 安全监控与硬件 SDR 接收,为 SOC 分析师和船队运营商提供实时态势感知。

Stars: 0 | Forks: 0

AbyssLens

AbyssLens — 海事网络物理情报平台

海事领域感知、网络威胁情报和 OT 安全监控的实时融合。

## 🔍 概述 **AbyssLens** 是一个海事安全情报平台,将 **AIS 船舶追踪**、**网络威胁情报**、**OT/IoT 传感器遥测**和 **OSINT** 融合为一个统一的战术作战视图。该平台专为 SOC 分析师、海事安全团队和船队运营商设计,能够实时检测针对全球海事基础设施的网络物理威胁。 该平台在两种模式下运行: - **🟢 实时模式 (LIVE)** — 连接到实时情报 API、硬件 SDR 接收器和 MQTT 传感器网桥 - **🔵 演示模式 (DEMO)** — 四个超逼真的威胁活动模拟,包含所有模块的完整数据 ## ⚡ 核心特性 ### 🗺️ 核心模块 | 模块 | 描述 | |--------|-------------| | **Executive Dashboard** | 实时威胁指标、船队风险分布、近期情报事件 | | **Tactical Map** | 基于 Leaflet 的全球 AIS 追踪,包含船舶航迹、风险叠加层和地理围栏 | | **Fleet Monitor** | 完整的船舶数据库,支持过滤、风险评分和数字孪生访问 | | **Intelligence Feed** | 多源聚合威胁事件,包含 IOC 提取 | ### 🧠 分析模块 | 模块 | 描述 | |--------|-------------| | **Correlation Graph** | 交互式实体关系可视化 —— 船舶、IP、凭证、IOC | | **Exposure Scanner** | IT/OT 基础设施扫描,集成 PulseDive、AbuseIPDB 和 OTX | | **Risk Engine** | 持续风险评分引擎,具备可配置的分流规则 | | **Cross-Domain Agent** | 自动化关联链分析,采用 MITRE ATT&CK for ICS 映射 | ### 📡 源模块 | 模块 | 描述 | |--------|-------------| | **Maritime News** | 实时新闻聚合,包含情感分析和船舶关联 | | **RF/Hardware Gateway** | HackRF/RTL-SDR AIS 接收、NMEA 串口输入、实时 RF 频谱 | | **IoT Sensor Grid** | 全船队 IoT 遥测 —— 燃油、振动、舱底水、GPS 完整性监控 | ## 🛡️ 演示场景 AbyssLens 包含 **4 个完全实现的威胁活动模拟**,每个场景包含 10-14 艘船舶、8-12 个情报事件、新闻文章、暴露扫描、IOC、传感器遥测和关联图: | # | 代号 | 区域 | 威胁类型 | |---|----------|--------|-------------| | **S1** | `OPERATION DARK TIDE` | 几内亚湾 | 海盗活动 + 油轮网络物理 OT 入侵 | | **S2** | `OPERATION PHANTOM RUDDER` | 霍尔木兹海峡 | 国家支持的 SATCOM 攻破 + ECDIS 导航劫持 | | **S3** | `OPERATION GHOST CARGO` | 地中海 | 黑暗船队规避制裁及 AIS 身份欺骗 | | **S4** | `OPERATION BURNING HORIZON` | 霍尔木兹海峡 | **全频谱攻击**:IRGCN 无人机袭击 + GPS 干扰 + APT C2 + 通过 Telegram 窃取船员数据 | ## 🔌 API 集成 所有 API 密钥通过本地 Node.js 后端(`localhost:3001`)代理,以防止 CORS 问题和客户端密钥泄露。 | 服务 | 协议 | 用途 | |---------|----------|---------| | [AISStream.io](https://aisstream.io) | WebSocket | 实时 AIS 船舶位置、航速、航向、身份 | | [NewsData.io](https://newsdata.io) | REST | 具有关键字过滤功能的海事安全新闻源 | | [OTX AlienVault](https://otx.alienvault.com) | REST | IOC 查询、威胁脉冲、对手情报 | | [AbuseIPDB](https://www.abuseipdb.com) | REST | 海事基础设施 IP 信誉评分 | | [PulseDive](https://pulsedive.com) | REST | 威胁指标扫描和风险评估 | | [LiveUAMap](https://liveuamap.com) | REST | GeoJSON 格式的实时冲突区监控 | ## 🔧 硬件支持 AbyssLens 支持模块化硬件集成,用于岸基 AIS 接收和船队 IoT 遥测: | 设备 | 类型 | 配置 | |--------|------|---------------| | **HackRF One** | SDR | AIS Ch. A/B 解调 (161.975/162.025 MHz),可配置增益/LNA/VGA | | **RTL-SDR v3** | SDR | 通过 `rtl_ais` 二进制文件进行低成本 AIS 监控 | | **Serial NMEA** | RS-232/USB | 直接 NMEA 0183 语句 (AIVDM, AIVDO, GPGGA, GPRMC) | | **VHF Antenna** | Passive | GP-3E 共线天线,SMA 连接器,桅杆/屋顶安装 | | **MQTT Bridge** | IoT | 船队传感器遥测 —— 燃油、振动、舱底水、GPS 完整性主题 | ## 🚀 快速开始 ### 前置条件 - **Node.js** ≥ 18 - **npm** ≥ 9 ### 安装 ``` git clone https://github.com/yourusername/abysslens.git cd abysslens npm install ``` ### 运行 ``` # 仅 Frontend(Demo 模式 — 无需 API keys) npm run dev:frontend # Full stack(Frontend + API Proxy Server) npm run dev # Production build npm run build ``` 应用将在 `http://localhost:5173` 上可用。代理服务器运行在 `http://localhost:3001`。 ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ AbyssLens Frontend │ │ React 19 + TypeScript + Tailwind 4 + Leaflet + Recharts │ ├─────────────┬─────────────┬──────────────┬──────────────────┤ │ Dashboard │ Tactical │ Intel Feed │ Cross-Domain │ │ Module │ Map │ + News │ Agent │ ├─────────────┴─────────────┴──────────────┴──────────────────┤ │ AppContext (Global State) │ │ Mode • Scenario • API Keys • Hardware │ ├─────────────────────────────────────────────────────────────┤ │ API Service Layer (apiService.ts) │ ├─────────────────────────────────────────────────────────────┤ │ Node.js Proxy Server (:3001) │ │ ┌──────┐ ┌──────┐ ┌─────┐ ┌────────┐ ┌──────────┐ │ │ │ AIS │ │ News │ │ OTX │ │AbuseDB │ │PulseDive │ │ │ │ WS │ │ Data │ │ │ │ │ │ │ │ │ └──┬───┘ └──┬───┘ └──┬──┘ └───┬────┘ └────┬─────┘ │ ├─────┼─────────┼─────────┼──────────┼────────────┼──────────┤ │ ▼ ▼ ▼ ▼ ▼ │ │ External APIs (keys stored server-side only) │ ├─────────────────────────────────────────────────────────────┤ │ Hardware Gateway │ │ ┌─────────┐ ┌──────────┐ ┌──────┐ ┌──────────────┐ │ │ │ HackRF │ │ RTL-SDR │ │ NMEA │ │ MQTT Bridge │ │ │ │ One │ │ v3 │ │ Serial│ │ (IoT Sensors)│ │ │ └─────────┘ └──────────┘ └──────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## 📁 项目结构 ``` abysslens/ ├── public/ # Static assets ├── server/ │ └── proxy.ts # Node.js API proxy + WebSocket relay ├── src/ │ ├── components/ │ │ ├── Dashboard.tsx # Executive command dashboard │ │ ├── TacticalMap.tsx # Leaflet global AIS map │ │ ├── FleetMonitor.tsx # Vessel database & filtering │ │ ├── IntelligenceFeed.tsx# Multi-source threat events │ │ ├── CorrelationGraph.tsx# Entity relationship graph │ │ ├── ExposureScanner.tsx # IT/OT vulnerability scanner │ │ ├── RiskEngine.tsx # Continuous risk scoring │ │ ├── CrossDomainAgent.tsx# MITRE ATT&CK correlation │ │ ├── MaritimeNews.tsx # News intelligence module │ │ ├── HardwareGateway.tsx # SDR/NMEA hardware interface │ │ ├── IoTSensorGrid.tsx # Fleet IoT sensor dashboard │ │ ├── VesselTwin.tsx # Digital twin slide-out panel │ │ └── Settings.tsx # API keys + hardware config │ ├── context/ │ │ └── AppContext.tsx # Global state management │ ├── data/ │ │ └── demoScenarios.ts # 4 threat campaign datasets │ ├── hooks/ │ │ └── useApiConnection.ts # API connection management │ ├── services/ │ │ └── apiService.ts # Unified API layer │ ├── App.tsx # Main app with routing │ └── index.css # Tactical dark theme ├── package.json ├── tsconfig.json ├── vite.config.ts └── README.md ``` ## 🎨 设计系统 AbyssLens 使用针对 SOC 环境优化的 **Tactical Dark(战术深色)** 主题: - **背景 (Background)**: `#050A14` — 深海军蓝黑 - **表面/面板 (Surface/Panel)**: `#0A1628` 带有毛玻璃模糊效果 - **强调色 (Accent)**: `#06B6D4` — 用于活动元素的青色 - **危险 (Danger)**: `#EF4444` — 用于严重威胁的红色 - **警告 (Warning)**: `#F59E0B` — 用于可疑活动的琥珀色 - **安全 (Safe)**: `#22C55E` — 用于健康系统的绿色 - **字体 (Typography)**: Inter (UI) + Roboto Mono (数据/代码) ## 📋 配置 ### 环境变量 不需要 `.env` 文件。所有 API 密钥存储在 `localStorage` 中,并通过设置 UI 进行管理。 ### 代理服务器端点 | 端点 | 方法 | 描述 | |----------|--------|-------------| | `WS /ais` | WebSocket | AISStream.io 中继 | | `GET /api/news` | GET | NewsData.io 代理 | | `GET /api/otx/*` | GET | OTX AlienVault 代理 | | `GET /api/abuseipdb/check` | GET | AbuseIPDB 检查代理 | | `GET /api/pulsedive/*` | GET | PulseDive 代理 | | `WS /hardware` | WebSocket | SDR/NMEA 硬件网关 | | `WS /iot` | WebSocket | IoT MQTT 转 WebSocket 网桥 | ## 🤝 贡献 1. Fork 本仓库 2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -m 'Add amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开一个 Pull Request ## 📄 许可证 本项目基于 MIT 许可证授权 —— 详见 [LICENSE](LICENSE) 文件。

为在网络和物理威胁领域交汇处行动的海事安全专业人员而构建。

AbyssLens —— 数字海洋与物理海洋交汇之处。

标签:AIS追踪, CIP, ESC4, GIS, GNU通用公共许可证, HTTP/HTTPS抓包, IoT安全, Leaflet, MDA, MITM代理, Node.js, OSINT, OT安全, PKINIT, React, Syscalls, Tailwind CSS, TypeScript, Vite, 仪表盘, 传感器遥测, 地理信息系统, 威胁情报, 威胁活动, 安全插件, 安全运营中心, 工控安全, 开发者工具, 态势可视化, 态势图, 态势感知, 数据融合, 海事安全, 海洋领域感知, 物联网安全, 网络威胁检测, 网络安全, 网络映射, 网络物理系统, 自动化攻击, 舰队管理, 船舶自动识别系统, 运营技术安全, 隐私保护, 雷达, 风险分析