Splunk系列之Splunk搜索分析篇

应用开发2025-11-04 06:58:575635

一、系列析篇简单概述

Splunk 平台的搜索分核心就是 SPL,即 Splunk 搜索处理语言。系列析篇

它提供了非常强大的搜索分能力,通过简单的系列析篇SPL语句就可以实现对安全分析场景的描述。

这里,搜索分我们以Linux secure日志分析作为示例,系列析篇进行安全场景的搜索分构建。

二、系列析篇安全日志

我们先来了解一下Linux secure日志中比较常见的搜索分登录日志,如下两条登录记录作为示例:

复制#登录失败

Thu Feb 08 2022 00:15:04 www2 sshd[1100]: Failed password for root from 142.162.221.28 port 4585 ssh2

#登录成功

Thu Feb 08 2022 00:15:05 mailsv1 sshd[74181]: Accepted password for nsharpe from 10.2.10.163 port 4245 ssh21.2.3.4.

通过对比,系列析篇我们可以找到几个关键信息,搜索分比如登录动作(成功/失败),系列析篇用户名、搜索分ip地址等,系列析篇可以通过编辑正则表达式将关键字段提取出来,站群服务器以便进行搜索和分析。

新增字段提取:

三、安全分析场景

3.1 用户暴力破解

场景描述:用户账户在短时间内尝试大量的错误密码,即可视为用户暴力破解攻击。

安全策略:单一账号,5分钟内超过20次登录失败

复制sourcetype="secure*" action=Failed | bucket _time span=5m | stats count by user,ip | search count>201.

3.2 爆破用户名最多的前10个用户名/ip地址

场景描述:获取暴力破解所使用的密码本,或者暴力破解的来源IP地址。

爆破用户名TOP 10 复制sourcetype="secure*" "failed password" | stats count by user| sort 10 -count1.

爆破IP地址TOP 10 复制sourcetype="secure*" AND "failed password" | stats count by ip | sort 10 -count1.

3.3 用户异地登录

场景描述:用户在短时间内多次异地登录,即可视为账号异常。

安全策略:1天内超过3个城市登录即可视为异地登录异常。

复制

sourcetype="secure*" action="Accepted"| bin _time span=1d |iplocation ip | stats values(ip) as ip values(City) as City dc(City) as src_count by user|search src_count>31.2. 3.4 账号共享

场景描述:同一个ip登录多个账号,以发现存在账号共享的用户。

安全策略:1天内同一个ip登录超过10个账号

复制sourcetype="secure*" action="Accepted" | bin _time span=1d | stats count(user) by ip| rename count(user) as User_count | search User_count>101. 3.5 异常登录时间

场景描述:定义正常的服务器登录时间,如在正常时间范围之外登录,可提示告警。

安全策略:凌晨0点到早上8点内,企商汇登录成功的账号。

复制sourcetype="secure*" action="Accepted" date_hour<8 | table _time,ip,user1.

3.6 异常IP登录

场景描述:定义正常的服务器登录地址,如在正常的IP地址之外登录,可提示告警。

安全策略:查找登录成功的用户列表,排除来自堡垒机的登录ip,就可以获取到违规登录行为。

复制sourcetype="secure*" action="Accepted" AND ip!="10.1.*" | stats count by ip,user1.

3.7 整体用户登录情况

场景描述:用户整体的登录趋势应该是呈现规律性变化,如果某一天出现异常,就需要对引发问题的原因进行排查。

安全策略:查看每天登录成功/失败的次数,有了对照做参考,我们容易从数据趋势看到异常情况。

复制sourcetype=secure-* "password" | timechart per_day(eval(action="Accepted"))

as success,per_day(eval(action = "Failed" OR action = "failed")) as Failed1.2.

网站模板
本文地址:http://www.bzuk.cn/news/388f7599536.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

探索Toshiba迷你电脑的性能与实用性(一款小巧便携的强力计算机,助您随时随地提升工作效率)

Redis的几种拓展方案,你都清楚吗?

线上MySQL不可用,报错数据库无法连接

Linux 性能检测工具Top详解

华为台灯电脑支架安装教程(一步步教您如何安装华为台灯电脑支架)

网络合规势在必行:将员工与技术结合起来

缓存角度的Apache负载均衡

Linux Bash异常情况处理

友情链接

滇ICP备2023006006号-33