我有一个ELK 7.0堆栈,用于存储Web访问日志,包括某些标头。如果客户端两次发送相同的标头,则两个值都将作为列表存储在Elasticsearch中。
最近,我注意到一些易于识别的恶意流量,因为Referer标头重复且始终与请求URI相同。这样的条目可能看起来像这样:
{
"ip": "192.0.2.1",
"host": "www.website.example",
"uri": "/example/",
"referer": [
"https://www.website.example/example/",
"https://www.website.example/example/"
]
}
在这种情况下,uri
和referer
始终相同;攻击者将目标锁定在单个页面上,并且已经将目标锁定了至少几个月。
这是一个有趣的模式,所以我想提取匹配的条目并检查它们。我还想将IP地址传递给安全研究人员,因为这些主机似乎已被盗用,并且是僵尸网络的一部分。
有没有一种方法可以查询给定字段中具有特定项目数量的条目?在这种情况下,我想查询所有具有两个referer
值的条目。
如果这不可能,那么我是否可以通过其他方法有效地完成此任务? 我没有原始输入数据,并且在相关时间范围内暂时禁用了 编辑:原来我可以在相关索引上启用了_source
,所以我不认为重新编制索引是一种选择。_source
,因此可以选择重新索引。
这将是一次操作,因此我愿意接受骇人听闻的解决方案-例如,由于我知道,可能有可能滥用计分系统将“双引荐”浮动到顶部确切的引荐来源网址和uri值。