nityansh10/nexus-shield-threat-intelligence

GitHub: nityansh10/nexus-shield-threat-intelligence

一个结合微调小型语言模型与 NIST RAG 策略引擎的网络安全事件自动化分拣控制台,将原始遥测日志转化为结构化的威胁分类与响应建议报告。

Stars: 0 | Forks: 0

# NEXUS-SHIELD // 自动化威胁 Co-Pilot 这是一个混合 AI 网络安全事件分拣控制台,它将**微调的小型语言模型 (SLM)** 适配层与**检索增强生成 (RAG)** NIST 策略引擎相结合。该系统摄取原始的、非结构化的网络遥测数据和审计日志,并输出包含已分类威胁向量和建议操作态势的结构化 JSON 事件报告。 ## 架构概述 ``` ┌───────────────────────────────────────────────────────────┐ │ RAW TELEMETRY INPUT │ │ (SSH logs, EDR alerts, DLP events, SIEM correlations) │ └────────────────────────┬──────────────────────────────────┘ │ ┌───────────▼────────────┐ │ DUAL-ENGINE PIPELINE │ └───────────┬────────────┘ │ ┌──────────────┴──────────────────┐ │ │ ┌───────▼────────┐ ┌─────────▼────────┐ │ FINE-TUNED │ │ RAG POLICY │ │ SLM ADAPTER │ │ ENGINE (NIST) │ │ │ │ │ │ Behavioral │ │ Rule retrieval │ │ pattern │◄─ AUGMENTS ──│ for domain- │ │ extraction │ │ specific overrides│ │ (400+ rows) │ │ (NIST 901, etc.) │ └───────┬────────┘ └──────────────────┘ │ ┌───────▼──────────────────────────────────────────────┐ │ STRUCTURED INCIDENT REPORT │ │ { vector_class, target_infrastructure, │ │ operational_posture } │ └──────────────────────────────────────────────────────┘ ``` ### 引擎 1 — 微调 SLM 适配器权重 行为分类层在 **401 个已标记的网络安全事件**(`nexus_data.jsonl`)上进行训练。每个样本都遵循指令微调格式: ``` { "instruction": "Transform unstructured cyber logs into raw, machine-readable Security Incident JSON format.", "input": "", "output": "{\"incident_report\": {\"vector_class\": \"...\", \"target_infrastructure\": \"...\", \"base_posture\": \"...\"}}" } ``` 该模型学习从嘈杂、异构的日志格式中提取三个字段: | 字段 | 描述 | |---|---| | `vector_class` | 攻击类别(见下表) | | `target_infrastructure` | 受影响的系统标识符 | | `base_posture` | 建议的初始响应态势 | ### 引擎 2 — RAG 策略引擎(NIST 合规) NIST RAG 数据库是一个结构化的内存合规规则检索库。在每次推理过程中,pipeline 会检查分类后的威胁是否落在任何受控域内(例如,金融系统、薪资基础设施)。如果匹配到 NIST 规则,其规定的响应将**覆盖**微调层生成的基础态势。 ``` const NIST_RAG_DATABASE = { "financial_override": "NIST REGULATION 901 MATCHED // CRITICAL DOMAIN // FORCE COMPLIANCE VALUE TO: 'CRITICAL_CREDENTIAL_REVOCATION_REQUIRED'." }; ``` 这模拟了 **RAG 增强生成**的真实场景:检索器获取最相关的策略片段,然后将其注入到输出生成上下文中,以强制执行合规关键行为。 ## 威胁分类参考 ### 向量类别 | `vector_class` | 描述 | 示例信号 | |---|---|---| | `BRUTE_FORCE_ATTEMPT` | 反复的认证失败、密码喷洒模式 | `Failed password for invalid user`,Kerberos 预认证失败 | | `DATA_EXFILTRATION` | 异常的出站数据量或 DLP 告警 | `412GB outbound`,批量账本同步至外部 repo | | `ENDPOINT_COMPROMISE` | 本地 daemon 篡改、注册表挂钩、LSASS 转储 | `mimikatz`,以 root 权限启动 `rclone`,二进制哈希不匹配 | | `RANSOMWARE_DEPLOYMENT` | 文件加密熵激增,VSS 删除 | `.locked`/`.crypto` 重命名,生成 `README_DECRYPT.txt` | | `INSIDER_THREAT` | 非工作时间特权访问,可移动存储介质转储 | 凭据劫持,非值班期间的 SIEM 关联 | ### 操作态势 | `base_posture` / `operational_posture` | 严重程度 | 行动 | |---|---|---| | `CONTAINMENT_MODE` | 中危 | 隔离受影响的进程;监控横向移动 | | `ISOLATION_POSTURE` | 高危 | 对节点进行网络分段;暂停出站路由 | | `CREDENTIAL_REVOCATION` | 高危 | 使会话 token 失效;强制重新认证 | | `CRITICAL_CREDENTIAL_REVOCATION_REQUIRED` | **严重** | 立即完全撤销凭据;强制执行 RAG 规则 | ## 训练数据 **文件:** `nexus_data.jsonl` **格式:** JSON Lines(每行一个 JSON 对象) **大小:** 401 个样本 **覆盖范围:** 涵盖多样化基础设施命名的 5 个均衡威胁类别 该数据集使用了逼真的基础设施名称(`finance-payroll-02`,`prod-ledger-primary`,`corp-cluster-replica`),其日志格式提取自: - Linux `sshd` / PAM 认证日志 - Windows 安全事件 ID 4625 / 4648 - 内核网络挂钩和防火墙告警 - EDR / SIEM 关联事件 - VSS 和文件完整性监控告警 - DLP agent 告警 - Kerberos 预认证失败 要在此数据集上微调真实的 SLM(例如 Phi-3 Mini、Mistral 7B 或 Llama 3.2 3B),请将其转换为您所用框架的聊天格式,并使用 LoRA / QLoRA 适配器训练。 ## 技术栈 | 层级 | 技术 | |---|---| | UI 框架 | React 18 | | 构建工具 | Vite 5 | | 样式 | 内联 CSS(单色赛博美学,`#050811` / `#00f0ff`) | | 微调数据 | JSONL 指令微调格式 | | RAG 存储 | 内存 JS 对象(可扩展至向量数据库) | | 错误处理 | React Error Boundary (`App.jsx`) | ## 快速开始 ### 前置条件 - Node.js >= 18 - npm >= 9 ### 安装 ``` npm install ``` ### 开发 ``` npm run dev ``` 将在 `http://localhost:3000` 开启,并支持热模块替换。 ### 生产环境构建 ``` npm run build npm run preview ``` ## 项目结构 ``` nexus-finetuning-rag/ ├── index.js # NexusShieldConsole React component ├── nexus_data.jsonl # 401-row instruction-tuning dataset ├── index.html # Vite HTML entry point ├── vite.config.js # Vite configuration ├── package.json ├── .gitignore ├── src/ │ ├── main.jsx # React DOM root mount │ └── App.jsx # Layout wrapper + ErrorBoundary + global styles └── README.md ``` ## 使用控制台 1. **实时摄取流(左侧面板)** — 流式传输预加载的历史日志事件,以模拟实时遥测数据源。 2. **合规分析网关(中间面板)** — 将任何原始日志字符串粘贴到文本框中,然后点击 **Run Hybrid Inference Pipeline**。 3. **矩阵编译器视图(右侧面板)** — 显示结构化的 JSON 输出。当 RAG 引擎触发合规覆盖时,风险态势徽章将变为**严重**(红色)。 ### 示例输入 **暴力破解:** ``` Auth failure: sshd[32258]: Failed password for invalid user admin from 192.168.97.128 port 443 ssh2. Continuous retry count=22. ``` **数据泄露:** ``` Kernel network hook captured unexpected outbound connection from db-cluster-primary to remote IP 10.84.2.144. Outbound volume 412GB exceeds baseline operational metrics. ``` **RAG 覆盖(金融 -> 严重):** ``` File Integrity Monitor alert on finance-payroll-02: high-frequency encryption behavior detected in ledger directories. ``` ## 扩展架构 ### 将模拟的 SLM 替换为真实模型 `index.js` 中的 `executeDualEnginePipeline` 函数包含模拟的行为模式匹配。要替换为真实的推理调用: ``` // Replace the keyword-matching block with: const response = await fetch('/api/classify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ log: inputLog }), }); const { vector_class, target_infrastructure, base_posture } = await response.json(); ``` 然后使用 vLLM、Ollama 或托管推理 endpoint,将您微调的 SLM 部署在 `/api/classify` 之后。 ### 扩展 RAG 存储 将 `NIST_RAG_DATABASE` 替换为向量相似度搜索: ``` // Embed the input log and retrieve top-k NIST policy chunks const topChunks = await vectorStore.similaritySearch(inputLog, { k: 3 }); const ragContext = topChunks.map(c => c.pageContent).join('\n'); ``` 合适的向量存储:Chroma、Pinecone、Weaviate、pgvector。 ## 许可证 MIT
标签:DLL 劫持, React, Syscalls, 大语言模型, 安全事件响应, 安全运营, 微调, 扫描框架, 数据可视化, 时序数据库, 检索增强生成, 自定义脚本