尝试执行 Splunk 查询以查找 10 分钟窗口内相同源 IP 的数量

问题描述 投票:0回答:2

我正在尝试执行 Splunk 查询,我在 10 分钟窗口内看到来自同一源 IP 的连接超过 50 次。所以基本上,我正在寻找 DDOS 攻击。

现在是我的查询:

index="*"  srccountry!="Reserved" | stats count by src_ip AS ip_count | timechart span=10m count | table src_ip, ip_count | where ip_count > 50

但不是表,是事件视图

splunk splunk-query
2个回答
0
投票

我很惊讶你能从那个查询中得到任何东西。

stats
命令在语法上不正确,其余命令使用不存在的字段。

同时使用

stats
timechart
计算事件是多余的。由于您正在查看 10 分钟的窗口,
timechart
是更好的选择。

index="*"  srccountry!="Reserved" | timechart span=10m count as ip_count by src_ip

一旦你有了时间和计数列表,使用

where
命令过滤掉少于 51 个连接的那些。

| where ip_count > 50

这应该会生成一个表格,但是您可以使用

table
命令让 Splunk 按特定顺序显示字段。

| table src_ip ip_count

顺便说一句,正确的

stats
命令(不是你需要的)是
stats count as ip_count by src_ip
stats
是一个转换命令,这意味着它不会传递
timechart
所需的_time字段,因此该命令不会产生任何结果。同样,
timechart
也是一个转换命令,因此 ip_count 不可用于查询的其余部分。

编辑 以下是可能更适合您的查询变体。它将

timechart
替换为
bin
stats
.

index="*"  srccountry!="Reserved" 
| bin span=10m _time
| stats count as ip_count by _time,src_ip
| where ip_count > 50

0
投票

RichG 的查询 没有像写的那样工作,但它让我部分地在那里。这有效:

index="*"  srccountry!="Reserved" 
| timechart span=10m count as ip_count by src_ip where count > 50
© www.soinside.com 2019 - 2024. All rights reserved.