snort - 如何知道 snort 是否检测到 syn flood 攻击,因为 snort 警报没有记录任何内容

标签 snort denial-of-service intrusion-detection

我在 Centos 上作为 IDS 运行了 snort。我正在尝试测试 snort 是否可以检测到 syn flood 攻击。我从同一个 LAN 网络发送攻击。我在 local.rules alert tcp !$HOME_NET any -> $HOME_NET 80 (flags: S; msg:"Possible TCP DoS"; flow: stateless; threshold: type both, track by_src, count 70,秒 10;sid:10001;rev:1;)。当我在快速模式下运行 snort 时,没有记录 Snort 警报文件。它正在记录,但现在不是。所以我看不到它是否检测到攻击。如何让 snort 检测到这种攻击?

最佳答案

对于初学者,关键字 threshold 已被弃用,并且在未来的版本中将不再支持。您应该改用关键字“detection_filter”(reference)。

您需要确保启动 syn flood 的主机不是包含在 $HOME_NET 变量中的主机,否则您需要将源 IP 更改为“any”或 $ HOME_NET(如果它们在 $HOME_NET 中)。这也取决于您的同步洪水攻击。您是使用多个源主机同步泛洪目标主机,还是使用一台源主机同步泛洪目标?这会有所作为。如果您有多个源主机,则需要按目的地跟踪(为此,您可能希望按目的地跟踪)。如果您是从单个主机启动同步洪水,那么您可以按源进行跟踪。
detection_filter 的速率由源 IP 地址或目标 IP 地址跟踪。这意味着为每个唯一的源 IP 地址或每个唯一的目标 IP 地址维护计数。因此,如果您的 syn flood 有多个源 IP,您需要使用 track by_dst 来跟踪前往单个目的地的 syns 数量。示例:

alert tcp any any -> $HOME_NET 80 (flags: S; msg:"Possible TCP DoS"; flow: stateless; detection_filter: track by_dst, count 70, seconds 10;)

此规则将在前 70 个同步之后的一个 10 秒的采样周期内,对每个同步向 $HOME_NET 中的唯一 IP 发出警报。编写这样的规则可能会导致问题,因为您需要知道正常的连接数量是多少。您是否希望您的网络服务器在 10 秒内获得超过 70 个连接?如果是这样,那么您需要增加计数或减少秒数。

如果您的 syn flood 攻击有一个唯一的源生成多个 syns 到 $HOME_NET 中的目标 IP,您可以跟踪 by_src:

alert tcp any any -> $HOME_NET 80 (flags: S; msg:"Possible TCP DoS"; flow: stateless; detection_filter: track by_src, count 70, seconds 10;)

在前 70 个同步之后,在一个 10 秒的采样周期内,该规则将在 $HOME_NET 中从唯一 IP 到唯一 IP 的每个同步触发。
示例:主机 10.1.1.1 在 10 秒内向主机 10.1.1.2 发送 83 个 syns,最后 13 个 syns 将收到警报。

我会说您希望按目的地进行跟踪,因为它将涵盖两种情况(单个或多个源 IP)。您想要一个规则来简单地限制到您的网络服务器的连接数量,因此您将跟踪到目标的连接并在达到某个阈值后将其丢弃,以保护您的服务器不被淹没。同步泛洪通常会随机化源 IP,因此如果您按源进行跟踪,它不会阻止同步泛洪。

关于snort - 如何知道 snort 是否检测到 syn flood 攻击,因为 snort 警报没有记录任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825427/

相关文章:

linux - ldconfig 仅加载 .so 文件

python - 如何从Apache Pig的part-r-0000获取输出

python - 使用正则表达式解析 Snort 警报文件

mysql - 安装snort,遇到SQL root密码问题

node.js - MongoDB ReDOS 测试

java - 创建入侵检测系统输入的算法或 API

security - 使用无效 IP 的无法检测到的 DoS 攻击

sockets - TCP 服务器被只有 "connect"而没有发送任何数据的客户端淹没

security - 京都2006+数据集或其他标签网络/主机安全数据集

linux - snorrules 快照中的空规则