用于检测 http 泛洪的 Snort 规则
Snort rule to detect http flood
是否可以使用 Snort 检测有效的重复 HTTP GET 请求?
例如。客户端机器正在发送 HTTP 请求来淹没服务器。
仅供参考,您的网络服务器更有可能在 "HTTP GET flood" 之前被 syn 淹没(并且是 easier/more 常见攻击),因此您可能希望防止这种情况发生首先是攻击类型。
无论如何,您可以使用 detection_filter 选项和简单的内容匹配来完成此操作。假设您的 Web 服务器的 IP 地址是 192.168.1.5 并且它仅通过端口 80,示例规则如下:
alert tcp any any -> 192.168.1.5 80 (msg:"GET Request flood attempt"; \
flow:to_server,established; content:"GET"; nocase; http_method; \
detection_filter:track by_src, count 30, seconds 30; metadata: service http;)
在前 30 个 GET 请求之后,在一个 30 秒的采样周期内,从单个 IP 地址到 192.168.1.5 的每个 GET 请求都会触发此规则。
示例:
- 1.2.3.4向192.168.1.5发送GET请求,30秒计数器启动,计数为1。
- 1.2.3.4 在10 秒内发送了29 个GET 请求,不会产生警报。计数器在 30,已经 10 秒了。
- 在接下来的 20 秒内,从 1.2.3.4 到 192.168.1.5 的任何 GET 请求都会生成警报。
是否可以使用 Snort 检测有效的重复 HTTP GET 请求? 例如。客户端机器正在发送 HTTP 请求来淹没服务器。
仅供参考,您的网络服务器更有可能在 "HTTP GET flood" 之前被 syn 淹没(并且是 easier/more 常见攻击),因此您可能希望防止这种情况发生首先是攻击类型。
无论如何,您可以使用 detection_filter 选项和简单的内容匹配来完成此操作。假设您的 Web 服务器的 IP 地址是 192.168.1.5 并且它仅通过端口 80,示例规则如下:
alert tcp any any -> 192.168.1.5 80 (msg:"GET Request flood attempt"; \
flow:to_server,established; content:"GET"; nocase; http_method; \
detection_filter:track by_src, count 30, seconds 30; metadata: service http;)
在前 30 个 GET 请求之后,在一个 30 秒的采样周期内,从单个 IP 地址到 192.168.1.5 的每个 GET 请求都会触发此规则。
示例:
- 1.2.3.4向192.168.1.5发送GET请求,30秒计数器启动,计数为1。
- 1.2.3.4 在10 秒内发送了29 个GET 请求,不会产生警报。计数器在 30,已经 10 秒了。
- 在接下来的 20 秒内,从 1.2.3.4 到 192.168.1.5 的任何 GET 请求都会生成警报。