NaveenkumarKrishnamoorthi/AI_Cyber_Threat_Analyzer
GitHub: NaveenkumarKrishnamoorthi/AI_Cyber_Threat_Analyzer
基于随机森林和商业智能的登录活动风险分析 pipeline,自动检测并分类可疑登录行为。
Stars: 0 | Forks: 0
# 🛡 AI Cyber Threat Analytics
### 可疑登录检测与安全风险仪表板
一个端到端的网络安全分析项目,使用 **Python、Machine Learning、SQL 和 Power BI** 来检测可疑登录活动,并对登录风险级别(低 / 中 / 高)进行分类。
## 项目概述
组织每天会收到数以千计的登录尝试,其中一些是暴力破解攻击、撞库攻击、密码猜测,或是来自异常地点或设备的未经授权的访问尝试。手动监控如此庞大的活动量是不可行的。
本项目构建了一个自动化 pipeline,用于:
1. 生成/摄取登录活动数据
2. 清洗并预处理数据
3. 构建行为特征(非工作时间登录、地理位置距离跳跃、新设备、VPN 使用等)
4. 训练 **Random Forest 分类器** 以预测登录风险级别
5. 导出带有评分的数据集,可直接接入 **Power BI**
6. 提供用于临时安全分析的 SQL 查询
## 文件夹结构
```
cyber_threat_analytics/
├── data/
│ ├── raw_login_data.csv # synthetic raw dataset
│ ├── cleaned_login_data.csv # after cleaning
│ ├── featured_login_data.csv # after feature engineering
│ └── final_predictions_for_powerbi.csv # <- load this into Power BI
├── scripts/
│ ├── 01_generate_dataset.py
│ ├── 02_data_cleaning.py
│ ├── 03_eda.py
│ ├── 04_feature_engineering.py
│ └── 05_train_model.py
├── models/
│ ├── risk_model.pkl # trained RandomForestClassifier
│ └── label_encoder.pkl
├── visuals/ # EDA + model evaluation charts (PNG)
├── sql/
│ └── analysis_queries.sql
├── powerbi/
│ └── POWERBI_BUILD_GUIDE.md # step-by-step Power BI dashboard build instructions
├── tableau/
│ └── TABLEAU_BUILD_GUIDE.md # step-by-step Tableau dashboard build instructions
├── requirements.txt
└── README.md
```
## 如何运行
```
pip install -r requirements.txt
cd scripts
python 01_generate_dataset.py # -> data/raw_login_data.csv
python 02_data_cleaning.py # -> data/cleaned_login_data.csv
python 03_eda.py # -> visuals/*.png + KPI summary
python 04_feature_engineering.py # -> data/featured_login_data.csv
python 05_train_model.py # -> model + data/final_predictions_for_powerbi.csv
```
然后使用您习惯的任何 BI 工具构建仪表板,它们都会读取同一个文件 —— `data/final_predictions_for_bi.csv`:
## 数据集列
| 列名 | 描述 |
|---|---|
| Login_ID | 唯一登录标识符 |
| User_ID | 用户标识 |
| Username | 用户名 |
| Login_Time / Date | 登录时间戳 |
| IP_Address | 用户 IP 地址 |
| Country / City | 登录地点 |
| Device_Type | 移动设备 / 台式机 / 笔记本电脑 |
| Browser | Chrome, Edge, Firefox, Safari |
| Operating_System | Windows, Linux, macOS, Android, iOS |
| Login_Status | 成功 / 失败 |
| Failed_Attempts | 失败尝试次数 |
| Session_Duration | 分钟数 |
| VPN_Used | 是 / 否 |
| New_Device | 是 / 否 |
| Geo_Distance | 距离用户常驻地的距离(公里) |
| Risk_Level | 低 / 中 / 高(真实标签,基于规则) |
| Attack_Type | 暴力破解、撞库攻击、密码猜测、正常 |
| Suspicious | 是 / 否 |
| Predicted_Risk_Level | ML 模型的预测 |
| Prediction_Confidence | 模型对其预测的置信度 |
## 机器学习
- **模型:** Random Forest 分类器 (`n_estimators=300`, `class_weight="balanced"`)
- **目标:** `Risk_Level` (低 / 中 / 高)
- **特征:** 失败尝试次数、会话持续时间、地理距离、登录时段、登录状态、VPN 使用情况、新设备标志、非工作时间标志、国家/设备/浏览器/OS 频率编码、“非常驻国家”标志
- **在留出测试集 (20%) 上的结果:**
- 准确率: **91.1%**
- Macro F1-score: **0.875**
- 高风险召回率: 91% —— 模型捕捉到了绝大多数真实的高风险登录,这是在安全背景下检测最重要的一类。
详情请参阅 `visuals/07_confusion_matrix.png` 和 `visuals/08_feature_importance.png`。`Failed_Attempts`、`Geo_Distance` 和 `New_Device_Bin` 是最强的预测因子,这与现实世界中的攻击特征(来自不熟悉设备/地点的反复失败登录)相符。
## BI 仪表板 (Power BI 或 Tableau)
在任一工具中,使用相同的 CSV 构建相同的 3 个仪表板:
1. **风险级别** —— 风险分布、按国家/设备划分的风险、用户风险评分
2. **攻击趋势** —— 每日/每月攻击趋势、攻击类型细分、国家热力图
3. **登录失败模式** —— 按用户、小时、国家、设备、浏览器划分的失败尝试次数
完整的构建说明:
- Power BI (DAX 度量值): `powerbi/POWERBI_BUILD_GUIDE.md`
- Tableau (计算字段): `tableau/TABLEAU_BUILD_GUIDE.md`
## 展示技能
数据清洗 · SQL 查询 · 探索性数据分析 · 特征工程 · Machine Learning 分类 · 网络安全分析 · Power BI 仪表板开发 · 数据可视化 · 商业智能报告
## 1 分钟面试解释
标签:AI, Apex, Python, 代码示例, 多线程, 安全运营, 异常检测, 扫描框架, 数据分析, 无后门, 机器学习, 网络威胁分析, 自动化代码审查, 逆向工具