hamzazakakhan/sentinel-os

GitHub: hamzazakakhan/sentinel-os

一个面向国防与情报领域的生产级多域情报融合 C4ISR 平台,整合 OSINT、SIGINT、网络防御、AI 分析与自动化响应于一体。

Stars: 0 | Forks: 0

# Sentinel OS **生产就绪的国防与情报操作系统** 一个基于微服务架构构建的实时、可扩展的 C4ISR(指挥、控制、通信、计算机、情报、监视与侦察)平台,采用事件驱动的 Kafka 骨干网络、Istio 服务网格和 AI 驱动的分析技术。 ## 架构概述 ``` ┌─────────────────────────────────────────────────────────────────────────────────┐ │ Istio Ingress Gateway │ │ (TLS 1.3 / mTLS / JWT Auth) │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Sentinel UI │ │ Tauri Shell │ │ API Gateway │ │ Auth Service │ │ │ │ (React/TS) │ │ (Desktop HUD)│ │ (GraphQL) │ │ (JWT/MFA) │ │ │ └──────────────┘ └──────────────┘ └──────┬───────┘ └──────────────┘ │ │ │ │ │ ┌───────────────────────────────────────────┼──────────────────────────────┐ │ │ │ Apache Kafka (Event Bus) │ │ │ │ 3-broker cluster, 25+ topics, Strimzi operator │ │ │ └────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌────┴──┐┌──┴───┐┌─┴────┐┌┴─────┐┌┴─────┐┌┴─────┐┌┴──────┐┌┴──────┐┌──┴───┐ │ │ │Ingest ││ AI ││OSINT ││Fusion││Cyber ││Respon││SIGINT ││ Geo ││Simul │ │ │ │Service││Servce││Servce││Servce││Servce││ se ││Service││Service││ation │ │ │ │RTSP ││YOLOv8││RSS ││Neo4j ││IDS ││Rules ││ADS-B ││NASA ││MITRE │ │ │ │MQTT ││LSTM ││API ││Graph ││SIEM ││Apprvl││AIS ││OWM ││Twin │ │ │ │Radar ││IF ││NLP ││Spatal││ELK ││Auto ││SDR ││USGS ││Honeyp│ │ │ │Drone ││Ollama││Scrape││Link ││Threat││Pipes ││APRS ││SatImg ││R/B/P │ │ │ └───────┘└──────┘└──────┘└──────┘└──────┘└──────┘└───────┘└───────┘└──────┘ │ │ │ │ │ │ ┌────┴────────────┐ ┌─────────────────┐ ┌────────────────────┴──┐ │ │ │ Healing Agent │ │ Governance │ │ Live Integrations │ │ │ │ MAPE-K Loop │ │ Audit/Comply │ │ CTI/OSINT/SIGINT │ │ │ │ Ollama RCA │ │ AI Governance │ │ Real-time Feeds │ │ │ │ Tamper Response │ │ Retention │ │ Auto-Ingest │ │ │ └─────────────────┘ └─────────────────┘ └───────────────────────┘ │ │ │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ PostgreSQL+PostGIS │ MongoDB │ Neo4j │ Redis │ Elasticsearch │ TimescaleDB │ │ RLS + Audit Chain │ GridFS │ Graph │ Cache │ SIEM Indexing │ Hypertables │ ├─────────────────────────────────────────────────────────────────────────────────┤ │ Sentinel LSM (Kernel) │ Sentinel-WM (Wayland Compositor) │ CRT/Radar Shaders │ │ RTL-SDR Driver │ wlroots 0.19 + 6 Workspaces │ GPU Post-Processing│ └─────────────────────────────────────────────────────────────────────────────────┘ ``` ## 服务 (13个微服务 + CLI) | 服务 | 端口 | 语言 | 描述 | |---------|------|----------|-------------| | **API Gateway** | 4000 | TypeScript | GraphQL (Apollo Server 4)、订阅、指令、DataLoader、速率限制 | | **Auth Service** | 4001 | TypeScript | JWT RS256/ES256、MFA/TOTP、RBAC、API 密钥、会话管理、账户锁定 | | **Ingestion Service** | 4002 | TypeScript + Go | RTSP/MQTT/雷达/无人机/Webhook 连接器、边缘处理、DLQ | | **AI Service** | 4003/5001 | TypeScript + Python | YOLOv8、Isolation Forest、LSTM、Ollama LLM、漂移监控、模型注册表 | | **OSINT Service** | 4004 | TypeScript | RSS/API/抓取/Telegram/Reddit、IOC 提取、NLP 情感分析、GDELT、NewsAPI | | **Fusion Service** | 4005 | TypeScript | Neo4j 图关联、地理空间邻近度、实体链接、路径分析 | | **Cyber Service** | 4006 | TypeScript | Suricata IDS、Elasticsearch SIEM、威胁情报源、CVE 丰富 | | **Response Service** | 4007 | TypeScript | 规则引擎 (条件 + 操作)、审批工作流、自动化流水线 | | **Simulation Service** | 4008 | TypeScript | 红/蓝/紫队、数字孪生、MITRE ATT&CK (190+ 项技术)、蜜罐 | | **Governance Service** | 4009 | TypeScript | 防篡改审计日志、保留策略、合规性检查、AI 治理 | | **SIGINT Service** | 4010 | TypeScript + Python | ADS-B (OpenSky)、AIS (MarineTraffic)、SDR 频谱、APRS、ACARS、KrakenSDR | | **Geo Service** | 4011 | TypeScript | NASA GIBS 卫星图像、OpenWeatherMap、USGS 地震、Sentinel Hub | | **Healing Agent** | 4012 | TypeScript | MAPE-K 自愈循环、Ollama RCA、Runbook 自动化、篡改响应 | | **CLI** | — | TypeScript | Commander.js 操作员 CLI:alerts, sensors, cyber, response, sim, osint, health | | **Live Integrations** | — | Python | 持续的 CTI/OSINT/SIGINT 源运行器,自动摄取至 API Gateway | ## 技术栈 | 层 | 技术 | |-------|-----------| | **Runtime** | Node.js 20, TypeScript 5, Python 3.12, Go 1.22, Rust 1.77, C (kernel) | | **API** | GraphQL (Apollo Server 4) 包含 subscriptions + WebSocket | | **Messaging** | Apache Kafka 3.x (KafkaJS) — 3 节点代理集群,25+ Strimzi 主题 | | **Primary DB** | PostgreSQL 16 + PostGIS 3.4 + TimescaleDB (超表, RLS) | | **Document DB** | MongoDB 7 (GridFS, 验证模式) | | **Graph DB** | Neo4j 5 (实体链接、路径分析、威胁图) | | **Cache/Sessions** | Redis 7 (集群模式, 发布/订阅, 速率限制) | | **Search/SIEM** | Elasticsearch 8 + Kibana (IDS 日志索引) | | **AI/ML** | YOLOv8, scikit-learn, PyTorch LSTM, Ollama (tinyllama/llama3), TorchSig | | **IDS** | Suricata (与 Cyber Service 集成) | | **Desktop Shell** | Tauri v2 (Rust 后端 + React 前端)、全屏 HUD | | **Compositor** | 自定义 Wayland 合成器 (wlroots 0.19)、CRT/雷达 GLSL 着色器 | | **Kernel** | 自定义 LSM (模块锁定、挂载审计、ptrace 拦截)、RTL-SDR 字符设备驱动 | | **Observability** | OpenTelemetry, Prometheus, Grafana, Jaeger | | **Service Mesh** | Istio (严格 mTLS, 流量管理, JWT 认证, 熔断器) | | **Orchestration** | Kubernetes (Deployments, HPA, PDB, NetworkPolicy, KEDA) | | **Database HA** | CloudNativePG (3节点流复制) | | **Helm** | 6 个 Helm charts (gateway, ai, cyber, fusion, ingestion, osint) | | **IaC** | Terraform (VPC, EKS, RDS, ElastiCache, MSK) — 3 个环境 | | **CI/CD** | GitHub Actions (lint → test → scan → build → deploy → ISO) | | **Build** | Turborepo (npm workspaces monorepo) | | **ISO** | live-build (Kali rolling, EFI + BIOS 混合, 6.3 GB) | ## 项目结构 ``` sentinel-os/ ├── .github/workflows/ci-cd.yaml # CI/CD: lint, test, scan, build, ISO ├── ai-workers/ # Python AI worker processes │ ├── yolov8_worker.py # YOLOv8 object detection (Ultralytics) │ ├── lstm_worker.py # Time-series prediction (PyTorch) │ ├── torchsig_worker.py # RF signal classification (TorchSig) │ ├── system_anomaly.py # System anomaly detection │ ├── predictive_failure.py # Predictive failure analysis │ └── gnuradio/adsb_decoder.py # GNURadio ADS-B decoder ├── cli/src/index.ts # Commander.js operator CLI ├── compositor/ # Custom Wayland compositor │ ├── sentinel-wm.c # wlroots 0.19 compositor (6 workspaces) │ ├── config.lua # Lua configuration │ ├── shaders/crt.frag # CRT scanline + phosphor glow shader │ └── shaders/radar.frag # Radar sweep animation shader ├── databases/ │ ├── postgresql/schemas/ # 3 migration files, 30+ tables, RLS │ │ ├── 001_extensions.sql # PostGIS, TimescaleDB, pg_trgm, uuid │ │ ├── 002_core_types.sql # 15 ENUM types (roles, severity, etc.) │ │ └── 003_core_tables.sql # All tables + triggers + checksums │ ├── mongodb/schemas/ # Collection validation schemas │ └── neo4j/constraints/ # Graph constraints & indexes ├── docs/ │ ├── ISO_BUILD.md # ISO build instructions │ ├── KERNEL_BUILD.md # Kernel module compilation │ ├── LIVE_USB.md # USB flashing guide │ └── SEMESTER_PROJECT_EVALUATION_REPORT.md ├── infrastructure/ │ ├── docker/ │ │ ├── docker-compose.yml # Production (30+ containers, replicas) │ │ └── docker-compose.dev.yml # Development stack │ ├── istio/ │ │ ├── gateway.yaml # TLS 1.3 ingress, HTTPS redirect │ │ ├── virtual-services.yaml # Routing, retries, timeouts, CORS │ │ ├── authorization-policies.yaml # Strict mTLS, namespace isolation │ │ └── circuit-breakers.yaml # Outlier detection, connection pools │ ├── kafka/topics.yaml # 25 Strimzi KafkaTopic resources │ ├── kubernetes/ │ │ ├── base/ # Deployments, HPA, PDB, NetworkPolicy │ │ ├── helm-charts/ # 6 Helm charts with values │ │ ├── cloudnativepg-cluster.yaml # PostgreSQL HA (3 instances) │ │ └── keda-scalers.yaml # Kafka-lag autoscaling │ └── terraform/ │ ├── modules/vpc/ # AWS VPC (public/private/isolated) │ ├── modules/eks/ # EKS + GPU node groups │ ├── modules/rds/ # RDS PostgreSQL │ ├── modules/elasticache/ # Redis cluster │ ├── modules/kafka/ # Amazon MSK │ └── environments/{dev,staging,prod} ├── kernel/ │ ├── sentinel-lsm.c # Linux Security Module │ ├── rtlsdr-sentinel.c # RTL-SDR character device driver │ └── Makefile ├── scripts/ │ ├── build-iso.sh # Full ISO build script │ ├── generate-docker-assets.sh │ └── seed/ # DB seed scripts (PG, Mongo, Neo4j) ├── services/ # 13 microservices (see table above) ├── shared/ │ ├── types/index.ts # Shared TypeScript interfaces │ ├── constants/index.ts # Shared constants │ ├── crypto/index.ts # Shared crypto utilities │ └── utils/index.ts # Shared utility functions ├── shell/ # Tauri v2 Desktop Shell │ ├── src/App.tsx # Multi-workspace HUD layout │ ├── src/panels/ # 11 panel components │ │ ├── TacticalMap.tsx # MapLibre GL + alert clustering │ │ ├── SigintWaterfall.tsx # Real-time SDR spectrum display │ │ ├── IntelGraph.tsx # D3 force-directed graph │ │ ├── CveDashboard.tsx # CVE/vulnerability dashboard │ │ ├── Terminal.tsx # Embedded xterm.js terminal │ │ ├── EncryptionWorkbench.tsx # Crypto tools │ │ ├── OsintBrowser.tsx # OSINT feed browser │ │ ├── SimulationRoom.tsx # Red/Blue team simulation │ │ ├── ReportGenerator.tsx # Intelligence report builder │ │ ├── PakistanFeed.tsx # Theater-specific feed │ │ └── WeatherGeo.tsx # Weather/geospatial overlay │ └── src-tauri/ # Rust Tauri backend │ ├── src/main.rs │ ├── Cargo.toml │ └── tauri.conf.json ├── tests/test_integration.py # pytest integration suite ├── ui/ # React web dashboard │ ├── src/pages/ # Dashboard, Alerts, Map, Sensors, etc. │ ├── src/graphql/ # Queries, mutations, subscriptions │ └── src/store/useStore.ts # Zustand global state ├── package.json # Monorepo root (npm workspaces) └── turbo.json # Turborepo pipeline config ``` ## 详细服务描述 ### API Gateway (端口 4000) 所有客户端交互的中心 GraphQL 入口点。基于 Apollo Server 4 和 Express 构建。 - **Schema**:强类型的 GraphQL schema,带有自定义标量 (`DateTime`, `JSON`, `BigInt`, `UUID`) - **Subscriptions**:用于告警、检测、跟踪、网络事件、传感器状态、审批和系统健康的实时 WebSocket 订阅 - **Middleware**:认证 (JWT 验证)、OpenTelemetry 追踪、压缩、Helmet 安全头、速率限制 (可配置窗口/最大值) - **DataLoaders**:带请求级缓存的批量数据库查询;通过 `SET LOCAL app.current_user_id` 支持行级安全 - **Directives**:基于分类的字段访问、每次操作的速率限制 - **Pagination**:所有列表查询均采用基于游标的分页 - **Health**:`/health/live` 和 `/health/ready` 端点 - **Kafka 集成**:发布和订阅事件以向客户端实时推送 ### Auth Service (端口 4001) 处理所有身份和访问管理。 - **Registration**:每个组织的电子邮件/用户名唯一性,bcrypt 密码哈希 (12轮) - **Login**:凭证验证、失败尝试后账户锁定 (基于 Redis 的计数器)、JWT 访问 + 刷新令牌颁发 - **JWT**:RS256/ES256 签名,颁发者 `sentinel-os`,受众 `sentinel-api`,30秒时钟容差 - **MFA**:带 QR 码生成的 TOTP 设置/启用 (RFC 6238) - **API Keys**:前缀 (`sk_`)、bcrypt 哈希、范围权限、过期支持 - **Sessions**:基于 Redis 的会话管理,支持登出/撤销 - **RBAC**:角色 — `OPERATOR`、`ANALYST`、`COMMANDER`、`ADMIN`、`SUPER_ADMIN` - **Clearance**:层级 — `UNCLASSIFIED → CONFIDENTIAL → SECRET → TOP_SECRET → SCI` ### Ingestion Service (端口 4002) 带边缘处理的多协议传感器数据摄取。 - **RTSP 连接器**:基于 FFmpeg 的 RTSP 流捕获、帧提取、Kafka 发布 - **MQTT 连接器**:订阅 IoT 传感器主题、解析负载、缓冲至 Kafka - **雷达连接器**:用于雷达扫描数据的 UDP 套接字监听器、方位角/距离解析 - **无人机连接器**:用于兼容 MAVLink 无人机遥测的 WebSocket 服务器 - **Webhook Router**:HMAC-SHA256 验证的 webhooks,用于传感器数据、情报源、威胁指标、网络事件 - **边缘处理**:运动检测、帧差分、AI 流水线前的预过滤 - **摄取缓冲**:具有可配置刷新间隔的批量 Kafka 生产者 - **死信队列**:失败的消息路由到 DLQ 主题以进行重试 ### AI Service (端口 4003 / Python 5001) 双运行时 AI 推理引擎。 **TypeScript 层 (端口 4003)**: - 带有版本跟踪和健康监控的模型注册表 - 将推理请求路由到适当模型的流水线管理器 - 漂移检测 — 监控输入特征分布以发现概念漂移 - 用于异步推理请求的 Kafka 消费者,以及用于结果的生产者 **Python 层 (端口 5001)**: - **YOLOv8**:对视频帧进行目标检测 (人员、车辆、飞机、武器);Ultralytics `yolov8n.pt` (nano) 用于 CPU,`yolov8x.pt` 用于 GPU - **Isolation Forest**:对传感器遥测向量进行异常检测;可配置的污染阈值 (默认 0.1) - **LSTM**:传感器读数的时间序列预测;2层 LSTM (hidden_size=64),在窗口序列上训练 - **Ollama Client**:7 个提示模板 (见 AI 模型部分),可配置的模型/温度/上下文 - **TorchSig Worker**:针对 SDR 数据的 RF 信号分类 **AI Workers** (独立 Python 进程): - `yolov8_worker.py` — 视频帧的 Kafka 消费者 → 检测结果 - `lstm_worker.py` — 时间序列的 Kafka 消费者 → 预测结果 - `torchsig_worker.py` — RF 信号分类 - `system_anomaly.py` — 基础设施异常检测 - `predictive_failure.py` — 预测性故障分析 - `gnuradio/adsb_decoder.py` — GNURadio ADS-B 信号解码 ### OSINT Service (端口 4004) 开源情报收集与分析。 - **RSS Collector**:可配置的源 (CISA, US-CERT, SANS ISC, BleepingComputer, KrebsOnSecurity, DarkReading, NATO),具有轮询间隔 - **API Collectors**:NewsAPI, GDELT, VirusTotal, AlienVault OTX, Shodan, Have I Been Pwned - **Web Scraper**:基于 Cheerio 的 HTML 提取,带有可配置的 CSS 选择器 - **Telegram/Reddit**:用于威胁情报的社交媒体监控 - **IOC Extraction**:自动从内容中提取 IP、域名、URL、哈希、CVE - **NLP Pipeline**:情感分析、可信度评分、通过 Ollama 进行虚假信息检测 - **Deduplication**:基于 Redis 的已见项目跟踪以防止重复 - **Scheduling**:基于 Cron 的按源轮询,具有各自的间隔 ### Fusion Service (端口 4005) 使用 Neo4j 图数据库的情报融合引擎。 - **Graph Correlator**:在 Neo4j 中创建节点 (告警、IOC、实体、传感器、参与者) 和边 (关系) - **Geospatial Proximity**:基于地理邻近性链接实体 (PostGIS 计算) - **Entity Linking**:跨情报域合并相关实体 - **Path Analysis**:图遍历以寻找看似无关事件之间的联系 - **Temporal Correlation**:在可配置的时间窗口内链接事件 - **Cross-Domain Fusion**:将 OSINT + SIGINT + CYBER + SENSOR 数据关联为统一的情报视图 - **Kafka Consumer**:订阅检测、告警、OSINT 项目、网络事件;发布相关性结果 ### Cyber Service (端口 4006) 网络防御集成层。 - **Suricata IDS**:解析 EVE JSON 日志,将告警标准化为 sentinel schema - **Elasticsearch SIEM**:索引所有网络事件以进行全文搜索和分析 - **Threat Intel Feeds**:摄取 STIX/TAXII 指标、AlienVault OTX、MISP - **CVE Enrichment**:将检测与 NVD/CVE 数据库进行交叉引用 - **MITRE ATT&CK Mapping**:用战术/技术 ID (T1xxx) 标记事件 - **IOC Matching**:将网络流量与已知 IOC 进行实时匹配 - **Kibana Dashboards**:为 SOC 操作员预配置的仪表板 - **Alert Correlation**:将相关的网络事件分组为统一的安全事件 ### Response Service (端口 4007) 带人在回路审批的自动化响应编排。 - **Rule Engine**:基于条件的规则 (严重程度、领域、来源、关键字匹配) → 操作集 - **Approval Workflows**:对高影响操作的多级 (COMMANDER+ 权限) - **Action Types**:封禁 IP、隔离主机、通知团队、创建工单、触发 playbook、丰富 IOC、隔离文件 - **Execution Pipeline**:条件评估 → 风险评估 → 审批 (如果需要) → 执行 → 审计 - **Kafka Integration**:监听告警/检测主题,发布审批请求和执行结果 - **Rule Toggle**:无需删除即可启用/禁用规则 - **Cooldown**:每规则冷却期以防止操作风暴 ### Simulation Service (端口 4008) 红/蓝/紫队演练与数字孪生建模。 - **MITRE ATT&CK Engine**:涵盖 14 项战术 (侦察 → 影响) 的 190+ 项技术 - **Team Exercises**:以 RED/BLUE/PURPLE 团队身份发起攻击,跟踪检测/遗漏/拦截率 - **Kill Chain Coverage**:报告跨场景的每种战术的检测覆盖率 - **Digital Twin**:镜像真实基础设施 — 资产 (服务器、工作站、防火墙、传感器)、网络 (CIDR、防火墙规则、区域) - **Attack Surface Analysis**:识别每个区域的暴露服务和开放漏洞 - **Scenario Management**:创建、启动、完成带有团队分配的场景 - **Metrics**:平均检测时间、检测率、每个场景的拦截率 - **Honeypots**:用于对手检测和欺骗的诱饵资产 ### Governance Service (端口 4009) 合规、审计与 AI 治理。 - **Tamper-Evident Audit Logs**:SHA-256 链式校验和 (`previous_checksum` → `current_checksum`),不可变的仅追加模式 - **Retention Policies**:可配置的按表保留策略及自动清理 - **Compliance Checks**:验证分类标记、访问控制、数据处理 - **AI Governance**:模型性能监控、偏见检测、可解释性要求 - **Data Classification**:资源级分类标记 (UNCLASSIFIED → TOP_SECRET/SCI) - **Reporting**:生成审计期间的合规报告 ### SIGINT Service (端口 4010) 信号情报收集。 - **ADS-B (OpenSky Network)**:实时飞机位置跟踪、呼号/ICAO24 丰富 - **AIS (MarineTraffic)**:船舶位置跟踪、MMSI/IMO 解析 - **SDR Spectrum Analysis**:RTL-SDR 功率谱密度、峰值检测、频率占用 - **APRS**:业余无线电位置报告 - **ACARS**:飞机通信数据 - **KrakenSDR**:测向 / 地理定位 - **GNURadio Integration**:用于解调和解码的信号处理流水线 ### Geo Service (端口 4011) 地理空间情报和环境数据。 - **NASA GIBS**:卫星图像图层切片 (MODIS, VIIRS, Landsat) - **OpenWeatherMap**:当前天气、预报、恶劣天气警报 - **USGS Earthquakes**:实时地震事件数据 - **Sentinel Hub**:哥白尼卫星图像 (SAR, 光学) - **GeoNames**:地理特征和地名解析 ### Healing Agent (端口 4012) 基于 MAPE-K 控制循环的自主自愈系统。 - **Monitor**:Prometheus alertmanager webhook 接收器 + 定期服务健康轮询 - **Analyze**:检查是否存在针对事件类型的自动化 Runbook - **Plan**:选择合适的 Runbook 或上报给 Ollama LLM 进行根本原因分析 - **Execute**:运行修复动作 (Pod 重启、配置回滚、资源扩容) - **Knowledge**:存储修复历史以进行模式识别 - **Ollama RCA**:LLM 驱动的根本原因分析,带有结构化输出 (根本原因、置信度、紧急措施、预防) - **Tamper Response**:处理由 Falco/IMA/RASP 检测到的代码完整性违规 - **Kafka Consumer**:订阅 `sentinel.security.tamper` 和 `sentinel.healing.commands` 主题 ## Desktop Shell (Tauri v2) 使用 Tauri v2 (Rust + React) 构建的全屏军用级 HUD。 ### 工作区 (6 个可配置布局) | 工作区 | 面板 | 描述 | |-----------|--------|-------------| | **INTEL** | 地图、情报图、报告 | 情报分析工作区 | | **CYBER** | CVE 仪表板、OSINT 浏览器、终端 | 网络作战工作区 | | **COMMS** | Pakistan 源、天气/地理、报告 | 通信与战区感知工作区 | | **SIGINT** | SIGINT 瀑布图、地图、终端 | 信号情报工作区 | | **SIM** | 模拟室、情报图、终端 | 红/蓝队演练 | | **CRYPTO** | 加密工作台、终端、报告 | 密码学操作 | ### Shell 功能 - 实时威胁等级指示器 (LOW → SEVERE) - 服务健康状态栏 (在线/总节点数) - SDR 设备检测指示器 - Tor 电路状态指示器 - 实时时钟 - 带有 CRT 扫描线美学的暗黑主题 - 键盘快捷键 (Alt+1-6 切换工作区) ### Tauri 配置 - **Target**:全屏、无装饰窗口 (1920×1080) - **Bundle**:Linux 的 `.deb` 和 `.AppImage` - **CSP**:严格的内容安全策略 (无内联脚本,白名单连接) - **Plugins**:Shell (进程生成)、FS (范围文件访问) ## 自定义内核模块 ### Sentinel LSM (Linux Security Module) 文件:`kernel/sentinel-lsm.c` - **Module Load Lockdown**:在启动后阻止内核模块加载 (可通过 `lockdown_active` 参数配置) - **Mount Auditing**:使用设备、类型、标志、PID 记录所有挂载操作 - **Service Integrity**:阻止挂载到 `/opt/sentinel` (服务二进制目录) 之上 - **Ptrace Protection**:阻止 ptrace 附加到 Sentinel 进程 (反调试) - **xattr Privileged Check**:具有 `security.sentinel` xattr 的进程获得提升的信任 ### RTL-SDR 字符设备驱动 文件:`kernel/rtlsdr-sentinel.c` - 用于 RTL-SDR USB 加密狗的自定义字符设备 (`/dev/rtlsdr0`) - 用于频率调谐、采样率、增益控制的 `ioctl` 接口 - 用于高吞吐量 SDR 数据的内核空间缓冲 - 与 SIGINT 服务集成 ## 自定义 Wayland 合成器 (Sentinel-WM) 文件:`compositor/sentinel-wm.c` 基于 **wlroots 0.19** 构建 (与 Sway/Hyprland 同源)。 - **6 个命名工作区**:INTEL, CYBER, COMMS, SIGINT, MAP, TERMINAL - **Keybindings**:Alt+1-6 (工作区)、Alt+Shift+Return (终端)、Alt+Shift+Q (杀死进程)、Alt+Tab (循环切换) - **Full wlroots Integration**:光标、键盘、席位、XDG shell、场景图 - **GPU Shaders**: - `crt.frag`:CRT 扫描线、暗角、磷光发光、微弱闪烁 - `radar.frag`:带有距离环和衰减轨迹的旋转雷达扫描波束 ## 快速开始 ### 前置条件 - Docker 及 Docker Compose v2 - Node.js 20+ (带有 npm 9+) - Python 3.12+ (用于 AI workers) - CUDA toolkit (可选,用于 GPU 推理) - Rust 1.77+ (用于 Tauri shell,可选) ### 开发 ``` # 克隆并安装 git clone https://github.com/hamzazakakhan/sentinel-os.git cd sentinel-os npm install # 启动基础设施 (databases + Kafka + observability) docker compose -f infrastructure/docker/docker-compose.dev.yml up -d # 运行 database migrations psql -h localhost -U sentinel_admin -d sentinel \ -f databases/postgresql/schemas/001_extensions.sql \ -f databases/postgresql/schemas/002_core_types.sql \ -f databases/postgresql/schemas/003_core_tables.sql # Seed demo data psql -h localhost -U sentinel_admin -d sentinel -f scripts/seed/seed-postgresql.sql node scripts/seed/seed-mongodb.js cat scripts/seed/seed-neo4j.cypher | cypher-shell -u neo4j -p password # 以 dev mode 启动服务 (每个在单独的终端中) npm run dev --workspace=services/api-gateway npm run dev --workspace=services/auth-service npm run dev --workspace=services/ingestion-service npm run dev --workspace=services/ai-service npm run dev --workspace=services/osint-service npm run dev --workspace=services/fusion-service npm run dev --workspace=services/cyber-service npm run dev --workspace=services/response-service npm run dev --workspace=services/simulation-service npm run dev --workspace=services/governance-service npm run dev --workspace=services/sigint-service npm run dev --workspace=services/geo-service npm run dev --workspace=services/healing-agent # 启动 AI workers python ai-workers/yolov8_worker.py & python ai-workers/lstm_worker.py & python ai-workers/torchsig_worker.py & # 启动 UI (web dashboard) cd ui && npm run dev # 启动 Shell (desktop HUD) cd shell && npm run tauri dev ``` ### 全栈 ``` # Production mode (所有 30+ 容器) docker compose -f infrastructure/docker/docker-compose.yml up -d # Development mode (更轻量,hot-reload) docker compose -f infrastructure/docker/docker-compose.dev.yml up -d ``` ### Kubernetes 部署 ``` # 创建 namespace 并应用 base resources kubectl apply -f infrastructure/kubernetes/base/namespace.yaml kubectl apply -f infrastructure/kubernetes/base/ # 部署 CloudNativePG PostgreSQL 集群 kubectl apply -f infrastructure/kubernetes/cloudnativepg-cluster.yaml # 应用 Istio service mesh 配置 kubectl apply -f infrastructure/istio/ # 通过 Strimzi operator 创建 Kafka topics kubectl apply -f infrastructure/kafka/topics.yaml # 通过 Helm 部署服务 helm install sentinel-gateway infrastructure/kubernetes/helm-charts/sentinel-gateway/ helm install sentinel-ai infrastructure/kubernetes/helm-charts/sentinel-ai/ helm install sentinel-cyber infrastructure/kubernetes/helm-charts/sentinel-cyber/ helm install sentinel-fusion infrastructure/kubernetes/helm-charts/sentinel-fusion/ helm install sentinel-ingestion infrastructure/kubernetes/helm-charts/sentinel-ingestion/ helm install sentinel-osint infrastructure/kubernetes/helm-charts/sentinel-osint/ # 应用 KEDA autoscalers kubectl apply -f infrastructure/kubernetes/base/keda-scalers.yaml ``` ### Terraform (AWS) ``` cd infrastructure/terraform/environments/dev terraform init terraform plan -var="environment=dev" terraform apply ``` ### 可启动 ISO ``` # 构建 ISO (需要 root 权限,约 45 分钟) sudo ./scripts/build-iso.sh # Flash 到 USB sudo dd if=build/sentinel-os-1.0.0-full/sentinel-os-1.0.0-full.iso of=/dev/sdX bs=4M status=progress && sync ``` ## 安全模型 ### 认证 - **JWT Tokens**:RS256/ES256 签名,15分钟访问 + 7天刷新并带轮换 - **Issuer/Audience**:`sentinel-os` / `sentinel-api` - **Clock Tolerance**:分布式系统 30 秒时钟容差 - **Account Lockout**:基于 Redis 的计数器,在 N 次失败尝试后锁定 ### 多因素认证 - **TOTP**:符合 RFC 6238 标准,30 秒窗口 - **QR Code**:用于验证器应用的供应 URI - **Backup Codes**:一次性恢复代码 ### 授权 - **RBAC Roles**:OPERATOR → ANALYST → COMMANDER → ADMIN → SUPER_ADMIN - **Clearance Levels**:UNCLASSIFIED → CONFIDENTIAL → SECRET → TOP_SECRET → SCI - **Per-Operation Enforcement**:GraphQL 解析器检查角色和许可级别 - **API Keys**:前缀 (`sk_`)、bcrypt 哈希、范围权限、过期时间 ### 传输安全 - **TLS 1.3**:Istio ingress 网关最低使用 `TLSV1_3`,AES-256-GCM 密码套件 - **mTLS**:所有服务间通信采用严格的 mutual TLS - **HTTPS Redirect**:在网关层进行 HTTP → HTTPS 重定向 ### 数据安全 - **Row-Level Security**:PostgreSQL RLS 带 `SET LOCAL app.current_user_id` - **Field-Level Encryption**:应用层的敏感字段加密 - **Tamper-Evident Audit**:SHA-256 链式校验和 (每个条目链接到前一个) - **Classification Marking**:每条记录都标有分类级别 ### 网络安全 - **NetworkPolicies**:按服务的 Kubernetes 网络分段 - **Istio AuthorizationPolicies**:命名空间级和服务级访问控制 - **Deny-by-Default**:除非明确允许,否则拒绝所有流量 - **Ingress Isolation**:只有 Istio ingress 网关可以到达 API Gateway ### 内核安全 (Sentinel LSM) - 启动完成后阻止模块加载 - 阻止在 `/opt/sentinel` 上的挂载操作 - 阻止对 Sentinel 进程的 Ptrace 操作 - 使用 PID 跟踪审计所有挂载操作 ## Kafka 主题 (25 个由 Strimzi 管理) | 主题 | 分区 | 副本 | 保留 | 压缩 | 目的 | |-------|-----------|----------|-----------|-------------|---------| | `sentinel.ingestion.video-frames` | 12 | 3 | 1h | lz4 | 来自 RTSP/无人机的视频帧数据 | | `sentinel.ingestion.sensor-telemetry` | 24 | 3 | 24h | snappy | IoT 传感器读数 | | `sentinel.ingestion.radar-sweeps` | 6 | 3 | 2h | lz4 | 雷达回波数据 | | `sentinel.ingestion.intel-feeds` | 6 | 3 | 7d | snappy | 原始情报源 | | `sentinel.ingestion.generic` | 6 | 3 | 7d | — | 通用摄取 | | `sentinel.detections.created` | 12 | 3 | 30d | snappy | AI 检测事件 | | `sentinel.alerts.created` | 6 | 3 | 90d | snappy | 新的告警通知 | | `sentinel.alerts.updated` | 6 | 3 | 90d | — | 告警状态更改 | | `sentinel.tracks.updated` | 12 | 3 | 7d | — | 对象跟踪更新 (紧凑) | | `sentinel.cyber.raw-events` | 24 | 3 | 30d | snappy | IDS/网络事件 | | `sentinel.cyber.threat-indicators` | 6 | 3 | 90d | — | IOC 指标 (紧凑) | | `sentinel.osint.items` | 12 | 3 | 30d | snappy | 收集的 OSINT 项目 | | `sentinel.osint.for-analysis` | 6 | 3 | 7d | — | 排队等待 NLP 分析的项目 | | `sentinel.ai.inference-requests` | 12 | 3 | 24h | — | AI 推理队列 | | `sentinel.ai.inference-results` | 12 | 3 | 7d | — | 推理结果 | | `sentinel.ai.analysis-results` | 6 | 3 | 30d | — | Ollama 分析输出 | | `sentinel.ai.errors` | 3 | 3 | 30d | — | AI 流水线错误 | | `sentinel.fusion.correlations` | 6 | 3 | 90d | — | 跨域相关性 | | `inel.response.approvals` | 3 | 3 | 90d | — | 待处理审批请求 | | `sentinel.response.executed` | 3 | 3 | 90d | — | 已执行的响应操作 | | `sentinel.missions.updated` | 3 | 3 | 30d | — | 任务状态更改 | | `sentinel.system.health` | 3 | 3 | 7d | — | 服务健康 (紧凑) | | `sentinel.simulation.ticks` | 6 | 3 | 24h | — | 模拟时间刻度 | | `sentinel.sensors.status` | 6 | 3 | 7d | — | 传感器状态 (紧凑) | | `sentinel.audit.events` | 6 | 3 | 365d | snappy | 不可变审计跟踪 | | `sentinel.healing.events` | — | — | — | — | 自愈结果 | | `sentinel.security.tamper` | — | — | — | — | 代码篡改告警 | 所有主题均配置了 `min.insync.replicas: 2` 以保证持久性。 ## AI 模型与流水线 ### 模型注册表 AI 服务维护一个跟踪以下内容的模型注册表: - 模型名称、版本、框架 - 状态:`TRAINING`、`VALIDATING`、`DEPLOYED`、`DEPRECATED`、`FAILED` - 性能指标 (准确度、延迟、吞吐量) - 漂移检测分数 ### YOLOv8 目标检测 | 参数 | 值 | |-----------|-------| | Framework | Ultralytics | | Models | `yolov8n.pt` (CPU)、`yolov8x.pt` (GPU) | | Target Classes | person, bicycle, car, motorcycle, bus, truck, dog + 自定义武器 | | Input | 视频帧 (RTSP, 无人机, 已上传) | | Output | 边界框、类别标签、置信度分数 | | Kafka Topic | `sentinel.ai.detections` | ### Isolation Forest (异常检测) | 参数 | 值 | |-----------|-------| | Framework | scikit-learn | | Contamination | 0.1 (可配置) | | Input | 传感器遥测特征向量 | | Output | 异常分数 (-1/1)、特征贡献度 | | Use Case | 检测异常传感器读数、网络流量模式 | ### LSTM (时间序列预测) | 参数 | 值 | |-----------|-------| | Framework | PyTorch | | Architecture | 2层 LSTM, hidden_size=64 | | Input | 窗口式时间序列 | | Output | 带置信区间的预测 | | Use Case | 传感器趋势预测、容量预测 | ### TorchSig (RF 信号分类) | 参数 | 值 | |-----------|-------| | Framework | TorchSig + PyTorch | | Input | SDR IQ 样本 | | Output | 信号类型分类、调制方案 | | Use Case | 来自 RTL-SDR 的自动信号识别 | ### Ollama LLM 集成 | 参数 | 值 | |-----------|-------| | Models | `tinyllama`、`llama3.2` | | Endpoint | `http://ollama:11434/api/generate` | | Temperature | 0.1 (确定性) 用于 RCA,0.3 用于分析 | | Stream | 禁用 (完整响应) | | Timeout | 30s | #### 7 个提示模板 1. **THREAT_INVESTIGATION** — 结构化威胁分析,包含 IOC 关联、严重性评估、建议措施 2. **INTELLIGENCE_SUMMARY** — 北约 STANAG 2022 格式的情报简报,包含态势、评估、展望 3. **NATURAL_LANGUAGE_QUERY** — 将纯英文问题转换为结构化的数据库/API 查询 4. **ENTITY_EXTRACTION** — 命名实体识别 (人物、组织、地点、武器、基础设施) 5. **MISINFORMATION_DETECTION** — 内容可信度评分、来源可靠性评估 6. **DECISION_SUPPORT** — 军事决策过程 (MDMP) 结构化分析 7. **REPORT_GENERATION** — 生成标准化情报报告 (INTSUM, SITREP, INTREP) ### Healing Agent RCA (根本原因分析) Healing Agent 使用 Ollama 进行自动化的根本原因分析: - 系统提示:"You are SENTINEL system health AI. Analyze incidents." - 输出格式:ROOT CAUSE、CONFIDENCE (HIGH/MED/LOW)、IMMEDIATE ACTION (kubectl 命令)、PREVENTION - Fallback:如果 Ollama 不可用,则返回通用的重启建议 ### 漂移检测 AI 流水线监控概念漂移: - 特征分布比较 (KL 散度) - 模型性能退化跟踪 - 超出漂移阈值时自动告警 - 模型重训练触发器 ## 数据库 Schema ### PostgreSQL (30+ 张表) #### 扩展 - `postgis` — 地理空间查询和几何类型 - `timescaledb` — 用于传感器数据的时间序列超表 - `pg_trgm` — 用于模糊文本搜索的 Trigram 相似度 - `btree_gist` — 用于排除约束的 GiST 索引 - `uuid-ossp` — UUID 生成 #### ENUM 类型 (15) `classification_level`、`domain_type`、`threat_severity`、`alert_status`、`sensor_type`、`sensor_status`、`user_role`、`mission_status`、`task_status`、`detection_type`、`model_status`、`response_action_type`、`rule_condition_op`、`approval_status`、`simulation_status` #### 核心表 - `organizations` — 具有分类上限和分层父子结构的多租户组织 - `users` — 包含 MFA、锁定、许可和权限的完整用户模型 - `sensors` — 已注册的传感器,包含类型、状态、位置、域 - `alerts` — 包含严重性、分类、IOC、地理定位的核心告警表 - `detections` — 关联到模型和传感器的 AI 检测结果 - `tracks` — 包含位置历史的对象跟踪 - `missions` — 具有状态生命周期的作战任务 - `tasks` — 关联任务并带有分配和优先级 - `response_rules` — 条件 → 操作的规则定义 - `response_executions` — 包含审批跟踪的执行历史 - `cyber_events` — 用于 IDS/网络事件 (源/目标 IP、端口、协议、MITRE 映射) 的 TimescaleDB 超表 - `audit_log` — 带有 SHA-256 校验和链的不可变审计跟踪 - `data_classifications` — 每个资源的分类标记 - `retention_policies` — 数据生命周期管理 - `simulations` — 红蓝队场景定义 - `honeypots` — 诱饵资产配置 - `adversary_profiles` — 威胁行为者跟踪 (TTP、能力、意图) #### 安全特性 - **Row-Level Security (RLS)**:在所有表上启用,通过 `app.current_user_id` 过滤 - **Audit Triggers**:所有表上的 `update_updated_at()` - **Checksum Chain**:`compute_audit_checksum()` 通过 SHA-256 将每个审计条目链接到前一个条目 - **Classification Enforcement**:所有表包含 `classification_level` 列 ### MongoDB 集合 - 带有 GridFS 附件的情报报告 - 非结构化 OSINT 原始数据 - 模型训练构件 ### Neo4j 图 - **Nodes**:Alert, IOC, Entity, Sensor, ThreatActor, Vulnerability, Organization - **Edges**:RELATED_TO, TARGETS, EXPLOITS, INDICATES, OBSERVED_BY, ATTRIBUTED_TO - **Constraints**:每种节点类型的唯一 ID,必填属性的存在性约束 ## 可观测性栈 | 组件 | 角色 | 端口 | |-----------|------|------| | **OpenTelemetry Collector** | 追踪/指标摄取与导出 | 4317 (gRPC), 4318 (HTTP) | | **Prometheus** | 指标存储与告警 | 9090 | | **Grafana** | 仪表板与可视化 | 3001 | | **Jaeger** | 分布式追踪 UI | 16686 | | **Elasticsearch** | 日志索引 (通过 Kibana) | 9200 | | **Kibana** | 日志探索与 SIEM 仪表板 | 5601 | ### 插桩 - 每个服务通过 OpenTelemetry SDK 导出追踪 - Pino 结构化 JSON 日志 - 所有服务上的 Prometheus `/metrics` 端点 - 每个服务的自定义 Grafana 仪表板 - SLO 违规 (延迟、错误率、饱和度) 的告警规则 ### 健康端点 所有服务暴露: - `GET /health/live` — 存活探针 (进程正在运行) - `GET /health/ready` — 就绪探针 (依赖项已连接) ## CI/CD 流水线 ``` Pipeline: push to main/develop/release/** or PR to main/develop ``` ### 作业 | 作业 | 触发器 | 描述 | |-----|---------|-------------| | `lint-python` | 始终 | 在 `services/`、`ai-workers/`、`services/live-integrations/` 上运行 Ruff 代码检查 | | `lint-ui` | 始终 | 在 `ui/` 上运行 TypeScript 类型检查 | | `lint-shell` | 始终 | 在 `shell/` 上运行 TypeScript 类型检查 | | `lint-shell-rust` | 始终 | 在 `shell/src-tauri/` 上运行 `cargo fmt --check` + `cargo clippy` | | `integration-tests` | lint 后 | 在 `tests/test_integration.py` 上运行 pytest | | `build-api-gateway` | 仅推送 | Docker 构建 + 推送到 `ghcr.io` | | `build-ui` | 仅推送 | Docker 构建 + 推送到 `ghcr.io` | | `security-scan` | 测试后 | Trivy 文件系统扫描 (CRITICAL, HIGH) | | `build-iso` | 发布分支 | 完整 ISO 构建 + 构件上传 (保留 30 天) | ### 容器镜像库 - Registry: `ghcr.io` - Image naming: `ghcr.io//sentinel-os/:` - Push: 仅在 `main` 分支上 ### 并发 - Group: `workflow-ref` (取消同一分支上正在进行的运行) ## Kubernetes 架构 ### Namespace: `sentinel-os` #### Deployments - 所有服务部署时均带有 `securityContext`:非 root、只读根文件系统、删除所有 capabilities - JWT 密钥作为 Kubernetes Secrets 挂载 (只读卷) - 通过 `emptyDir` 提供临时存储 (大小受限) #### Autoscaling - **HPA**:基于 CPU (70%) 和内存 (80%) 的扩缩容 - **KEDA**:针对 AI、Ingestion、Cyber 服务的 Kafka 消费者延迟扩缩容 - 扩容:每 60 秒 2 个 Pod,缩容:每 120 秒 1 个 Pod (稳定窗口) #### High Availability - **PodDisruptionBudget**:API Gateway 的 `minAvailable: 2` - **CloudNativePG**:3 实例 PostgreSQL 集群 (1 主 + 2 副本) - **Kafka**:3 节点代理集群,带 `min.insync.replicas: 2` #### Network Security - **NetworkPolicies**:每个服务的 ingress/egress 规则 - 只有 Istio ingress 网关可以到达 API Gateway - 后端服务只接受来自 `sentinel-os` 命名空间的流量 - 允许所有 Pod 的 DNS (端口 53) #### Node Groups (EKS) - **Core**:`m5.xlarge` (3-10 实例) — 通用工作负载 - **AI GPU**:`g4dn.xlarge` (0-4 实例) — GPU 推理,带有 `nvidia.com/gpu` 污点 ## Terraform 模块 | 模块 | 资源 | |--------|-----------| | `vpc` | VPC、3 个可用区、公有/私有/隔离子网、NAT 网关、流日志 | | `eks` | EKS 集群 (v1.29)、核心 + GPU 节点组、KMS 加密、审计日志 | | `rds` | 带有多可用区部署的 PostgreSQL RDS 实例 | | `elasticache` | Redis 集群 | | `kafka` | Amazon MSK 集群 | ### 环境 - `dev` — 公有端点、最小实例、 节点组为 0 - `staging` — 私有端点、适度的实例规模 - `prod` — 私有端点、完整 HA、GPU 节点为 2 ## 环境变量 | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `PORT` | 按服务 (4000-4012) | 服务监听端口 | | `NODE_ENV` | `development` | 环境模式 | | `KAFKA_BROKERS` | `kafka-1:9092,kafka-2:9092,kafka-3:9092` | Kafka 代理地址 | | `PG_HOST` | `postgres-primary` | PostgreSQL 主机 | | `PG_PORT` | `5432` | PostgreSQL 端口 | | `PG_DATABASE` | `sentinel` | 数据库名称 | | `PG_USER` | `sentinel_admin` | 数据库用户 | | `PG_PASSWORD` | — | 数据库密码 (Secret) | | `REDIS_URL` | `redis://redis-cluster:6379` | Redis 连接 URL | | `NEO4J_URI` | `bolt://neo4j:7687` | Neo4j Bolt URI | | `NEO4J_USER` | `neo4j` | Neo4j 用户名 | | `NEO4J_PASSWORD` | — | Neo4j 密码 (Secret) | | `OLLAMA_URL` | `http://ollama:11434` | Ollama LLM 端点 | | `ELASTICSEARCH_URL` | `http://elasticsearch:9200` | Elasticsearch 端点 | | `MONGODB_URI` | `mongodb://mongo:27017/sentinel` | MongoDB 连接字符串 | | `JWT_PRIVATE_KEY_PATH` | `/etc/sentinel/jwt/private.pem` | JWT RS256 私钥 | | `JWT_PUBLIC_KEY_PATH` | `/etc/sentinel/jwt/public.pem` | JWT RS256 公钥 | | `CORS_ORIGINS` | `https://sentinel.internal` | 允许的 CORS 来源 | | `LOG_LEVEL` | `info` | Pino 日志级别 | | `GRAPHQL_DEPTH_LIMIT` | `10` | 最大 GraphQL 查询深度 | | `GRAPHQL_COMPLEXITY_LIMIT` | `2000` | 最大查询复杂度分数 | | `RATE_LIMIT_WINDOW_MS` | `60000` | 速率限制窗口 (毫秒) | | `RATE_LIMIT_MAX` | `1000` | 每个窗口的最大请求数 | | `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://otel-collector:4317` | OpenTelemetry Collector | | `SURICATA_EVE_LOG` | `/var/log/suricata/eve.json` | Suricata EVE JSON 路径 | ## 路线图 ### 已完成 - [x] 核心微服务架构 (13 个服务,monorepo,Turborepo) - [x] 事件驱动的 Kafka 骨干网络 (25+ Strimzi 主题,3 节点代理集群) - [x] 带有实时订阅的 GraphQL API Gateway (6 种订阅类型) - [x] Auth Service (JWT RS256, MFA/TOTP, RBAC, API 密钥, 账户锁定) - [x] AI Service (YOLOv8, Isolation Forest, LSTM, Ollama LLM, 漂移检测) - [x] Python AI Workers (YOLOv8, LSTM, TorchSig, 异常检测, GNURadio) - [x] Ingestion Service (RTSP, MQTT, Radar, Drone, Webhook, 边缘处理) - [x] OSINT Service (RSS, API, 抓取, Telegram, Reddit, IOC 提取, NLP) - [x] Fusion Service (Neo4j 图关联, 地理空间, 实体链接) - [x] Cyber Service (Elasticsearch SIEM, Suricata IDS, 威胁情报, CVE 丰富) - [x] Response Service (规则引擎, 审批工作流, 自动化流水线) - [x] Simulation Service (MITRE ATT&CK 190+ 项技术, 数字孪生, 蜜罐) - [x] Governance Service (防篡改审计, 保留, 合规, AI 治理) - [x] SIGINT Service (ADS-B, AIS, SDR 频谱, APRS, ACARS, KrakenSDR) - [x] Geo Service (NASA GIBS, OpenWeatherMap, USGS, Sentinel Hub, GeoNames) - [x] Healing Agent (MAPE-K 循环, Ollama RCA, Runbook 自动化, 篡改响应) - [x] PostgreSQL schema (30+ 张表, 15 种 ENUM 类型, RLS, TimescaleDB, 校验和) - [x] Kubernetes manifests (Deployments, HPA, PDB, NetworkPolicy, KEDA scalers) - [x] Helm charts (6 个服务及其 values, HPA, 安全上下文) - [x] CloudNativePG (3 节点 PostgreSQL HA 集群) - [x] Istio 配置 (Gateway, VirtualService, mTLS, AuthZ, 熔断器) - [x] Terraform 模块 (VPC, EKS, RDS, ElastiCache, MSK — 3 个环境) - [x] CI/CD 流水线 (GitHub Actions: lint, test, scan, build, ISO) - [x] React Web 仪表板 (Dashboard, Alerts, Map, Sensors, Cyber, Fusion, OSINT, Response) - [x] Tauri v2 Desktop Shell (11 个面板, 6 个工作区, 全屏 HUD) - [x] 自定义 Wayland 合成器 (wlroots 0.19, CRT/雷达着色器) - [x] 自定义内核模块 (Sentinel LSM, RTL-SDR 驱动) - [x] CLI 工具 (Commander.js — alerts, sensors, cyber, response, sim, osint, health) - [x] 可启动 ISO (基于 Kali, EFI+BIOS, 6.3 GB, live-build) - [x] 集成测试套件 - [x] 数据库种子数据 - [x] Docker Compose (dev + 生产环境, 30+ 个容器) - [x] 带有告警聚类的 MapLibre GL 战术地图 - [x] 用于情报融合的 D3 力导向图 ### 进行中 - [ ] E2E Playwright 测试覆盖 - [ ] 用于单命令部署的 Helm umbrella chart - [ ] 从 GraphQL schema 生成 OpenAPI 文档 - [ ] 多区域 Terraform 部署 - [ ] 自动化模型重训练流水线 ## CLI 用法 ``` # 设置 API URL 和 token export SENTINEL_API_URL=http://localhost:4000 export SENTINEL_TOKEN= # 列出 alerts sentinel alerts list --severity CRITICAL --limit 10 # 确认 alert sentinel alerts acknowledge # 列出 sensors sentinel sensors list --type RADAR # 查询系统健康状况 sentinel health status # 运行 simulation sentinel sim start --team RED --technique T1566.001 # 查询 OSINT sentinel osint feeds --enabled ``` ## 测试 ``` # 运行 integration tests python -m pytest tests/test_integration.py -v # Tests 验证: # - Kernel module 源码存在且包含关键函数 # - RTL-SDR 驱动具有 character device operations # - 所有服务均具有有效的 TypeScript/Python 源码 # - Compositor 使用 wlroots 依赖项进行构建 # - Shell Tauri 配置有效 # - AI workers 正确导入 # - Database schemas 在语法上有效 ``` ## 贡献 1. Fork 本仓库 2. 创建一个功能分支 (`git checkout -b feature/my-feature`) 3. 使用 Conventional Commits 进行提交 (`feat:`, `fix:`, `docs:`, `chore:`) 4. 推送并打开 Pull Request 5. CI 必须通过 (lint, test, security scan) ## 许可证 Proprietary — 保留所有权利。 ## 分类 **UNCLASSIFIED // FOR OFFICIAL USE ONLY**
标签:13个微服务, AI/ML, AI风险缓解, Apache Kafka, Apex, API网关, Bootable ISO, C4ISR系统, Cyber, DLL 劫持, Docker, EC2, ECS, ESC4, GitHub, GraphQL, Helm, HTTP/HTTPS抓包, IaC, ISR, Istio, JWT认证, LLM, LLM评估, Metaprompt, MFA, MongoDB, mTLS, Neo4j, NIDS, Ollama, OSINT, PostGIS, PostgreSQL, React, Redis, SIGINT, Syscalls, Tauri, Terraform, TLS 1.3, Unmanaged PE, WebSocket, 事件驱动, 人工智能, 依赖分析, 信号情报, 内存数据库, 军工信息化, 凭据扫描, 包管理, 可视化界面, 国防军工, 多因素认证, 多域情报融合, 大语言模型, 子域名突变, 安全操作系统, 安全防御评估, 实时处理, 实时通信, 容器化, 容器编排, 微服务架构, 态势感知, 情报分析, 情报监视侦察, 持续集成持续部署, 指挥控制通信计算机与情报, 搜索引擎查询, 数据融合, 文档数据库, 日志审计, 服务网格, 机器学习, 桌面应用, 流处理, 消息队列, 用户模式Hook绕过, 电子战, 空间数据库, 网络安全, 网络诊断, 自定义请求头, 请求拦截, 跨平台开发, 逆向工具, 隐私保护, 零信任架构