RequestShield:一款HTTP请求威胁识别与检测工具

科技   2025-01-14 20:03   上海  


关于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

https://github.com/osintmatter/RequestShield


FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复「加群」,申请加入群聊】





FreeBuf
中国网络安全行业门户
 最新文章