关于RequestShield
RequestShield是一款HTTP请求威胁识别与检测工具,旨在帮助广大安全分析人员更好地分析和识别HTTP请求中的潜在安全威胁。
RequestShield是一款 100% 免费的开源工具,旨在分析 HTTP access.log 并识别可疑的 HTTP 请求和潜在的安全威胁。它使用地理位置、滥用历史、请求量和可疑请求路径等因素为每个 IP 分配风险评分,为安全监控提供可操作的见解。
适用场景
RequestShield可以通过实时分析访问日志帮助安全团队检测和缓解威胁。它非常适合下列场景:
1、入侵检测(未经授权的访问尝试);
2、速率限制(检测 DoS/DDoS 流量);
3、滥用监控(识别标记的 IP);
功能介绍
1、日志解析:分析常见日志格式的访问日志;
2、风险评分:考虑的因素包括地理位置(危险国家)、滥用历史(根据 AbuseIPDB 检查 IP)、请求量(标记高请求率)和可疑路径(检测有风险的请求路径,例如/admin);
3、HTML 报告:生成总结风险和异常的详细报告;
工具要求
colorama==0.4.6
geoip2==4.8.0
pyfiglet==1.0.2
Requests==2.32.3
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/osintmatter/RequestShield.git
然后切换到项目目录中,使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:
cd RequestShield pip install -r requirements.txt
工具配置
工具使用GeoLite2 数据库对 IP 进行地理定位,并且使用ABUSEIPDB API来评估 IP 滥用和相关的安全威胁。因此,在使用该工具之前我们还需要准备好这两部分内容。
编辑config.py,并完成下列内容的配置:
1、日志文件路径
2、GeoIP 数据库路径
3、滥用ABUSEIPDB的API密钥
4、请求量阈值
配置样例如下:
# DEFAULT (compile) config_file["DEFAULT"] = { "geoip_db": str(path / "GeoLite2-Country.mmdb"), "log_file": str(path / "./logs/access.log"), "max_requests_per_minute": int(changeme), "risky_country": str("changeme"), "unusual_status_codes": str("changeme") } # API (compile) config_file["API"] = { "abuseipdb_api_key": "changeme" } # WHITELIST (compile) config_file["WHITELIST"] = { "ips": "changeme" }
配置完成后,请运行下列命令:
python3 config.py
工具运行演示
使用以下命令运行该工具:
python3 requestshield.py
它处理日志并生成一份报告(RequestShield_Report.html),总结可疑活动和风险。输出
1、风险评分:每个 IP 根据各种风险因素获得一个分数。
2、报告:包含标记的 IP 和异常摘要的 HTML 报告。
项目地址
RequestShield:【GitHub传送门】