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, 代码示例, 多线程, 安全运营, 异常检测, 扫描框架, 数据分析, 无后门, 机器学习, 网络威胁分析, 自动化代码审查, 逆向工具