KeerthiPrabhakar/Credential-Stuffing-Analyzer

GitHub: KeerthiPrabhakar/Credential-Stuffing-Analyzer

一个用于分析登录日志并检测凭证填充、密码喷射及账户接管攻击的 Python 工具,具备 IP 风险评分功能。

Stars: 1 | Forks: 0

# 凭证填充分析器 导入加密货币交易所的登录日志,识别 IP 和用户级别的攻击模式,并为每个可疑 IP 分配风险评分。所有发现均标记为 [OWASP API 安全 Top 10 (2023)](https://owasp.org/www-project-api-security/)。 ## 项目结构 ``` Credential-Stuffing-Analyzer/ ├── analyzer.py # Detection engine and CLI reporter ├── dummy_data.py # Synthetic login log generator ├── credential_stuffing_report.json # JSON output written at runtime ├── test_analyzer.py # Basic regression checks ├── .gitignore └── README.md ``` ## 设置 ``` # 创建并激活 virtual environment python3 -m venv .venv source .venv/bin/activate # 安装 dependencies pip install rich ``` ## 用法 ``` python3 analyzer.py ``` 输出内容将打印到终端,并保存至 `credential_stuffing_report.json`。 ## 检测项 | 检测项 | 描述 | OWASP 参考 | 严重程度 | |-----------|-------------|-----------------|----------| | **IP 喷射** | 单个 IP 针对多个用户账户进行重复失败登录尝试 —— 表明存在自动化的密码喷射攻击 | [API4:2023 — 不受限制的资源消耗](https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/) | HIGH / CRITICAL | | **凭证填充** | 多个 IP 针对同一账户进行尝试 —— 表明存在利用泄露数据进行的分布式凭证填充 | [API4:2023 — 不受限制的资源消耗](https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/) | HIGH / CRITICAL | | **账户接管 (ATO)** | 在无 MFA 的情况下,经历大量失败尝试后立即登录成功 —— 高置信度的账户被盗用 | [API2:2023 — 身份验证失效](https://owasp.org/API-Security/editions/2023/en/0xa2-broken-authentication/) | CRITICAL | ## 检测阈值 阈值在 `CredentialStuffingAnalyzer` 中定义为类常量,可以在不更改检测逻辑的情况下进行调整。 | 常量 | 默认值 | 描述 | |----------|---------|-------------| | `SPRAY_IP_FAIL_THRESHOLD` | `10` | 触发喷射检测所需的来自单个 IP 的最少失败次数 | | `SPRAY_USER_THRESHOLD` | `5` | 确认喷射模式所需针对的最少唯一用户数 | | `STUFFING_ATTEMPT_THRESHOLD` | `8` | 跨任意 IP 针对单个账户的最少失败次数 | | `ATO_FAILURE_WINDOW` | `4` | 在登录成功前触发 ATO 标记所需的最少失败次数 | ## 风险评分 每个 IP 都会根据加权因子获得一个介于 **0 到 100** 之间的综合风险评分。 | 因子 | 权重 | 描述 | |--------|--------|-------------| | 失败率 | 30 | 失败尝试的比例 | | 尝试量 | 20 | 原始尝试次数(上限为 50) | | 用户多样性 | 15 | 被针对的唯一账户数量 | | IP 多样性 | 15 | 不同 IP 的数量(单个 IP 评分 = 0) | | 地理异常 | 10 | 是否包含高风险国家代码 (RU, CN, KP, UA, NG) | | 失败后成功 | 10 | 在连续 3 次或更多次失败后记录到成功登录 | **风险标签:** | 评分 | 标签 | |-------|-------| | 75–100 | CRITICAL | | 50–74 | HIGH | | 25–49 | MEDIUM | | 0–24 | LOW | ## 模拟数据 `dummy_data.py` 生成 VaultX 加密货币交易所的合成登录日志。攻击组合: | 模式 | 比例 | OWASP | |---------|-------|-------| | 凭证填充 | ~20 % | API4:2023 | | 密码喷射 | ~15 % | API4:2023 | | 账户接管 | ~3 % | API2:2023 | | 正常登录 | ~62 % | — | 使用了 40 个合成交易员账户 (`trader_XXXXX@vaultx.io`) 以及分布在高风险 CIDR 范围内的 8 个攻击者 IP。 ## 输出 写入 `credential_stuffing_report.json` 的 JSON 报告包含: ``` { "meta": { "tool": "...", "logs_analysed": 500, "run_at": "..." }, "summary": { "total_findings": 60, "critical": 60, "high": 0 }, "findings": { "ip_spray": [...], "credential_stuffing": [...], "account_takeover": [...] }, "ip_risk_scoreboard": [...] } ``` 每项发现包含 `finding_id`、`severity`、`owasp`、`owasp_url`、`description` 以及 `remediation` 步骤。 生成器保证精确生成请求的记录数、唯一的 `log_id` 值,以及包含成功事件前出现大量失败尝试的明确 ATO 序列。 ## OWASP 参考 | ID | 标题 | URL | |----|-------|-----| | API2:2023 | 身份验证失效 | https://owasp.org/API-Security/editions/2023/en/0xa2-broken-authentication/ | | API4:2023 | 不受限制的资源消耗 | https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/ |
标签:AMSI绕过, API安全, ATO检测, Homebrew安装, IP评分, JSON输出, OWASP Top 10, Python, 加密货币交易所, 威胁检测, 安全分析器, 密码喷洒, 异常检测, 撞库检测, 文档结构分析, 无后门, 网络安全, 蛮力攻击, 认证安全, 账户接管, 逆向工具, 防御 evasion, 隐私保护