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, 不可能旅行, 免杀技术, 凭证填充, 告警系统, 地理定位异常, 威胁检测, 安全日志, 安全运营中心, 实时登录异常检测, 异常行为分析, 数据库架构, 无后门, 暴力破解检测, 用户代理分析, 登录安全监控, 登录尝试, 红队行动, 网络映射, 逆向工具, 频率限制