Anasnaveed69/THREXIA
GitHub: Anasnaveed69/THREXIA
一款基于 AI 的内部威胁情报平台,通过自动化检测与可视化仪表板解决日志分析耗时易错的问题。
Stars: 1 | Forks: 0
# THREXIA
### 基于AI的内部威胁检测与安全仪表板
*在危机发生前发现人类忽视的问题。*
[](https://www.python.org/)
[](https://scikit-learn.org/)
[](https://pandas.pydata.org/)
[](https://jupyter.org/)
[](LICENSE)
[](https://nu.edu.pk/)
## 📌 目录
- [概述](#-overview)
- [问题陈述](#-problem-statement)
- [关键特性](#-key-features)
- [系统架构](#-system-architecture)
- [技术栈](#-tech-stack)
- [数据集](#-datasets)
- [机器学习模型与结果](#-ml-models--results)
- [功能需求](#-functional-requirements)
- [用户角色](#-user-roles)
- [项目结构](#-project-structure)
- [快速开始](#-getting-started)
- [部署](#-deployment)
- [团队](#-team)
- [致谢](#-acknowledgements)
## 🔍 概述
**THREXIA** 是一个端到端的人工智能威胁情报平台,旨在检测内部威胁和组织系统日志中的异常用户行为。它结合了基于机器学习的异常检测与直观的基于角色的Web仪表板,使网络安全分析对资深分析师和非技术利益相关者都易于使用。
系统摄取原始活动日志(登录事件、文件访问、设备使用、网页活动和电子邮件记录),自动预处理它们,并运行训练好的异常检测模型以实时显示可疑模式。
## ❗ 问题陈述
现代组织每天都会从用户活动生成大量系统日志——登录、文件传输、设备连接、浏览和电子邮件。手动审查这些日志以识别内部威胁:
- ⏳ **对安全分析师来说极其耗时**
- 🧩 **由于数据规模和复杂性,容易出错**
- 📉 **由于企业SIEM/UEBA工具的学习曲线陡峭,学生和小型组织难以使用**
THREXIA通过自动化检测管道并通过清晰、可解释的界面展示结果,填补了这一空白——无需深入的网络安全专业知识即可操作。
## ✨ 关键特性
| 特性 | 描述 |
|---|---|
| 🔐 **安全认证** | 基于JWT的登录,3次失败尝试后账户锁定 |
| 👥 **基于角色的访问控制** | 管理员、分析师和管理角色拥有独立仪表板和权限 |
| 📁 **日志文件上传** | 以**CSV**或**JSON**格式上传系统日志以进行自动分析 |
| ⚙️ **自动预处理** | 自动清理、标准化和特征工程原始日志数据 |
| 🤖 **AI威胁检测** | 孤立森林和One-Class SVM检测行为偏差 |
| 🎯 **风险评分** | 每个检测到的异常都分配一个数值风险严重性评分 |
| 🔔 **实时警报** | 对高风险威胁在分析师仪表板上即时通知 |
| 📊 **交互式仪表板** | 实时和历史数据的视觉图表、时间线和热力图 |
| 🧠 **可解释AI** | 人类可读的威胁摘要,包含置信度评分和推荐操作 |
| 📄 **报告导出** | 以**PDF**或**CSV**格式下载详细威胁分析报告 |
| 📱 **响应式UI** | 完全适应桌面、平板和移动设备 |
## 🏗️ 系统架构
```
┌─────────────────────────────────────────────────────────────┐
│ THREXIA System │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ User / Analyst ] │
│ │ │
│ ▼ │
│ ┌─────────────┐ Upload ┌──────────────────────┐ │
│ │ Web UI / │──────────────▶│ Log Ingestion & │ │
│ │ Dashboard │ │ Validation Layer │ │
│ └─────────────┘ └──────────┬───────────┘ │
│ ▲ │ │
│ │ ▼ │
│ ┌──────┴──────┐ ┌──────────────────────┐ │
│ │ Alerts & │◀──────────────│ Preprocessing │ │
│ │ Reports │ │ Pipeline │ │
│ └─────────────┘ │ (Clean → Normalize │ │
│ │ → Feature Extract) │ │
│ └──────────┬───────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────┐ │
│ │ ML Anomaly Detection │ │
│ │ ┌──────────────────┐ │ │
│ │ │ Isolation Forest │ │ │
│ │ └──────────────────┘ │ │
│ │ ┌──────────────────┐ │ │
│ │ │ One-Class SVM │ │ │
│ │ └──────────────────┘ │ │
│ └──────────┬───────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────┐ │
│ │ Risk Scoring & │ │
│ │ Threat Storage (DB) │ │
│ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
```
## 🛠️ 技术栈
### 后端与部署
| 工具 | 用途 |
|---|---|
| `Python 3.9+` | 核心编程语言 |
| `FastAPI` | 用于提供机器学习预测的高性能REST API |
| `Uvicorn` | 生产级部署的ASGI服务器 |
### 前端与UI
| 技术 | 用途 |
|---|---|
| `React 19` | 智能仪表板的现代UI库 |
| `Vite 8` | 快速开发的下一代前端工具 |
| `Tailwind CSS` | 具有复杂玻璃形态效果的实用优先样式 |
| `Framer Motion` | 高级微动画和流畅过渡 |
| `Recharts` | 系统活动统计的动态数据可视化 |
| `Lucide Icons` | 一致且专业的图标 |
## 📦 数据集
THREXIA在两个内部威胁数据集上进行了训练和评估:
### 1. 🏢 企业环境内部威胁数据集(用于部署)
模拟企业系统中内部威胁行为的员工活动记录结构化的日志——登录事件、文件操作、系统使用模式等。
**选择此数据集的原因:** 经过比较评估,该数据集在准确率、精确率、召回率和F1分数方面优于CERT数据集。
### 2. 🔬 CERT内部威胁测试数据集(研究参考)
由卡内基梅隆大学的CERT部门创建,包含标记的模拟日志,包括:
| 文件 | 内容 |
|---|---|
| `logon.csv` | 登录和登出活动 |
| `device.csv` | 设备连接事件 |
| `http.csv` | 网页浏览活动 |
| `email.csv` | 电子邮件通信日志 |
| `file.csv` | 文件访问和传输记录 |
## 🤖 机器学习模型与结果
在两个**分层80/20训练/测试分割**和5折交叉验证上训练并评估了两个无监督异常检测模型。
### 性能评分卡(保留测试集)
| 指标 | 孤立森林 | One-Class SVM |
|---|:---:|:---:|
| **准确率** | 92.07% | **93.62%** ✅ |
| **精确率** | 25.65% | **40.30%** ✅ |
| **召回率** | 24.90% | **38.37%** ✅ |
| **F1分数** | 25.27% | **39.31%** ✅ |
| **ROC-AUC** | **78.70%** ✅ | 72.50% |
### 模型超参数
**孤立森林**
```
IsolationForest(
n_estimators=200,
contamination=CONTAMINATION, # matched to dataset's actual anomaly fraction
max_samples="auto",
random_state=42,
n_jobs=-1
)
```
**One-Class SVM**
```
OneClassSVM(
kernel="rbf",
nu=CONTAMINATION, # upper bound on outlier fraction
gamma="scale"
)
```
### 保存的工件
训练后,以下文件会被持久化并由FastAPI后端使用:
```
backend/models/
├── threxia_model.joblib # Best trained model (One-Class SVM)
└── threxia_scaler.joblib # Fitted StandardScaler for data normalization
```
## 📋 功能需求
## 👤 用户角色
```
┌─────────────────────┬──────────────────────────────────────────────────────┐
│ Role │ Capabilities │
├─────────────────────┼──────────────────────────────────────────────────────┤
│ 🔑 Administrator │ Full system access, user management, log uploads, │
│ │ system configuration, all reports │
├─────────────────────┼──────────────────────────────────────────────────────┤
│ 🔍 Security Analyst │ View alerts, investigate anomalies, generate reports,│
│ │ access threat detail panels │
├─────────────────────┼──────────────────────────────────────────────────────┤
│ 📈 IT Manager / │ View summarized dashboards, risk-level overviews, │
│ Supervisor │ read-only threat reports for decision-making │
├─────────────────────┼──────────────────────────────────────────────────────┤
│ 🎓 Student / │ Interact with simulated log data, explore detection │
│ Researcher │ concepts in a sandboxed academic environment │
└─────────────────────┴──────────────────────────────────────────────────────┘
```
## 📁 项目结构
```
THREXIA/
│
├── 📓 BCS-D-17_THREXIA.ipynb # Main ML research and model training
│
├── 📂 backend/ # FastAPI Prediction Engine
│ ├── main.py # API endpoints & log simulation
│ ├── models/ # Production model artifacts
│ │ ├── threxia_model.joblib
│ │ └── threxia_scaler.joblib
│ └── requirements.txt # Backend dependencies
│
├── 📂 frontend/ # React + Vite Intelligence Dashboard
│ ├── index.html # App entry point
│ ├── src/ # React components & pages
│ ├── public/ # Static assets (logo, icons)
│ └── package.json # Frontend dependencies
│
├── 📂 machine_learning/ # Research & Notebooks
│
├── 📂 docs_and_design/ # Project documentation & design assets
│ ├── SRS.docx # Software Requirements Specification
│ ├── SE_Proposal.pdf # HCI Project Proposal
│ └── Threxia project Proposal.pdf # AI Project Proposal
│
└── README.md
```
## 🚀 快速开始
### 先决条件
- Python 3.9 或更高版本
- pip 包管理器
- Kaggle 账户(用于数据集下载)
### 1. 克隆仓库
```
git clone https://github.com/Anasnaveed69/THREXIA.git
cd THREXIA
```
### 2. 安装依赖
```
pip install pandas numpy scikit-learn matplotlib seaborn joblib imbalanced-learn kagglehub
```
或者一次性安装所有依赖:
```
pip install -r requirements.txt
```
### 3. 配置 Kaggle API
```
# 将您的 kaggle.json 凭据放在:
~/.kaggle/kaggle.json
# 或者在笔记本中通过 kagglehub 进行身份验证:
import kagglehub
kagglehub.login()
```
### 4. 运行项目
#### 启动后端
#### 启动前端
```
cd frontend
npm install
npm run dev
```
## 🌐 部署
训练好的模型工件由 **FastAPI** 后端使用。
**计划中的未来扩展:**
- 通过 WebSockets 实时日志流
- 与实时企业环境集成
- 高级深度学习模型(自编码器、LSTM)
- SIEM/UEBA 平台集成钩子
## 👨💻 团队
**BCS-6D | 计算机科学系**
**FAST-NU, 拉合尔, 巴基斯坦**
| 姓名 | 学号 |
|---|---|
| Anas Naveed Butt | 23L-0764 |
| Muhammad Usman Saboor | 23L-0813 |
| Ibrahim Rashid | 23L-0741 |
| Mohib Ali Khattak | 23L-0763 |
## 🙏 致谢
- **卡内基梅隆大学CERT部门** — 提供CERT内部威胁测试数据集
- **Ahmed Uzaki (Kaggle)** — 提供企业内部威胁数据集
- **FAST-NU, 拉合尔** — 计算机科学系,提供学术指导和支持
- 课程讲师:教授**人工智能**、**软件工程**和**人机交互**
点击展开全部10个功能需求
1. **用户注册** — 管理员可以为分析师和人员创建账户 2. **用户认证** — 带有会话令牌的secure登录;3次失败尝试后锁定 3. **基于角色的访问控制** — 按用户角色限制模块访问;直接URL访问被阻止 4. **日志文件上传** — 支持CSV和JSON格式,带大小和格式验证 5. **日志预处理** — 自动管道:去重 → 去除空值 → 标准化 → 特征提取 6. **基于AI的威胁检测** — ML模型识别与既定行为基线的偏差 7. **风险评分生成** — 每个检测到的异常接收一个数值严重性评分 8. **威胁警报通知** — 实时仪表板警报高危检测 9. **仪表板可视化** — 实时和历史分析的交互式图表和图形 10. **报告生成** — 以PDF和CSV格式导出的可威胁分析报告
**THREXIA** — *将原始日志转化为可操作的智能。*
在 FAST-NU 拉合尔用心制作 · 2025–2026
标签:AI安全, Anomaly Detection, Apex, Chat Copilot, Cybersecurity AI, DInvoke, FAST-NU Lahore, Insider Threat Detection, Jupyter, Log Ingestion, MIT License, ML Model, Python, Role-Based Access, scikit-learn, Security Dashboard, 内鬼威胁, 大学研究, 威胁情报, 安全仪表盘, 开发者工具, 异常检测, 数据预处理, 无后门, 时间线生成, 机器学习, 端到端平台, 组织安全, 角色权限, 逆向工具