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安全, 威胁情报, 字符串匹配, 开发者工具, 攻击检测, 蓝队分析, 逆向工具