rishiragavendra/Sentinel

GitHub: rishiragavendra/Sentinel

Sentinel 是一个零依赖的轻量级安全运营控制台,通过实时风险评分和自动化事件响应检测内部特权用户的威胁行为。

Stars: 0 | Forks: 0

# SENTINEL — 内部威胁检测 SOC 一个独立的 Security Operations Console,用于监控具有特权的银行用户,通过风险引擎对其行为进行评分,引发 incident,并在抗量子保险库中密封凭证 —— 所有这一切均在实时进行。 ## 运行说明 (Windows) 1. 从 https://nodejs.org 安装 **Node.js 18+**(仅需一次)。 2. 双击 **`start.bat`**。 3. 您的浏览器将在 **http://localhost:5000** 打开。 就是这样。无需 `npm install`,无需 Docker,无需设置数据库 —— 该应用使用 **零外部依赖**(纯 Node 内置模块)并将所有内容存储在 本地文件(`data/sentinel.json`)中。 ## 登录 | 角色 | 用户名 | 密码 | 权限 | |------------------|-----------|-------------|------------------------------------------| | Administrator | `admin` | `admin123` | 所有权限 | | Security Officer | `officer` | `officer123`| 模拟事件、响应/解决、保险库 | | Auditor | `auditor` | `auditor123`| 只读 + 揭示保险库机密 | 点击登录界面上的演示芯片即可立即登录。 ## 每个屏幕的功能 - **Command** — 实时统计、动画威胁雷达、严重性分类、24小时风险 趋势、近期活动以及实时警报流。 - **Subjects** — 监控的观察名单,包含每个用户的平均/峰值风险。 - **Activity** — 模拟特权用户事件(选择 subject、action、bytes、 登录失败、敏感/地理位置标志);风险引擎将其评分为 0–100,进行存储, 并在风险 ≥ 60 时引发 incident。按严重性筛选完整的事件日志。 - **Incidents** — 执行建议的自动化响应或附带备注解决。 - **Vault** — 使用真正的认证加密密封机密 (X25519 密钥交换 → HKDF-SHA256 → AES-256-GCM)。按需解密揭示; 密封您自己的新机密。 - **Audit Log** — 每个操作的不可变轨迹;导出 JSON 报告。 所有内容均由服务器支持并**在重启后持久化**(数据和 保险库密钥写入 `data/`)。删除 `data/sentinel.json` 以重置和重新播种。 ## 工作原理 ``` Browser SPA ──HTTP/JSON──▶ Node server ──▶ file DB (data/sentinel.json) ▲ │ └──────── SSE live feed ◀────┘ (risk engine + JWT auth + RBAC + vault) ``` - **Auth**: scrypt 密码哈希 + HS256 JWT (node:crypto)。 - **风险引擎**: 统计异常评分 + 行为基线 + 规则信号, 融合为 0–100 的评分,带有严重性和建议的响应。 - **实时警报**: Server-Sent Events 将新的活动/incident 推送到每个客户端。 ## 文件 ``` sentinel/ ├── start.bat ← double-click to run ├── server.js ← HTTP server, API, RBAC, SSE, static serving ├── lib/ │ ├── db.js ← file-backed JSON store (atomic writes) │ ├── auth.js ← scrypt hashing + JWT + RBAC │ ├── riskEngine.js ← feature extraction + scoring + response │ ├── vault.js ← X25519 + HKDF + AES-256-GCM sealing │ └── seed.js ← demo users, subjects, activities, incidents, secrets ├── public/ ← the SPA (index.html, styles.css, app.js) └── data/ ← created on first run (your persisted state) ```
标签:GNU通用公共许可证, JSONLines, MITM代理, Node.js, StruQ, 内部威胁检测, 安全运营中心, 数据可视化, 无外部依赖, 网络映射, 自定义脚本, 量子安全加密, 零信任