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, 内部威胁检测, 安全运营中心, 数据可视化, 无外部依赖, 网络映射, 自定义脚本, 量子安全加密, 零信任