jvalera875/api-attack-detector
GitHub: jvalera875/api-attack-detector
基于 FastAPI 的 API 安全检测服务,通过多模块特征匹配和威胁情报为请求计算风险评分。
Stars: 0 | Forks: 0
# API 攻击检测器
## 关于
我构建这个项目是为了分析 API 请求并识别常见的 Web 攻击。应用程序接收 API 请求,通过多个攻击检测模块进行检查,计算风险得分,并返回判定结果以及标记该请求的原因。
这个项目的目标是通过构建一个简单的检测 pipeline 来进行实践,同时学习更多关于 API 安全和常见攻击技术的知识。
## 检测内容
该应用程序目前会检查:
- SQL 注入
- 跨站脚本攻击 (XSS)
- 路径遍历
- 命令注入
- Log4Shell 特征
- 可疑的 User-Agent 标头
它还会使用 AbuseIPDB 检查公共源 IP 地址,以便在最终结果中包含信誉信息。
## 工作原理
当收到请求时,应用程序会:
1. 验证请求。
2. 提取请求中的重要部分。
3. 运行每个检测器。
4. 通过 AbuseIPDB 检查源 IP(适用时)。
5. 计算风险得分。
6. 返回最终判定结果以及标记该请求的原因。
## 为什么要这样架构
我将每种攻击类型分离到独立的检测器中,这样更容易保持项目井然有序,并在以后添加新的检测功能。
评分逻辑也与检测逻辑保持分离。这使得调整评分变得更加容易,而无需更改每个检测器的工作方式。
## 当前局限性
该项目一次只处理一个请求。
它不会关联来自同一来源的多个请求,也不会随着时间的推移寻找更长的攻击模式。检测也基于已知特征,因此仍有一些技术可以绕过它们。
## 可能的改进
未来我计划进行的一些改进包括:
- 关联来自同一 IP 地址的请求
- 更好地处理编码或混淆的 payload
- 增加更多的攻击检测器
- 接入更多威胁情报源
- 基于攻击严重程度优化评分
## 运行项目
安装所需的包:
bash
pip install -r requirements.txt
启动 API:
bash
uvicorn app:app --reload
打开 Swagger 界面:
http://127.0.0.1:8000/docs
## 使用的技术
- Python
- FastAPI
- Pydantic
- Requests
- AbuseIPDB API
- 正则表达式
标签:API安全, AV绕过, CISA项目, DOE合作, FastAPI, IP 地址批量处理, JSON输出, PFX证书, WAF, Web安全, 威胁情报, 字符串匹配, 开发者工具, 攻击检测, 蓝队分析, 逆向工具