# 🕵️♂️⚡ THE MOLE
### 实时内部威胁与数据泄露检测引擎
*“在劫案发生之前揪出内鬼。”*
[](https://fastapi.tiangolo.com/)
[](https://react.dev/)
[](https://www.typescriptlang.org/)
[](https://tailwindcss.com/)
[](https://d3js.org/)
[](LICENSE)
## 📖 概述
**THE MOLE** 是一款先进的实时内部威胁检测与监控系统,专为企业情报监控及高风险的现场舞台演示而构建。
该平台持续拦截多通道通信流(Slack、电子邮件、私信),利用 NLP 提取**语言欺骗**与**文体特征漂移**标记,关联**网络时间与联系人异常**,并将这些异构遥测数据流融合为实时风险评分。
当威胁阈值突破临界水平时,自定义的 **D3 径向受力物理引擎**会围绕可疑节点动态收缩,从而为内部威胁行为者“收紧包围圈”。
## 🌟 视觉画廊与界面展示
### 1. 登录与引擎概览
主界面展示了核心监控技术栈、实时状态遥测数据、交互式终端预览以及主要系统功能。
### 2. 实时舞台演示仪表板
专为现场舞台演示设计的交互式、逐拍展示工作区。具备实时 SVG 信任图谱、动态威胁等级进度展示(22% → 87%)以及即时目标归属功能。
### 3. 实时侦察工作区与 D3 信任图谱
交互式 D3 力导向画布,采用自定义径向目标力 ($F_{\text{tight}}$),在将未列出的外部联系人隔离的同时,以可视化的方式将可疑节点拉向中心。
### 4. 多窗格终端工作区 (`MAIN_CONSOLE_V.2`)
多窗口监控控制台,具有实时主控制台终端、活动进程监视器、发光的威胁评分仪表以及地理定位卫星地图上行链路。
### 5. 信号分析面板 (`Signal Plane`)
由自定义 WebGL 着色器提供支持的实时信号流可视化界面、活动拦截追踪(`NODE_77A`、`PROXY_B9`、`GATEWAY_02`)以及分段指标状态条。
### 6. 地理定位上行链路与威胁评分仪表
战术目标十字准线、卫星地图覆盖层以及动态 SVG 威胁仪表的详细特写视图。
## 🔬 核心威胁检测引擎
```
+-----------------------------------+
| Multi-Channel Chat Feed |
+-----------------------------------+
|
v
+-----------------------------------+
| FastAPI WebSocket Streamer |
+-----------------------------------+
|
+-------------------------------+-------------------------------+
| | |
v v v
+------------------+ +-------------------+ +-------------------+
| Linguistic NLP | | Stylometric Drift | | Network Anomaly |
| - Hedging Score | | - Baseline Vector | | - Outsider Spikes |
| - Distancing | | - Cosine Distance | | - Off-Hours Timing|
+------------------+ +-------------------+ +-------------------+
| | |
+-------------------------------+-------------------------------+
|
v
+-----------------------------------+
| Scikit-Learn Risk Classifier |
| (GradientBoosting/Logistic) |
+-----------------------------------+
|
v
+-----------------------------------+
| Graph Delta & Radial Physics |
+-----------------------------------+
| WebSocket (ws://)
v
+-----------------------------------+
| React 18 + D3 Force Frontend |
+-----------------------------------+
```
### 1. 🗣️ 语言欺骗引擎
- **模糊用语检测**:扫描消息语法,寻找推诿性的修饰词(*“maybe”*、*“off record”*、*“cant say much rn”*)。
- **疏远代词**:追踪第三人称与第一人称代词密度的变化趋势(*“they”*、*“them”* 对比 *“I”*、*“my”*)。
- **情绪波动率**:计算连续消息窗口内情绪评分的标准差。
### 2. ✍️ 文体特征漂移引擎
- **个体基准线**:为每个操作员维护历史特征向量(平均词长、大写字母比例、标点符号密度)。
- **余弦距离**:计算实时向量距离($\Delta_{\text{stylometry}}$),以检测身份伪造或受胁迫状态下发送的消息。
### 3. 🌐 网络异常与时间引擎
- **外部联系人激增**:标记与未列出的外部 IP 地址或竞争对手域名之间突发的消息交换行为。
- **非工作时间指数**:对在规定运营时间之外传输的消息进行加权计算。
- **通道隔离**:识别从公开频道突然迁移至私密私信的行为。
## 🧮 风险融合公式
威胁融合模型将多模态遥测向量组合成一个归一化的风险百分比得分($0.0 \dots 100.0\%$):
$$\text{RiskScore} = \sigma\left(\mathbf{w}^T \mathbf{x} + b\right) \times 60 + \text{WeightedFeatureScore} \times 0.4$$
其中特征向量 $\mathbf{x}$ 包含:
1. $x_1$: 模糊用语比例($0.0 \dots 1.0$)
2. $x_2$: 疏远代词比例($0.0 \dots 1.0$)
3. $x_3$: 偏离基准线的文体向量漂移($0.0 \dots 1.0$)
4. $x_4$: 未列出的外部联系人频率($0.0 \dots 1.0$)
5. $x_5$: 非工作时间活动指数($0.0 \dots 1.0$)
6. $x_6$: 通道隔离 / 时间异常($0.0 \dots 1.0$)
## 🛠️ 技术栈
| 层级 | 技术与工具 |
| :--- | :--- |
| **前端** | React 18, Vite, TypeScript, Tailwind CSS, Framer Motion, D3.js (力导向径向物理), Lucide Icons, Zustand |
| **后端** | FastAPI (Python 3.11), WebSockets, Pydantic, Scikit-Learn, NumPy, Uvicorn |
| **视觉特效** | WebGL GLSL 着色器波形、扫描线叠加层、等宽字体 JetBrains Mono 与 Inter 字体 |
| **数据源** | 实时 WebSocket 遥测数据与《纸钞屋》合成流模拟生成器 |
## ⚡ 快速入门指南
### 前置条件
- **Node.js**(v18.0.0 或更高版本)
- **Python**(v3.10 或更高版本)
### 1. 后端设置
```
# 导航至 backend 目录
cd backend
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows PowerShell:
.\venv\Scripts\Activate.ps1
# Linux / macOS:
source venv/bin/activate
# 安装 Python 依赖
pip install -r requirements.txt
# 启动 FastAPI WebSocket backend
uvicorn app.main:app --port 8000 --reload
```
FastAPI 后端将在 `http://localhost:8000` 运行(WebSocket endpoint: `ws://localhost:8000/ws/stream`)。
### 2. 前端设置
```
# 打开一个新终端并导航至 frontend 目录
cd frontend
# 安装 Node 依赖
npm install
# 启动 Vite 开发服务器
npm run dev
```
在浏览器中打开 **[http://localhost:3000](http://localhost:3000)**。
## 🎬 演示与现场演示控制
| 控件 | 描述 |
| :--- | :--- |
| **`Signals`** | 打开 WebGL 信号分析面板,包含活动拦截监视器和波形可视化。 |
| **`Terminal`** | 打开多窗格终端工作区(`MAIN_CONSOLE_V.2`、进程监视器、地理地图)。 |
| **`Demo`** | 启动 `Stitch Pro` 舞台演示仪表板,带有自动化的 6 步威胁揭示动画。 |
| **`RUN STAGE DEMO`** | 触发高风险泄露序列(Rio 红色脉冲 → 创建外部链接 → 径向收紧 → SVG 风险评分跳至 87%)。 |
| **`RECON` / `DEPLOY NODE`** | 立即跳转至实时监控工作区并执行泄露触发 payload。 |
## 📁 仓库结构
```
the-mole/
├── Assets/ # Screenshots & Markdown Media Gallery
│ ├── hero_landing.png
│ ├── stitch_demo.png
│ ├── recon_dashboard.png
│ ├── terminal_workspace.png
│ ├── signals_matrix.png
│ ├── threat_score.png
│ └── geolocation_uplink.png
│
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI entrypoint, WebSocket endpoint & CORS
│ │ ├── ingestion/ # Pydantic schemas & message parsers
│ │ ├── nlp/ # Hedging, distancing pronouns & stylometry
│ │ ├── network/ # Graph builder, trust decay & timing anomaly
│ │ ├── fusion/ # Scikit-learn ML risk fusion classifier
│ │ ├── data/ # Synthetic Money Heist chat stream generator
│ │ └── ws/ # WebSocket stream manager
│ ├── requirements.txt # Python dependencies
│ └── tests/ # Pytest suite
│
├── frontend/
│ ├── src/
│ │ ├── api/ # WebSocket client & REST fallback
│ │ ├── components/
│ │ │ ├── Navbar.tsx # Persistent top navigation header
│ │ │ ├── HeroSection.tsx # Landing page hero banner & terminal visual
│ │ │ ├── SignalsSection.tsx # 3-Signal telemetry breakdown
│ │ │ ├── ReconDashboard/ # D3 force graph, risk meter & suspect dossier
│ │ │ ├── SignalPanel/ # WebGL shader canvas & signal feed
│ │ │ ├── TerminalPanel/ # Multi-pane console, process monitor & geo-map
│ │ │ └── DemoPanel/ # Stitch Pro presentation demo controller
│ │ ├── store/ # Zustand global application state
│ │ ├── types/ # Telemetry & graph TypeScript interfaces
│ │ ├── App.tsx # Main view router
│ │ └── main.tsx # Vite React entrypoint
│ ├── index.html # Google fonts & Tailwind CSS setup
│ ├── tailwind.config.js # Custom surveillance dark design tokens
│ └── package.json # Frontend dependencies
│
├── docs/
│ └── architecture.md # Technical architecture & mathematical spec
└── README.md
```
## 📜 操作免责声明与许可证
基于 **MIT License** 分发。详情请参阅 `LICENSE`。