fyza000/fyp-credential-stuffing-defence

GitHub: fyza000/fyp-credential-stuffing-defence

一个基于行为风险评分的轻量级凭证填充防御系统,通过多信号分析与自适应决策缓解自动化登录攻击。

Stars: 0 | Forks: 0

# FYP 凭证填充防御 **最终年项目 – 计算机安全与取证理学学士(荣誉)** **学生:** Faiza Noor Noushad ## 项目概述 本项目实现了一个轻量级、基于规则的凭证填充防御系统,旨在使用行为风险评分检测并缓解自动化登录攻击。 系统分析多个非敏感上下文信号,包括 IP 速率、用户代理行为、设备一致性和地理位置异常,以区分合法用户与可疑自动化活动。 根据计算出的风险分数,系统采取自适应缓解措施,例如允许访问、发出挑战、要求多因素认证或阻止请求。 该解决方案设计为可解释、模块化,并适用于复杂机器学习方法不切实际的小型组织或环境。 ## 主要功能 - 多信号行为风险分析 - 基于规则的风险评分引擎 - 自适应认证决策: - ALLOW - CHALLENGE - MFA_REQUIRED - BLOCK - 基于 SQLite 的认证事件日志记录 - 用于评估的合成流量生成器 - 通过 API 检索存储的登录事件 - 轻量级模块化原型设计 ## 系统架构 系统由三个主要组件组成: - **认证服务**(`auth_service.py`)——处理登录请求、风险评分和缓解决策 - **数据库层**(`db.py`)——使用 SQLite 存储认证事件日志 - **流量模拟器**(`attack_simulator.py`)——生成用于测试和评估的合成登录流量 ### 高级流程 登录请求 → 风险评分引擎 → 缓解决策 → 事件日志记录 ## 技术栈 - Python - FastAPI - SQLite - Uvicorn - Requests 库 - 用于行为跟踪的内存中 Python 数据结构 ## 运行方法 ### 1. 克隆仓库 ``` git clone https://github.com/fyza000/fyp-credential-stuffing-defence.git cd fyp-credential-stuffing-defence ``` ### 2. 创建并激活虚拟环境 ``` python -m venv venv venv\Scripts\activate ``` ### 3. 安装依赖 ``` pip install -r requirements.txt ``` ### 4. 运行应用程序 Uvicorn auth_service:app --reload ### 5. 访问 API - Swagger UI: http://127.0.0.1:8000/docs - 登录端点: http://127.0.0.1:8000/docs - 事件端点: http://127.0.0.1:8000/docs ### 评估 可以使用合成流量生成器 `attack_simulator.py` 测试原型: 该模拟器会生成: - 合法用户行为 - 凭证填充攻击突发流量 - 脚本化机器人流量 - 在不同风险级别下区分缓解响应
标签:API检索, AV绕过, BSc计算机安全与取证, FastAPI, IP速率限制, Python, Requests, SQLite, User-Agent分析, Uvicorn, 云计算, 允许挑战MFA阻塞, 内存数据结构, 凭证填充防护, 可解释性, 合成流量生成, 地理位置异常, 多信号分析, 小型组织安全, 数据库层, 无后门, 模块化设计, 毕业设计, 流量模拟器, 登录事件日志, 自动化修复, 自动化登录攻击检测, 自适应认证, 行为风险评分, 规则引擎, 认证服务, 设备一致性, 轻量级原型, 逆向工具