poojanoochila/login-anomaly-detection
GitHub: poojanoochila/login-anomaly-detection
这是一个基于机器学习的登录异常检测系统,通过分析时间和IP模式来识别可疑用户行为,模拟安全运营中心的监控工作流。
Stars: 0 | Forks: 0
# 登录异常检测系统
该系统使用监督式机器学习流水线将登录尝试分类为正常或异常,模拟安全运营中心(SOC)中使用的检测工作流。
### 使用的算法与技术
- Logistic Regression
- Random Forest Classifier
- SMOTE (Synthetic Minority Oversampling Technique)
- StandardScaler (Feature Scaling)
### 流水线概览
#### 1. 数据预处理
- 提取基于时间的特征(例如,登录小时)
- 对分类变量进行编码
- 应用 **StandardScaler** 对数值特征进行归一化
#### 2. 处理类别不平衡 (SMOTE)
- 登录异常数据集高度不平衡
- 应用 SMOTE 生成合成异常样本
- 提高模型检测罕见可疑事件的能力
#### 3. 模型训练
**Logistic Regression**
- 用作基线模型
- 提供可解释的结果
- 有助于理解特征对预测的影响
**Random Forest Classifier**
- 用作主要模型
- 捕获复杂的行为模式
- 为异常分类提供更高的准确率
### 为什么采用这种方法?
- **StandardScaler**
- 确保特征处于同一量级
- 提高 Logistic Regression 的性能
- **SMOTE**
- 解决类别不平衡问题
- 提高异常检测的召回率
- **Logistic Regression**
- 简单、可解释的基线
- 适用于比较
- **Random Forest**
- 对结构化数据稳健且准确
- 有效处理非线性关系
### 检测逻辑
系统根据以下情况将登录标记为可疑:
- 异常的登录时间(例如,深夜活动)
- 新的或未知的 IP 地址
- 偏离用户的正常行为
### 输出解读
- 每次登录尝试被分类为:
- **Normal**
- **Anomalous (Potential Threat)**
## 检测工作流
1. 收集用户登录数据
2. 提取并缩放特征
3. 使用 SMOTE 平衡数据
4. 模型预测正常或异常
5. 系统标记可疑活动
## 示例检测输出
输入:
- Login Time: 02:30 AM
- IP Address: New / Unrecognized
输出:
- Prediction: Anomalous
- Risk Level: HIGH
- Reason:
- Unusual login time
- New IP address detected
## 模型性能
模型评估指标会根据数据集划分和预处理而有所不同。
由于 SMOTE 的平衡作用,典型性能包括在异常检测方面具有强大的召回率。
### 目标
本项目展示了:
- 行为异常检测
- 处理不平衡的安全数据
- 机器学习在威胁检测中的应用
- SOC 监控工作流的模拟
## 功能
- 基于时间的异常检测(非正常时段登录)
- 基于 IP 的异常检测
- 为真实场景生成合成数据集
- 用于异常检测的机器学习模型
- 使用 Flask 的 Web 界面
## 技术栈
- **Backend:** Flask
- **Machine Learning:** Scikit-learn (Random Forest), Imbalanced-learn (SMOTE)
- **Data Processing:** Pandas, NumPy
- **Visualization/UI:** HTML, CSS
- **Dataset:** Synthetic login activity dataset
## 项目结构
login-anomaly-detection/
│
├── app.py # Main Flask application
├── requirements.txt # Dependencies
│
├── ml/ # Machine learning modules
│ ├── train_model.py
| ├── evaluate_models.py
│ ├── preprocessing.py
│
├── templates/ # HTML templates
├── static/ # CSS, JS files
│
├── data/ # Dataset
│ └── login_sample_1000.csv
## 数据集
使用合成数据集来模拟登录行为:
- Timestamp
- User ID
- IP Address
- Device / Location (if applicable)
异常包括:
- 异常的登录时间
- 可疑的 IP 变更
- 快速的登录尝试
## 安装
```
git clone https://github.com/yourusername/login-anomaly-detection.git
cd login-anomaly-detection
pip install -r requirements.txt
```
## 界面预览
### 登录页面

### 主页

### 检测结果


## 使用方法
```
python app.py
```
然后在浏览器中打开:
[http://127.0.0.1:5000/](http://127.0.0.1:5000/)
## 模型训练
```
python ml/train_model.py
```
## 安全相关性 (SOC 视角)
本项目展示了:
* 行为异常检测
* 威胁识别逻辑
* 机器学习在网络安全中的实际应用
* 对基于登录的攻击模式的理解
## 局限性
* 使用合成数据集
* 非生产规模
* 特征工程有限
## 未来改进
* 集成真实世界数据集
* 添加风险评分系统
* 实现实时告警
* 改进特征工程
## 现实应用
该系统可应用于:
- Security Operations Centers (SOC)
- 欺诈检测系统
- User behavior analytics (UBA)
- 内部威胁检测
## 学术背景
本项目是作为 MCA 第三学期迷你项目的一部分开发的,重点是将机器学习技术应用于网络安全用例,例如登录异常检测。
## 注意
为了提高效率,已排除大型数据集和训练好的模型文件。
可以使用提供的脚本重新训练模型。
标签:AMSI绕过, Apex, IP分析, Python, SMOTE, StandardScaler, 二分类, 多模态安全, 威胁检测, 安全运营中心, 异常检测, 数据科学, 数据预处理, 无后门, 时间序列特征, 机器学习, 欺诈检测, 特征缩放, 用户行为分析, 登录安全, 监督学习, 类别不平衡, 网络安全, 网络映射, 资源验证, 逻辑回归, 随机森林, 隐私保护