bharathk2516/login-anomaly-detector
GitHub: bharathk2516/login-anomaly-detector
一个使用 Python 和 SQLite 实现的实时登录异常检测系统,专注于识别暴力破解、凭证填充与不可能旅行等威胁。
Stars: 0 | Forks: 0
# 🚨 登录异常检测器
一个使用 Python 和 SQLite 构建的**实时登录监控与威胁检测系统**。自动检测暴力破解、凭证填充、不可能旅行和可疑 IP —— 就像真实的安全运营中心(SOC)使用的工具一样。
## 🗃️ 数据库架构
```
┌──────────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ login_attempts │ │ blocked_ips │ │ alerts │
│──────────────────│ │─────────────────│ │──────────────────│
│ id (PK) │ │ id (PK) │ │ id (PK) │
│ username │────▶│ ip_address │ │ alert_type │
│ ip_address │ │ reason │ │ severity │
│ timestamp │ │ blocked_at │ │ description │
│ status │ │ is_active │ │ ip_address │
│ location │ └─────────────────┘ │ username │
│ user_agent │ │ created_at │
└──────────────────┘ │ is_resolved │
└──────────────────┘
```
## 🛡️ 检测能力
| 威胁 | 检测方式 |
|--------|-------------|
| **暴力破解** | 10 分钟内同一 IP 失败登录 ≥5 次 |
| **凭证填充** | 同一 IP 针对多个用户名尝试登录 |
| **账户锁定** | 1 小时内同一用户名失败尝试 ≥10 次 |
| **不可能旅行** | 同一用户在 1 小时内从两个远距离位置登录 |
| **可疑 IP** | 确认攻击后自动封禁 |
## 🚨 告警严重等级
| 等级 | 图标 | 含义 |
|-------|------|---------|
| LOW | 🟡 | 轻微异常,仅监控 |
| MEDIUM | 🟠 | 可疑,需调查 |
| HIGH | 🔴 | 活跃威胁,需采取行动 |
| CRITICAL | 💀 | 需要立即响应 |
## 📦 依赖要求
无需外部库!纯 Python + SQLite。
```
python --version # Python 3.6+ required
```
## 🚀 如何运行
```
python login_anomaly.py
```
数据库 `login_monitor.db` 会自动创建。
## 🧪 快速演示
**1. 模拟暴力破解攻击:**
- 运行程序 → 选择 `8`(模拟攻击)
- 选择 `1`(暴力破解)
- 观察告警自动生成!🚨
**2. 查看仪表盘:**
- 选择 `3`(安全仪表盘)
- 查看攻击 IP、目标账户、告警数量
**3. 查看封禁 IP:**
- 选择 `6`(查看封禁 IP)
- 查看自动封禁的攻击者
## 📊 示例仪表盘输出
```
──────────────────────────────────────────────────────────
📊 SECURITY OVERVIEW
──────────────────────────────────────────────────────────
Total Login Attempts : 47
Failed Attempts : 31
Active Alerts : 3
Critical Alerts : 2
Blocked IPs : 2
🔴 Top Attacking IPs:
192.168.142.87 12 failed attempts
10.45.123.1 7 failed attempts
🎯 Most Targeted Accounts:
admin 12 failed attempts
root 7 failed attempts
```
## 🗄️ 使用的 SQL 概念
- 带 `CHECK` 约束和外键的 `CREATE TABLE`
- `INSERT`、`SELECT`、`UPDATE` 操作
- 用于分析的 `COUNT()`、`GROUP BY`、`ORDER BY`
- 基于时间的威胁检测的 `datetime` 过滤
- 使用 `INSERT OR IGNORE` 防止重复
- 子查询与聚合函数
## 💡 学习收获
- 安全运营中心(SOC)如何监控登录活动
- 基于时间窗口查询的 SQL 威胁检测
- 暴力破解与凭证填充攻击模式
- 不可能旅行检测逻辑
- 构建自动化安全告警系统
- 真实的网络安全监控概念
## 📚 参考资料
- [OWASP 暴力破解防护](https://owasp.org/www-community/controls/Blocking_Brute_Force_Attacks)
- [Python sqlite3 文档](https://docs.python.org/3/library/sqlite3.html)
- [MITRE ATT&CK 框架](https://attack.mitre.org/)
标签:AMSI绕过, DNS 解析, IP封禁, Python, SEO: 威胁检测系统, SEO: 实时登录监控, SEO: 登录异常检测, SQLite, WSL, 不可能旅行, 免杀技术, 凭证填充, 告警系统, 地理定位异常, 威胁检测, 安全日志, 安全运营中心, 实时登录异常检测, 异常行为分析, 数据库架构, 无后门, 暴力破解检测, 用户代理分析, 登录安全监控, 登录尝试, 红队行动, 网络映射, 逆向工具, 频率限制