Kaushik075/VaultSense-Real-Time-Behavioral-Anomaly-Detection-Engine
GitHub: Kaushik075/VaultSense-Real-Time-Behavioral-Anomaly-Detection-Engine
VaultSense 是一款基于规则引擎与 Gemini AI 双层架构的实时用户行为异常检测工具,专门解决流媒体平台中撞库、账户接管和可疑下载等行为安全问题。
Stars: 0 | Forks: 0
## VaultSense — 实时行为异常检测引擎
## 问题所在
传统安全工具只能捕获已知的攻击特征。它们忽略了行为漂移 —— 即看似合法的会话执行了真实用户绝对不会进行的操作。
- 一个 bot 在 6 分钟内登录了 847 个账户 —— 未触发任何数据库错误
- 窃取的凭证在凌晨 3 点通过新设备从俄罗斯登录 —— pipeline 运行正常
- 被攻陷的账户悄无声息地下载了每一个文件 —— 数据中没有任何异常
**数据 pipeline 没问题。异常的是 USER。**
## VaultSense 的功能
VaultSense 通过一个三层智能 pipeline 实时监控用户会话事件:
**Layer 1 — 基于规则的欺诈引擎**
5 条行为规则在每次传入事件时同时触发:
- 速度激增 → 10 分钟内超过 15 个事件
- 未知设备 → 设备 ID 不在用户的历史记录中
- 地理异常 → 国家/地区与通常位置不同
- 异常时段活动 → 凌晨 2–5 点之间登录
- 交易激增 → 金额超过用户基线的 3 倍
**Layer 2 — Gemini AI 风险解读**
被标记的事件及其完整的行为上下文被发送到 Google Gemini。Gemini 会针对每个事件返回独特的自然语言风险评估 —— 没有任何两个警报是完全相同的。
**Layer 3 — 持久化与警报**
高风险事件将被记录到 PostgreSQL 中,并在 5 秒内向 `#security-alerts` 发送 Slack 警报。
## 测试结果
在包含 3 种注入攻击模式的 250,000 行真实流媒体平台数据上进行了测试:
| 异常类型 | 注入数量 | 检测数量 | AI 原因示例 |
|---|---|---|---|
| 撞库攻击 | 3,000 | ✅ 全部 | *"几毫秒内来自不同设备的多次登录"* |
| 账户接管 | 1,500 | ✅ 全部 | *"凌晨 3 点使用未知设备进行境外访问"* |
| 可疑下载 | 800 | ✅ 全部 | *"在正常时段之外的快速连续下载事件"* |
每个 Slack 警报都有不同的 Gemini 生成的原因 —— 基于上下文的推理,而非简单的规则匹配。
## 架构
```
Webhook → Request Validator → Fetch User History (PostgreSQL)
→ Context Builder → Fraud Rules Engine → Gemini AI Interpreter
→ AI Response Cleaner → Risk Decision Combiner → High Risk Filter
→ Database Logger + Slack Alert Dispatcher
```
## 技术栈
| 组件 | 工具 |
|---|---|
| 编排 | n8n(自托管,Docker) |
| 数据库 | 基于 Neon.tech 的 PostgreSQL |
| AI 层 | Google Gemini (gemini-3.5-flash) |
| 警报 | Slack (#security-alerts) |
| 数据生成 | Python (psycopg2, uuid, faker) |
## 数据库 Schema
**PostgreSQL 中的 3 张表:**
- `user_activity_log` — 250,000 条用户会话事件
- `user_behavior_baselines` — 500 名用户的正常行为档案
- `behavioral_audit_log` — 所有检测到的异常的永久审计跟踪
## 如何运行
**1. 生成数据**
```
pip install psycopg2-binary
python vaultsense_generate_data.py
```
在脚本中使用您的 Neon 凭证更新 `DB_HOST`、`DB_PASSWORD`。
**2. 导入工作流**
- 打开 n8n → 导入工作流 → 上传 `vaultsense_workflow.json`
- 添加凭证:PostgreSQL (Neon) + Google Gemini API + Slack Bot Token
- 激活工作流
**3. 测试**
```
Invoke-WebRequest -Uri "http://localhost:5678/webhook/user-activity" `
-Method POST -ContentType "application/json" `
-Body '{"user_id":"user_0001","event_type":"login","device_id":"dev_UNKNOWN_abc123","country":"Russia","events_last_10_mins":25,"hour_of_day":3}' `
-UseBasicParsing
```
检查 Slack 中的 `#security-alerts` 以查看警报。
## 项目结构
```
vaultsense/
├── vaultsense_generate_data.py # Data generation script
├── vaultsense_workflow.json # n8n workflow export
└── README.md
```
## 关键工程决策
- **批量插入而非逐行插入** — 改用 `psycopg2.extras.execute_values`,将 25 万行数据的加载时间从 2 个多小时缩短至不到 3 分钟
- **选择 Gemini 而非 OpenAI** — 提供免费层级,无需信用卡,15 req/min 的速率足以满足实时警报需求
- **使用 Webhook 触发而非定时触发** — 实时处理每个事件,而不是批量处理
- **独立的审计日志表** — `behavioral_audit_log` 维护了独立于活动日志的永久事件历史记录
## 相关项目
**DriftGuard** — 自主数据质量可观测性 Agent
监控数据 pipeline 的 null 率、schema drift 和统计异常。
两者结合:DriftGuard 确保数据可靠性。VaultSense 确保行为安全。
## 测试结果
在包含 3 种注入攻击模式的 250,000 行真实流媒体平台数据上进行了测试:
| 异常类型 | 注入数量 | 检测数量 | AI 原因示例 |
|---|---|---|---|
| 撞库攻击 | 3,000 | ✅ 全部 | *"几毫秒内来自不同设备的多次登录"* |
| 账户接管 | 1,500 | ✅ 全部 | *"凌晨 3 点使用未知设备进行境外访问"* |
| 可疑下载 | 800 | ✅ 全部 | *"在正常时段之外的快速连续下载事件"* |
每个 Slack 警报都有不同的 Gemini 生成的原因 —— 基于上下文的推理,而非简单的规则匹配。
## 架构
```
Webhook → Request Validator → Fetch User History (PostgreSQL)
→ Context Builder → Fraud Rules Engine → Gemini AI Interpreter
→ AI Response Cleaner → Risk Decision Combiner → High Risk Filter
→ Database Logger + Slack Alert Dispatcher
```
## 技术栈
| 组件 | 工具 |
|---|---|
| 编排 | n8n(自托管,Docker) |
| 数据库 | 基于 Neon.tech 的 PostgreSQL |
| AI 层 | Google Gemini (gemini-3.5-flash) |
| 警报 | Slack (#security-alerts) |
| 数据生成 | Python (psycopg2, uuid, faker) |
## 数据库 Schema
**PostgreSQL 中的 3 张表:**
- `user_activity_log` — 250,000 条用户会话事件
- `user_behavior_baselines` — 500 名用户的正常行为档案
- `behavioral_audit_log` — 所有检测到的异常的永久审计跟踪
## 如何运行
**1. 生成数据**
```
pip install psycopg2-binary
python vaultsense_generate_data.py
```
在脚本中使用您的 Neon 凭证更新 `DB_HOST`、`DB_PASSWORD`。
**2. 导入工作流**
- 打开 n8n → 导入工作流 → 上传 `vaultsense_workflow.json`
- 添加凭证:PostgreSQL (Neon) + Google Gemini API + Slack Bot Token
- 激活工作流
**3. 测试**
```
Invoke-WebRequest -Uri "http://localhost:5678/webhook/user-activity" `
-Method POST -ContentType "application/json" `
-Body '{"user_id":"user_0001","event_type":"login","device_id":"dev_UNKNOWN_abc123","country":"Russia","events_last_10_mins":25,"hour_of_day":3}' `
-UseBasicParsing
```
检查 Slack 中的 `#security-alerts` 以查看警报。
## 项目结构
```
vaultsense/
├── vaultsense_generate_data.py # Data generation script
├── vaultsense_workflow.json # n8n workflow export
└── README.md
```
## 关键工程决策
- **批量插入而非逐行插入** — 改用 `psycopg2.extras.execute_values`,将 25 万行数据的加载时间从 2 个多小时缩短至不到 3 分钟
- **选择 Gemini 而非 OpenAI** — 提供免费层级,无需信用卡,15 req/min 的速率足以满足实时警报需求
- **使用 Webhook 触发而非定时触发** — 实时处理每个事件,而不是批量处理
- **独立的审计日志表** — `behavioral_audit_log` 维护了独立于活动日志的永久事件历史记录
## 相关项目
**DriftGuard** — 自主数据质量可观测性 Agent
监控数据 pipeline 的 null 率、schema drift 和统计异常。
两者结合:DriftGuard 确保数据可靠性。VaultSense 确保行为安全。标签:Gemini AI, PostgreSQL, Slack告警, 反欺诈, 安全, 异常检测, 测试用例, 请求拦截, 超时处理, 逆向工具