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阻塞, 内存数据结构, 凭证填充防护, 可解释性, 合成流量生成, 地理位置异常, 多信号分析, 小型组织安全, 数据库层, 无后门, 模块化设计, 毕业设计, 流量模拟器, 登录事件日志, 自动化修复, 自动化登录攻击检测, 自适应认证, 行为风险评分, 规则引擎, 认证服务, 设备一致性, 轻量级原型, 逆向工具